KR20230118164A - 디바이스 또는 어시스턴트-특정 핫워드들의 단일 발언으로의결합 - Google Patents

디바이스 또는 어시스턴트-특정 핫워드들의 단일 발언으로의결합 Download PDF

Info

Publication number
KR20230118164A
KR20230118164A KR1020237023372A KR20237023372A KR20230118164A KR 20230118164 A KR20230118164 A KR 20230118164A KR 1020237023372 A KR1020237023372 A KR 1020237023372A KR 20237023372 A KR20237023372 A KR 20237023372A KR 20230118164 A KR20230118164 A KR 20230118164A
Authority
KR
South Korea
Prior art keywords
aed
hotword
audio data
query
assigned
Prior art date
Application number
KR1020237023372A
Other languages
English (en)
Inventor
매튜 샤리피
빅터 카부네
Original Assignee
구글 엘엘씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 구글 엘엘씨 filed Critical 구글 엘엘씨
Publication of KR20230118164A publication Critical patent/KR20230118164A/ko

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L2015/088Word spotting
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • G10L2015/223Execution procedure of a spoken command

Landscapes

  • Engineering & Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

핫워드들(24)을 단일 발언(20)으로 결합하기 위한 방법(400)이 제공되고, 이러한 방법은, 제 1 어시스턴트-지원 디바이스(AED)(110)에서, 둘 이상의 AED들 중 제 1 AED 및 제 2 AED를 향해 지향된 발언에 대응하는 오디오 데이터(14)를 수신하는 것을 포함하고, 여기서 오디오 데이터는 수행할 동작을 특정하는 쿼리(22)를 포함한다. 방법은 또한, 핫워드 검출기(130)를 사용하여, 제 1 AED에 할당된 제 1 핫워드를 검출하고, 여기서 제 1 핫워드는 제 2 AED에 할당된 제 2 핫워드와는 다르다. 제 1 핫워드를 검출함에 응답하여, 방법은 오디오 데이터가 제 2 핫워드와 적어도 부분적으로 일치하는 용어를 쿼리에 선행하여 포함함을 결정하기 위해 오디오 데이터에 관한 프로세싱을 개시한다. 적어도 부분적 일치에 근거하여, 방법은 제 1 AED 및 제 2 AED로 하여금 서로 협력하여 쿼리를 이행하도록 하기 위해 협력 루틴(200)을 실행한다.

Description

디바이스 또는 어시스턴트-특정 핫워드들의 단일 발언으로의 결합
본 개시내용은 디바이스 또는 어시스턴트-특정 핫워드(device or assistant-specific hotword)들을 단일 발언(single utterance)으로 결합하는 것에 관한 것이다.
음성-지원 환경(speech-enabled environment)(예컨대, 가정, 직장, 학교, 자동차, 등)은 사용자로 하여금 쿼리(query) 및 커맨드(command)를 컴퓨터-기반 시스템에게 큰 소리로 발성할 수 있게 하는데, 여기서 컴퓨터-기반 시스템은 쿼리를 처리(field)하고 쿼리에 답하며 그리고/또는 커맨드에 근거하여 기능을 수행한다. 음성-지원 환경은 해당 환경의 다양한 공간들 또는 영역들을 통해 분포된 연결된 마이크로폰 디바이스(connected microphone device)들의 네트워크(network)를 사용하여 구현될 수 있다. 이러한 디바이스들은, 주어진 발언이 환경 내에 존재하는 또 다른 개체(individual)에 지향된 발언이 아니라, 주어진 발언이 시스템에서 지향된 때를 분별하는 것을 돕기 위해 핫워드들을 사용할 수 있다. 이에 따라, 디바이스들은 수명 상태(sleep state) 또는 동면 상태(hibernation state)에서 동작할 수 있고, 그리고 검출된 발언이 핫워드를 포함할 때에만 깨어날 수 있다. 깨어나면, 디바이스들은, 완전한 디바이스-상(on-device) 자동 음성 인식(Automated Speech Recognition, ASR) 또는 서버-기반 ASR과 같은, 더 비싼 프로세싱을 수행하기 위해 진행할 수 있다.
본 개시내용의 하나 이상의 실시형태는 핫워드들을 단일 발언으로 결합하기 위한 방법을 제공한다. 이러한 방법은, 제 1 어시스턴트-지원 디바이스(Assistant-Enabled Device, AED)의 데이터 프로세싱 하드웨어(data processing hardware)에서, 사용자에 의해 발성된 발언(utterance)에 대응하는 오디오 데이터(audio data)를 수신하는 것을 포함하고, 여기서 발언은 사용자와 관련된 둘 이상의 AED들 중 제 1 AED 및 제 2 AED를 향해 지향된 것이고, 오디오 데이터는 수행할 동작을 특정하는 쿼리(query)를 포함한다. 이러한 방법은 또한, 데이터 프로세싱 하드웨어에 의해, 핫워드 검출 모델(hotword detection model)을 사용하여 오디오 데이터 내에서 제 1 핫워드를 검출하는 것을 포함하고, 여기서 제 1 핫워드는 제 1 AED에 할당되고, 제 1 핫워드는 제 2 AED에 할당된 제 2 핫워드와는 다르다. 오디오 데이터 내에서 제 1 AED에 할당된 제 1 핫워드를 검출함에 응답하여, 방법은 또한, 데이터 프로세싱 하드웨어에 의해, 오디오 데이터가 제 2 AED에 할당된 제 2 핫워드와 적어도 부분적으로 일치(match)하는 하나 이상의 용어(term)들을 쿼리에 선행하여 포함함을 결정하기 위해 오디오 데이터에 관한 프로세싱을 개시하는 것을 포함한다. 오디오 데이터가 제 2 핫워드와 적어도 부분적으로 일치하는 하나 이상의 용어들을 쿼리에 선행하여 포함한다는 결정에 근거하여, 방법은 추가적으로, 데이터 프로세싱 하드웨어에 의해, 제 1 AED 및 제 2 AED로 하여금 서로 협력(collaborate)하여 쿼리에 의해 특정된 동작의 수행을 이행하도록 하기 위해 협력 루틴(collaboration routine)을 실행하는 것을 포함한다.
본 개시내용의 또 하나의 다른 실시형태는 단일 발언으로 결합된 핫워드들을 해석하는 어시스턴트-지원 디바이스를 제공한다. 이러한 디바이스는 데이터 프로세싱 하드웨어와, 그리고 데이터 프로세싱 하드웨어와 통신하는 메모리 하드웨어(memory hardware)를 포함한다. 메모리 하드웨어는 명령들을 저장하고, 명령들은 데이터 프로세싱 하드웨어 상에서 실행될 때 데이터 프로세싱 하드웨어로 하여금 동작들을 수행하도록 한다. 동작들은 사용자에 의해 발성된 발언에 대응하는 오디오 데이터를 수신하는 것을 포함하고, 여기서 발언은 사용자와 관련된 둘 이상의 AED들 중 제 1 AED 및 제 2 AED를 향해 지향된 것이고, 오디오 데이터는 수행할 동작을 특정하는 쿼리를 포함한다. 동작들은 또한, 핫워드 검출 모델을 사용하여 오디오 데이터 내에서 제 1 핫워드를 검출하는 것을 포함하고, 여기서 제 1 핫워드는 제 1 AED에 할당되고, 제 1 핫워드는 제 2 AED에 할당된 제 2 핫워드와는 다르다. 오디오 데이터 내에서 제 1 AED에 할당된 제 1 핫워드를 검출함에 응답하여, 동작들은 또한, 오디오 데이터가 제 2 AED에 할당된 제 2 핫워드와 적어도 부분적으로 일치하는 하나 이상의 용어들을 쿼리에 선행하여 포함함을 결정하기 위해 오디오 데이터에 관한 프로세싱을 개시하는 것을 포함한다. 오디오 데이터가 제 2 핫워드와 적어도 부분적으로 일치하는 하나 이상의 용어들을 쿼리에 선행하여 포함한다는 결정에 근거하여, 동작들은 추가적으로, 제 1 AED 및 제 2 AED로 하여금 서로 협력하여 쿼리에 의해 특정된 동작의 수행을 이행하도록 하기 위해 협력 루틴을 실행하는 것을 포함한다.
본 개시내용의 어느 실시형태의 구현예들도 다음과 같은 선택적인 특징들 중 하나 이상을 포함할 수 있다. 일부 구현예들에서, 오디오 데이터가 제 1 핫워드를 포함한다고 결정함에 응답하여 오디오 데이터에 관한 프로세싱을 개시하는 것은, 오디오 데이터에 대한 음성 인식 결과를 발생시키기 위해 오디오 데이터에 관한 음성 인식을 수행하도록 음성 인식기에게 명령하는 것과; 그리고 오디오 데이터에 대한 음성 인식 결과를 사용하여, 제 2 핫워드와 적어도 부분적으로 일치하는 하나 이상의 용어들이 오디오 데이터 내에서 인식됨을 결정하는 것을 포함한다. 이러한 구현예들에서, 오디오 데이터에 관한 음성 인식을 수행하도록 음성 인식기에게 명령하는 것은, 오디오 데이터에 관한 음성 인식을 수행하도록 서버-측 음성 인식기에게 명령하는 것, 또는 오디오 데이터에 관한 음성 인식을 수행하기 위해 제 1 AED의 데이터 프로세싱 하드웨어 상에서 실행되도록 음성 인식기에게 명령하는 것 중 하나를 포함한다. 일부 예들에서, 오디오 데이터가 제 2 AED에 할당된 제 2 핫워드와 적어도 부분적으로 일치하는 하나 이상의 용어들을 쿼리에 선행하여 포함함을 결정하는 것은, 사용자와 관련된 둘 이상의 AED들 각각에 할당된 하나 이상의 핫워드들의 개별 목록(list)을 포함하는 핫워드 레지스트리(hotword registry)에 액세스(accessing)하는 것과, 그리고 제 2 AED에 할당된 하나 이상의 핫워드들의 개별 목록 내에서 제 2 핫워드와 일치하거나 부분적으로 일치하는 하나 이상의 용어들을 오디오 데이터 내에서 인식하는 것을 포함한다. 이러한 예들에서, 핫워드 레지스트리 내에서 둘 이상의 AED들 각각에 할당된 하나 이상의 핫워드들의 개별 목록은 또한 각각의 핫워드와 관련된 하나 이상의 변형(variant)들을 포함하고, 그리고 오디오 데이터가 제 2 핫워드와 적어도 부분적으로 일치하는 하나 이상의 용어들을 쿼리에 선행하여 포함함을 결정하는 것은, 오디오 데이터 내에서 인식된 하나 이상의 용어들이 제 2 핫워드와 관련된 하나 이상의 변형들 중 하나와 일치함을 결정하는 것을 포함한다. 또한, 이러한 예들에서, 핫워드 레지스트리는, 제 1 AED; 제 2 AED; 사용자와 관련된 둘 이상의 AED들 중 제 3 AED; 또는 사용자와 관련된 둘 이상의 AED들과 통신하는 서버 중 적어도 하나 상에 저장될 수 있다.
일부 구성들에서, 오디오 데이터가 제 2 핫워드와 적어도 부분적으로 일치하는 하나 이상의 용어들을 쿼리에 선행하여 포함함을 결정하는 것은, 사용자가 사용자 디바이스에 할당된 제 2 핫워드를 발성하려고 의도했는지 여부의 가능성을 결정하도록 훈련된 기계 학습 모델(machine learning model)에 오디오 데이터를 입력으로서 제공하는 것을 포함한다. 일부 예들에서, 오디오 데이터 내에서 쿼리에 선행하는 하나 이상의 용어들이 제 2 핫워드와 부분적으로만 일치하는 경우, 협력 루틴을 실행하는 것은 제 1 AED로 하여금 제 2 AED를 호출하여 깨어나게 함과 아울러 쿼리에 의해 특정된 동작의 수행을 이행하도록 하기 위해 제 1 AED와 협력하게 한다.
일부 구현예들에서, 협력 루틴의 실행 동안, 제 1 AED 및 제 2 AED는, 제 1 AED 또는 제 2 AED 중 하나를 지정하여, 오디오 데이터에 대한 음성 인식 결과를 발생시키도록 하고, 수행할 동작을 특정하는 쿼리를 음성 인식 결과가 식별함을 결정하기 위해 음성 인식 결과에 관해 쿼리 해석을 수행하도록 하고, 그리고 음성 인식 결과에 관해 수행된 쿼리 해석을 제 1 AED 또는 제 2 AED 중 다른 하나와 공유하도록 함으로써, 서로 협력한다. 다른 구현예들에서, 협력 루틴의 실행 동안, 제 1 AED 및 제 2 AED는, 각각 독립적으로, 오디오 데이터에 대한 음성 인식 결과를 발생시키고, 그리고 수행할 동작을 특정하는 쿼리를 음성 인식 결과가 식별함을 결정하기 위해 음성 인식 결과에 관해 쿼리 해석을 수행함으로써, 서로 협력한다. 일부 예들에서, 쿼리에 의해 특정된 행위는 제 1 AED 및 제 2 AED 각각 상에서 수행할 디바이스-레벨 행위(device-level action)를 포함하고, 그리고 협력 루틴의 실행 동안, 제 1 AED 및 제 2 AED는, 디바이스-레벨 행위의 수행을 독립적으로 이행함으로써 서로 협력한다. 일부 구성들에서, 수행할 행위를 특정하는 쿼리는 제 1 AED 및 제 2 AED가 지속적인 동작을 수행하도록 하기 위한 쿼리를 포함하고, 그리고 협력 루틴의 실행 동안, 제 1 AED와 제 2 AED는, 지속적인 동작의 기간 동안 서로 짝(pair)을 이루고 그리고 수행할 제 1 AED와 제 2 AED 간의 지속적인 동작과 관련된 하위-행위(sub-action)들의 수행을 조정(coordinating)함으로써, 서로 협력한다.
본 개시내용의 추가적인 실시형태는 핫워드들을 단일 발언으로 결합하기 위한 또 하나의 다른 방법을 제공한다. 이러한 방법은, 어시스턴트-지원 디바이스(AED)의 데이터 프로세싱 하드웨어에서, 사용자에 의해 발성되고 AED에 의해 캡처(capture)된 발언에 대응하는 오디오 데이터를 수신하는 것을 포함하고, 여기서 발언은 제 1 디지털 어시스턴트 및 제 2 디지털 어시스턴트가 동작을 수행하도록 하기 위한 쿼리를 포함한다. 방법은 또한, 데이터 프로세싱 하드웨어에 의해, 제 1 핫워드 검출 모델을 사용하여 오디오 데이터 내에서 제 1 핫워드를 검출하는 것을 포함하고, 여기서 제 1 핫워드는 제 1 디지털 어시스턴트에 할당되고, 제 1 핫워드는 제 2 디지털 어시스턴트에 할당된 제 2 핫워드와는 다르다. 방법은 또한, 데이터 프로세싱 하드웨어에 의해, 오디오 데이터가 제 2 디지털 어시스턴트에 할당된 제 2 핫워드와 적어도 부분적으로 일치하는 하나 이상의 용어들을 쿼리에 선행하여 포함함을 결정하는 것을 포함한다. 오디오 데이터가 제 2 핫워드와 적어도 부분적으로 일치하는 하나 이상의 용어들을 쿼리에 선행하여 포함한다는 결정에 근거하여, 방법은 추가적으로, 데이터 프로세싱 하드웨어에 의해, 제 1 디지털 어시스턴트 및 제 2 디지털 어시스턴트로 하여금 서로 협력하여 동작의 수행을 이행하도록 하기 위해 협력 루틴을 실행하는 것을 포함한다.
본 개시내용의 구현예들은 다음과 같은 선택적인 특징들 중 하나 이상을 포함할 수 있다. 일부 구현예들에서, 오디오 데이터가 제 2 핫워드와 적어도 부분적으로 일치하는 하나 이상의 용어들을 쿼리에 선행하여 포함함을 결정하는 것은, 제 2 핫워드 검출 모델을 사용하여, 제 2 핫워드와 완전히 일치하는 하나 이상의 용어들을 오디오 데이터 내에서 검출하는 것을 포함한다. 일부 예들에서, 방법은 또한, 오디오 데이터 내에서 제 1 핫워드를 검출함에 응답하여, 데이터 프로세싱 하드웨어에 의해, 오디오 데이터가 제 1 디지털 어시스턴트 및 제 2 디지털 어시스턴트가 동작을 수행하도록 하기 위한 쿼리를 포함함을 결정하기 위해 오디오 데이터에 관한 프로세싱을 개시하는 것을 포함할 수 있는데, 이러한 개시는, 오디오 데이터에 대한 음성 인식 결과를 발생시키기 위해 오디오 데이터에 관한 음성 인식을 수행하도록 음성 인식기에게 명령하는 것과; 그리고 음성 인식 결과가 쿼리를 식별함을 결정하기 위해 음성 인식 결과에 관해 쿼리 해석을 수행하는 것을 행함으로써 이루어진다. 오디오 데이터가 제 2 핫워드와 적어도 부분적으로 일치하는 하나 이상의 용어들을 쿼리에 선행하여 포함함을 결정하는 것은, 오디오 데이터에 대한 음성 인식 결과를 사용하여, 제 2 핫워드와 적어도 부분적으로 일치하는 하나 이상의 용어들이 오디오 데이터 내에서 인식됨을 결정하는 것을 포함할 수 있다. 제 1 디지털 어시스턴트는 제 1 목소리 서비스(voice service)와 관련될 수 있고, 제 2 디지털 어시스턴트는 제 2 목소리 서비스와 관련되고, 제 1 목소리 서비스 및 제 2 목소리 서비스는 상이한 엔티티(entity)들에 의해 제공된다. 제 1 디지털 어시스턴트 및 제 2 디지털 어시스턴트는 동작의 수행을 이행하기 위해 서로 협력하는 동안 사용자와 관련된 리소스(resource)들의 상이한 세트들에 액세스할 수 있다.
본 개시내용의 하나 이상의 구현예들의 세부사항들이 아래의 설명 및 수반되는 도면들에서 제시된다. 다른 실시형태들, 특징들, 및 이점들은 이러한 설명 및 도면들로부터 그리고 청구항들로부터 명백할 것이다.
도 1a 및 도 1b는 핫워드들이 단일 발언으로 결합되는 예시적인 음성 환경들의 개략적인 도면들이다.
도 1c 및 도 1d는 도 1a 및 도 1b의 음성 환경들로부터의 예시적인 어시스턴트-지원 디바이스들의 개략적인 도면들이다.
도 2는 음성 환경에서 실행되는 예시적인 협력 루틴이다.
도 3은 하나보다 많은 디지털 어시스턴트를 포함하는 예시적인 어시스턴트-지원 디바이스의 개략적인 도면이다.
도 4는 디바이스 특정 핫워드들을 단일 발언으로 결합하는 방법에 대한 동작들의 예시적인 정렬의 흐름도이다.
도 5는 어시스턴트 특정 핫워드들을 단일 발언으로 결합하는 방법에 대한 동작들의 예시적인 정렬의 흐름도이다.
도 6은 본 명세서에서 설명되는 시스템들 및 방법들을 구현하기 위해 사용될 수 있는 예시적인 컴퓨팅 디바이스의 개략적인 도면이다.
다양한 도면들에서의 유사한 참조 기호들은 유사한 요소들을 표시한다.
이상적으로는, 디지털 어시스턴트 인터페이스(digital assistant interface)와 대화할 때, 사용자는 디지털 어시스턴트 인터페이스를 실행하는 자신의 어시스턴트-지원 디바이스를 향해 지향된 발성된 요청들을 통해 마치 사용자가 또 하나의 다른 사람에게 말을 거는 것처럼 통신할 수 있어야 한다. 디지털 어시스턴트 인터페이스는 발성된 요청들을 프로세싱하고 인식하여 행위가 수행될 수 있도록 하기 위해 이러한 발성된 요청들을 자동 음성 인식기(automated speech recognizer)에 제공할 것이다. 하지만, 실제로는, 디바이스가 이러한 발성된 요청들에 항상 응답하는 것은 도전적인 것인데, 왜냐하면 스마트 전화기(smart phone) 또는 스마트 시계(smart watch)와 같은 리소스 제한된 목소리-지원 디바이스(resource constrained voice-enabled device) 상에서 연속적으로 음성 인식을 실행하는 것은 엄청나게 비싸기 때문이다.
상시 음성(always-on speech)을 지원하는 사용자 경험들을 생성하기 위해, 어시스턴트-지원 디바이스들은 전형적으로, 어구(phrase)들의 한정된 세트를 특징짓는 (사용자에 의해 발성될 때 사용자에 의해 발성된 임의의 후속하는 음성에 관해 완전 자동 음성 인식(Automated Speech Recognition, ASR)을 개시시키는) 오디오 특징(audio feature)들을 인식하도록 구성된 간소한 핫워드 검출 모델들을 실행한다. 유리한 것으로, 핫워드 검출 모델들은 디지털 신호 프로세서(Digital Signal Processor, DSP) 칩(chip)들과 같은 저전력 하드웨어 상에서 실행될 수 있고, "헤이 구글(Hey Google)" 또는 "헤이 거실 스피커(Hey living room speaker)"와 같은 다양한 고정된-어구 커맨드(fixed-phrase command)들에 응답할 수 있다.
사용자의 환경(예컨대, 가정 또는 사무실) 내에서의 어시스턴트-지원 디바이스들의 수가 늘어남에 따라, 사용자는 다수의 어시스턴트-지원 디바이스들을 동시에 트리거(trigger)하기를 바랄 수 있는데, 예를 들어, 어시스턴트-지원 스마트 스피커들의 그룹에 걸쳐 음량 레벨을 조정하기를 바랄 수 있거나, 또는 어시스턴트-지원 스마트 조명들의 그룹에 걸쳐 조명 레벨을 조정하기를 바랄 수 있다. 유사하게, 다수의 상이한 목소리 어시스턴트 서비스들을 제공하는 단일의 어시스턴트-지원 디바이스에 대해, 사용자는 사용자 쿼리를 이행하도록 이러한 목소리 서비스들 중 둘 이상을 동시에 트리거하기를 바랄 수 있다. 사용자가 다수의 상이한 어시스턴트-지원 디바이스들을 트리거하기를 원하든 다수의 상이한 목소리 어시스턴트 서비스들을 트리러하기를 원하든, 사용자는 현재, 각각의 디바이스 또는 디지털 어시스턴트 서비스에게 개개의 쿼리들을 독립적으로 발행하도록 요구받는다. 예를 들어, 사용자의 가정 내에서 부엌 조명 및 식당 조명을 끄기 위해, 사용자는 "헤이 부엌 전구, 꺼죠" 및 "헤이 식당 전구, 꺼죠"와 같은 개개의 쿼리들을 발성해야 할 것이다.
본 명세서에서의 구현예들은 사용자들로 하여금 사용자에 의해 발성되는 발언 내에서 후속하는 쿼리를 프로세싱하도록 하기 위해서 모든 디바이스들 또는 디지털 어시스턴트 서비스들을 트리거하기 위해 다수의 디바이스-특정 핫워드들을 사용자에 의해 발성되는 단일 발언으로 결합할 수 있게 하는 것에 관한 것이다. 아래에서 더 상세히 설명되는 바와 같이, 사용자 환경 내의 다수의 함께-위치하는 어시스턴트-지원 디바이스(AED)들은 서로 협력할 수 있고, 이에 따라 각각의 AED는 각각의 디바이스-특정 핫워드에 응답하도록 구성될 수 있게 됨과 아울러 사용자 환경 내의 다른 함께-위치한 AED들 중 하나 이상에 관한 부분적 디바이스-특정 핫워드를 또한 검출/인식하도록 구성될 수 있게 된다. 예를 들어, 사용자가 두 개의 스마트 스피커들을 가지고 있고 각각의 스마트 스피커는 자기 자신의 각각의 디바이스-특정 핫워드(예컨대, 헤이 디바이스 1 및 헤이 디바이스 2)에 응답하며, 그리고 사용자가 양쪽 스피커들 상에서 자신의 재즈 재생목록을 재생시키기를 원하는 상황에서, 사용자는 요청된 재생목록의 재생을 양쪽 스마트 스피커들에 걸쳐 개시시키기 위해 단일 쿼리 "헤이 디바이스 1 그리고 디바이스 2, 나의 재즈 재생목록을 재생시켜"를 발성할 수 있다. 이러한 상황에서, 사용자는 완전한 디바이스-특정 핫워드 "헤이 디바이스 1"을 발성했지만, 제 2 스마트 스피커에 대한 디바이스-특정 핫워드는 부분적으로만 발성했다(예컨대, 발성된 어구 "디바이스 2" 바로 앞에는 용어 "헤이"가 덧붙여 지지 않았음). 그럼에도 불구하고, 어구 "헤이 디바이스 1"을 검출한 제 1 스마트 스피커는 해당 디바이스를 트리거하여 깨어나게 함과 아울러 사용자에 의해 발성된 발언을 인식하도록 하기 위해 ASR을 개시하게 한다. 두 개의 스마트 스피커들은 서로 짝을 이루도록 그리고 서로 협력하도록 구성되기 때문에, 어구 "헤이 디바이스 1"의 검출에 따라 현재 ASR을 실행하고 있는 제 1 스마트 스피커는 제 2 스마트 스피커에 대한 부분적 핫워드 일치로서 어구 "디바이스 2"를 인식할 수 있고, 그리고 사용자가 또한 제 2 스마트 스피커를 호출하려고 의도했음을 결정할 수 있다. 이러한 상황에서, 제 1 스마트 스피커는 제 2 스마트 스피커에게 명령하여 깨어나도록 하여 쿼리를 또한 프로세싱하도록 할 수 있고 그리고/또는 제 2 스마트 스피커 측 상에서 쿼리를 이행하도록 할 수 있으며, 이에 따라 재즈 재생목록으로부터의 노래들이 양쪽 스피커들로부터 동시에 재생되게 된다. 유리한 것으로, 사용자는 동시에 다수의 AED들에게 지향된 단일 쿼리만을 발성만 하면 되었고, 그럼으로써 사용자 시간을 절약하게 되는데, 왜냐하면 사용자는 AED들 중 상이한 AED에게 각각 지향된 다수의 쿼리들을 제공할 필요가 없게 되었기 때문이다.
도 1a 내지 도 1d를 참조하면, 일부 구현예들에서, 음성 환경(100)은 다수의 어시스턴트-지원 디바이스들(110)(이것은 또한 디바이스(110), 사용자 디바이스(110), 또는 AED(110)로서 지칭됨)을 향해 지향된 발언(20)을 발성하는 사용자(10)를 포함한다. 여기서, 사용자(10)에 의해 발성된 발언(20)은 스트리밍 오디오(streaming audio)(12)에서 하나 이상의 디바이스들(110)에 의해 캡처될 수 있고 쿼리(22)에 대응할 수 잇다. 예를 들어, 쿼리(22)는 행위, 동작, 또는 작업(task)을 수행하기 위한 요청을 지칭하고, 더 구체적으로는, 행위, 동작, 또는 작업을 수행하기 위해 디바이스들(110) 중 하나 이상의 디바이스 상에서 실행되는 디지털 어시스턴트 인터페이스(120)에 대한 요청을 지칭한다. 사용자(10)는 하나 이상의 핫워드들(24) 및/또는 부분적 핫워드들(24, 24p)을 호출 어구로서 쿼리(22) 앞에 덧붙일 수 있어, 하나 이상의 핫워드들(24)이 각각의 디바이스(110) 상에서 실행되는 핫워드 검출기(130)(도 1c 및 도 1d)에 의해 스트리밍 오디오(12)에서 검출될 때, 하나 이상의 디바이스들(110, 110a 내지 110n)을 트리거하여 수명 상태 또는 동면 상태(즉, 저-전력 상태)로부터 깨어나도록 할 수 있다. 이러한 의미에서, 사용자(10)는 컴퓨팅 활동들을 수행하도록 하기 위해 또는 질문들에 대한 답변들을 찾도록 하기 위해 AED 디바이스(110) 상에서 실행되는 디지털 어시스턴트 인터페이스(120)와 대화형 상호작용들을 가질 수 있다.
디바이스(110)는 사용자(10)와 관련된 그리고 환경(100)으로부터 오디오를 캡처할 수 있는 임의의 컴퓨팅 디바이스에 대응할 수 있다. 사용자 디바이스들(110)의 일부 예들은, 모바일 디바이스(mobile device)들(예컨대, 모바일 전화기(mobile phone)들, 태블릿(tablet)들, 랩탑(laptop)들, 전자-책 단말기(e-book reader)들, 등), 컴퓨터(computer)들, 착용가능 디바이스(wearable device)들(예컨대, 스마트 시계들), 음악 재생기들, 캐스팅 디바이스(casting device)들, 스마트 가전(smart appliance)들(예컨대, 스마트 텔레비젼들), 그리고 사물 인터넷(Internet of Things, IoT) 디바이스들, 원격 제어들, 스마트 스피커들, 등을 포함하지만, 이러한 것으로만 한정되는 것은 아니다. 디바이스(110)는 데이터 프로세싱 하드웨어(112d) 및 메모리 하드웨어(112m)를 포함하고, 여기서 메모리 하드웨어(112m)는 데이터 프로세싱 하드웨어(112d)와 통신하고 명령들을 저장하며, 이러한 명령들은 데이터 프로세싱 하드웨어(112d)에 의해 실행될 때 데이터 프로세싱 하드웨어(112d)로 하여금 음성 프로세싱과 관련된 하나 이상의 동작들을 수행하도록 한다.
디바이스(110)는 또한, 음성 환경(100) 내의 오디오를 캡처하고 오디오 데이터(14)(예컨대, 도 1c 및 도 1d의 오디오 데이터(14))로서 지칭되는 전기 신호(electrical signal)들로 변환하기 위한 오디오 캡처 디바이스(예컨대, 하나 이상의 마이크로폰(microphone)들의 어레이(array))(114)를 갖는 오디오 서브시스템(audio subsystem)을 포함한다. 보여지는 예에서는 디바이스(110)가 오디오 캡처 디바이스(114)(이것은 또한 일반적으로 마이크로폰(114)으로서 지칭됨)를 구현하지만, 오디오 캡처 디바이스(114)는 디바이스(110) 상에 물리적으로 상주하지 않을 수 있고, 하지만 오디오 서브시스템(예컨대, 디바이스(110)의 주변기기(peripheral)들)과 통신할 수 있다. 예를 들어, 디바이스(110)는 차량 전체에 걸쳐 배치된 마이크로폰들의 어레이를 이용하는 차량 인포테인먼트 시스템(vehicle infotainment system)에 대응할 수 있다. 마이크로폰과 같은 오디오 캡처 디바이스(114)에 추가하여, 디바이스(110)의 오디오 서브시스템은 또한 스피커와 같은 오디오 재생 디바이스(116)를 포함할 수 있다. 스피커(116)를 이용해, 디바이스(110)는 사용자(10)에 대해 그리고/또는 디바이스(110)가 위치하고 있는 환경(100)에 대해 오디오를 재생할 수 있다. 이것은 디바이스(110)(예컨대, 어시스턴트 인터페이스(120))가, 디바이스(110)와 관련된 하나 이상의 스피커들(116)에서 출력되는 합성된 재생 오디오로 쿼리(22)에 응답할 수 있게 할 수 있다. 예컨대, 사용자(10)가 어시스턴트 인터페이스(120)에게 "오늘 날씨는 어때?"라고 묻는 경우, 스피커(116)는 "오늘은 화창하고 70도야"라고 진술하는 합성된 음성을 출력할 수 있다.
디바이스(110)는 또한, 그래픽 사용자 인터페이스(Graphical User Interface, GUI) 요소들(예컨대, 윈도우들, 스크린들, 아이콘들, 메뉴들, 등) 및/또는 그래픽 콘텐츠(graphical content)를 디스플레이하기 위한 디스플레이(118)를 포함할 수 있다. 예를 들어, 디바이스(110)는 디스플레이(118)를 위한 GUI 요소들 또는 다른 그래픽 콘텐츠를 발생시키는 애플리케이션(application)들을 로딩(load) 또는 론칭(launch)할 수 있다. 디스플레이(118) 내에서 발생되는 이러한 요소들은 사용자(10)에 의해 선택가능할 수 있고, 그리고 또한, 디바이스(110) 상에서 일어나는 활동들/동작들을 프로세싱하기 위한 시각적 피드백(visual feedback)의 어떤 형태를 제공하거나 쿼리(22)에 대한 시각적 응답을 제공하는 역할을 할 수 있다. 더욱이, 디바이스(110)는 목소리-지원 디바이스(110)이기 때문에, 사용자(10)는 다양한 목소리 커맨드들을 사용하여 디스플레이(118) 상에 발생되는 요소들과 상호작용할 수 있다. 예를 들어, 디스플레이(118)는 특정 애플리케이션에 대한 옵션(option)들의 메뉴를 나타낼 수 있고, 사용자(10)는 음성을 통해 옵션을 선택하기 위해 인터페이스(120)를 사용할 수 있다.
예시를 위해, 사용자(10)는 사용자의 가정의 거실 내에 위치한 두 개의 스마트 전구들에 대응하는 두 개의 AED들(110, 110d 및 110e)에 발언(20)을 지향시킬 수 있다. 여기서, 사용자(10)는 거실 내에서 영화를 보고 있을 수 있고 거실 내의 조명들을 어둡게 하기를 원할 수 있다. 이러한 상황에서 사용자(10)는 쿼리를 발성할 수 있는데, "디바이스 1 그리고 디바이스 2, 조명들을 어둡게 해"를 발성할 수 있다. 여기서, 쿼리(22) 앞에는 제 1 스마트 전구(110d)와 관련된 완전한 디바이스-특정 핫워드("디바이스 1") 및 제 2 스마트 전구(110e)와 관련된 완전한 디바이스-특정 핫워드("디바이스 2")가 덧붙여지고, 이것은 디바이스들(110d, 110e) 양쪽 모두를 트리거하여 깨어나도록 함과 아울러 서로 협력하여 쿼리(22)에 의해 특정된 동작을 이행하도록 하는데, 즉, 각각의 스마트 전구는 자신의 조명을 어두운 조명의 특징을 갖는 레벨로 감소시킨다. 추가적으로 또는 대안적으로, 이러한 쿼리(22)에 응답하여, 디바이스들(110d, 110e) 중 하나 또는 양쪽 모두는 또 하나의 다른 디바이스(110c)에게 명령하여 디스플레이(118) 상에 그래픽 사용자 인터페이스(GUI)를 디스플레이하도록 하는데, 여기서 그래픽 사용자 인터페이스(GUI)는 사용자(10)에게 전구들(110d, 110e) 각각의 어두운 레벨을 제어/조정하는 슬라이더 GUI(slider GUI)를 제공한다. 이러한 예를 더 확장하면, 두 개의 디바이스들(110)이 이러한 쿼리(22)를 수신한 때, 이들은 쿼리(22)를 실행할 수 있고 제 3 디바이스(110, 110c)와 협력할 수 있으며, 여기서 제 3 디바이스(110, 110c)는 사용자(10)에 가까이 위치한 그리고 제 1 디바이스(110d) 및/또는 제 2 디바이스(110e)와 통신하는 모바일 디바이스(110c)이다.
음성-지원 인터페이스(예컨대, 디지털 어시스턴트 인터페이스)(120)는 디바이스(110)에 의해 캡처된 발성된 발언(20)에서 운반되는 커맨드 또는 쿼리(22)를 처리할 수 있다. 음성-지원 인터페이스(120)(이것은 또한 인터페이스(120) 또는 어시스턴트 인터페이스(120)로서 지칭됨)는 일반적으로, 발언(20)에 대응하는 오디오 데이터(14)를 수신하는 것을 용이하게 하고, 오디오 데이터(14)에 관한 음성 프로세싱을 조정하는 것을 용이하게 하고, 또는 발언(20)으로부터 기인하는 다른 활동들을 용이하게 한다. 인터페이스(120)는 디바이스(110)의 데이터 프로세싱 하드웨어(112d) 상에서 실행될 수 있다. 인터페이스(120)는 발언(20)을 포함하는 오디오 데이터(14)를 음성 프로세싱 또는 쿼리 이행과 관련된 다양한 시스템들로 보낼 수 있다.
도 1c 및 도 1d와 같은 일부 예들에서, 인터페이스(120)는 핫워드 검출기(130), 음성 인식기(140), 및/또는 해석기(170)와 통신한다. 음성 인식기(140)가 해석기(170)를 구현할 수 있거나, 또는 해석기(170)는 별개의 컴포넌트(component)일 수 있다. 여기서, 인터페이스(120)는 발언(20)에 대응하는 오디오 데이터(14)를 수신하고 오디오 데이터(14)를 핫워드 검출기(130)에게 제공한다. 핫워드 검출기(130)는 하나 이상의 핫워드 검출 스테이지(hotword detection stage)들을 포함할 수 있다. 예를 들어, 핫워드 검출기(130)는 "상시-온(always-on)" 상태인 그리고 핫워드의 존재를 초기에 검출하도록 구성된 제 1 스테이지 핫워드 검출기를 포함할 수 있고, 그리고 후보 핫워드가 검출되면, 제 1 스테이지 핫워드 검출기는 후보 핫워드(24)를 특징짓는 오디오 데이터(14)를 제 2 스테이지 핫워드 검출기에 전달할 수 있고, 제 2 스테이지 핫워드 검출기는 오디오 데이터(14)가 후보 핫워드(24)를 포함하는지 포함하지 않는 지를 확인한다. 제 2 스테이지 핫워드 검출기는 제 1 스테이지 핫워드 검출기에 의해 검출된 후보 핫워드를 거부할 수 있어 디바이스(110)가 수면 상태 또는 동면 상태로부터 깨어나는 것을 방지할 수 있다. 제 1 스테이지 핫워드 검출기는 핫워드의 존재에 대해 대략적으로 청취하기 위해 디지털 신호 프로세서(Digital Signal Processor, DSP) 상에서 실행되는 핫워드 검출 모델을 포함할 수 있고, 그리고 제 2 스테이지 핫워드 검출기는 제 1 스테이지 핫워드 검출기에 의해 검출된 후보 핫워드를 수용하거나 거부하기 위해 제 1 스테이지보다 더 컴퓨팅연산적으로-집약적인 핫워드 검출 모델을 포함할 수 있다. 제 2 스테이지 핫워드 검출기는, 제 1 스테이지 핫워드 검출기가 스트리밍 오디오에서 후보 핫워드(24)를 검출하는 경우, 트리거를 행하는 애플리케이션 프로세서(CPU) 상에서 실행될 수 있다. 일부 예들에서, 제 2 스테이지 핫워드 검출기는 핫워드(24)가 오디오 데이터(14) 내에서 인식되는지 인식되지 않는지를 결정하기 위해 오디오 데이터(14)에 관한 음성 인식을 수행하는 음성 인식기(140)를 포함한다.
핫워드 검출기(130)와 관련된 핫워드 검출 모델이 발언(20)에 대응하는 오디오 데이터(14)가 디바이스(110)에 할당된 핫워드(24)를 포함함을 검출하는 경우, 인터페이스(120)(또는 핫워드 검출기(130) 자체)는 오디오 데이터(14)에 관한 음성 프로세싱을 개시시키기 위해 오디오 데이터(14)를 음성 인식기(140)에게 전달할 수 있다. 예를 들어, 인터페이스(120)는 오디오 데이터(14)가 또 하나의 다른 디바이스(110)에 할당된 핫워드(24)와 적어도 부분적으로 일치하는 하나 이상의 용어들을 발언(20)의 쿼리(22)에 선행하여 포함하는지 여부를 결정하기 위해서 오디오 데이터(14)에 관한 프로세싱을 개시시키기 위해 오디오 데이터(14)를 음성 인식기(140)에게 중계(relay)한다. 오디오 데이터(14)가 또 하나의 다른 디바이스(110)에 할당된 상이한 핫워드(24)와 적어도 부분적으로 일치하는 하나 이상의 용어들을 쿼리(22)에 선행하여 포함한다는 결정에 근거하여, 인터페이스(120)는 두 개의 디바이스들(110)로 하여금 서로 협력하여 쿼리(22)에 의해 특정된 동작의 수행을 이행하도록 하는 협력 루틴(200)을 실행할 수 있다.
도 1c 및 도 1d를 참조하면서 도 1a의 예를 참조하면, 사용자(10)에 의해 발성된 발언(20)은 "헤이 디바이스 1 그리고 디바이스 2, 나의 재즈 재생목록을 재생시켜"를 포함한다. 여기서, 발언(20)은 제 1 디바이스(110, 110a)에 할당된 제 1 핫워드(24, 24a) "헤이 디바이스 1"을 포함하고, 이러한 제 1 핫워드(24, 24a)는 오디오 데이터(14) 내에서 검출될 때 제 1 디바이스(110a) 상에서 실행되는 인터페이스(120)를 트리거하여 용어들 "그리고 디바이스 2, 나의 재즈 재생목록을 재생시켜"에 대응하는 후속적으로 캡처된 오디오 데이터(14)를 프로세싱을 위해 음성 인식 시스템(140)에게 중계하게 한다. 즉, 제 1 디바이스(110a)는 수명 상태 또는 동면 상태에 있을 수 있고, 그리고 오디오 스트림(audio stream)(12) 내에서 핫워드(24) 또는 부분적 핫워드(24, 24p)의 존재를 검출하기 위해 핫워드 검출기(130)를 실행할 수 있다. 예를 들어, "디바이스 2"는 제 2 디바이스(110b)에 대한 부분적 핫워드(24p)인 것으로 고려될 수 있는데, 왜냐하면 제 2 디바이스(110b)에 할당된 전체/완전한 핫워드(24)는 어구 "헤이 디바이스 2"를 포함하기 때문이다. 따라서, 발언(20)에는 전체 핫워드 어구 "헤이 디바이스 2" 중 첫 번째 용어 "헤이"가 결여되어 있고, 이에 따라 용어들 "디바이스 2"는 전체/완전한 핫워드(24) 중 부분적 핫워드(24p)와 관련된다. 본 명세서에서 사용되는 바와 같이, 핫워드(24)는 일반적으로 전체 핫워드(24) 또는 부분적 핫워드(24p)를 지칭할 수 있다. 호출 어구로서의 역할을 하는 경우, 핫워드(24)는, 핫워드 검출기(130)에 의해 검출될 때, 디바이스(110)를 트리거하여 깨어나게 함과 아울러 핫워드(24) 및/또는 핫워드(24)에 후속하는 하나 이상의 용어들(예컨대, 용어들 "그리고 디바이스 2, 나의 재즈 재생목록을 재생시켜")에 관한 음식 인식을 개시하게 한다. 예를 들어, 발언(20)이 제 1 디바이스(110a)에 할당된 제 1 핫워드(24a) 및 제 2 디바이스(110b)에 할당된 제 2 핫워드(24b)(예컨대, 부분적 핫워드(24p))를 포함하기 때문에, 도 1a는 제 1 디바이스(110a) 및 제 2 디바이스(110b)가 깨어나고 서로 협력하여 사용자(10)의 재즈 재생목록으로부터의 음악을 재생시키게 되는 것을 나타내는 데, 반면 제 3 디바이스(110c)는 비록 발언(20)을 캡처하기에 사용자(10)에게 충분히 가까이 근접하여 있을지라도, 깨어나지 않는데, 왜냐하면 제 3 디바이스(110c)에 할당된 임의의 핫워드들(24)을 발언(20)이 포함하지 않기 때문이다. 이러한 예에서, 발언(20)은 제 2 핫워드(24bp)와 부분적으로만 일치하는 하나 이상의 용어들을 포함하기 때문에, 제 2 디바이스(110b) 상에서 실행되는 핫워드 검출기(130)는 핫워드의 존재를 검출하지 못할 것이고 제 2 디바이스(110b)를 트리거하여 깨어나게 하지 못할 것이다. 대신, 제 1 디바이스(110a)는 오디오 데이터에 대한 음성 인식을 개시하고 ASR 결과(142)에 관한 의미론적 해석(semantic interpretation)을 수행하여 제 2 핫워드 "헤이 디바이스 2"와 부분적으로 일치하는 하나 이상의 용어들 "디바이스 2"를 식별하게 되고, 그 다음에 제 2 디바이스(110b)를 호출하여 깨어나게 함과 아울러 쿼리(22)에 의해 특정된 바와 같은 재즈 재생목록을 재생시키는 동작을 이행하도록 하기 위해 제 1 디바이스(110a)와 협력하게 한다.
도 1c 및 도 1d를 참조하면, 핫워드 검출을 수행하기 위해, 핫워드 검출기(130)는 음성 인식 또는 의미론적 분석(semantic analysis)을 수행함이 없이 핫워드(24)를 표시하는 음향 특징(acoustic feature)들을 검출하도록 구성된, 뉴럴-네트워크-기반 모델(neural network-based model)과 같은 핫워드 검출 모델을 포함한다. 핫워드 검출기(130)를 사용함으로써, 핫워드(24)의 검출은 DSP 칩과 같은 저전력 하드웨어(low powered hardware)에서 일어날 수 있는데, 이것은 (예컨대, 데이터 프로세싱 하드웨어(112d)와 관련된) 디바이스의 컴퓨팅 프로세싱 유닛(CPU)들을 소비하는 것을 피한다. 앞에서 언급된 바와 같이, 제 1 스테이지 핫워드 검출기는 DSP 칩 상에서 실행될 수 있어 초기에 후보 핫워드의 존재를 검출하고 그 다음에 CPU를 호출하여 깨어나게 함과 아울러 핫워드의 존재를 확인하도록 하기 위해 제 2 스테이지 핫워드 검출기(핫워드 검출 모드 또는 음성 인식기)를 실행하게 한다. 검출기가 핫워드(24)를 검출하는 경우, 핫워드(24)는 디바이스를 트리거하여 깨어나게 함과 아울러 더 비싼 프로세싱(예컨대, ASR 및 자연 언어 이해(Natural Language Understanding, NLU))을 요구하는 음성 인식을 개시하게 한다. 여기서, 디바이스는 데이터 프로세싱 하드웨어(112d)(예컨대, CPU) 상에서 음성 인식기(140)를 실행시킴으로써 디바이스-상 ASR를 수행할 수 있다. 선택에 따라서는, 디바이스(110)는 서버(예컨대, 도 1b의 원격 시스템(160))와 네트워크 연결을 확립할 수 있고, 그리고 오디오 데이터(14)를 서버에 제공하여 오디오 데이터(14)에 관한 서버-측 ASR 및/또는 NLU를 수행하도록 할 수 있다. 일부 구현예들에서, 환경(100) 내의 각각의 디바이스(110)는 자기 자신의 핫워드 검출기(130)를 실행시킨다.
핫워드 검출기(130)가 오디오 데이터(14) 내에서 핫워드(24)를 검출함에 응답하여, 인터페이스(120)는 이러한 발언(20)에 대응하는 오디오 데이터(14)를 음성 인식기(140)에게 중계하고, 그리고 음성 인식기(140)는 오디오 데이터(14)에 관한 음성 인식을 수행하여 발언(20)에 대한 자동 음성 인식(ASR) 결과(예컨대, 전사물(transcription))(142)을 발생시킨다. 음성 인식기(140) 및/또는 인터페이스(120)는 ASR 결과(142)를 해석기(170)(예컨대, NLU 모듈)에 제공하여 ASR 결과(142)에 관한 의미론적 해석을 수행하도록 하여 오디오 데이터(14)가 제 2 디바이스(110b)에 할당된 제 2 핫워드 "헤이 디바이스 2"와 부분적으로 일치하는 하나 이상의 용어들 "디바이스 2"를 포함함을 결정하게 할 수 있다. 이에 따라, 오디오 데이터(14)가 제 2 핫워드(24, 24bp)와 부분적으로 일치하는 하나 이상의 용어들을 포함한다는 결정에 근거하여, 해석기(170)는 발언(20)이 제 2 디바이스(110b)를 향해 또한 지향되었음을 결정하고, 그럼으로써, 제 2 디바이스(110b)를 호출하여 깨어나게 함과 아울러 제 1 디바이스(110a)와 협력하게 하기 위해 협력 루틴(200)의 실행을 개시시키기 위한 명령(172)을 제공한다. 특히, 만약 발언(20)이, 대신에, 제 2 핫워드(24)에 대한 모든 용어들 "헤이 디바이스 2"를 포함했다면, 제 2 디바이스(110b) 상에서 실행되는 핫워드 검출기(130)는 제 2 핫워드를 검출했을 수 있고, 또한 제 2 디바이스(110b)를 트리거해 깨어나게 함과 아울러 음성 인식 및 의미론적 해석을 독립적으로 수행하게 했을 수 있으며, 그럼으로써, 뒤따르는 쿼리(22)에 의해 특정된 동작을 이행하기 위해 제 1 디바이스(110a)와 협력하도록 협력 루틴(200)을 실행하게 했을 수 있다.
이러한 예에서, 쿼리(22)는 제 1 디바이스(110a) 및 제 2 디바이스(110b)가 청취가능한 재생을 위해 재즈 음악 재생목록을 스트리밍시키는 지속적인 동작을 수행하도록 하기 위한 쿼리를 포함한다. 이에 따라, 협력 루틴(200)의 실행 동안, 제 1 디바이스(110a) 및 제 2 디바이스(110b)는, 지속적인 동작의 기간 동안 서로 짝을 이루고 제 1 디바이스(110a)와 제 2 디바이스(110b) 간의 지속적인 동작과 관련된 하위-행위들의 수행을 조정함으로써, 서로 협력할 수 있다. 달리 말하면, 쿼리(22)가 음악 재생 커맨드에 대응하기 때문에, 협력 루틴(200)은 제 1 디바이스(110a) 및 제 2 디바이스(110b)로 하여금 서로 짝을 이루도록 함과 아울러 스테레오 정렬(stereo arrangement)에서 사용자의 재즈 재생목록으로부터의 노래들을 청취가능하게 재생시키도록 할 수 있고, 이에 따라, 제 1 디바이스(110a)는 하위-행위로서 좌측 오디오 채널의 역할을 담당하게 되고, 제 2 디바이스(110b)는 하위-행위로서 우측 오디오 채널의 역할을 담당하게 된다.
일부 구현예들에서, 도 1b에서 보여지는 바와 같이, 디바이스(110)는 네트워크(150)를 통해 원격 시스템(160)과 통신한다. 원격 시스템(160)은 원격 리소스들(162)을 포함할 수 있는 데, 예를 들어, 원격 데이터 프로세싱 하드웨어(164)(예컨대, 원격 서버들 또는 CPU들) 및/또는 원격 메모리 하드웨어(166)(예컨대, 원격 데이터베이스 또는 다른 저장 하드웨어)를 포함할 수 있다. 디바이스(110)는 음성 프로세싱 및/또는 쿼리 이행과 관련된 다양한 기능을 수행하기 위해 원격 리소스들(162)을 이용할 수 있다. 예컨대, 음성 인식기(140)의 기능 중 일부 또는 모두는 원격 시스템(160)(즉, 서버-측) 상에 상주할 수 있다. 일 예에서, 음성 인식기(140)는 디바이스-상 자동 음성 인식(ASR)을 수행하기 위해 디바이스(110) 상에 상주한다. 또 하나의 다른 예에서, 음성 인식기(140)는 서버-측 ASR을 제공하기 위해 원격 시스템(160) 상에 상주한다. 또 다른 예에서, 음성 인식기(140)의 기능은 디바이스(110)와 서버(160)에 걸쳐 나누어진다.
일부 구성들에서, 음성 인식기(140)는 음성 인식 동안 사용되는 음성 인식 모델의 타입에 따라 상이한 위치(예컨대, 디바이스-상 또는 원격)에 상주할 수 있다. 종단-대-종단 혹은 스트리밍-기반 음성 인식 모델은 공간-효율적 크기로 인해 디바이스(110) 상에 상주할 수 있고, 반면 다수의 모델들로부터 구성되는 더 크고 더 전통적인 음성 인식 모델(예컨대, 음향 모델(Acoustic Model, AM), 발음 모델(Pronunciation Model, PM), 및 언어 모델(Language Model, LM))은 디바이스-상에 상주하는 것이 아니라 원격 시스템(140) 내에 상주하는 서버-측 모델일 수 있다. 달리 말하면, 음성 인식의 원하는 레벨 그리고/또는 음성 인식을 수행할 원하는 속도에 따라, 인터페이스(120)는 음성 인식기(140)에 의한 음성 인식을 명령하여 디바이스-상에서(즉, 사용자-측에서) 또는 원격으로(즉, 서버-측에서) 일어나도록 할 수 있다.
도 1b와 같은 일부 예들에서, 환경(100)은 제 1 네트워크(150, 150a) 및 제 2 네트워크(150, 150b)를 포함한다. 여기서, 제 1 네트워크(150a)는 사용자의 가정과 관련된 개인 네트워크와 같은 로컬 영역 네트워크(Local Area Network, LAN)에 대응할 수 있다. LAN으로서, 제 1 네트워크(150a)는, 사용자(10)와 관련된 다수의 디바이스들(110, 110a 내지 110n)이 서로 연결가능하고 그리고/또는 서로 통신하도록 구성되는 로컬 네트워크 계층을 나타낼 수 있다. 예를 들어, 디바이스들(110)은 유선 및/또는 무선 통신 프로토콜, 예컨대, 와이파이(WiFi), 블루투스(Bluetooth), 지그비(Zigbee), 이더넷(Ethernet), 또는 다른 무선-기반 프로토콜(radio-based protocol)들을 사용하여 서로 연결된다. 제 1 네트워크(150a)에서, 하나의 디바이스(110)는 쿼리(22)를 이행하기 위해 하나 이상의 다른 디바이스들(110)에게 정보(예컨대, 협력 루틴(200)과 관련된 명령들)를 브로드캐스팅(broadcast)할 수 있다. 디바이스들(110)은 네트워크(150a)에 들어가면 통신 수단을 확립하기 위해 발견 프로세스(discovery process)에서 서로 통신하도록 설정될 수 있고, 또는 디바이스들(110)의 특정 세트를 호출하는 쿼리(22)에 응답하여 서로 짝짓기 프로세스를 겪을 수 있다. 제 1 네트워크(150a) 또는 로컬 네트워크는 또한 제 2 네트워크(150b) 또는 원격 네트워크와 통신하도록 구성될 수 있다. 여기서 원격 네트워크는 넓은 지리적 영역에 걸쳐 뻗어있는 와이드 영역 네트워크(Wide Area Network, WAN)를 지칭할 수 있다. 제 2 네트워크(150b)와 통신가능함으로써, 제 1 네트워크(150a)는 원격 시스템(160)과 통신할 수 있거나 또는 원격 시스템(160)에 대한 액세스를 가질 수 있고, 이것은 하나 이상의 디바이스(110)로 하여금 서버-측 음성 인식, 서버-측 핫워드 검출, 또는 서버-측 음성 프로세싱 혹은 쿼리 이행의 어떤 다른 타입과 같은 서비스들을 수행할 수 있게 한다. 일부 구성들에서, 슈퍼바이저(supervisor)(예컨대, 컴퓨터-기반 소프트웨어)가, 제 1 네트워크(150a) 또는 사용자(10)와 관련된 로컬 네트워크 상에서 동작하는 디바이스들(110)을 조정하도록 구성될 수 있고, 이에 따라 슈퍼바이저는 사용자(10)로부터의 발언(20)이 하나보다 많은 디바이스(110)를 깨웠음을 인식할 수 있게 되고, 슈퍼바이저는 깨어난 디바이스들(110) 간의 협력 루틴(200)을 용이하게 하거나 개시하게 된다.
도 1d를 참조하면, 일부 구현예들에서, 해석기(170)는, 오디오 데이터(14)가 제 2 AED에 할당된 제 2 핫워드(24) "헤이 디바이스 2"와 적어도 부분적으로 일치하는 하나 이상의 용어들을 쿼리(22)에 선행하여 포함함을 결정하는데, 이러한 결정은, 사용자(10)와 관련된 각각의 디바이스(110, 110a 내지 110n)에 할당된 하나 이상의 핫워드들의 개별 목록(182, 182a 내지 182n)을 포함하는 핫워드 레지스트리(180)에 액세스하는 것과, 그리고 오디오 데이터(14)에 대한 ASR 결과(142)가, 제 2 디바이스(110b)에 할당된 하나 이상의 핫워드들의 개별 목록(182a) 내에서 제 2 핫워드 "헤이 디바이스 2"와 일치하거나 부분적으로 일치하는 하나 이상의 용어들을 포함함을 식별하는 것을 행함으로써 수행된다. 해석기(170)에 의해 액세스되는 핫워드 레지스트리(180)는 디바이스들(110) 중 하나 상에 저장될 수 있고, 디바이스들 중 하나보다 많은 디바이스 상에 저장될 수 있고, 그리고/또는 네트워크(150)(도 1b)를 통해 모든 디바이스들(110)과 통신하는 중앙 서버(예컨대, 원격 시스템(160)(도 1b)) 상에 저장될 수 있다. 따라서, 각각의 디바이스(110)는, (1) 특정 디바이스(110)에 대한 핫워드들(24)만을 포함하는 디바이스-특정 핫워드 레지스트리(device-specific hotword registry)(180)를 저장할 수 있고; (2) 사용자(10)와 관련된 모든 디바이스들(110)에 대한 핫워드들(24)을 갖는 글로벌 핫워드 레지스트리(global hotword registry)(180)를 저장할 수 있고; 또는 (3) 어떠한 핫워드 레지스트리(180)도 저장하지 않을 수 있다. 특정 디바이스(110)가 글로벌 핫워드 레지스트리(180)를 포함하는 경우, 해당 디바이스(110)는 사용자(10)의 디바이스들(110)에 할당된 핫워드들(24)에 대한 로컬 중앙 저장 노드(local centralized storage node)로서 기능할 수 있다. 글로벌 핫워드 레지스트리(180)를 저장하지 않는 디바이스들은 하나 이상의 다른 디바이스들(110) 상에 저장된 글로벌 핫워드 레지스트리(180)에 로컬 네트워크(150a)를 통해 액세스할 수 있고, 또는 원격 시스템(160) 상에 상주하는 글로벌 핫워드 레지스트리에 액세스할 수 있다. 디바이스들(110)은 새로운 핫워드들(24)이 활성화/이용가능한 상태일 때 그리고/또는 핫워드들(24)이 비활성화/이용가능하지 않게 될 때 능동적으로 핫워드 레지스트리(180)를 업데이트할 수 있다.
일부 예들에서, 핫워드 레지스트리(180) 내의 각각의 디바이스(110)에 할당된 핫워드들(24)의 개별 목록(182)은 각각의 핫워드(24)와 관련된 하나 이상의 변형들을 포함한다. 여기서, 특정 디바이스(110)에 할당된 핫워드(24)의 각각의 변형은 해당 디바이스에 대한 부분적 핫워드(24p)에 대응할 수 있다. 이러한 예를 계속하면, 도 2d는 제 2 디바이스(110b)에 할당된 핫워드들(24)의 개별 목록(182a)을 보여주는데, 여기서 목록(182a)은 핫워드 "헤이 디바이스 2", 그리고 부분적 핫워드들(24p)에 대응하는 변형들 "디바이스 2" 및 "헤이 디바이스 <...> 2"를 포함한다. 따라서, 제 1 디바이스(110a) 상에서 실행되는 해석기(170)는 핫워드 레지스트리(180)에 액세스할 수 있고, 그리고 제 2 디바이스(110b)와 관련된 개별 목록(182a)이 변형 "디바이스 2"를 부분적 핫워드(24p)로서 나열하고 있고 이것이 ASR 결과(142)에서 하나 이상의 용어들과 일치함을 식별할 수 있다. 특히, 목록(182a)은 복합 표현으로서 변형 "헤이 디바이스 <...> 2"를 나열하여 사용자가 쿼리 앞에 "헤이 디바이스 1 그리고 2" 또는 "헤이 디바이스 1 그리고 디바이스 2"를 덧붙인 경우 제 2 핫워드 "헤이 디바이스 2"와의 부분적 일치를 허용하게 된다.
앞서의 설명들에서 언급된 바와 같이, 사용자(10)가 핫워드를 부분적으로만 발성하는 경우, 특정 디바이스(110) 상에서 실행되는 핫워드 검출기(130)는 핫워드(24)의 존재를 검출하지 못할 것이고, 따라서 사용자(10)에 의해 부분적 핫워드(24p)만이 발성될 때 디바이스(110)를 트리거하여 깨어나게 하지 못할 것이다. 더 예시를 들면, 핫워드 검출기(130)가 핫워드 검출을 수행하고 있는 경우, 핫워드 검출기(130)는 특정 핫워드(24)가 스트리밍 오디오 데이터(14) 내에 존재하는 신뢰도 레벨을 표시하는 핫워드 점수를 발생시킨다. 핫워드 점수가 임계치를 만족시키는 경우(예컨대, 특정 임계 값을 초과하는 경우), 핫워드 검출기(130)는 완전한 핫워드(24)가 스트리밍 오디오 내에 존재함을 식별한다. 하지만, 부분적 핫워드(24p)만이 스트리밍 오디오 내에 존재하는 경우, 핫워드 검출기(130)는 임계치를 만족시키는데 실패한 대응하는 핫워드 점수를 발생시킬 수 있다. 결과로서, 핫워드 검출기(130)는 핫워드(24)를 검출하지 못할 것이고, 디바이스(110)는 수면 상태 또는 동면 상태에서 유지될 것이다. 이러한 결과를 피하기 위해, 해석기(170)는 오디오 데이터(14) 내에서 인식된 하나 이상의 용어들(예컨대, ASR 결과(142)에서의 하나 이상의 용어들)이 핫워드(24)와 관련된 변형과 일치함을 결정하기 위해 핫워드 레지스트리(180)에 액세스할 수 있다. 이러한 일치는 신뢰도 점수를 효과적으로 끌어올릴 수 있고 이에 따라 디바이스(110)를 트리거하여 이제 깨어나게 함과 아울러 쿼리(22)에 의해 특정된 동작을 이행하도록 하기 위해 쿼리(22)가 지향되었던 하나 이상의 다른 디바이스들(110)과 협력하게 한다.
일부 예들에서, 오디오 데이터 내에서 자신의 핫워드를 검출한 AED(110)는 발언(20)에 대응하는 오디오 데이터(14)가 또한 또 하나의 다른 AED에 할당된 핫워드를 나타내는지 그렇지 않은지를 결정하기 위해 기계 학습 모델(175)을 실행시킨다. 이에 따라, 기계 학습 모델(175)은 오디오 데이터 내에서 부분적 핫워드들을 검출하도록 훈련된다. 기계 학습 모델(175)은 오디오 데이터(14)를 입력으로서 수신할 수 있고, 그리고 사용자(10)가 또 하나의 다른 AED에 할당된 핫워드를 발성하려고 의도했는지 여부의 가능성을 결정할 수 있다. 기계 학습 모델은 하나 이상의 핫워드들 및 그 변형들에 대한 예상된 핫워드 발언들에 관해 훈련될 수 있다. 기계 학습 모델은 뉴럴 네트워크를 포함할 수 있거나, 또는 임베딩-기반 비교 모델(embedding-based comparison model)을 포함할 수 있고, 여기서 오디오 데이터(14)의 임베딩은 예상된 핫워드 발언들에 대한 임베딩들과 비교된다.
도 2를 참조하면, 음성 인식 결과(142)가 또 하나의 다른 디바이스(110)에 할당된 핫워드와 적어도 부분적으로 일치하는 하나 이상의 용어들을 포함함을 표시하는 명령(172)을 어시스턴트 인터페이스(120)가 제공함에 응답하여 협력 루틴(200)이 실행된다. 명령(172)은 발언(20)이 지향되었던 둘 이상의 디바이스들(110, 110a 내지 110n) 각각과 관련된 식별자들을 포함할 수 있다. 명령(172)은 또한 음성 인식 결과(142)를 포함할 수 있다. 오디오 데이터 내의 하나 이상의 용어들이 디바이스(110, 110b)에 할당된 핫워드와 부분적으로만 일치하는 경우, 협력 루틴(200)을 실행하는 것은 트리거된 디바이스(110, 110a)로 하여금 다른 디바이스(110b)를 호출하여 깨어나게 함과 아울러 쿼리(22)에 의해 특정된 동작의 수행을 이행하도록 하기 위해 제 1 디바이스(110a)와 협력하게 할 수 있다. 예를 들어, ASR 결과(142)가 제 2 디바이스(110b)에 할당된 핫워드와 부분적으로만 일치하는 용어들을 포함함을 표시하는 명령(172)을 협력 루틴(200)이 해석기(170)로부터 수신하는 경우, 협력 디바이스(200)는 제 2 디바이스(110b)를 호출하여 깨어나게 할 수 있다.
협력 루틴(200)은 위임 스테이지(delegation stage)(210) 및 이행 스테이지(fulfillment stage)(220)를 포함할 수 있다. 위임 스테이지(210) 동안, 협력 디바이스들(110, 110a 및 110b)은 협력 디바이스들 중 적어도 하나에게 프로세싱 명령들을 지정함으로써 서로 협력한다. 간단한 설명을 위해, 제 1 디바이스(110a) 및 제 2 디바이스(110b)에 대응하는 두 개의 협력 디바이스들(110)이 존재하지만, 다른 예들은, 발언이 두 개보다 많은 디바이스들(110)에게 지향되었음을 해석기가 결정하는 경우, 두 개보다 많은 협력 디바이스들(110)을 포함할 수 있다. 프로세싱 명령들(212)은 제 1 협력 디바이스(110a)를 지정하여, 오디오 데이터(14)에 대한 ASR 결과(142)를 발생시키는 것; 수행할 동작을 특정하는 쿼리(22)를 ASR 결과(142)가 식별함을 결정하기 위해 ASR 결과(142)에 관해 쿼리 해석을 수행하는 것; 그리고 ASR 결과(142)에 관해 수행된 쿼리 해석을 다른 협력 디바이스(110b)와 공유하는 것을 행하게 할 수 있다. 이러한 예에서, 오디오 데이터(14)는 제 2 디바이스(110b)에 할당된 핫워드와 부분적으로 일치하는 하나 이상의 용어들을 단지 포함했을 수 있고, 따라서 위임 스테이지(210)는 제 1 디바이스(110a)로 하여금 수행할 동작을 특정하는 쿼리(22)를 식별하기 위해 오디오 데이터(14)를 계속 프로세싱하게 하도록 결정할 수 있고, 이와 동시에 제 2 디바이스(110b)를 호출하여 깨어나게 함과 아울러 제 1 디바이스(110a)와 협력하게 하도록 결정할 수 있다. 다른 예들에서, 프로세싱 명령들(212)은, 대신에, 협력 디바이스들로 하여금, 각각이 독립적으로 오디오 데이터(14)에 대한 ASR 결과(142)를 발생시킴으로써 그리고 쿼리(22)를 식별하기 위해 ASR 결과(142)에 관해 쿼리 해석을 수행함으로써, 서로 협력할 수 있게 할 수 있다.
협력 디바이스(110)가 음성 프로세싱 및/또는 쿼리 해석의 어떤 양상을 수행하고 반면 또 하나의 다른 디바이스가 이러한 양상을 수행하지 않는 경우, 루틴(202)은 루틴(202)의 실행을 조정하기 위해서 어떤 협력 디바이스(110)가 또 하나의 다른 협력 디바이스(110)와 정보를 공유할 필요가 있는지를 지정할 수 있다. 예를 들어, 만약 제 1 디바이스(110a)가 쿼리(22) "나의 재즈 재생목록을 재생시켜"에 관해 쿼리 해석을 수행한다면, 제 2 디바이스(110b)는 이러한 쿼리 해석을, 이러한 해석이 제 2 디바이스(110b)와 공유될 때까지, 알지 못할 것이다. 더욱이, 만약 루틴(202)이 제 1 디바이스(110a)는 음성 프로세싱을 수행함 그리고 제 2 디바이스(110b)는 쿼리 해석을 수행함을 지정한다면, 제 2 디바이스의 행위는 제 1 디바이스의 행위에 의존하고, 이에 따라 제 1 디바이스(110)는 제 2 디바이스(110b)가 쿼리 해석을 수행할 수 있도록 하기 위해 음성 인식 결과들(142)을 제 2 디바이스(110b)와 공유할 필요가 있게 된다.
프로세싱 명령들(212)을 발행할 때, 위임 스테이지(210)는 각각의 협력 디바이스(110)의 능력들을 평가할 수 있는데, 예컨대, 프로세싱 능력들, 전력 사용, 배터리 레벨, 디바이스들(110)에서 이용가능한 ASR 모델들, ASR을 로컬로 혹은 원격으로 수행할 수 있는 각각의 디바이스(110)의 능력, 또는 디바이스들(110)과 관련된 임의의 다른 능력/파라미터를 평가할 수 있다. 예를 들어, 특정 협력 디바이스(110)는 리소스 집약적 동작들을 수행하기 위해 본질적으로 더 큰 프로세싱 리소스들을 가질 수 있다. 달리 말하면, 제 1 디바이스(110a)가 프로세싱 리소스들이 한정된 디바이스(110)(예컨대, 스마트 시계)인 경우, 그리고 제 2 디바이스(110b)가 태블릿인 경우, 스마트 시계는 태블릿보다 프로세싱 리소스들에 관해 훨씬 더 제약될 수 있다. 따라서, 협력 디바이스들(110) 중 하나가 스마트 시계인 경우, 위임 스테이지(210)는 가능할 때마다 음성 프로세싱 및 쿼리 해석의 수행을 다른 협력 디바이스들(110) 상에 지정할 수 있다.
이행 스테이지(220)는 협력 디바이스들(110) 중 적어도 하나에 의해 오디오 데이터(14)로부터 해석된 쿼리(22)를 수신한다. 일부 예들에서, 쿼리(22)는 협력 디바이스들(110) 각각 상에서 수행할 디바이스-레벨 행위를 특정한다. 예를 들어, 도 1의 스마트 조명들(110d, 110e)을 향해 지향되어 조명들을 어둡게 하기 위한 동작을 특정하는 쿼리(22)는 디바이스-레벨 쿼리에 대응하고, 여기서 이행 스테이지(220)는 스마트 조명들(110d, 110e)에게 명령하여 각각이 독립적으로 자신들의 조명을 어두운 조명의 특징을 갖는 레벨로 감소시킴으로써 서로 협력하게 한다.
다른 예들에서, 쿼리(22)는 협력 디바이스들(110)에 의해 공동으로 수행될 지속적인 동작을 특정한다. 지속적인 동작을 수행하는 것은 디바이스들(110)로 하여금 지속적인 동작과 관련된 다수의 하위-행동들(222, 222a 내지 222n)을 수행할 때 협력할 것을 요구할 수 있다. 이에 따라, 협력 디바이스들(110)은, 지속적인 동작의 기간 동안 서로 짝을 이루고 협력 디바이스들(110) 각각 간의 지속적인 동작과 관련된 하위-행위들(222)의 수행을 조정함으로써, 서로 협력할 수 있다. 이에 따라, 이행 스테이지(220)는 지속적인 동작과 관련된 하위-행위들(222)을 식별하고, 그리고 협력 디바이스들(110) 간의 하위-행위들의 수행을 조정한다.
앞서의 예를 계속하면, 쿼리(22)는 사용자의 거실 내에 위치하는 스마트 스피커들에 대응하는 제 1 디바이스(110a) 및 제 2 디바이스(110b) 상에서 사용자의 재즈 재생목록을 청취가능하게 재생시키기 위한 지속적인 동작을 특정한다. 이러한 지속적인 동작을 수행하기 위해, 이행 스테이지(220)는 지속적인 동작과 관련된 하위-행위들(222)을 식별하고, 그리고 이행 명령들(225)을 발생시키는데, 여기서 이행 명령들(225)은 제 1 디바이스(110a) 및 제 2 디바이스(110b)로 하여금 서로 짝을 이루도록 하고 제 1 디바이스(110a)와 제 2 디바이스(110b) 간의 지속적인 동작과 관련된 하위-행위들(222)의 수행을 조정하도록 한다. 예를 들어, 사용자의 재즈 재생목록을 재생시키기 위해, 재즈 음악의 재생목록은, 로컬로 액세스될 수 있거나(예컨대, 재생목록이 디바이스들(110a 및 110b) 중 하나 상에 저장되어 있음), 로컬 네트워크(150a)(도 1b) 상의 네트워크 저장 디바이스(미도시)로부터 액세스될 수 있거나, 또는 어떤 원격 서버 상에 상주하는 음악 스트리밍 서비스로부터 스트리밍될 수 있다. 이러한 예에 대해, 사용자의 재즈 재생목록은 음악 스트리밍 서비스와 관련된 스트리밍 음악 애플리케이션에서의 재생목록이다. 여기서, 이행 명령들(225)은 제 2 디바이스(110b)에게 명령하여, 음악 스트리밍 애플리케이션를 론칭시키고 원격 네트워크를 통해 재즈 음악 재생목록으로부터 현재 노래를 스트리밍시키기 위해 원격 음악 스트리밍 서비스와 연결되는 하위-행위들을 수행하게 할 수 있고, 해당 노래를 제 1 디바이스(110a)로 보내게/스트리밍하게 할 수 있고, 그리고 현재 노래를 좌측 오디오 채널로서 재생시키는 오디오 재생 책임을 떠맡게 할 수 있다. 반면, 이행 명령들(225)은 제 1 디바이스(110a)에게 명령하여, 제 2 디바이스(110b)로부터 스트리밍되는 현재 노래를 우측 오디오 채널로서 재생시키는 오디오 재생 책임을 떠맡는 하위-행위(222)만을 수행하게 한다. 이에 따라, 이행 명령들(225)은 지속적인 동작을 이행하도록 제 1 디바이스(110a)와 제 2 디바이스(110b) 간의 하위-행위들의 수행을 조정하고, 이에 따라 두 개의 디바이스들(110a, 110b)은 스테레오 정렬로 음악을 재생시키게 된다. 그 다음에, 재생목록으로부터 노래들을 스트리밍시키는 것에 대응하는 하위-행위들(222)은 지속적인 동작이 종료될 때(예컨대, 재생목록이 끝나거나, 또는 사용자(10)가 디바이스들(110a 및 110b)에서 음악 재생을 중단시킬 때)까지 반복된다. 지속적인 동작이 종료될 때, 디바이스들(110)은 분리될 수 있고(예컨대, 자신들의 짝지워진 연결을 중단시킬 수 있음), 그리고 저-전력 상태들(예컨대, 수명 상태 혹은 동면 상태)로 되돌아 갈 수 있다
도 3은, 도 1a 내지 도 1d의 예들과 유사한, 다수의 핫워드들(24)을 단일 발언(20)으로 결합하는 예이다. 도 3은 도 1a 내지 도 1d의 예들과는 다른 데, 다수의 핫워드들(24) 각각이 상이한 디바이스들(110)에 대응하는 대신, 다수의 핫워드들(24)이 상이한 어시스턴트 인터페이스들(120)에 대응한다는 점에서, 다르다. 다시 말하자면, 단일 발언(20)으로 결합된 다수의 핫워드들(24)은 디바이스-특정이 아니라, 인터페이스-특정이다. 어시스턴트 인터페이스들(120)은 디바이스(110)의 데이터 프로세싱 하드웨어(112d) 상에서 실행되는 하나 이상의 애플리케이션들을 나타낼 수 있다. 예를 들어, 인터페이스(120)는 상이한 애플리케이션들과 인터페이싱하는 애플리케이션 프로그래밍 인터페이스(Application Programming Interface, API)인데, 여기서 상이한 애플리케이션들은, 미디어 애플리케이션들(media applications)(예컨대, 비디오 스트리밍 애플리케이션들, 오디오 스트리밍 애플리케이션들, 미디어 재생기 애플리케이션들, 미디어 갤러리 애플리케이션들(media gallery applications), 등), 워드 프로세싱 애플리케이션들(word processing applications), 내비게이션 애플리케이션들(navigation applications), 소셜 미디어 애플리케이션들(social media applications), 통신 애플리케이션들(예컨대, 메시징 애플리케이션들, 이메일 애플리케이션들, 등), 금융 애플리케이션들, 조직관리 애플리케이션들(예컨대, 주소록 애플리케이션들), 소매업 애플리케이션들, 엔터테인먼트 애플리케이션들(entertainment applications)(예컨대, 뉴스 애플리케이션들, 날씨 애플리케이션들, 스포츠 애플리케이션들), 캐스팅 애플리케이션들(casting applications), 등과 같은 것이다. 일부 인터페이스들(120)은 회사들에 의해, 자신들의 애플리케이션들과 인터페이싱하기 위해서 또는 아마도 해당하는 특정 회사의 사업 제안들(business offerings)에 고유한 어느 정도의 기능을 포함하도록 하기 위해서, 개발된 독점 소프트웨어(proprietary software)이다. 도 3에서 보여지는 바와 같이, 두 개의 더 일반적인 어시스턴트 인터페이스들(120)이 구글(GOOGLE)(예컨대, 구글 어시스턴트(Google Assistant)로서 지칭됨) 및 아마존(AMAZON)(예컨대, 알렉사(Alexa)로서 지칭됨)에 의해 제공된다. 각각의 인터페이스(120)는 인터페이스(120)를 트리거하여 사용자(10)에 의해 어시스턴트 인터페이스(120)에게 발성된 발언(20)에서 수신된 쿼리(22)와 관련된 동작들, 작업들, 또는 행위들을 수행하게 하기 위해 자기 자신의 고유한 핫워드들(24)의 세트를 가질 수 있다.
각각의 인터페이스(120)는 디바이스(110)와 통신하는 다른 애플리케이션들과의 상이한 호환성(compatibility)을 가질 수 있거나, 또는 자기 자신의 고유한 이점들의 세트를 가질 수 있기 때문에, 디바이스들(110)의 사용자들(10)은 종종 특정 디바이스(110) 상에 하나보다 많은 인터페이스(120)를 사용할 수 있다. 더욱이, 사용자(10)는 심지어 결과들/응답을 비교하기 위해서 동일한 행위를 수행하기 위해 또는 특정 쿼리(22)에 대한 다수의 시점(vantage point)들을 획득하기 위해 두 개의 상이한 인터페이스들(120)을 사용할 수 있다. 예를 들어, 사용자(10)는, 제 1 인터페이스(120, 120a)의 날씨 예보 기능이 폭풍우 또는 강수를 초래하는 날씨에 관해서는 제 2 인터페이스(120, 120b)의 날씨 예보 기능보다 더 정확하지만, 습도 및 따뜻한 날씨에 관해서는 제 2 인터페이스(120, 120b)의 날씨 예보 기능이 제 1 인터페이스(120, 120a)의 날씨 예보 기능보다 더 정확하다고 생각할 수 있다. 이러한 관점에서, 사용자(10)는 통상적으로 두 개의 개개의 발언들(20) "헤이 구글, 오늘 날씨는 어때?" 및 "알렉사, 오늘 날씨는 어때?"일 것을 "헤이 구글 그리고 알렉사, 오늘 날씨는 어때?"의 단일 발언(20)으로 결합할 수 있다. 도 3에서, 예는 쇼핑 질문(shopping question)을 나타낸다. 여기서, 사용자(10)는, "헤이 구글 그리고 알렉사, 레이저 크레스트 레고 세트(Razor Crest lego set)가 얼마지?"라고 말함으로써, 레고 세트의 가격에 대해 아마존과 구글 양쪽 모두에게 쿼리(22)를 행하여 시세를 비교할 수 있게 되거나 또는 시장에서의 시세에 대한 더 많은 데이터를 수집할 수 있게 된다.
비록 핫워드(24)가 디바이스-특정 대신에 인터페이스-특정일지라도, 디바이스(110)의 다른 특징들은 동일하게 기능한다. 예를 들어, 인터페이스-특정 핫워드(24)에 대해, 디바이스(110)는, 도 3에서 알 수 있는 바와 같이, 핫워드 검출기(130), 음성 인식(140), 및 협력기(200)를 포함한다. 달리 말하면, 디바이스(110)는 사용자(10)에 의해 발성된 발언(20)에 대응하는 오디오 데이터(14)를 수신하고, 그리고 핫워드 검출기(130)는 오디오 데이터(14) 내에서 제 1 핫워드(24, 24a) "헤이 구글"을 검출하는데, 여기서 제 1 핫워드(24, 24a)는 제 1 디지털 어시스턴트(120a)에 할당된다. 음성 인식기(140)는 오디오 데이터(14)에 대한 ASR 결과(142)를 발생시키고, 그리고 해석기(170)는 오디오 데이터(14)에 대한 ASR 결과(142)가 제 2 디지털 어시스턴트(120b)에 할당된(예컨대, 알레사에 할당된) 제 2 핫워드(24)와 적어도 부분적으로 일치하는 하나 이상의 용어들을 쿼리(22)에 선행하여 포함하는지 여부를 결정한다. 해석기(170)는 용어 "알렉사"가 제 2 디지털 어시스턴트(120b)에 할당된 핫워드와 일치함을 결정하기 위해 앞서 논의된 바와 같이 핫워드 레지스트리(180)에 액세스할 수 있다.
오디오 데이터(14)가 제 2 디지털 어시스턴트(120b)에 할당된 하나 이상의 제 2 핫워드들(24)과 적어도 부분적으로 일치하는 하나 이상의 용어들을 쿼리(22)에 선행하여 포함한다는 결정에 근거하여, 해석기(170)는 명령(172)을 보내 협력 루틴(200)을 개시시켜 제 1 디지털 어시스턴트(120a) 및 제 2 디지털 어시스턴트(224)로 하여금 동작의 수행을 이행하도록 하기 위해 서로 협력하게 한다. 도 1a 내지 도 1d의 예들과는 대조적으로, 디바이스들(110) 대신 다수의 디지털 어시스턴트들(120)(예컨대, 제 1 디지털 어시스턴트(120a) 및 제 2 디지털 어시스턴트(120b))이 쿼리(22)와 관련된 동작의 수행을 이행하기 위해 협력한다. 이것이 의미하는 바는, 쿼리(22)의 행위들 또는 하위-행위들(222)이 하나보다 많은 인터페이스(120)에 의해 병렬로(예컨대, 동시에) 수행될 수 있다는 것이다.
다수의 인터페이스들(120)이 쿼리(22)에 대응하는 동작의 수행을 이행하고 있을 때, 다른 인터페이스들(120)은 다른 방식들로 쿼리(22)를 이행할 수 있다. 예를 들어, 하나의 인터페이스(120)는 또 하나의 다른 인터페이스(120)와는 다른 서비스들과 관련될 수 있거나 또는 하나의 인터페이스(120)는 상이한 이행 결과들을 발생시킬 수 있는데, 왜냐하면 해당 인터페이스(120)가 또 하나의 다른 인터페이스(120)와는 다른 리소스들에 대한 액세스를 갖기 때문이다. 일부 구현예들에서, 상이한 인터페이스들(120)은 디바이스(110)의 상이한 종류들의 행위들을 수행하거나 제어한다. 예를 들어, 하나의 인터페이스(120)는 하나의 방식으로 디바이스-레벨 행위를 수행할 수 있고, 또 하나의 다른 인터페이스(120)는 다른 방식으로 동일한 디바이스-레벨 행위를 수행할 수 있다. 예시를 위해, 만약 사용자(10)가 발언(20) "헤이 구글 그리고 알렉사, 데이터 이력기록을 꺼죠"를 발언한다면, 이러한 발언(20) 내의 쿼리(22)는 이전의 조명 예와 유사한데, 여기서 구글과 관련된 제 1 인터페이스(120a)는 제 1 인터페이스(120a)의 데이터 이력기록 기능을 비활성화시키지만 아마존에 대응하는 제 2 인터페이스(120b)에서 데이터 이력기록을 비활성화시키지 못한다. 대신에, 제 1 인터페이스(120a)와 같이 제 2 인터페이스(120b)는 자신의 데이터 이력기록 기능을 독립적으로 비활성화시킨다.
독립적으로 동작하는 것 외에도, 다수의 인터페이스들(120)은 응답들을 동기화시키기 위해 협력할 수 있다. 예를 들어, 제 1 인터페이스(120a)가 "오늘은 날씨가 어떨것 같아"의 검색 쿼리(22)에 "오늘의 예보는 화창함입니다"로 응답하는 경우, 제 2 인터페이스(120b)는 확인함으로써(예컨대, "동의합니다") 또는 제 1 인터페이스(120a)의 응답에 반대함으로써 제 1 인터페이스(120)와 협력하도록 구성될 수 있다. 더욱이, 사용자에게 더 상세한 응답을 제공하기 위해, 응답의 일부분은 하나의 인터페이스로부터 제공될 수 있고 응답들의 또 하나의 다른 부분은 다른 인터페이스로부터 획득될 수 있다.
도 4는 디바이스-특정 핫워드들(24)을 단일 발언(20)으로 결합하는 방법(400)에 대한 동작들의 예시적인 정렬의 흐름도이다. 동작(402)에서, 방법(400)은, 제 1 AED 디바이스(110a)의 데이터 프로세싱 하드웨어(112d)에서, 사용자(10)에 의해 발성된 발언(20)에 대응하는 오디오 데이터(14)를 수신하고, 여기서 발언(20)은 사용자(10)와 관련된 둘 이상의 AED들(110, 110a 내지 110n) 중 제 1 AED(110a) 및 제 2 AED(110, 110b)를 향해 지향된 것이고, 오디오 데이터(14)는 수행할 동작을 특정하는 쿼리(22)를 포함한다. 동작(404)에서, 방법(400)은, 핫워드 검출 모델을 사용하여 오디오 데이터(14) 내에서 제 1 핫워드(24, 24a)를 검출하고, 여기서 제 1 핫워드(24a)는 제 1 AED(110a)에 할당되고, 제 1 핫워드(24a)는 제 2 AED(110b)에 할당된 제 2 핫워드(24, 24b)와는 다르다. 오디오 데이터(14) 내에서 제 1 AED(110a)에 할당된 제 1 핫워드(24a)를 검출함에 응답하여, 동작(406)에서, 방법(400)은, 오디오 데이터(14)가 제 2 AED(110b)에 할당된 제 2 핫워드(24b)와 적어도 부분적으로 일치하는 하나 이상의 용어들을 쿼리(22)에 선행하여 포함함을 결정하기 위해 오디오 데이터(14)에 관한 프로세싱을 개시한다. 오디오 데이터(14)가 제 2 핫워드(24b)와 적어도 부분적으로 일치하는 하나 이상의 용어들을 쿼리(22)에 선행하여 포함한다는 결정에 근거하여, 동작(408)에서, 방법(400)은, 제 1 AED(110b) 및 제 2 AED(110b)로 하여금 서로 협력하여 쿼리(22)에 의해 특정된 동작의 수행을 이행하도록 하기 위해 협력 루틴(202)을 실행한다.
도 5는 어시스턴트-특정 핫워드들(24)을 단일 발언(20)으로 결합하는 방법(50)에 대한 동작들의 예시적인 정렬의 흐름도이다. 동작(502)에서, 방법(500)은, 어시스턴트-지원 디바이스(AED)(110, 110a)의 데이터 프로세싱 하드웨어(112d)에서, 사용자(10)에 의해 발성되고 AED(110a)에 의해 캡처된 발언(20)에 대응하는 오디오 데이터(14)를 수신하고, 여기서 발언(20)은 제 1 디지털 어시스턴트(120, 120a) 및 제 2 디지털 어시스턴트(120, 120b)가 동작을 수행하도록 하기 위한 쿼리(22)를 포함한다. 동작(504)에서, 방법(500)은, 데이터 프로세싱 하드웨어(112d)에 의해, 제 1 핫워드 검출 모델을 사용하여 오디오 데이터(14) 내에서 제 1 핫워드(24, 24a)를 검출하고, 여기서 제 1 핫워드(24a)는 제 1 디지털 어시스턴트(120a)에 할당되고, 제 1 핫워드(24a)는 제 2 디지털 어시스턴트(120b)에 할당된 제 2 핫워드(24, 24b)와는 다르다. 동작(506)에서, 방법(500)은, 데이터 프로세싱 하드웨어(112d)에 의해, 오디오 데이터(14)가 제 2 디지털 어시스턴트(120b)에 할당된 제 2 핫워드(24b)와 적어도 부분적으로 일치하는 하나 이상의 용어들을 쿼리(22)에 선행하여 포함함을 결정한다. 오디오 데이터(14)가 제 2 핫워드(24b)와 적어도 부분적으로 일치하는 하나 이상의 용어들을 쿼리(22)에 선행하여 포함한다는 결정에 근거하여, 동작(508)에서, 방법(500)은, 데이터 프로세싱 하드웨어(112d)에 의해, 제 1 디지털 어시스턴트(120a) 및 제 2 디지털 어시스턴트(120b)로 하여금 서로 협력하여 동작의 수행을 이행하도록 하기 위해 협력 루틴(202)을 실행한다.
도 6은 본 문서에서 설명되는 시스템들 및 방법들을 구현하기 위해 사용될 수 있는 예시적인 컴퓨팅 디바이스(600)의 개략적인 도면이다. 컴퓨팅 디바이스(600)는 디지털 컴퓨터들의 다양한 형태들을 나타내도록 의도된 것인데, 예컨대, 랩탑들, 데스크탑들, 워크스테이션들, 개인 디지털 보조기들, 서버들, 블레이드 서버들, 메인프레임들, 및 다른 적절한 컴퓨터들을 나타내도록 의도된 것이다. 여기서 보여지는 컴포넌트들, 이들의 연결들 및 관게들, 그리고 이들의 기능들은 오로지 예시적으로 의도된 것이지 본 문서에서 청구되고 그리고/또는 설명되는 발명들의 구현들을 한정하려고 의도된 것이 아니다.
컴퓨팅 디바이스(600)는, 프로세서(610), 메모리(620), 저장 디바이스(630), 메모리(620) 및 고속 확장 포트들(650)에 연결되는 고속 인터페이스/제어기(640), 그리고 저속 버스(670) 및 저장 디바이스(630)에 연결되는 저속 인터페이스/제어기(660)를 포함한다. 컴포넌트들(610, 620, 630, 640, 650, 및 660) 각각은 다양한 버스들을 사용하여 상호연결되며, 공통 마더보드 상에 장착될 수 있거나 다른 방식들로 적절하게 장착될 수 있다. 프로세서(610)는 컴퓨팅 디바이스(600) 내에서의 실행을 위한 명령들을 프로세싱할 수 있으며, 이러한 명령들에는 외부 입력/출력 디바이스(예를 들어, 고속 인터페이스(640)에 결합된 디스플레이(680)) 상에 그래픽 사용자 인터페이스(GUI)용 그래픽 정보를 디스플레이하기 위해 메모리(620) 내에 저장되거나 혹은 저장 디바이스(630) 상에 저장되는 명령들이 포함된다. 다른 구현예들에서, 다수의 프로세서들 및/또는 다수의 버스들은 다수의 메모리들 및 메모리의 여러 타입들과 함께 적절하게 사용될 수 있다. 또한, 다수의 컴퓨팅 디바이스들(600)은 (예를 들어, 서버 뱅크, 블레이드 서버들의 그룹, 혹은 다중-프로세서 시스템으로서) 연결될 수 있고, 이 경우 각각의 디바이스는 필요한 동작들의 일부분들을 제공하게 된다.
메모리(620)는 컴퓨팅 디바이스(600) 내에서 정보를 비-일시적으로 저장한다. 메모리(620)는 컴퓨터-판독가능 매체, 휘발성 메모리 유닛(들), 또는 비-휘발성 메모리 유닛(들)일 수 있다. 비-휘발성 메모리(620)는 컴퓨팅 디바이스(600)에 의한 사용을 위해 임시적으로 혹은 영구적으로 프로그램들(예컨대, 명령들의 시퀀스들) 또는 데이터(예컨대, 프로그램 상태 정보)를 저장하는데 사용되는 물리적인 디바이스들일 수 있다. 비-휘발성 메모리의 예들은, 플래시 메모리 및 판독-전용 메모리(Read-Only Memory, ROM) / 프로그래밍가능 판독-전용 메모리(Programmable Read-Only Memory, PROM) / 소거가능하고 프로그래밍가능한 판독-전용 메모리(Erasable Programmable Read-Only Memory, EPROM) / 전기적으로 소거가능하고 프로그래밍가능한 판독-전용 메모리(Electronically Erasable Programmable Read-Only Memory, EPROM)(예컨대, 전형적으로, 부트 프로그램(boot program)들과 같은 펌웨어를 위해 사용됨)를 포함하지만, 이러한 것으로만 한정되는 것은 아니다. 휘발성 메모리의 예들은, 디스크들 또는 테이프들 뿐만 아니라 랜덤 액세스 메모리(Random Access Memory, RAM), 동적 랜덤 액세스 메모리(Dynamic Random Access Memory, DRAM), 정적 랜덤 액세스 메모리(Static Random Access Memory, SRAM), 상변화 메모리(Phase Change Memory, PCM)를 포함하지만, 이러한 것으로만 한정되는 것은 아니다.
저장 디바이스(630)는 컴퓨팅 디바이스(600)를 위한 대용량 저장소를 제공할 수 있다. 일부 구현예들에서, 저장 디바이스(630)는 컴퓨터-판독가능 매체이다. 여러 가지 상이한 구현예들에서, 저장 디바이스(630)는 플로피 디스크 디바이스, 하드 디스크 디바이스, 광학 디스크 디바이스, 또는 테이프 디바이스, 플래시 메모리, 또는 다른 유사한 솔리드 스테이트 메모리 디바이스, 또는 디바이스들의 어레이일 수 있는데, 여기에는 저장 영역 네트워크 혹은 다른 구성들로 된 디바이스들이 포함된다. 추가적인 구현예들에서, 컴퓨터 프로그램 제품이 정보 운반체 내에 유형으로(tangibly) 구현된다. 컴퓨터 프로그램 제품은 실행시 앞서 설명된 것들과 같은 하나 이상의 방법들을 수행하는 명령들을 포함한다. 정보 운반체는 컴퓨터-판독가능 매체 또는 기계-판독가능 매체인데, 예컨대, 메모리(620), 저장 디바이스(630), 또는 프로세서(610) 상의 메모리이다.
고속 제어기(640)는 컴퓨팅 디바이스(600)에 대한 대역폭-집약형 동작(bandwidth-intensive operation)들을 관리하고, 반면 저속 제어기(660)는 보다 낮은 대역폭-집약형 동작들을 관리한다. 임무(duty)들의 이러한 할당은 단지 예시적인 것이다. 일부 구현예들에서, 고속 제어기(640)는 메모리(620), 디스플레이(680)에 (예를 들어, 그래픽 프로세서 혹은 가속기를 통해) 결합되며, 그리고 다양한 확장 카드들(미도시)을 수용할 수 있는 고속 확장 포트들(650)에 결합된다. 일부 구현예들에서, 저속 제어기(660)는 저장 디바이스(630) 및 저속 확장 포트(690)에 결합된다. 다양한 통신 포트들(예를 들어, USB, 블루투스, 이더넷, 무선 이더넷)을 포함할 수 있는 저속 확장 포트(690)는, 하나 이상의 입력/출력 디바이스들(예를 들어, 키보드, 포인팅 디바이스, 스캐너, 또는 네트워킹 디바이스(예컨대, 스위치 혹은 라우터))에 예를 들어, 네트워크 어댑터를 통해 결합될 수 있다.
컴퓨팅 디바이스(600)는 도면에서 보여지는 바와 같이, 다수의 상이한 형태들로 구현될 수 있다. 예를 들어, 컴퓨팅 디바이스(600)는 표준 서버(600a)로서 구현될 수 있거나, 또는 이러한 서버들(600a)의 그룹 내에서 여러 번 구현될 수 있거나, 랩탑 컴퓨터(600b)로서 구현될 수 있거나, 또는 랙 서버 시스템(600c)의 일부로서 구현될 수 있다.
본 명세서에 설명되는 시스템들 및 기법들의 다양한 구현예들은, 디지털 전자 및/또는 광학 회로, 집적 회로, 특수 설계된 ASIC(Application Specific Integrated Circuit; 애플리케이션 특정 집적 회로)들, 컴퓨터 하드웨어, 펌웨어, 소프트웨어, 및/또는 이들의 조합들로 실현될 수 있다. 이러한 다양한 구현예들은 프로그래밍가능 시스템 상에서 실행가능한 그리고/또는 해석가능한 하나 이상의 컴퓨터 프로그램들로 구현되는 것을 포함할 수 있고, 여기서 프로그래밍가능 시스템은, 저장 시스템, 적어도 하나의 입력 디바이스, 그리고 적어도 하나의 출력 디바이스로부터 데이터 및 명령들을 수신하고 이들에게 데이터 및 명령들을 전송하도록 결합되는 적어도 하나의 프로그래밍가능 프로세서(이것은 특수 목적 프로세서일 수 있거나 혹은 범용 프로세서일 수 있음)를 포함한다.
이러한 컴퓨터 프로그램들(이것은 또한 프로그램들, 소프트웨어, 소프트웨어 애플리케이션들 혹은 코드로서 알려져 있음)은 프로그래밍가능 프로세서에 대한 기계 명령들을 포함하고, 그리고 하이-레벨 절차적 그리고/또는 객체-지향 프로그래밍 언어로 구현될 수 있고, 그리고/또는 어셈블리/기계 언어로 구현될 수 있다. 본 명세서에서 사용되는 바와 같이, 용어들 "기계-판독가능 매체" 및 "컴퓨터-판독가능 매체"는 기계 명령들 및/또는 데이터를 프로그래밍가능 프로세서에게 제공하기 위해 사용되는 임의의 컴퓨터 프로그램 제품, 비-휘발성 컴퓨터 판독가능 매체, 장치, 및/또는 디바이스(예를 들어, 자기 디스크들, 광학 디스크들, 메모리, 프로그래밍가능 로직 디바이스(Programmable Logic Device, PLD)들)를 나타내는데, 여기에는 기계 명령들을 기계-판독가능 신호로서 수신하는 기계-판독가능 매체가 포함된다. 용어 "기계-판독가능 신호"는 기계 명령들 및/또는 데이터를 프로그래밍가능 프로세서에게 제공하기 위해 사용되는 임의의 신호를 나타낸다.
본 명세서에서 설명되는 프로세스들 및 로직 흐름들은, 입력 데이터에 관해 동작함으로써 그리고 출력을 발생시킴으로써 기능들을 수행하기 위해 하나 이상의 컴퓨터 프로그램들을 실행시키는 하나 이상의 프로그래밍가능 프로세서들(이것은 또한 데이터 프로세싱 하드웨어로서 지칭됨)에 의해 수행될 수 있다. 이러한 프로세스들 및 로직 흐름들은 또한, 특수 목적 로직 회로, 예컨대, FPGA(Field Programmable Gate Array; 현장 프래그래밍가능 게이트 어레이) 또는 ASIC(Application Specific Integrated Circuit; 애플리케이션 특정 집적 회로)에 의해 수행될 수 있다. 컴퓨터 프로그램의 실행에 적합한 프로세서들은, 예를 들자면, 범용 및 특수 목적 마이크로프로세서들 양쪽 모두, 그리고 임의 종류의 디지털 컴퓨터의 임의의 하나 이상의 프로세서들을 포함한다. 일반적으로, 프로세서는 판독 전용 메모리, 또는 랜덤 액세스 메모리, 또는 이들 양쪽 모두로부터 명령들 및 데이터를 수신할 것이다. 컴퓨터의 본질적인 요소들은 명령들을 수행하기 위한 프로세서, 그리고 명령들 및 데이터를 저장하기 위한 하나 이상의 메모리 디바이스들이다. 일반적으로, 컴퓨터는 또한, 데이터를 저장하기 위한 하나 이상의 대용량 저장 디바이스들(예컨대, 자기 디스크들, 광자기 디스크들, 또는 광학 디스크들)을 포함할 것이고, 또는 이들로부터 데이터를 수신하도록, 혹은 이들에게 데이터를 전송하도록, 혹은 양쪽 모두를 행하도록, 동작가능하게 결합될 것이다. 하지만, 컴퓨터가 이러한 디바이스들을 가질 필요는 없다. 컴퓨터 프로그램 명령들 및 데이터를 저장하는데 적합한 컴퓨터 판독가능 매체들은, 모든 형태들의 비-휘발성 메모리, 매체들, 및 메모리 디바이스들을 포함하고, 여기에는 예를 들어, 반도체 메모리 디바이스들(예컨대, EPROM, EEPROM, 및 플래시 메모리 디바이스들); 자기 디스크들(예컨대, 내부 하드 디스크들 혹은 착탈가능 디스크들); 광자기 디스크들; 그리고 CD ROM 및 DVD-ROM 디스크들이 포함된다. 프로세서 및 메모리는 특수 목적 로직 회로에 의해 보완될 수 있거나, 또는 이러한 회로 내에 통합될 수 있다.
사용자와의 상호작용을 제공하기 위해, 본 개시내용의 하나 이상의 실시형태들은, 정보를 사용자에게 디스플레이하기 위한 디스플레이 디바이스(예를 들어, CRT(Cathode Ray Tube; 음극선관), LCD(Liquid Crystal Display; 액정 디스플레이) 모니터), 또는 터치 스크린, 그리고 선택에 따라서는 사용자로 하여금 컴퓨터에 입력을 제공할 수 있게 하는 키보드 및 포인팅 디바이스(예를 들어, 마우스 또는 트랙볼)를 구비하는 컴퓨터 상에서 구현될 수 있다. 다른 종류들의 디바이스들이 또한 사용자와의 상호작용을 제공하기 위해 사용될 수 있는 데, 예를 들어, 사용자에게 제공되는 피드백은 임의 형태의 감각적 피드백(예를 들어, 시각적 피드백, 청각적 피드백, 또는 촉각적 피드백)일 수 있고, 그리고 사용자로부터의 입력은 음향적, 음성적 또는 촉각적 입력을 포함하는 임의의 형태로 수신될 수 있다. 추가적으로, 컴퓨터는 문서들을 사용자에 의해 사용되는 디바이스에게 보내고 이러한 디바이스로부터 문서들을 수신함으로써, 예를 들어, 웹 브라우저로부터 수신된 요청들에 응답하여 웹 페이지들을 사용자의 클라이언트 디바이스 상의 웹 브라우저에 보냄으로써, 사용자와 상호작용할 수 있다.
다수의 구현예들이 설명되었다. 그럼에도 불구하고, 다양한 수정들이 본 개시내용의 사상 및 범위로부터 벗어남이 없이 행해질 수 있음이 이해될 것이다. 따라서, 이러한 다른 구현예들은 다음과 같은 청구항들의 범위 내에 있다.

Claims (24)

  1. 방법으로써, 상기 방법은,
    제 1 어시스턴트-지원 디바이스(Assistant-Enabled Device, AED)(110a)의 데이터 프로세싱 하드웨어(data processing hardware)(112d)에서, 상기 사용자에 의해 발성된 발언(utterance)(20)에 대응하는 오디오 데이터(audio data)(14)를 수신하는 것과, 여기서 상기 발언(20)은 상기 사용자와 관련된 둘 이상의 AED들 중 상기 제 1 AED(110a) 및 제 2 AED(110b)를 향해 지향된 것이고, 상기 오디오 데이터(14)는 수행할 동작을 특정하는 쿼리(query)(22)를 포함하며;
    상기 데이터 프로세싱 하드웨어(112d)에 의해, 핫워드 검출 모델(hotword detection model)(130)을 사용하여 상기 오디오 데이터(14) 내에서 제 1 핫워드(24a)를 검출하는 것과, 여기서 상기 제 1 핫워드(24a)는 상기 제 1 AED(110a)에 할당되고, 상기 제 1 핫워드(24a)는 상기 제 2 AED(110b)에 할당된 제 2 핫워드(24b)와는 다르며;
    상기 오디오 데이터(14) 내에서 상기 제 1 AED(110a)에 할당된 상기 제 1 핫워드(24a)를 검출함에 응답하여, 상기 데이터 프로세싱 하드웨어(112d)에 의해, 상기 오디오 데이터(14)가 상기 제 2 AED(110b)에 할당된 상기 제 2 핫워드(24b)와 적어도 부분적으로 일치(match)하는 하나 이상의 용어(term)들을 상기 쿼리(22)에 선행하여 포함함을 결정하기 위해 상기 오디오 데이터(14)에 관한 프로세싱을 개시하는 것과; 그리고
    상기 오디오 데이터(14)가 상기 제 2 핫워드(24b)와 적어도 부분적으로 일치하는 상기 하나 이상의 용어들을 상기 쿼리(22)에 선행하여 포함한다는 결정에 근거하여, 상기 데이터 프로세싱 하드웨어(112d)에 의해, 상기 제 1 AED(110b) 및 상기 제 2 AED(110b)로 하여금 서로 협력(collaborate)하여 상기 쿼리(22)에 의해 특정된 상기 동작의 수행을 이행하도록 하기 위해 협력 루틴(collaboration routine)(200)을 실행하는 것을 포함하는 것을 특징으로 하는 방법.
  2. 제1항에 있어서,
    상기 오디오 데이터(14)가 상기 제 1 핫워드(24a)를 포함한다고 결정함에 응답하여 상기 오디오 데이터(14)에 관한 프로세싱을 개시하는 것은,
    상기 오디오 데이터(14)에 대한 음성 인식 결과(142)를 발생시키기 위해 상기 오디오 데이터(14)에 관한 음성 인식을 수행하도록 음성 인식기(140)에게 명령하는 것과; 그리고
    상기 오디오 데이터(14)에 대한 상기 음성 인식 결과(142)를 사용하여, 상기 제 2 핫워드(24b)와 적어도 부분적으로 일치하는 상기 하나 이상의 용어들이 상기 오디오 데이터(14) 내에서 인식됨을 결정하는 것을 포함하는 것을 특징으로 하는 방법.
  3. 제2항에 있어서,
    상기 오디오 데이터(14)에 관한 음성 인식을 수행하도록 상기 음성 인식기(140)에게 명령하는 것은,
    상기 오디오 데이터(14)에 관한 음성 인식을 수행하도록 음성 인식기(140)에게 명령하는 것, 또는
    상기 오디오 데이터(14)에 관한 음성 인식을 수행하기 위해 상기 제 1 AED(110a)의 상기 데이터 프로세싱 하드웨어(112d) 상에서 실행되도록 상기 음성 인식기(140)에게 명령하는 것
    중 하나를 포함하는 것을 특징으로 하는 방법.
  4. 제1항에 있어서,
    상기 오디오 데이터(14)가 상기 제 2 AED(110b)에 할당된 상기 제 2 핫워드(24b)와 적어도 부분적으로 일치하는 상기 하나 이상의 용어들을 상기 쿼리(22)에 선행하여 포함함을 결정하는 것은,
    상기 사용자와 관련된 상기 둘 이상의 AED들 각각에 할당된 하나 이상의 핫워드들(24)의 개별 목록(list)(182)을 포함하는 핫워드 레지스트리(hotword registry)(180)에 액세스(accessing)하는 것과, 그리고
    상기 제 2 AED(110b)에 할당된 하나 이상의 핫워드들(24)의 상기 개별 목록(182) 내에서 상기 제 2 핫워드(24b)와 일치하거나 부분적으로 일치하는 상기 하나 이상의 용어들을 상기 오디오 데이터(14) 내에서 인식하는 것을 포함하는 것을 특징으로 하는 방법.
  5. 제4항에 있어서,
    상기 핫워드 레지스트리(180) 내에서 상기 둘 이상의 AED들 각각에 할당된 하나 이상의 핫워드들(24)의 상기 개별 목록(182)은 또한 각각의 핫워드와 관련된 하나 이상의 변형(variant)들을 포함하고,
    상기 오디오 데이터(14)가 상기 제 2 핫워드(24b)와 적어도 부분적으로 일치하는 상기 하나 이상의 용어들을 상기 쿼리(22)에 선행하여 포함함을 결정하는 것은, 상기 오디오 데이터(14) 내에서 인식된 상기 하나 이상의 용어들이 상기 제 2 핫워드(24b)와 관련된 상기 하나 이상의 변형들 중 하나와 일치함을 결정하는 것을 포함하는 것을 특징으로 하는 방법.
  6. 제4항에 있어서,
    상기 핫워드 레지스트리(180)는,
    상기 제 1 AED(110a);
    상기 제 2 AED(110b);
    상기 사용자와 관련된 상기 둘 이상의 AED들 중 제 3 AED(110c); 또는
    상기 사용자와 관련된 상기 둘 이상의 AED들과 통신하는 서버(160)
    중 적어도 하나 상에 저장되는 것을 특징으로 하는 방법.
  7. 제1항에 있어서,
    상기 오디오 데이터(14)가 상기 제 2 핫워드(24b)와 적어도 부분적으로 일치하는 상기 하나 이상의 용어들을 상기 쿼리(22)에 선행하여 포함함을 결정하는 것은,
    사용자가 상기 사용자 디바이스(110)에 할당된 상기 제 2 핫워드(24b)를 발성하려고 의도했는지 여부의 가능성을 결정하도록 훈련된 기계 학습 모델(machine learning model)(175)에 상기 오디오 데이터(14)를 입력으로서 제공하는 것을 포함하는 것을 특징으로 하는 방법.
  8. 제1항에 있어서,
    상기 오디오 데이터(14) 내에서 상기 쿼리(22)에 선행하는 상기 하나 이상의 용어들이 상기 제 2 핫워드(24b)와 부분적으로만 일치하는 경우, 상기 협력 루틴(200)을 실행하는 것은 상기 제 1 AED(110a)로 하여금 상기 제 2 AED(110b)를 호출하여 깨어나게 함과 아울러 상기 쿼리(22)에 의해 특정된 상기 동작의 수행을 이행하도록 하기 위해 상기 제 1 AED(110a)와 협력하게 하는 것을 특징으로 하는 방법.
  9. 제1항에 있어서,
    상기 협력 루틴(200)의 실행 동안, 상기 제 1 AED(110a) 및 상기 제 2 AED(110b)는, 상기 제 1 AED(110a) 또는 상기 제 2 AED(110b) 중 하나를 지정하여,
    상기 오디오 데이터(14)에 대한 음성 인식 결과(142)를 발생시키도록 하고,
    수행할 상기 동작을 특정하는 상기 쿼리(22)를 상기 음성 인식 결과(142)가 식별함을 결정하기 위해 상기 음성 인식 결과(142)에 관해 쿼리 해석을 수행하도록 하고, 그리고
    상기 음성 인식 결과(142)에 관해 수행된 상기 쿼리 해석을 상기 제 1 AED(110a) 또는 상기 제 2 AED(110b) 중 다른 하나와 공유하도록 함으로써,
    서로 협력하는 것을 특징으로 하는 방법.
  10. 제1항에 있어서,
    상기 협력 루틴(200)의 실행 동안, 상기 제 1 AED(110a) 및 상기 제 2 AED(110b)는, 각각 독립적으로,
    상기 오디오 데이터(14)에 대한 음성 인식 결과(142)를 발생시키고, 그리고
    수행할 상기 동작을 특정하는 상기 쿼리(22)를 상기 음성 인식 결과(142)가 식별함을 결정하기 위해 상기 음성 인식 결과(142)에 관해 쿼리 해석을 수행함으로써,
    서로 협력하는 것을 특징으로 하는 방법.
  11. 제1항에 있어서,
    상기 쿼리(22)에 의해 특정된 상기 동작은 상기 제 1 AED(110a) 및 상기 제 2 AED(110b) 각각 상에서 수행할 디바이스-레벨 동작(device-level operation)을 포함하고,
    상기 협력 루틴(200)의 실행 동안, 상기 제 1 AED(110a) 및 상기 제 2 AED(110b)는, 상기 디바이스-레벨 동작의 수행을 독립적으로 이행함으로써 서로 협력하는 것을 특징으로 하는 방법.
  12. 제1항에 있어서,
    수행할 상기 동작을 특정하는 상기 쿼리(22)는 상기 제 1 AED(110a) 및 상기 제 2 AED(110b)가 지속적인 동작을 수행하도록 하기 위한 쿼리(22)를 포함하고,
    상기 협력 루틴(200)의 실행 동안, 상기 제 1 AED(110a)와 상기 제 2 AED(110b)는,
    상기 지속적인 동작의 기간 동안 서로 짝(pair)을 이루고, 그리고
    수행할 상기 제 1 AED(110a)와 상기 제 2 AED(110b) 간의 상기 지속적인 동작과 관련된 하위-행위(sub-action)들의 수행을 조정(coordinating)함으로써,
    서로 협력하는 것을 특징으로 하는 방법.
  13. 제 1 어시스턴트-지원 디바이스(AED)(110a)로서, 상기 제 1 AED(110a)는,
    데이터 프로세싱 하드웨어(112d)와; 그리고
    상기 데이터 프로세싱 하드웨어(112d)와 통신하는 메모리 하드웨어(memory hardware)(112m)를 포함하고,
    상기 메모리 하드웨어(112m)는 명령들을 저장하고, 상기 명령들은 상기 데이터 프로세싱 하드웨어(112d) 상에서 실행될 때 상기 데이터 프로세싱 하드웨어(112d)로 하여금
    상기 사용자에 의해 발성된 발언(20)에 대응하는 오디오 데이터(14)를 수신하는 것과, 여기서 상기 발언(20)은 상기 사용자와 관련된 둘 이상의 AED들 중 상기 제 1 AED(110a) 및 제 2 AED(110b)를 향해 지향된 것이고, 상기 오디오 데이터(14)는 수행할 동작을 특정하는 쿼리(22)를 포함하며;
    핫워드 검출 모델(130)을 사용하여 상기 오디오 데이터(14) 내에서 제 1 핫워드(24a)를 검출하는 것과, 여기서 상기 제 1 핫워드(24a)는 상기 제 1 AED(110a)에 할당되고, 상기 제 1 핫워드(24a)는 상기 제 2 AED(110b)에 할당된 제 2 핫워드(24b)와는 다르며;
    상기 오디오 데이터(14) 내에서 상기 제 1 AED(110a)에 할당된 상기 제 1 핫워드(24a)를 검출함에 응답하여, 상기 오디오 데이터(14)가 상기 제 2 AED(110b)에 할당된 상기 제 2 핫워드(24b)와 적어도 부분적으로 일치하는 하나 이상의 용어들을 상기 쿼리(22)에 선행하여 포함함을 결정하기 위해 상기 오디오 데이터(14)에 관한 프로세싱을 개시하는 것과; 그리고
    상기 오디오 데이터(14)가 상기 제 2 핫워드(24b)와 적어도 부분적으로 일치하는 상기 하나 이상의 용어들을 상기 쿼리(22)에 선행하여 포함한다는 결정에 근거하여, 상기 제 1 AED(110b) 및 상기 제 2 AED(110b)로 하여금 서로 협력하여 상기 쿼리(22)에 의해 특정된 상기 동작의 수행을 이행하도록 하기 위해 협력 루틴(200)을 실행하는 것을
    포함하는 동작들을 수행하도록 하는 것을 특징으로 하는 제 1 어시스턴트-지원 디바이스(AED)(110a).
  14. 제13항에 있어서,
    상기 오디오 데이터(14)가 상기 제 1 핫워드(24a)를 포함한다고 결정함에 응답하여 상기 오디오 데이터(14)에 관한 프로세싱을 개시하는 것은,
    상기 오디오 데이터(14)에 대한 음성 인식 결과(142)를 발생시키기 위해 상기 오디오 데이터(14)에 관한 음성 인식을 수행하도록 음성 인식기(140)에게 명령하는 것과; 그리고
    상기 오디오 데이터(14)에 대한 상기 음성 인식 결과(142)를 사용하여, 상기 제 2 핫워드(24b)와 적어도 부분적으로 일치하는 상기 하나 이상의 용어들이 상기 오디오 데이터(14) 내에서 인식됨을 결정하는 것을 포함하는 것을 특징으로 하는 디바이스(110a).
  15. 제14항에 있어서,
    상기 오디오 데이터(14)에 관한 음성 인식을 수행하도록 상기 음성 인식기(140)에게 명령하는 것은,
    상기 오디오 데이터(14)에 관한 음성 인식을 수행하도록 음성 인식기(140)에게 명령하는 것, 또는
    상기 오디오 데이터(14)에 관한 음성 인식을 수행하기 위해 상기 제 1 AED(110a)의 상기 데이터 프로세싱 하드웨어(112d) 상에서 실행되도록 상기 음성 인식기(140)에게 명령하는 것
    중 하나를 포함하는 것을 특징으로 하는 디바이스(110a).
  16. 제13항 내지 제15항 중 임의의 항에 있어서,
    상기 오디오 데이터(14)가 상기 제 2 AED(110b)에 할당된 상기 제 2 핫워드(24b)와 적어도 부분적으로 일치하는 상기 하나 이상의 용어들을 상기 쿼리(22)에 선행하여 포함함을 결정하는 것은,
    상기 사용자와 관련된 상기 둘 이상의 AED들 각각에 할당된 하나 이상의 핫워드들(24)의 개별 목록(182)을 포함하는 핫워드 레지스트리(180)에 액세스하는 것과, 그리고
    상기 제 2 AED(110b)에 할당된 하나 이상의 핫워드들(24)의 상기 개별 목록(182) 내에서 상기 제 2 핫워드(24b)와 일치하거나 부분적으로 일치하는 상기 하나 이상의 용어들을 상기 오디오 데이터(14) 내에서 인식하는 것을 포함하는 것을 특징으로 하는 디바이스(110a).
  17. 제16항에 있어서,
    상기 핫워드 레지스트리(180) 내에서 상기 둘 이상의 AED들 각각에 할당된 하나 이상의 핫워드들(24)의 상기 개별 목록(182)은 또한 각각의 핫워드와 관련된 하나 이상의 변형들을 포함하고,
    상기 오디오 데이터(14)가 상기 제 2 핫워드(24b)와 적어도 부분적으로 일치하는 상기 하나 이상의 용어들을 상기 쿼리(22)에 선행하여 포함함을 결정하는 것은, 상기 오디오 데이터(14) 내에서 인식된 상기 하나 이상의 용어들이 상기 제 2 핫워드(24b)와 관련된 상기 하나 이상의 변형들 중 하나와 일치함을 결정하는 것을 포함하는 것을 특징으로 하는 디바이스(110a).
  18. 제16항 또는 제17항에 있어서,
    상기 핫워드 레지스트리(180)는,
    상기 제 1 AED(110a);
    상기 제 2 AED(110b);
    상기 사용자와 관련된 상기 둘 이상의 AED들 중 제 3 AED(110c); 또는
    상기 사용자와 관련된 상기 둘 이상의 AED들과 통신하는 서버(160)
    중 적어도 하나 상에 저장되는 것을 특징으로 하는 디바이스(110a).
  19. 제13항 내지 제18항 중 임의의 항에 있어서,
    상기 오디오 데이터(14)가 상기 제 2 핫워드(24b)와 적어도 부분적으로 일치하는 상기 하나 이상의 용어들을 상기 쿼리(22)에 선행하여 포함함을 결정하는 것은,
    사용자가 상기 사용자 디바이스(110)에 할당된 상기 제 2 핫워드(24b)를 발성하려고 의도했는지 여부의 가능성을 결정하도록 훈련된 기계 학습 모델(175)에 상기 오디오 데이터(14)를 입력으로서 제공하는 것을 포함하는 것을 특징으로 하는 디바이스(110a).
  20. 제13항 내지 제19항 중 임의의 항에 있어서,
    상기 오디오 데이터(14) 내에서 상기 쿼리(22)에 선행하는 상기 하나 이상의 용어들이 상기 제 2 핫워드(24b)와 부분적으로만 일치하는 경우, 상기 협력 루틴(200)을 실행하는 것은 상기 제 1 AED(110a)로 하여금 상기 제 2 AED(110b)를 호출하여 깨어나게 함과 아울러 상기 쿼리(22)에 의해 특정된 상기 동작의 수행을 이행하도록 하기 위해 상기 제 1 AED(110a)와 협력하게 하는 것을 특징으로 하는 디바이스(110a).
  21. 제13항 내지 제20항 중 임의의 항에 있어서,
    상기 협력 루틴(200)의 실행 동안, 상기 제 1 AED(110a) 및 상기 제 2 AED(110b)는, 상기 제 1 AED(110a) 또는 상기 제 2 AED(110b) 중 하나를 지정하여,
    상기 오디오 데이터(14)에 대한 음성 인식 결과(142)를 발생시키도록 하고,
    수행할 상기 동작을 특정하는 상기 쿼리(22)를 상기 음성 인식 결과(142)가 식별함을 결정하기 위해 상기 음성 인식 결과(142)에 관해 쿼리 해석을 수행하도록 하고, 그리고
    상기 음성 인식 결과(142)에 관해 수행된 상기 쿼리 해석을 상기 제 1 AED(110a) 또는 상기 제 2 AED(110b) 중 다른 하나와 공유하도록 함으로써,
    서로 협력하는 것을 특징으로 하는 디바이스(110a).
  22. 제13항 내지 제21항 중 임의의 항에 있어서,
    상기 협력 루틴(200)의 실행 동안, 상기 제 1 AED(110a) 및 상기 제 2 AED(110b)는, 각각 독립적으로,
    상기 오디오 데이터(14)에 대한 음성 인식 결과(142)를 발생시키고, 그리고
    수행할 상기 동작을 특정하는 상기 쿼리(22)를 상기 음성 인식 결과(142)가 식별함을 결정하기 위해 상기 음성 인식 결과(142)에 관해 쿼리 해석을 수행함으로써,
    서로 협력하는 것을 특징으로 하는 디바이스(110a).
  23. 제13항 내지 제22항 중 임의의 항에 있어서,
    상기 쿼리(22)에 의해 특정된 상기 동작은 상기 제 1 AED(110a) 및 상기 제 2 AED(110b) 각각 상에서 수행할 디바이스-레벨 동작을 포함하고,
    상기 협력 루틴(200)의 실행 동안, 상기 제 1 AED(110a) 및 상기 제 2 AED(110b)는, 상기 디바이스-레벨 동작의 수행을 독립적으로 이행함으로써 서로 협력하는 것을 특징으로 하는 디바이스(110a).
  24. 제13항 내지 제23항 중 임의의 항에 있어서,
    수행할 상기 동작을 특정하는 상기 쿼리(22)는 상기 제 1 AED(110a) 및 상기 제 2 AED(110b)가 지속적인 동작을 수행하도록 하기 위한 쿼리(22)를 포함하고,
    상기 협력 루틴(200)의 실행 동안, 상기 제 1 AED(110a)와 상기 제 2 AED(110b)는,
    상기 지속적인 동작의 기간 동안 서로 짝을 이루고, 그리고
    수행할 상기 제 1 AED(110a)와 상기 제 2 AED(110b) 간의 상기 지속적인 동작과 관련된 하위-행위들의 수행을 조정함으로써,
    서로 협력하는 것을 특징으로 하는 디바이스(110a).
KR1020237023372A 2020-12-11 2021-11-17 디바이스 또는 어시스턴트-특정 핫워드들의 단일 발언으로의결합 KR20230118164A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/118,783 2020-12-11
US17/118,783 US11948565B2 (en) 2020-12-11 2020-12-11 Combining device or assistant-specific hotwords in a single utterance
PCT/US2021/059785 WO2022125284A1 (en) 2020-12-11 2021-11-17 Combining device or assistant-specific hotwords in a single utterance

Publications (1)

Publication Number Publication Date
KR20230118164A true KR20230118164A (ko) 2023-08-10

Family

ID=78844873

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020237023372A KR20230118164A (ko) 2020-12-11 2021-11-17 디바이스 또는 어시스턴트-특정 핫워드들의 단일 발언으로의결합

Country Status (6)

Country Link
US (2) US11948565B2 (ko)
EP (1) EP4244850A1 (ko)
JP (1) JP2023553995A (ko)
KR (1) KR20230118164A (ko)
CN (1) CN116888664A (ko)
WO (1) WO2022125284A1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11893984B1 (en) * 2020-06-22 2024-02-06 Amazon Technologies, Inc. Speech processing system
CN118401998A (zh) * 2021-10-13 2024-07-26 谷歌有限责任公司 基于观察到的查询模式向目标设备蒸馏

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9305548B2 (en) 2008-05-27 2016-04-05 Voicebox Technologies Corporation System and method for an integrated, multi-modal, multi-device natural language voice services environment
US8768712B1 (en) * 2013-12-04 2014-07-01 Google Inc. Initiating actions based on partial hotwords
CN107016999B (zh) * 2015-10-16 2022-06-14 谷歌有限责任公司 热词识别
US11164570B2 (en) * 2017-01-17 2021-11-02 Ford Global Technologies, Llc Voice assistant tracking and activation
US10366692B1 (en) 2017-05-15 2019-07-30 Amazon Technologies, Inc. Accessory for a voice-controlled device
US20190311710A1 (en) * 2018-04-06 2019-10-10 Flex Ltd. Device and system for accessing multiple virtual assistant services
US10979242B2 (en) * 2018-06-05 2021-04-13 Sap Se Intelligent personal assistant controller where a voice command specifies a target appliance based on a confidence score without requiring uttering of a wake-word
US10681460B2 (en) * 2018-06-28 2020-06-09 Sonos, Inc. Systems and methods for associating playback devices with voice assistant services
WO2020072759A1 (en) * 2018-10-03 2020-04-09 Visteon Global Technologies, Inc. A voice assistant system for a vehicle cockpit system
US10971158B1 (en) * 2018-10-05 2021-04-06 Facebook, Inc. Designating assistants in multi-assistant environment based on identified wake word received from a user
US11830485B2 (en) * 2018-12-11 2023-11-28 Amazon Technologies, Inc. Multiple speech processing system with synthesized speech styles
US11315556B2 (en) 2019-02-08 2022-04-26 Sonos, Inc. Devices, systems, and methods for distributed voice processing by transmitting sound data associated with a wake word to an appropriate device for identification
US11282500B2 (en) * 2019-07-19 2022-03-22 Cisco Technology, Inc. Generating and training new wake words
US11393477B2 (en) * 2019-09-24 2022-07-19 Amazon Technologies, Inc. Multi-assistant natural language input processing to determine a voice model for synthesized speech
US11295741B2 (en) * 2019-12-05 2022-04-05 Soundhound, Inc. Dynamic wakewords for speech-enabled devices
US11996095B2 (en) * 2020-08-12 2024-05-28 Kyndryl, Inc. Augmented reality enabled command management
US11749284B2 (en) * 2020-11-13 2023-09-05 Google Llc Dynamically adapting on-device models, of grouped assistant devices, for cooperative processing of assistant requests

Also Published As

Publication number Publication date
JP2023553995A (ja) 2023-12-26
WO2022125284A1 (en) 2022-06-16
US20220189471A1 (en) 2022-06-16
US11948565B2 (en) 2024-04-02
CN116888664A (zh) 2023-10-13
US20240203416A1 (en) 2024-06-20
EP4244850A1 (en) 2023-09-20

Similar Documents

Publication Publication Date Title
JP7078689B2 (ja) 文脈ホットワード
KR102543693B1 (ko) 전자 장치 및 그의 동작 방법
JP7130637B2 (ja) 音声インタフェース装置におけるフォーカスセッション
JP6752870B2 (ja) 複数のウェイクワードを利用して人工知能機器を制御する方法およびシステム
CA2891742C (en) System and method for processing control commands in a voice interactive system
US20240203416A1 (en) Combining Device or Assistant-Specific Hotwords in a Single Utterance
KR102621636B1 (ko) 루틴 실행 중에 클라이언트 디바이스간 자동화 어시스턴트 루틴 전송
CN118016067A (zh) 多设备上的热词检测
US11721338B2 (en) Context-based dynamic tolerance of virtual assistant
JP6619488B2 (ja) 人工知能機器における連続会話機能
US20240105178A1 (en) Group hotwords
CN112669831A (zh) 语音识别控制方法、装置、电子设备和可读存储介质
US20210397991A1 (en) Predictively setting information handling system (ihs) parameters using learned remote meeting attributes
US20240161740A1 (en) Multi-Assistant Warm Words
US20240161741A1 (en) Short-Lived Repeat Voice Commands
US20240205628A1 (en) Spatial Audio for Device Assistants
US20240169995A1 (en) Multi-User Warm Words
KR20200038904A (ko) 인공지능 기기에서의 연속 대화 기능