KR20240011841A - 과거 인터렉션에 기초하여 세컨더리 자동화된 어시스턴트에 관련 쿼리 제공 - Google Patents

과거 인터렉션에 기초하여 세컨더리 자동화된 어시스턴트에 관련 쿼리 제공 Download PDF

Info

Publication number
KR20240011841A
KR20240011841A KR1020237045225A KR20237045225A KR20240011841A KR 20240011841 A KR20240011841 A KR 20240011841A KR 1020237045225 A KR1020237045225 A KR 1020237045225A KR 20237045225 A KR20237045225 A KR 20237045225A KR 20240011841 A KR20240011841 A KR 20240011841A
Authority
KR
South Korea
Prior art keywords
automated assistant
assistant
query
automated
user
Prior art date
Application number
KR1020237045225A
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 구글 엘엘씨
Priority claimed from PCT/US2022/048388 external-priority patent/WO2023086229A1/en
Publication of KR20240011841A publication Critical patent/KR20240011841A/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/9032Query formulation
    • G06F16/90332Natural language query formulation or dialogue systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/16Sound input; Sound output
    • G06F3/167Audio in a user interface, e.g. using voice commands for navigating, audio feedback
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/332Query formulation
    • G06F16/3329Natural language query formulation or dialogue systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/60Information retrieval; Database structures therefor; File system structures therefor of audio data
    • G06F16/63Querying
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/9035Filtering based on additional data, e.g. user or group profiles
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • G06F40/35Discourse or dialogue representation
    • 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
    • G10L15/18Speech classification or search using natural language modelling
    • 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/28Constructional details of speech recognition systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/02User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail using automatic reactions or user delegation, e.g. automatic replies or chatbot-generated messages
    • 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/226Procedures used during a speech recognition process, e.g. man-machine dialogue using non-speech characteristics
    • G10L2015/228Procedures used during a speech recognition process, e.g. man-machine dialogue using non-speech characteristics of application context
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/21Monitoring or handling of messages
    • H04L51/216Handling conversation history, e.g. grouping of messages in sessions or threads

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Human Computer Interaction (AREA)
  • Multimedia (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Health & Medical Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Acoustics & Sound (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • User Interface Of Digital Computer (AREA)
  • Machine Translation (AREA)

Abstract

초기적으로 호출된 자동화된 어시스턴트로부터 이후에 호출되는 자동화된 어시스턴트에 오디오 데이터를 제공하는 시스템 및 방법. 초기적으로 호출된 자동화된 어시스턴트는 사용자 발화에 의해 호출될 수 있으며, 쿼리를 포함하는 오디오 데이터가 뒤따를 수 있다. 쿼리는 프로세싱을 위해 세컨더리 자동화된 어시스턴트에 제공된다. 후속적으로, 사용자는 제1 쿼리와 관련된 쿼리를 제출할 수 있다. 이에 응답하여, 초기적으로 호출된 자동화된 어시스턴트는 제1 쿼리와 후속 쿼리 간의 유사성에 기초하여 다른 세컨더리 자동화된 어시스턴트에 쿼리를 제공하는 대신 세컨더리 자동화된 어시스턴트에 쿼리를 제공한다.

Description

과거 인터렉션에 기초하여 세컨더리 자동화된 어시스턴트에 관련 쿼리 제공
사람은 본 명세서에서 "자동화된 어시스턴트"("디지털 에이전트", "챗봇", "인터랙티브 퍼스널 어시스턴트", "지능형 퍼스널 어시스턴트", "어시스턴트 애플리케이션", "대화형 에이전트들"로도 지칭됨)로 지칭되는 인터렉티브 소프트웨어 어플리케이션과의 사람-컴퓨터 간 대화에 참여할 수 있다. 예를 들어, 사람(자동화된 어시스턴트와 인터렉션할 때 "사용자"라고 할 수 있음)은 일부 경우에 텍스트로 변환된 다음 프로세싱될 수 있는 발화된 자연어 입력(즉, 발화)을 사용하여 및/또는 텍스트(예를 들어, 타이핑된) 자연어 입력을 제공함으로써 명령 및/또는 요청을 자동화된 어시스턴트에 제공할 수 있다. 자동화된 어시스턴트는 청각 및/또는 시각적 사용자 인터페이스 출력을 포함할 수 있는 응답 사용자 인터페이스 출력을 제공함으로써 요청에 응답한다.
상기 언급된 바와 같이, 많은 자동화된 어시스턴트는 음성 쿼리에 후속하는 호출 표시와 같은 음성 발화를 통해 인터렉션하도록 구성된다. 사용자 개인 정보 보호 및/또는 리소스 보존을 위해, 자동화된 어시스턴트가 발화된 발언을 완전히 프로세싱하기 전에 사용자는 종종 명시적으로 자동화된 어시스턴트를 호출해야 한다. 자동화된 어시스턴트의 명시적 호출은 일반적으로 클라이언트 디바이스에서 수신되는 특정 사용자 인터페이스 입력에 대한 응답으로 발생한다. 클라이언트 디바이스는 클라이언트 디바이스의 사용자에게 자동화된 어시스턴트와 인터페이싱하기 위한 인터페이스를 제공하고(예: 사용자로부터 음성 및/또는 타이핑된 입력을 수신하고 청각적 및/또는 그래픽 응답을 제공), 자동화된 어시스턴트를 구현하는 하나 이상의 추가 컴포넌트(예: 사용자 입력을 프로세싱하고 적절한 응답을 생성하는 원격 서버 디바이스(들))와 인터페이싱하는 어시스턴트 인터페이스를 포함한다.
클라이언트 디바이스를 통해 자동화된 어시스턴트를 호출할 수 있는 일부 사용자 인터페이스 입력은 자동화된 어시스턴트를 호출하기 위한 클라이언트 디바이스의 하드웨어 및/또는 가상 버튼을 포함한다(예: 하드웨어 버튼의 탭, 클라이언트 디바이스에 의해 디스플레이된 그래픽 인터페이스 엘리먼트의 선택). 많은 자동화된 어시스턴트는 "핫워드/문구" 또는 "트리거 단어/문구"라고도 하는 하나 이상의 음성 호출 문구에 응답하여 추가로 또는 대안적으로 호출될 수 있다. 예를 들어, "Hey Assistant", "OK Assistant" 및/또는 "Assistant"와 같은 음성 호출 문구를 말하여 자동화된 어시스턴트를 호출할 수 있다.
종종, 어시스턴트 인터페이스를 포함하는 클라이언트 디바이스는 클라이언트 디바이스가 음성 호출 문구의 발생을 모니터링하기 위해 활용하는 하나 이상의 로컬에 저장된 모델을 포함한다. 이러한 클라이언트 디바이스는 로컬에 저장된 모델을 활용하여 수신된 오디오 데이터를 로컬에서 프로세싱하고 음성 호출 문구를 포함하지 않는 오디오 데이터를 폐기할 수 있다. 그러나 수신된 오디오 데이터의 로컬 프로세싱이 음성 호출 문구의 발생을 나타내면, 클라이언트 디바이스는 해당 오디오 데이터 및/또는 후속 오디오 데이터가 자동화된 어시스턴트에 의해 추가로 프로세싱되게 할 것이다. 예를 들어, 음성 호출 문구가 "Hey, Assistant"이고 사용자가 "Hey, Assistant, what time is it"라고 말하면, "what time is it"에 대응하는 오디오 데이터는 "Hey, Assistant"의 검출에 기초하여 자동화된 어시스턴트에 의해 프로세싱되고, 현재 시간의 자동화된 어시스턴트 응답을 제공하는데 활용된다. 반면에, 사용자가 단순히 "what time is it"이라고 말하는 경우(먼저 호출 문구를 말하거나 대체 호출 입력을 제공하지 않고), "what time is it"에 호출 문구(또는 기타 호출 입력)가 선행하지 않는 결과로 자동화된 어시스턴트의 응답이 제공되지 않을 것이다.
하나 이상의 세컨더리 어시스턴트와 사용자의 이전 인터렉션에 기초하여 프라이머리 자동화된 어시스턴트로부터 하나 이상의 세컨더리 자동화된 어시스턴트로 대화 데이터를 제공하기 위한 기법이 본 명세서에 설명된다. 예를 들어, 다양한 기법은 프라이머리 자동화된 어시스턴트에 의해 사용자와 프라이머리 어시스턴트 사이의 대화를 수신하고, 대화의 일부인 제1 쿼리를 하나 이상의 세컨더리 어시스턴트에 제공하고, 이어서 쿼리를 다른 세컨더리 어시스턴트에게 제공하는 대신 프로세싱을 위해 제1 쿼리를 제공했던 동일한 세컨더리 어시스턴트에게 제1 쿼리와 관련된 쿼리를 제공한다. 사용자는 초기적으로 프라이머리 자동화된 어시스턴트를 호출하고, 호출된 프라이머리 자동화된 어시스턴트가 세컨더리 어시스턴트에 제공할 수 있는 하나 이상의 쿼리를 말할 수 있다. 세컨더리 어시스턴트는 자체 인터페이스나 프라이머리 자동화된 어시스턴트를 통해 쿼리를 프로세싱하고 사용자에게 응답을 제공할 수 있다. 사용자와 프라이머리 자동화된 어시스턴트 간의 대화의 어느 시점에서 처음 프로세싱된 쿼리와 관련된 쿼리가 수신될 수 있다. 프라이머리 자동화된 어시스턴트는 수신된 제2 쿼리가 제1 쿼리와 관련되어 있음을 식별하고, 상기 제2 쿼리를 다른 세컨더리 자동화된 어시스턴트가 아닌 동일한 세컨더리 자동화된 어시스턴트에 제공함으로써, 사용자와 세컨더리 자동화된 어시스턴트 사이의 통신 연속성을 촉진하고, 관련 쿼리가 다른 세컨더리 자동화된 어시스턴트에 의해 프로세싱되는 것을 방지한다.
일부 구현예에서, 사용자는 자동화된 어시스턴트(여기서는 "초기적으로 호출된 자동화된 어시스턴트"라고도 함)를 호출하지만, 초기적으로 호출된 자동화된 어시스턴트가 상기 호출과 관련하여(예를 들어, 바로 다음, 바로 이전) 수신된 쿼리를 프로세싱할 때 적어도 선택적으로 인터렉션할 수 있는 다른 자동화된 어시스턴트를 명시적으로 호출하지 않는 "OK Assistant"와 같은 호출 문구를 말할 수 있다. 따라서, 사용자는 초기적으로 호출된 자동화된 어시스턴트에 특정적인 호출 입력을 제공하는 것에 기초하여, 다른 자동화된 어시스턴트 중 하나를 개별적으로 호출하는 대신 초기적으로 호출된 자동화된 어시스턴트를 활용하도록 지정할 수 있다. 예를 들어, 제1 호출 문구(예: "OK Assistant A")는 검출시 다른 자동화된 어시스턴트(들)를 호출하지 않고 제1 자동화된 어시스턴트를 독점적으로 호출할 수 있다. 마찬가지로, 제2 호출 문구(예: "OK Assistant B")는 검출시 초기적으로 호출된 자동화된 어시스턴트 및/또는 임의의 다른 자동화된 어시스턴트(들)를 호출하지 않고 제2 자동화된 어시스턴트를 독점적으로 호출할 수 있다. 초기적으로 호출된 어시스턴트는 호출될 때 호출과 관련하여 제공된 입력(들)을 프로세싱할 때 다른 자동화된 어시스턴트(즉, "세컨더리 어시스턴트")와 적어도 선택적으로 인터렉션할 수 있다.
사용자는 프라이머리 자동화된 어시스턴트를 호출하지만, 프라이머리 자동화된 어시스턴트가 상기 호출 문구와 관련하여(예를 들어, 바로 다음, 바로 이전) 수신된 쿼리를 프로세싱할 때 적어도 선택적으로 인터렉션할 수 있는 다른 자동화된 어시스턴트를 명시적으로 호출하지 않는 "OK Assistant"와 같은 호출 문구를 말하고 및/또는 이와 달리 하나 이상의 액션을 수행할 수 있다. 따라서, 사용자는 프라이머리 자동화된 어시스턴트에 특정적인 호출 입력을 제공하는 것에 기초하여, 다른 자동화된 어시스턴트 중 단 하나를 개별적으로 호출하는 대신 프라이머리 자동화된 어시스턴트를 활용하도록 지정할 수 있다. 예를 들어, 제1 호출 문구(예: "OK Assistant A")는 검출시 프라이머리 자동화된 어시스턴트 및/또는 임의의 다른 자동화된 어시스턴트(들)를 호출하지 않고 제1 자동화된 어시스턴트를 독점적으로 호출할 수 있다. 마찬가지로, 제2 호출 문구(예: "OK Assistant B")는 검출시 프라이머리 자동화된 어시스턴트 및/또는 임의의 다른 자동화된 어시스턴트(들)를 호출하지 않고 제2 자동화된 어시스턴트를 독점적으로 호출할 수 있다. 다른 호출 문구(예: "OK Assistant")는 검출시 프라이머리 어시스턴트를 호출할 수 있다. 프라이머리 어시스턴트는 호출시 호출과 연관되어 제공된 입력(들)을 프로세싱함에 있어서 제1 자동화된 어시스턴트 및/또는 제2 자동화된 어시스턴트(즉, "세컨더리 어시스턴트")와 적어도 선택적으로 인터렉션할 수 있다. 일부 구현예에서, 프라이머리 어시스턴트는 제1 자동화된 어시스턴트 및 제2 자동화된 어시스턴트 중 하나 또는 둘 모두와 항상 인터렉션할 수 있고 그 자체에는 스피치 인식, 자연어 이해 및/또는 이행 기능과 같은 하나 이상의 자동화된 어시스턴트 기능이 없는 "메타 어시스턴트" 또는 "일반 자동화된 어시스턴트"일 수 있다. 다른 경우에서, 프라이머리 자동화된 어시스턴트는 세컨더리 어시스턴트와 인터렉션하는 동시에 자체 쿼리 프로세싱을 수행하여 쿼리에 대한 응답을 결정할 수 있다.
프라이머리 자동화된 어시스턴트는 프라이머리 및/또는 세컨더리 어시스턴트와 사용자의 이력적 인터렉션에 기초하여 세컨더리 어시스턴트들 중 하나만에게 쿼리를 제공할 수 있다. 예를 들어, 프라이머리 자동화된 어시스턴트는 쿼리를 수신하고 그 쿼리를 제1 자동화된 어시스턴트에 제공할 수 있다. 사용자는 제1 자동화된 어시스턴트로부터 직접 또는 프라이머리 자동화된 어시스턴트를 통해 제1 자동화된 어시스턴트로부터 응답을 제공받을 수 있다. 이어서, 프라이머리 자동화된 어시스턴트는 제1 쿼리와 관련된 쿼리를 수신할 수 있다. 프라이머리 자동화된 어시스턴트는 새로운 쿼리가 제1 쿼리와 관련되어 있음을 결정할 수 있고, 제2 자동화된 어시스턴트가 아닌 제1 자동화된 어시스턴트에만 제2 쿼리를 제공할 수 있다. 따라서, 개입 쿼리가 제1 자동화된 어시스턴트에 의해 프로세싱되는 경우, 사용자에게는 다른 세컨더리 자동화된 어시스턴트들에 의해 프로세싱되는 관련 쿼리 대신 관련 쿼리에 대한 일관된 응답이 제공된다.
따라서, 본 명세서에 설명된 기법의 활용은 사용자가 특정 자동화된 어시스턴트에 의해 제공되는 것에 관심이 있는 정보에 기초하여 다수의 자동화된 어시스턴트들 각각을 명시적으로 호출해야 하는 사용자의 필요성을 완화한다. 예를 들어, 본 명세서에 설명된 구현예는 사용자가 특정 유형의 쿼리를 프로세싱하기 위해 제1 자동화된 어시스턴트를 명시적으로 호출하고 다른 유형의 쿼리를 프로세싱하기 위해 제2 자동화된 어시스턴트를 호출해야 할 필요성을 완화한다. 또한, 제1 자동화된 어시스턴트에 의해 이전에 이행된 대화의 부분을 식별하고 해당 자동화된 어시스턴트에 프로세싱을 위한 추가 관련 쿼리를 제공함으로써, 관련 쿼리를 프로세싱하기 위해 다수의 자동화된 어시스턴트들을 호출할 필요 없이 일관된 결과가 제공될 수 있다. 프라이머리 어시스턴트를 활용하여 수신된 쿼리의 초기 분석을 수행함으로써, 상기 쿼리가 각 세컨더리 어시스턴트에 의해 개별적으로 프로세싱되지 않고 쿼리의 전처리(예: 자연어 이해, 텍스트 스피치 변환 프로세싱, 자동 스피치 인식)가 주어진 쿼리에 대해 단 한번만 요구된다. 또한, 본 명세서에 설명된 기법은 사용자가 쿼리 프로세싱에 관심이 있다는 자동화된 어시스턴트로부터 응답을 얻기 위해 사용자가 후속 쿼리를 통해 인터렉션의 전체 기간을 연장해야 할 필요성을 완화한다. 따라서, 이러한 구현예는 관련 쿼리가 대화에서 연속적이지 않은 경우에도 어떤 자동화된 어시스턴트가 관련 쿼리를 프로세싱할 것인지를 결정하려고 노력하고, 객관적인 개선을 제공할 것이며, 그렇지 않으면 일관성이 없거나 불완전한 결과가 제공될 수 있으며 추가 프로세싱이 필요할 수 있다.
동일한 환경에서 프라이머리 자동화된 어시스턴트를 호출하고 다른 자동화된 어시스턴트를 호출하지 않는 호출 문구에 의해 프라이머리 자동화된 어시스턴트가 호출될 수 있다. 예를 들어, 프라이머리 자동화된 어시스턴트는 "OK Assistant"라는 문구로 호출될 수 있고, 하나 이상의 세컨더리 어시스턴트는 하나 이상의 다른 호출 문구(예를 들어, "OK Assistant A", "Hey Assistant B")로 호출될 수 있다. 일단 호출되면, 프라이머리 어시스턴트는 호출에 수반되는 쿼리(예를 들어, 호출 문구 앞 및/또는 뒤에 오는 쿼리)를 프로세싱한다. 일부 구현예에서, 프라이머리 어시스턴트는 호출에 수반되는 다수의 쿼리들을 식별할 수 있다. 예를 들어, 프라이머리 어시스턴트는 호출 문구 이후 일정 기간 동안 오디오 데이터를 계속 수신하고, 해당 기간 동안 사용자의 임의의 추가 발화를 프로세싱할 수 있다. 따라서, 사용자는 각각의 쿼리에 대해 프라이머리 자동화된 어시스턴트를 호출할 필요가 없고 대신에 다수의 쿼리들을 발화할 수 있으며, 그 각각의 쿼리에 프라이머리 자동화된 어시스턴트 및/또는 하나 이상의 다른 세컨더리 어시스턴트로부터의 응답이 이어질 수 있다.
일부 구현예에서, 수신된 음성 발화는 의도, 쿼리의 용어 및/또는 쿼리의 분류를 결정하기 위해 프로세싱될 수 있다. 예를 들어, 프라이머리 자동화된 어시스턴트는 사용자 의도를 결정하기 위해 스피치 인식, 자연어 프로세싱 및/또는 오디오 데이터를 추가로 프로세싱될 데이터로 변환하기 위한 하나 이상의 다른 기법을 수행할 수 있다. 일부 구현예에서, 프로세싱하는 세컨더리 어시스턴트가 사용자에 의해 호출되지 않은 경우에도 하나 이상의 세컨더리 어시스턴트는 들어오는 음성 발화를 추가로 프로세싱할 수 있다. 예를 들어, 사용자는 쿼리가 후속하는 "OK Assistant"라는 문구를 말하여 프라이머리 자동화된 어시스턴트를 호출할 수 있다. 프라이머리 자동화된 어시스턴트는 마이크를 활성화하고 발화를 캡처할 수 있을 뿐만 아니라 사용자 및/또는 프라이머리 자동화된 어시스턴트와 동일한 환경에 있는 하나 이상의 다른 세컨더리 어시스턴트도 캡처할 수 있다. 일부 구현예에서, 프라이머리 자동화된 어시스턴트만이 호출되고 쿼리의 표시(예를 들어, 오디오 데이터, 오디오의 텍스트 표현, 사용자의 의도)를 세컨더리 자동화된 어시스턴트 중 하나 이상에 제공할 수 있다.
일부 구현예에서, 프라이머리 자동화된 어시스턴트는 하나 이상의 세컨더리 어시스턴트와 함께 클라이언트 디바이스에서 실행될 수 있다. 예를 들어, 디바이스는 프라이머리 자동화된 어시스턴트뿐만 아니라 프라이머리 자동화된 어시스턴트와 다른 호출 문구를 사용하여 호출되는 하나 이상의 다른 자동화된 어시스턴트도 실행할 수 있다. 일부 구현예에서, 하나 이상의 세컨더리 자동화된 어시스턴트는 프라이머리 자동화된 어시스턴트를 실행하고 있는 디바이스와 다른 디바이스에서 실행될 수 있으며 프라이머리 자동화된 어시스턴트는 하나 이상의 통신 채널을 통해 세컨더리 자동화 디바이스(들)와 통신할 수 있다. 예를 들어, 프라이머리 자동화된 어시스턴트는 스피커 및/또는 하나 이상의 다른 통신 채널을 통해 세컨더리 자동화된 어시스턴트에 의해 인지될 수 있는 초음파 신호인 Wi-Fi를 통해 쿼리의 텍스트 표현을 제공할 수 있다.
일부 구현예에서, 프라이머리 자동화된 어시스턴트는 쿼리의 의도에 기초하여 쿼리를 분류할 수 있다. 분류는 어떤 유형의 응답이 쿼리를 이행하는지 프라이머리 자동화된 어시스턴트에게 나타낼 수 있다. 예를 들어, "Set an alarm"이라는 쿼리의 경우 프라이머리 자동화된 어시스턴트는 쿼리에 대한 의도(즉, 사용자가 알람 세트를 원함)를 결정하기 위해 쿼리에 대한 자연어 이해를 수행할 수 있다. 쿼리에 대한 분류는 예를 들어 질문에 답변하라는 요청, 애플리케이션 실행 요청 및/또는 하나 이상의 자동화된 어시스턴트가 수행할 수 있는 일부 다른 작업을 수행하려는 의도를 포함할 수 있다.
프라이머리 자동화된 어시스턴트가 쿼리를 수신하면 프라이머리 자동화된 어시스턴트는 필요한 의도를 가장 잘 이행할 수 있는 세컨더리 자동화된 어시스턴트를 결정할 수 있다. 예를 들어, 프라이머리 자동화된 어시스턴트는 쿼리를 프로세싱하고, 쿼리의 의도가 알람을 설정하는 것이라고 결정하고, 프라이머리 자동화된 어시스턴트와 통신 중인 하나 이상의 세컨더리 자동화된 어시스턴트에 해당 의도를 제공할 수 있다. 또한, 예를 들어, 프라이머리 자동화된 어시스턴트는 들어오는 쿼리의 일부 또는 전부를 프로세싱하도록 추가로 구성될 수 있다. 예를 들어, 프라이머리 자동화된 어시스턴트는 쿼리를 수신하고, 쿼리를 프로세싱하고, 쿼리를 이행할 수 있는 능력이 있는지 결정하고, 쿼리에 응답하여 하나 이상의 작업을 수행할 수 있다.
일부 구현예에서, 하나 이상의 세컨더리 자동화된 어시스턴트는 프라이머리 자동화된 어시스턴트에게 그것이 수행할 수 있는 작업을 알릴 수 있다. 예를 들어, 세컨더리 어시스턴트는 음악 애플리케이션에 액세스하고, 알람을 설정하고, 질문에 대답으로 응답할 수 있음을 나타내는 신호를 프라이머리 자동화된 어시스턴트에 제공할 수 있다. 따라서, 프라이머리 자동화된 어시스턴트는 세컨더리 자동화된 어시스턴트 세트 중 어느 것이 세컨더리 자동화된 어시스턴트에 쿼리 및/또는 쿼리의 의도 표시를 제공하기 전에 작업을 수행할 수 있는지 확인할 수 있다.
프라이머리 자동화된 어시스턴트가 쿼리를 수신하고 쿼리를 프로세싱하여 쿼리의 의도를 결정하면, 프라이머리 자동화된 어시스턴트는 하나 이상의 데이터베이스에 액세스하여 사용자가 해당 쿼리 분류에 대해 특정 세컨더리 자동화된 어시스턴트를 선호하는지 여부를 결정할 수 있다. 예를 들어, 사용자는 자동화된 어시스턴트와의 이전 인터렉션에서 알람 설정을 위해 어시스턴트 A를 활용할 수 있지만 사용자가 질문에 대한 답변을 받는 데 관심이 있는 경우 어시스턴트 B를 선호할 수 있다. 사용자 선호는 사용자에 의한 명시적인 표시(예: 어시스턴트 A가 알람을 설정하도록 선호 설정) 및/또는 이전 사용(예: 사용자가 질문할 때 어시스턴트 A보다 어시스턴트 B를 더 자주 호출함)에 기초하여 결정될 수 있다.
그런 다음 프라이머리 자동화된 어시스턴트는 추가 프로세싱을 위해 세컨더리 자동화 어시스턴트에게 쿼리를 제공할 수 있다. 예를 들어, 사용자가 쿼리를 말할 수 있고, 프라이머리 자동화된 어시스턴트는 쿼리로부터 의도를 결정할 수 있으며, 그 후 쿼리의 의도를 처리 가능한 세컨더리 자동화된 어시스턴트에 제공할 수 있다(그리고 이것이 가능하다는 것을 프라이머리 자동화된 어시스턴트에 표시함). 그런 다음 세컨더리 자동화된 어시스턴트는 필요한 경우 추가 쿼리 프로세싱을 수행하고 하나 이상의 작업을 수행할 수 있다. 작업은 예를 들어 질문에 대한 답변 결정, 알람 설정, 음악 애플리케이션을 통한 음악 재생 및/또는 쿼리의 정보를 활용하여 하나 이상의 다른 애플리케이션을 실행하는 것을 포함할 수 있다. 일부 구현예에서, 세컨더리 자동화된 어시스턴트는 작업 완료를 위해 프라이머리 자동화된 어시스턴트에 응답(또는 다른 이행)을 제공할 수 있다. 예를 들어, 사용자는 질문을 포함하는 쿼리를 말할 수 있고, 쿼리는 세컨더리 자동화된 어시스턴트에 제공될 수 있다. 세컨더리 자동화된 어시스턴트는 쿼리를 프로세싱하고, 응답을 생성하고, 프라이머리 자동화된 어시스턴트에 응답을 제공할 수 있으며, 프라이머리 자동화된 어시스턴트는 사용자에게 질문에 대한 음성 응답을 제공할 수 있다.
일부 경우에, 사용자가 이전 쿼리와 관련된 제2 쿼리를 말할 수도 있다. 예를 들어, 사용자는 "How tall is the president"라는 쿼리를 말할 수 있으며, 어시스턴트 A는 이를 이행할 수 있다. 쿼리에 이어, 답변이 제공된 직후 또는 다른 비-관련 중간 쿼리를 갖는 후속 쿼리로서, 사용자는 앞선 쿼리에서 언급된 대통령과 관련하여 "How old is he"라고 말할 수 있다. 프라이머리 자동화된 어시스턴트 및/또는 세컨더리 어시스턴트 중 하나 이상은 제1 쿼리의 의도(예를 들어, 대통령의 키를 제공받는 것에 대한 관심)를 식별하고 제2 쿼리는 제1 쿼리에서 언급된 대통령에 대한 추가 질문이라고 결정함으로써 후속 쿼리에 대한 답변을 결정할 수 있다. 프라이머리 자동화된 어시스턴트와 사용자 간의 대화는 서로 관련되거나 관련되지 않은 추가 쿼리 및 응답으로 계속될 수 있다.
사용자가 이전 쿼리와 관련된 쿼리를 말한 경우, 사용자는 초기 요청을 이행한 것과 동일한 세컨더리 어시스턴트가 후속 요청을 이행하는데 관심을 가질 수 있다. 그러나 일부 경우에, 후속 쿼리와 이전 쿼리는 이전 쿼리 및 후속 쿼리와 관련되지 않은 중간 쿼리를 포함하는 대화의 일부이다. 예를 들어, 사용자는 프라이머리 자동화된 어시스턴트를 호출하고 "How tall is the president"라고 말한 다음 "Set an alarm for 9am"(제1 쿼리와 관련 없음)을 말한 다음 "How tall is the president"와 관련이 있는 "How old is he"라고 말할 수 있다. 사용자는 동일한 세컨더리 자동화된 어시스턴트에 의해 이행되는 제1 쿼리와 제3 쿼리 모두에 관심을 가질 수 있으며, 중간 쿼리는 다른 자동화된 어시스턴트에 의해 처리되거나(쿼리의 의도에 따라) 관련된 쿼리와 별도로 처리된다.
프라이머리 자동화된 어시스턴트는 사용자로부터 쿼리를 포함하는 발화를 수신하고, 쿼리를 처리할 수 있는 세컨더리 어시스턴트를 식별할 수 있다. 예를 들어, "How tall is the president"라는 쿼리의 경우, 프라이머리 자동화된 어시스턴트는 제1 자동화된 어시스턴트가 "질문/답변" 유형의 쿼리를 처리하도록 구성되었다고 결정하고, 제1 세컨더리 어시스턴트에 상기 쿼리를 제공한다. 쿼리는 하나 이상의 네트워크 프로토콜(예를 들어, Wi-Fi, 블루투스, LAN) 및/또는 하나 이상의 다른 채널을 통해 제1 자동화된 어시스턴트에 제공될 수 있다. 예를 들어, 프라이머리 자동화된 어시스턴트는 프라이머리 자동화된 어시스턴트를 실행하고 있는 디바이스의 마이크에 의해 캡처될 수 있는 사람이 들을 수 없는 초음파 신호를 생성할 수 있다. 이 신호는 예를 들어 쿼리를 포함하는 오디오 데이터의 프로세싱된 버전일 수 있다(예: 더 높은 주파수로 프로세싱된 원시 오디오 데이터 및/또는 스피커를 통해 전송되었지만 사람이 들을 수 없는 오디오 데이터의 텍스트 표현). 또한, 예를 들어, 쿼리를 수신하는 프라이머리 자동화된 어시스턴트와 세컨더리 자동화된 어시스턴트는 동일한 디바이스에서 실행될 수 있으며 쿼리를 세컨더리 어시스턴트에 직접 제공할 수 있다. 일부 구현예에서, 쿼리는 오디오 데이터로서, 쿼리의 텍스트 표현으로서 및/또는 쿼리의 의도로서 쿼리에 포함된 정보의 일부 부분의 텍스트 표현으로서 및/또는 다른 자동화된 스피치 인식 출력으로서 세컨더리 자동화된 어시스턴트에 제공될 수 있다.
선택된 세컨더리 자동화된 어시스턴트는 청각적 응답과 같은 응답을 사용자에게 제공할 수 있고, 프라이머리 자동화된 어시스턴트는 사용자와 세컨더리 자동화된 어시스턴트의 인터렉션을 저장할 수 있다. 예를 들어, 프라이머리 자동화된 어시스턴트는 세컨더리 자동화된 어시스턴트로부터의 쿼리 및 응답, 세컨더리 자동화된 어시스턴트에 의해 제공된 응답 유형(예: 질문 및 답변), 응답을 제공한 세컨더리 자동화된 어시스턴트의 표시를 저장할 수 있다.
초기 쿼리에 후속하여, 프라이머리 자동화된 어시스턴트는 사용자로부터 제1 쿼리와 관련 없는 추가 쿼리를 수신할 수 있다. 이러한 쿼리는 제1 쿼리가 제공된 동일한 세컨더리 어시스턴트 및/또는 하나 이상의 다른 세컨더리 자동화된 어시스턴트(또는 그렇게 하도록 구성된 경우 프라이머리 자동화된 어시스턴트)에 제공될 수 있다. 중간 쿼리에 이어서, 사용자는 제1 쿼리와 관련된 쿼리(예: 동일한 유형, 유사한 의도, 이전 쿼리에 대한 참조를 포함하여 쿼리의 하나 이상의 유사한 키워드)를 말하고, 사용자와 세컨더리 자동화된 어시스턴트의 저장된 인터렉션에 기초하여, 사용자가 유사한 쿼리에 응답하여 이전에 세컨더리 자동화된 어시스턴트와 인터렉션했다고 결정한다. 사용자가 이전에 특정 세컨더리 자동화된 어시스턴트와 인터렉션했다는 결정에 기초하여, 프라이머리 자동화된 어시스턴트는 동일한 세컨더리 자동화된 어시스턴트에 후속 쿼리를 제공할 수 있다.
일부 구현예에서, 세컨더리 자동화된 어시스턴트에 관련 쿼리를 제공하는 것은 사용자가 세컨더리 자동화된 어시스턴트와 인터렉션한 이후의 시간에 기초할 수 있다. 예를 들어, 프라이머리 자동화된 어시스턴트는 사용자와 세컨더리 자동화된 어시스턴트 간의 대화 표시와 함께 인터렉션 시간을 저장할 수 있다. 이어서, 사용자가 이전 쿼리와 관련된 쿼리를 발화하면, 프라이머리 자동화된 어시스턴트는 사용자와 세컨더리 자동화된 어시스턴트의 마지막 인터렉션 이후 경과된 시간을 결정할 수 있다. 프라이머리 자동화된 어시스턴트가 마지막 인터렉션이 현재 쿼리 이전의 임계 시간 내에 있었다고 결정하는 경우, 프라이머리 자동화된 어시스턴트는 추가 프로세싱을 위해 동일한 세컨더리 자동화된 어시스턴트에 새 쿼리를 제공할 수 있다. 반대로, 사용자가 이전 쿼리와 관련된 쿼리를 말하지만 사용자와 세컨더리 자동화된 어시스턴트 간의 이력적 인터렉션 이후 경과된 시간이 임계 시간을 초과한다고 결정하는 경우, 프라이머리 자동화된 어시스턴트는 쿼리가 이전 쿼리와 관련되어 있더라도 동일한 자동화된 어시스턴트가 상기 쿼리를 프로세싱하기 위해 호출되지 않아야 한다고 결정할 수 있다. 그러나 임계 시간이 경과했는지 여부에 관계없이, 세컨더리 자동화된 어시스턴트가 새로운 쿼리를 처리할 수 있다고 결정하면 프라이머리 자동화된 어시스턴트는 여전히 세컨더리 자동화된 어시스턴트에 쿼리를 제공할 수 있다.
일부 구현예에서, 사용자는 이전 관련 쿼리가 다른 자동화된 어시스턴트에 의해 처리되었는지 여부에 관계없이 세컨더리 어시스턴트들 중 하나에 대한 사용자 선호에 기초하여 특정 유형의 쿼리가 다른 자동화된 어시스턴트에 의해 처리되어야 한다고 결정할 수 있다. 예를 들어, 일부 경우에, 프라이머리 어시스턴트는 특정 유형의 쿼리 및/또는 특정 컨텍스트(예를 들어, 사용자의 위치, 하루 중 시간, 쿼리의 주제)에 대해 사용자가 이전에 활용한 세컨더리 자동화된 어시스턴트를 식별할 수 있다. 그러한 경우, 프라이머리 자동화된 어시스턴트가 다른 요인에 기초하여 다른 자동화된 어시스턴트에 쿼리를 제공할 수 있었더라도 프라이머리 자동화된 어시스턴트는 선호하는 세컨더리 자동화된 어시스턴트에 쿼리를 제공할 수 있다.
예를 들어, 프라이머리 자동화된 어시스턴트는 세컨더리 자동화된 "어시스턴트 A"와 "어시스턴트 B"가 모두 "음악 재생"이라는 쿼리를 이행할 수 있음을 식별할 수 있다. 과거 인터렉션에서 사용자는 "어시스턴트 A"가 액세스할 수 있는 음악 애플리케이션을 사용하여 음악을 재생해야 함을 나타낼 수 있다. 'What is the current number 1 song'라는 이전 쿼리가 '어시스턴트 B'에게 제공되었을 수 있다. 따라서, 관련 쿼리를 프로세싱한 "어시스턴트 B" 또는 사용자가 음악 재생을 위해 선호하는 자동화된 어시스턴트로 표시한 "어시스턴트 A"에게 쿼리가 제공될 수 있다. 프라이머리 자동화된 어시스턴트는 "어시스턴트 B"와의 지속적인 대화가 자동화된 어시스턴트 간의 전환을 피할 수 있더라도 사용자 선호에 기초하여 "어시스턴트 B"의 이전 응답의 컨텍스트를 사용하여 "어시스턴트 A"에게 쿼리를 제공할 수 있다.
일부 경우에, 세컨더리 자동화된 어시스턴트가 쿼리에 대한 응답을 제공하지 못할 수도 있다. 예를 들어, 쿼리가 세컨더리 자동화된 어시스턴트에 제공될 수 있으며 세컨더리 자동화된 어시스턴트는 응답하지 않거나 및/또는 응답이 불가능하다는 표시를 제공한다. 이러한 경우 다른 세컨더리 자동화된 어시스턴트에 쿼리를 제공할 수 있다. 예를 들어, 후보 세컨더리 자동화된 어시스턴트에 순위가 지정될 수 있으며, 가장 높은 순위의 세컨더리 어시스턴트에게 초기적으로 쿼리가 제공될 수 있다. 응답이 성공적이지 않은 경우, 다음으로 높은 순위의 세컨더리 어시스턴트에게 쿼리가 제공될 수 있다.
일부 구현예에서, 후보 자동화된 어시스턴트의 순위는 기계 학습 모델의 출력에 기초할 수 있다. 예를 들어, 하나 이상의 세컨더리 어시스턴트에게 제공된 쿼리는 임베딩 공간에 임베드될 수 있으며, 이전 쿼리와 현재 쿼리의 임베딩과 사이의 유사성에 따라 후보 세컨더리 어시스턴트의 순위가 매겨질 수 있다. 자동화된 어시스턴트의 순위를 매기는데 활용될 수 있는 다른 표시는 예를 들어 제공된 쿼리, 시간, 위치, 쿼리가 제공되었을 때 클라이언트 디바이스에서 실행되는 애플리케이션 및/또는 쿼리가 처음 제공되었을 때와 현재 조건 모두에서 후보 세컨더리 어시스턴트를 실행하고 있는 사용자 및/또는 컴퓨팅 디바이스의 다른 액션과 연관된 텍스트 및/또는 환경적 컨텍스트를 포함할 수 있다.
세컨더리 자동화된 어시스턴트가 응답을 제공하면, 쿼리와 응답의 표시가 관련된 쿼리의 향후 프로세싱을 위해 프라이머리 자동화된 어시스턴트에 의해 저장될 수 있다. 예를 들어, 세컨더리 어시스턴트는 추가 정보에 대한 요청인 "답변" 쿼리를 제공받을 수 있다. 이전에 설명된 바와 같이, 다른 세컨더리 자동화된 어시스턴트가 중간 쿼리를 제공받은 경우에도 동일한 세컨더리 어시스턴트가 다음 "답변" 쿼리를 제공받을 수 있다. 표시는 쿼리가 제공된 시간, 세컨더리 자동화된 어시스턴트의 위치, 사용자의 컴퓨팅 디바이스에서 실행되는 하나 이상의 애플리케이션의 상태 및/또는 어떤 세컨더리 자동화된 어시스턴트에 후속 쿼리를 제공할지 결정하는데 후속적으로 활용될 수 있는 다른 신호와 같은 기타 정보 및/또는 컨텍스트 정보와 함께 저장될 수 있다.
상기 설명은 본 개시의 일부 구현예의 개요로서 제공된다. 이러한 구현예 및 기타 구현예에 대한 추가 설명은 아래에서 더 자세히 설명된다.
도 1은 본 명세서에 개시된 구현예가 구현될 수 있는 예시적 환경이다.
도 2는 본 명세서에 개시된 구현예가 구현될 수 있는 예시적 환경의 블록도이다.
도 3a 및 도 3b는 본 명세서에 개시된 다양한 방법이 구현될 수 있는 다른 예시적 환경의 블록도이다.
도 4a 및 도 4b는 본 명세서에 개시된 다양한 구현예에 따른 예시적 방법을 도시하는 흐름도이다.
도 5a 및 도 5b는 본 명세서에 개시된 다양한 구현예에 따른 사용자, 제1 자동화된 어시스턴트 및 제2 자동화된 어시스턴트를 포함하는 대화를 도시한다.
도 7은 본 명세서에 개시된 다양한 구현예에 따른 예시적 방법을 도시하는 흐름도이다.
도 8은 컴퓨팅 디바이스의 예시적 아키텍처를 도시한다.
도 1을 참조하면, 사용자(101)에 의해 호출될 수 있는 다수의 자동화된 어시스턴트들을 포함하는 예시적 환경이 제공된다. 환경은 마이크(도시되지 않음)를 갖춘 제1 독립형 대화형 스피커(105) 및 마이크(또한 도시되지 않음)를 갖춘 제2 독립형 대화형 스피커(110)를 포함한다. 제1 스피커는 호출 문구로 호출될 수 있는 제1 자동화된 어시스턴트를 적어도 부분적으로 실행하고 있을 수 있다. 제2 스피커(110)는 발화된 문구에 기초하여 사용자가 호출할 자동화된 어시스턴트를 선택할 수 있게 하기 위해 제1 자동화된 어시스턴트와 동일한 호출 문구 또는 다른 문구 중 하나인 호출 문구로 호출될 수 있는 제2 자동화된 어시스턴트를 실행할 수 있다. 예시적 환경에서, 사용자(101)는 제1 스피커(105) 및 제2 스피커(110) 근처에서 "OK Assistant, set an alarm"이라는 음성 발화(115)를 말하고 있다. 제1 및/또는 제2 자동화된 어시스턴트 중 하나가 문구 "OK Assistant"에 의해 호출되도록 구성되면, 호출된 어시스턴트는 호출 문구 다음에 오는 쿼리(즉, "set an alarm")를 프로세싱할 수 있다.
일부 구현예에서, 제1 스피커(105)와 같은 디바이스는 다수의 자동화된 어시스턴트들을 실행하고 있을 수 있다. 도 2를 참조하면, 다수의 자동화된 어시스턴트들을 실행하는 다수의 클라이언트 디바이스들을 포함하는 예시적 환경이 도시되어 있다. 시스템은 제1 자동화된 어시스턴트(215) 및 제2 자동화된 어시스턴트(220)를 실행하는 제1 클라이언트 디바이스(205)를 포함한다. 제1 및 제2 자동화된 어시스턴트 각각은 오디오가 클라이언트 디바이스(205)의 마이크(225)에 의해 캡처될 수 있도록 클라이언트 디바이스(205)에 근접한 호출 문구(각 어시스턴트에 고유하거나 두 어시스턴트를 호출하는 동일한 문구)를 발화함으로써 호출될 수 있다. 예를 들어, 사용자(101)는 클라이언트 디바이스(205) 근처에서 "OK Assistant 1"이라고 말함으로써 제1 자동화된 어시스턴트(215)를 호출할 수 있고, 또한 클라이언트 디바이스(205) 근처에서 "OK Assistant 2"라는 문구를 말함으로써 제2 자동화된 어시스턴트(220)를 호출할 수 있다. 어떤 호출 문구가 발화되었는지에 기초하여, 사용자는 제1 클라이언트 디바이스(205)에서 실행 중인 다수의 어시스턴트들 중 사용자가 음성 쿼리를 프로세싱하는데 관심이 있는 것을 표시할 수 있다. 예시적 환경은 제3 자동화된 어시스턴트(245)를 실행하는 제2 클라이언트 디바이스(210)를 더 포함한다. 제3 자동화된 어시스턴트(245)는 마이크(230)에 의해 캡처될 수 있도록 "OK Assistant 3"과 같은 제3 호출 문구를 사용하여 호출되도록 구성될 수 있다. 일부 구현예에서, 도 2의 자동화된 어시스턴트 중 하나 이상은 없을 수도 있다. 또한, 예시적 환경은 도 2에 존재하지 않는 추가적인 자동화된 어시스턴트를 포함할 수 있다. 예를 들어, 시스템은 추가 자동화된 어시스턴트를 실행하는 제3 디바이스를 포함할 수 있고 및/또는 클라이언트 디바이스(210) 및/또는 클라이언트 디바이스(205)는 추가 자동화된 어시스턴트 및/또는 예시된 것보다 더 적은 수의 자동화된 어시스턴트를 실행할 수 있다.
자동화된 어시스턴트(215, 220, 225) 각각은 본 명세서에 설명된 자동화된 어시스턴트의 하나 이상의 컴포넌트를 포함할 수 있다. 예를 들어, 자동화된 어시스턴트(215)는 들어오는 쿼리를 프로세싱하기 위한 그 자체의 오디오 캡처 컴포넌트, 들어오는 시각적 데이터를 프로세싱하기 위한 시각적 캡처 컴포넌트, 핫워드 검출 엔진, 및/또는 다른 컴포넌트를 포함할 수 있다. 일부 구현예에서, 자동화된 어시스턴트(215 및 220)와 같은 동일한 디바이스에서 실행 중인 자동화된 어시스턴트는 두 자동화된 어시스턴트 모두에 의해 활용될 수 있는 하나 이상의 컴포넌트를 공유할 수 있다. 예를 들어, 자동화된 어시스턴트(215) 및 자동화된 어시스턴트(220)는 온-디바이스 스피치 인식기, 온-디바이스 NLU 엔진, 및/또는 하나 이상의 다른 컴포넌트를 공유할 수 있다.
일부 구현예에서, 자동화된 어시스턴트 중 하나 이상은 다른 자동화된 어시스턴트 중 어느 것도 개별적으로 호출하지 않는 "OK Assistant"와 같은 일반 호출 문구에 의해 호출될 수 있다. 사용자가 일반 호출 문구를 말할 때, 자동화된 어시스턴트 중 하나 이상은 프라이머리 자동화된 어시스턴트로 기능하고 다른 자동화된 어시스턴트 간의 응답을 조정할 수 있다. 도 3a를 참조하면, 프라이머리 자동화된 어시스턴트(305)가 세컨더리 자동화된 어시스턴트(310, 315)와 함께 도시되어 있다. 프라이머리 자동화된 어시스턴트는 "OK Assistant"라는 문구 또는 다른 일반 호출 문구로 호출될 수 있으며, 이는 사용자가 여러 자동화된 어시스턴트에 쿼리를 제공하는데 관심이 있음을 나타낼 수 있다. 유사하게, 세컨더리 자동화된 어시스턴트(310, 315)는 각각 사용자가 발화할 때 대응하는 자동화된 어시스턴트를 호출하는 하나 이상의 대체 호출 문구를 가질 수 있다. 예를 들어, 세컨더리 자동화된 어시스턴트(310)는 "OK Assistant A" 호출 문구로 호출될 수 있고, 세컨더리 자동화된 어시스턴트(315)는 "OK Assistant B" 호출 문구로 호출될 수 있다. 일부 구현예에서, 프라이머리 자동화된 어시스턴트(305)와 세컨더리 자동화된 어시스턴트(310, 315) 중 하나 이상은 제1 자동화된 어시스턴트(215) 및 제2 자동화된 어시스턴트(220)와 관련하여 도 2에 도시된 바와 같이 동일한 클라이언트 디바이스에서 실행될 수 있다. 일부 구현예에서, 하나 이상의 세컨더리 자동화된 어시스턴트는 제3 자동화된 어시스턴트와 관련하여 도 2에 예시된 바와 같이 별도의 디바이스에서 실행될 수 있다.
도 3a에 도시된 환경은 데이터베이스(320)를 더 포함한다. 데이터베이스(320)는 사용자와 하나 이상의 자동화된 어시스턴트의 인터렉션을 저장하는데 활용될 수 있다. 일부 구현예에서, 프라이머리 자동화된 어시스턴트(305)는 프라이머리 자동화된 어시스턴트(305)를 호출하는 호출 문구 다음에 발화되는 쿼리와 같은 쿼리를 사용자로부터 수신할 수 있다. 예를 들어, 사용자는 "OK Assistant, how tall is the president?"라고 말할 수 있다. "OK Assistant"라는 문구는 프라이머리 자동화된 어시스턴트(305)에 고유한 호출 문구일 수 있으며, 일단 호출되면 프라이머리 자동화된 어시스턴트(305)는 호출 문구 다음에 오는 쿼리에 대한 의도(즉, "how tall is the president")를 결정할 수 있다. 일부 구현예에서, 프라이머리 자동화된 어시스턴트(305)는 추가 프로세싱을 위해 세컨더리 자동화된 어시스턴트(310, 315) 중 하나 이상에 쿼리를 제공할 수 있다. 또한, 프라이머리 자동화된 어시스턴트(305)는 프라이머리 자동화된 어시스턴트(305)에 의한 향후 액세스를 위해 쿼리가 제공된 어시스턴트와 함께 쿼리의 표시를 데이터베이스(320)에 저장할 수 있다.
일부 구현예에서, 프라이머리 자동화된 어시스턴트(305)는 세컨더리 자동화된 어시스턴트(310, 315) 중 하나 또는 둘 모두와 항상 인터렉션할 수 있고 그 자체로는 스피치 인식, 자연어 이해, 이행 기능과 같은 하나 이상의 자동화된 어시스턴트 기능이 없을 수 있는 "메타 어시스턴트"일 수 있다. 다른 경우에서, 프라이머리 자동화된 어시스턴트는 세컨더리 어시스턴트와 인터렉션하는 동시에 자체 쿼리 프로세싱을 수행하여 쿼리에 대한 응답을 결정할 수 있다. 예를 들어, 본 명세서에 추가로 설명되는 바와 같이, 프라이머리 자동화된 어시스턴트(305)는 쿼리 프로세싱 엔진을 포함할 수 있거나, 프라이머리 자동화된 어시스턴트(305)는 쿼리를 프로세싱하고 사용자에게 응답을 제공하도록 구성되지 않을 수 있다.
자동화된 어시스턴트(305, 310 및 315)의 다른 컴포넌트는 선택적이며, 예를 들어 위에서 설명된 호출 엔진, 로컬 음성-텍스트 변환("STT") 엔진(캡처된 오디오를 텍스트로 변환), 로컬 텍스트-음성 변환("TTS") 엔진(텍스트를 음성으로 변환), 로컬 자연어 프로세서(오디오 및/또는 오디오에서 변환된 텍스트의 의미론적 의미 결정) 및/또는 기타 로컬 컴포넌트를 포함할 수 있다. 자동화된 어시스턴트를 실행하는 클라이언트 디바이스는 컴퓨팅 리소스(예를 들어, 프로세서 사이클, 메모리, 배터리 등)과 관련하여 상대적으로 제한되기 때문에, 로컬 컴포넌트는 자동화된 어시스턴트(들)와 함께 원격으로 실행되는 클라우드 기반 자동화된 어시스턴트 컴포넌트에 포함된 임의의 대응물에 비해 제한된 기능을 가질 수 있다.
도 2를 다시 참조하면, 일부 구현예에서, 자동화된 어시스턴트(210, 215, 220) 중 하나 이상은 사용자가 프라이머리 자동화된 어시스턴트와 인터렉션하는데 관심이 있음을 나타내는 하나 이상의 제스처에 의해 호출될 수 있다. 예를 들어, 사용자는 버튼이나 터치스크린을 누르는 등 디바이스와 인터렉션하여 자동화된 어시스턴트를 호출하려는 의도를 보여줄 수 있고, 눈에 보이고 카메라와 같은 이미지 캡처 디바이스에 의해 캡처될 수 있는 움직임을 수행할 수 있고 및/또는 이미지 캡처 디바이스가 사용자 움직임 및/또는 포지셔닝을 인식할 수 있도록 디바이스를 볼 수 있다. 사용자가 제스처나 액션을 수행할 때, 자동화된 어시스턴트가 호출되어 위에서 설명한 것처럼 제스처나 액션을 따르는 오디오 데이터 캡처를 시작할 수 있다.
일부 구현예에서, 하나의 자동화된 어시스턴트가 프라이머리 어시스턴트로 선택될 수 있고, 하나 이상의 다른 자동화된 어시스턴트가 세컨더리 어시스턴트(들)로 지정될 수 있다. 예를 들어, 사용자는 사용자에게 가까이 있는 다수의 자동화된 어시스턴트에 공통적인 호출 문구를 말할 수 있다. 하나 이상의 컴포넌트는 자동화된 어시스턴트를 실행하고 있는 복수의 디바이스 중 어느 것이 사용자에게 가장 가까운지 결정할 수 있으며, 가장 가까운 자동화된 어시스턴트는 프라이머리 자동화된 어시스턴트로 지정될 수 있고, 다른 자동화된 어시스턴트는 세컨더리 어시스턴트로 지정될 수 있다. 또한, 예를 들어, 사용자가 자동화된 어시스턴트를 호출할 때, 하나 이상의 컴포넌트는 어떤 자동화된 어시스턴트가 사용자에 의해 가장 자주 활용되었는지 결정하고 해당 자동화된 어시스턴트를 프라이머리 자동화된 어시스턴트로 지정할 수 있다.
일부 구현예에서, 사용자는 해당 자동화된 어시스턴트에 고유한 호출 문구를 사용하여 특정 자동화된 어시스턴트를 호출할 수 있으며, 해당 자동화된 어시스턴트는 프라이머리 자동화된 어시스턴트로 지정될 수 있다. 예를 들어, 사용자는 "OK Assistant 1"이라는 호출 문구를 발화하여 프라이머리 자동화된 어시스턴트로 지정되는 제1 어시스턴트(215)를 호출할 수 있다. 제2 자동화된 어시스턴트(220) 및 제3 자동화된 어시스턴트(245)와 같은 다른 자동화된 어시스턴트는 여기에 설명된 바와 같이 프라이머리 자동화된 어시스턴트에 의해 호출될 수 있고, 프라이머리 자동화된 어시스턴트에 의해 쿼리가 제공될 수 있으며 및/또는 다른 자동화된 어시스턴트로부터 응답을 수신할 수 있다.
일부 구현예에서, 제1 자동화된 어시스턴트(215) 및 제2 자동화된 어시스턴트(220)와 같은 하나 이상의 자동화된 어시스턴트는 자연어 프로세서와 같은 하나 이상의 모듈 및/또는 자연어, TTS 및/또는 STT 프로세서의 결과를 공유할 수 있다. 예를 들어, 도 2를 다시 참조하면, 제1 자동화된 어시스턴트(215)와 제2 자동화된 어시스턴트(220) 둘 모두는 자연어 프로세싱을 공유할 수 있으므로 클라이언트 디바이스(205)가 오디오 데이터를 수신할 때 오디오 데이터는 텍스트로 일단 프로세싱되어 자동화된 어시스턴트(215 및 220) 모두에 제공될 수 있다. 또한, 예를 들어, 클라이언트 디바이스(205)의 하나 이상의 컴포넌트는 오디오 데이터를 텍스트로 프로세싱하고 오디오 데이터의 텍스트 표현을 제3 자동화된 어시스턴트(245)에 제공할 수 있으며, 이는 본 명세서에 추가로 설명된다. 일부 구현예에서, 오디오 데이터는 텍스트로 프로세싱되지 않을 수 있으며 대신 원시 오디오 데이터로서 자동화된 어시스턴트 중 하나 이상에 제공될 수 있다.
도 3b를 참조하면, 프라이머리 자동화된 어시스턴트(305)와 세컨더리 자동화된 어시스턴트(310)의 컴포넌트가 도시되어 있다. 이전에 설명된 바와 같이, 프라이머리 자동화된 어시스턴트(305) 및/또는 하나 이상의 세컨더리 자동화된 어시스턴트(310)는 도 3b에 도시된 컴포넌트 외에 추가 컴포넌트를 포함할 수 있다. 추가적으로 또는 대안적으로, 하나 이상의 컴포넌트는 프라이머리 자동화된 어시스턴트(305) 및/또는 하나 이상의 세컨더리 자동화된 어시스턴트(310)에 없을 수 있다. 예를 들어, 프라이머리 자동화된 어시스턴트(305)는 쿼리 프로세싱 엔진(340)을 포함할 수 있고, 프라이머리 자동화된 어시스턴트뿐만 아니라 세컨더리 자동화된 어시스턴트 모두로서 수행할 수 있다.
호출 엔진(335)은 하나 이상의 음성 호출 문구를 검출하고, 음성 호출 문구 중 하나를 검출한 것에 응답하여 프라이머리 자동화된 어시스턴트(305)를 호출하도록 동작 가능하다. 예를 들어, 호출 엔진(335)은 "Hey Assistant", "OK Assistant" 및/또는 "Assistant"와 같은 음성 호출 문구를 검출하는 것에 응답하여 프라이머리 자동화된 어시스턴트(305)를 호출할 수 있다. 호출 엔진(335)은 음성 호출 문구의 발생을 모니터링하기 위해 프라이머리 자동화된 어시스턴트(305)를 실행하는 클라이언트 디바이스의 하나 이상의 마이크로폰으로부터의 출력에 기초한 오디오 데이터 프레임의 스트림을 연속적으로 프로세싱할 수 있다(예를 들어, "비활성" 모드에 있지 않은 경우). 음성 호출 문구의 발생을 모니터링하는 동안, 호출 엔진(335)은 음성 호출 문구를 포함하지 않는 모든 오디오 데이터 프레임을 (예를 들어, 버퍼에 임시 저장한 후) 폐기한다. 그러나, 호출 엔진(335)이 프로세싱된 오디오 데이터 프레임에서 음성 호출 문구의 발생을 검출하면, 호출 엔진(335)은 프라이머리 자동화된 어시스턴트(305)를 호출할 수 있다.
도 4a 및 4b를 참조하면, 다른 자동화된 어시스턴트에 쿼리를 제공하는 대신에 세컨더리 자동화된 어시스턴트에 쿼리를 제공하는 방법을 예시하는 흐름도가 도시된다. 편의상, 본 방법의 동작은 도 3a, 3b에 도시된 프라이머리 자동화된 어시스턴트(305) 및 세컨더리 자동화된 어시스턴트(310, 315) 등의 동작을 수행하는 시스템을 참조하여 설명된다. 도시된 방법의 시스템은 하나 이상의 프로세서 및/또는 컴퓨팅 디바이스의 다른 컴포넌트(들)를 포함한다. 추가로, 도시된 방법의 동작이 특정한 순서로 도시되었지만, 이는 그러한 제한을 의미하지 않는다. 하나 이상의 동작은 재순서화, 생략 또는 추가될 수 있다.
405에서, 프라이머리 자동화된 어시스턴트가 호출된다. 프라이머리 자동화된 어시스턴트는 프라이머리 자동화된 어시스턴트(305)와 하나 이상의 특성을 공유할 수 있다. 예를 들어, 프라이머리 자동화된 어시스턴트를 호출하는 것은 사용자가 프라이머리 자동화된 어시스턴트에 고유한 호출 문구(예: "OK Assistant")를 발화하는 것, 프라이머리 자동화된 어시스턴트(305)를 실행하는 클라이언트 디바이스의 하나 이상의 카메라에 의해 검출되는 제스처를 수행하는 것, 프라이머리 자동화된 어시스턴트를 실행하는 클라이언트 디바이스의 버튼을 누르는 것 및/또는 사용자가 하나 이상의 후속(또는 이전) 발화가 프라이머리 자동화된 어시스턴트에 의해 프로세싱되는 것에 관심이 있음을 나타내는 사용자에 의한 하나 이상의 다른 액션을 포함할 수 있다. 일부 구현예에서, 프라이머리 자동화된 어시스턴트는 복수의 세컨더리 자동화된 어시스턴트 중 어느 것이 쿼리를 제공할지 결정하는 것과 같은 제한된 동작만 수행하는 "메타 어시스턴트"이다. 예를 들어, 프라이머리 자동화된 어시스턴트는 쿼리를 프로세싱하고 응답을 제공하기 위한 쿼리 프로세싱 엔진을 포함하지 않고 도 3b에 도시된 프라이머리 자동화된 어시스턴트(305)의 컴포넌트 중 하나 이상을 포함할 수 있다(예를 들어, 쿼리 분류기(330), 어시스턴트 결정 모듈(325)). 일부 구현예에서, 프라이머리 자동화된 어시스턴트(305)는 또한 세컨더리 자동화된 어시스턴트의 동작을 수행하고 세컨더리 자동화된 어시스턴트(310)의 쿼리 프로세싱 엔진(340)과 같은 쿼리 프로세싱 엔진을 포함할 수 있다. 사용자는 호출 문구를 사용하여 음성 쿼리를 제공할 수 있다. 예를 들어, 도 5a를 참조하면, 사용자(101)와 복수의 자동화된 어시스턴트 사이의 대화가 예시되어 있다. 대화를 개시하기 위해, 사용자는 호출 문구 "OK Assistant"와 "how tall is the president"라는 쿼리를 포함하는 음성 발화(505)를 말했다.
410에서, 프라이머리 자동화된 어시스턴트(305)는 사용자에 의해 음성 발화로서 제공되는 쿼리에 대한 의도를 결정한다. 일부 구현예에서, 프라이머리 자동화된 어시스턴트(305)의 쿼리 분류기(330)는 사용자에 의해 프라이머리 자동화된 어시스턴트(305)에 제공되는 하나 이상의 쿼리에 대한 분류를 결정할 수 있다. 예를 들어, 프라이머리 자동화된 어시스턴트(305)는 호출 후에 쿼리를 포함하는 음성 발화를 수신한 다음 오디오 데이터에 대해 NLU를 수행하여 쿼리의 의도를 결정할 수 있다. 이어서, 쿼리 분류기(330)는 쿼리에 대한 분류를 결정할 수 있다. 예를 들어, 프라이머리 자동화된 어시스턴트(305)는 사용자가 "how tall is the president?"라는 쿼리를 포함하는 오디오 데이터를 수신할 수 있다. NLU 프로세싱 후에, 쿼리 분류기(330)는 쿼리가 "답변" 쿼리(즉, 쿼리에 대한 응답을 제공받기 위한 사용자로부터의 요청)인지 결정할 수 있다. 또한, 예를 들어, 프라이머리 자동화된 어시스턴트(305)는 사용자가 "set an alarm"이라는 쿼리를 발화하는 것을 포함하여 오디오 데이터를 수신할 수 있다. NLU 프로세싱 후, 쿼리 분류기(330)는 쿼리가 "생산성" 쿼리(즉, 작업을 수행하기 위한 사용자로부터의 요청)인지 결정할 수 있다. 쿼리 분류의 다른 예는 스마트 조명 및/또는 가전제품과 같은 디바이스에 작업을 수행하도록 요청하는 것, 서드파티 애플리케이션에 작업을 수행하도록 요청하는 것(예: 이메일 및/또는 문자 메시지 보내기) 및/또는 자동화된 어시스턴트에 의해 수행될 수 있는 쿼리의 다른 분류를 포함할 수 있다. 또한, 쿼리에 대한 분류 카테고리는 쿼리에 대한 주제, 쿼리에 관련된 추가 정보(예를 들어, 쿼리가 제공되는 동안 디바이스의 현재 상태)와 같은 쿼리에 관련된 추가 정보 및/또는 현재 쿼리와 관련된 과거 쿼리를 식별하는데 활용될 수 있는 기타 세분화된 분류를 포함할 수 있다.
쿼리가 분류되면 어시스턴트 결정 모듈(325)은 추가 프로세싱을 위해 어느 자동화된 어시스턴트에게 쿼리를 제공할지 결정할 수 있다. 이전에 설명된 바와 같이, 데이터베이스(320)는 세컨더리 자동화된 어시스턴트(310 및 315)와 사용자의 과거 인터렉션의 표시를 포함할 수 있다. 각각의 표시는 쿼리 분류의 식별자와 쿼리에 응답한 자동화된 어시스턴트를 포함할 수 있다. 예를 들어, 쿼리 분류기(330)는 "how tall is the president"라는 쿼리가 "답변" 쿼리인지 결정하고 세컨더리 자동화된 어시스턴트(310)에 제공할 수 있다. 또한, 프라이머리 자동화된 어시스턴트(305)는 쿼리가 데이터베이스(320)의 세컨더리 자동화된 어시스턴트(310)에 제공되었다는 표시와 함께 쿼리 및/또는 쿼리 분류의 표시를 저장할 수 있다.
일부 구현예에서, 사용자는 특정 분류의 쿼리를 처리하기 위해 특정 자동화된 어시스턴트에 대한 선호를 표시할 수 있다. 도 4a를 참조하면, 415에서, 어시스턴트 결정 모듈(325)은 410에서 결정된 분류의 쿼리를 프로세싱하기 위해 사용자가 특정 세컨더리 자동화된 어시스턴트에 대한 선호를 표시했는지 여부를 결정할 수 있다. 사용자(101)가 선호를 표시한 경우, 선호하는 세컨더리 자동화된 어시스턴트는 420에서 쿼리를 제공받을 수 있다. 예를 들어, 사용자는 모든 문자 메시지(예를 들어, "메시징"으로 분류된 쿼리)가 자동화된 어시스턴트(310)에 의해 처리된다는 것을 명시적으로 또는 세컨더리 자동화된 어시스턴트와의 과거 인터렉션에 기초하여 표시할 수 있다. 사용자 선호의 표시는 데이터베이스(320)에 저장될 수 있고, "메시징"으로 분류되는 후속 쿼리에 대해 쿼리는 다른 세컨더리 자동화된 어시스턴트 대신 자동화된 어시스턴트(310)에 제공될 수 있다.
사용자가 특정 세컨더리 자동화된 어시스턴트에 대한 선호를 표시하지 않은 경우, 결정 블록(425)에서, 어시스턴트 결정 모듈(325)은 분류된 쿼리에 대해, 세컨더리 자동화된 어시스턴트가 임계 기간 내에 현재 쿼리와 동일한 분류의 쿼리를 제공받았는지 여부를 결정한다. 일부 구현예에서, 어시스턴트 결정 모듈(325)은 데이터베이스(320)로부터 어느 자동화된 어시스턴트가 현재 쿼리와 동일한 분류의 쿼리를 이전에 처리했는지 식별할 수 있다. 예를 들어, "how many kids does he have"에 대한 쿼리는 프라이머리 자동화된 어시스턴트(305)에 의해 수신될 수 있고 쿼리 분류기(330)에 의해 "답변" 쿼리로 분류될 수 있다. 어시스턴트 결정 모듈(325)은 데이터베이스(320) 내의 하나 이상의 표시에 기초하여 이전의 "답변" 쿼리가 세컨더리 자동화된 어시스턴트(310)에 의해 처리되었다는 것 및/또는 사용자가 "답변" 쿼리가 세컨더리 자동화된 어시스턴트(310)에 의해 처리되게 하는 것에 선호를 표시했다는 것을 결정할 수 있다. 이에 응답하여, 어시스턴트 결정 모듈(325)은 430에서 다른 자동화된 어시스턴트에게 쿼리를 제공하는 대신에 "how many kids does he have"라는 쿼리를 세컨더리 자동화된 어시스턴트(310)에 제공하기로 결정할 수 있다.
일부 구현예에서, 자동화된 어시스턴트 간의 통신을 용이하게 하기 위해 하나 이상의 통신 프로토콜을 활용할 수 있다. 예를 들어, 도 3b를 참조하면, 세컨더리 자동화된 어시스턴트(310)는 세컨더리 자동화된 어시스턴트(310)에 쿼리를 제공하기 위해 프라이머리 자동화된 어시스턴트(305)에 의해 활용될 수 있는 API(345)를 포함한다. 일부 구현예에서는 하나 이상의 다른 통신 프로토콜이 활용될 수 있다. 예를 들어, 프라이머리 자동화된 어시스턴트(305)와 세컨더리 자동화된 어시스턴트(310)가 별도의 클라이언트 디바이스에서 실행되고 있는 경우, 프라이머리 자동화된 어시스턴트(305)는 클라이언트 디바이스의 마이크에 의해 검출될 수 있는 신호(예를 들어, 음성 발화의 오디오 데이터 및/또는 쿼리의 자연어 프로세싱 인코딩을 포함하는 초음파 오디오 신호)를 전송하기 위해 어시스턴트를 실행하는 클라이언트 디바이스의 스피커를 활용할 수 있다.
일부 구현예에서, 세컨더리 자동화된 어시스턴트(310)는 세컨더리 자동화된 어시스턴트(310)에 의해 처리될 수 있는 쿼리의 분류를 프라이머리 자동화된 어시스턴트(305)에 제공할 수 있는 기능 통신기(350)를 포함할 수 있다. 예를 들어, 세컨더리 자동화된 어시스턴트(310)는 "답변" 쿼리를 처리하도록 구성될 수 있지만(즉, 질문을 포함하는 쿼리에 응답할 수 있는 쿼리 프로세싱 엔진(340)을 포함함) "메시징" 요청을 처리하도록 구성되지 않을 수 있다. 따라서, 기능 통신기(350)는 처리될 수 있는 쿼리 분류 표시를 제공하고 및/또는 응답을 거부할 쿼리 분류를 표시할 수 있다. 일부 구현예에서, 세컨더리 자동화된 어시스턴트(310)는 프라이머리 자동화된 어시스턴트(305)의 API(390) 및/또는 하나 이상의 다른 통신 프로토콜(예를 들어, 초음파 신호)을 활용하여 프라이머리 자동화된 어시스턴트(305)에 자신의 기능을 나타낼 수 있다.
블록(445)에서, 쿼리가 제공되었던 세컨더리 자동화된 어시스턴트와 사용자의 인터렉션은 데이터베이스(320)에 저장된다. 일부 구현예에서 쿼리(및/또는 쿼리 분류) 및 쿼리를 처리한 자동화된 어시스턴트와 함께 시간이 저장될 수 있다. 따라서, 일부 구현예에서, 어시스턴트 결정 모듈(325)은 어느 세컨더리 자동화된 어시스턴트에 쿼리를 제공할지 결정할 때 세컨더리 자동화된 어시스턴트들 중 하나가 임계 기간 내에 동일한 분류의 쿼리를 처리했는지 여부를 결정할 수 있다. 예를 들어, 사용자는 프로세싱을 위해 세컨더리 자동화된 어시스턴트(310)에 제공되는 "답변" 분류의 쿼리를 제출할 수 있다. 쿼리(또는 그 분류)의 표시는 쿼리가 세컨더리 자동화된 어시스턴트(315)에 제공된 시간을 나타내는 타임스탬프와 함께 어시스턴트 결정 모듈(325)에 의해 저장될 수 있다. 이어서, 쿼리 분류기(330)가 "답변" 쿼리라고 결정한 다른 쿼리가 사용자에 의해 제공되는 경우(예를 들어, 다음 쿼리 또는 하나 이상의 중간 쿼리 이후의 쿼리), 어시스턴트 결정 모듈(325)은 세컨더리 자동화된 어시스턴트(315)가 "답변" 쿼리를 마지막으로 처리한 이후 얼마나 시간이 경과했는지 결정할 수 있다. 세컨더리 자동화된 어시스턴트(315)가 임계 시간 내에 "답변" 쿼리를 처리한 경우, 후속 "답변" 쿼리는 세컨더리 자동화된 어시스턴트(315)에 제공될 수 있다.
일부 구현예에서, 쿼리 프로세싱 엔진(340)은 응답을 결정하기 위해 쿼리 및/또는 쿼리에 포함된 정보의 적어도 일부를 서드파티 애플리케이션에 제공할 수 있다. 예를 들어, 사용자는 추가 프로세싱을 위해 세컨더리 자동화된 어시스턴트에 제공되는 "Make me a dinner reservation tonight at 6:30"라는 쿼리를 제출할 수 있다. 세컨더리 자동화된 어시스턴트는 오디오 데이터 및/또는 오디오 데이터의 텍스트 표현을 제공받고, 쿼리에 대한 자연어 이해를 수행하고, 식사 예약 애플리케이션과 같은 서드파티 애플리케이션에 정보의 일부를 제공할 수 있다. 이에 응답하여, 서드파티 애플리케이션은 응답을 결정(예: 식사 예약이 가능한지 확인)하고, 세컨더리 자동화된 어시스턴트에 응답을 제공할 수 있으며, 세컨더리 자동화된 어시스턴트는 서드파티 애플리케이션의 응답에 기초하여 응답을 생성할 수 있다.
일부 구현예에서, 인터렉션을 저장하는 것은 쿼리를 처리한 세컨더리 자동화된 어시스턴트와 함께 쿼리의 컨텍스트를 데이터베이스(320)에 저장하는 것을 포함할 수 있다. 추가적으로 또는 대안적으로, 타임스탬프 및/또는 쿼리와 관련된 다른 정보는 인터렉션의 표시와 함께 데이터베이스(320)에 저장될 수 있다. 예를 들어, "how tall is the president"라는 쿼리가 프라이머리 자동화된 어시스턴트(305)에 의해 수신될 수 있다. 쿼리는 세컨더리 자동화된 어시스턴트(310)에 제공될 수 있고 쿼리의 분류, 쿼리가 세컨더리 자동화된 어시스턴트(310)에 제공되었을 때의 타임스탬프, 및/또는 쿼리(예를 들어, 사용자의 음성 발화의 오디오 데이터, 쿼리의 NLU 데이터, 쿼리의 텍스트 표현)이 데이터베이스(320)에 저장될 수 있다. 또한, 쿼리가 "the president"과 관련되어 있다는 표시와 같은 쿼리에 대한 컨텍스트가 저장될 수 있다. 이어서, 사용자는 "how many kids does he have"라는 쿼리를 제출할 수 있고, 어시스턴트 결정 모듈(325)은 데이터베이스(320)에 저장된 표시에 기초하여 사용자가 임계 시간 내에 동일한 분류(예를 들어, "답변" 쿼리)의 쿼리를 제출했다고 결정할 수 있다. 프라이머리 자동화된 어시스턴트(305)는 추가 프로세싱을 위해 세컨더리 자동화된 어시스턴트(310)에 컨텍스트(예를 들어, "the president"와 관련된 이전 쿼리)와 함께 쿼리(즉, "how many kids does he have")를 제공할 수 있다. 일부 구현예에서, "how many kids does he have"라는 쿼리를 수신하면, 세컨더리 자동화된 어시스턴트(310)가 이전 컨텍스트에 기초하여 "he"가 "the president"를 지칭한다고 결정할 수 있도록 세컨더리 자동화된 어시스턴트(310)는 이전 쿼리의 컨텍스트 표시를 별도로 저장할 수 있다.
도 4a를 다시 참조하면, 결정 블록(425)에서, 일부 구현예에서, 어시스턴트 결정 모듈(325)은 세컨더리 자동화된 어시스턴트가 임계 기간 내에 현재 쿼리와 동일한 분류의 쿼리를 프로세싱하지 않았다고 결정할 수 있다. 예를 들어, 현재 세션에서 및/또는 일정 기간 내에 프라이머리 자동화된 어시스턴트(305)에 의해 수신된 분류의 제1 쿼리인 쿼리가 제출될 수 있다. 어시스턴트 결정 모듈(325)이 데이터베이스(320)의 표시에 기초하여, 사용자가 현재 분류의 쿼리를 처리하기 위해 자동화된 어시스턴트에 대해 선호를 표시하지 않았다고 결정하는 경우 및/또는 세컨더리 자동화된 어시스턴트가 현재 분류의 쿼리를 처리하지 않았다고 결정하는 경우, 어시스턴트 결정 모듈(325)은 이용 가능한 세컨더리 자동화된 어시스턴트의 기능에 기초하여 쿼리를 처리할 세컨더리 자동화된 어시스턴트를 선택할 수 있다. 예를 들어, 프라이머리 자동화된 어시스턴트(305)는 본 명세서에 설명된 바와 같이 기능 통신기(350)에 의해 제공되는 각각의 세컨더리 자동화된 어시스턴트의 기능에 기초하여 현재 분류에 기초하여 쿼리를 제공하기 위한 하나 이상의 후보 세컨더리 자동화된 어시스턴트를 결정할 수 있다. 예를 들어, "답변" 쿼리는 임계 기간 내에 세컨더리 자동화된 어시스턴트(310) 또는 세컨더리 자동화된 어시스턴트(315)에 의해 프로세싱되지 않았을 수 있다. 어시스턴트 결정 모듈(325)은 각각의 이용 가능한 세컨더리 자동화된 어시스턴트의 기능 통신기에 기초하여 세컨더리 자동화된 어시스턴트(310)가 "답변" 쿼리를 처리하도록 구성되고 세컨더리 자동화된 어시스턴트(315)가 "답변" 쿼리를 처리하도록 구성되지 않았다고 결정할 수 있다. 따라서, 이러한 쿼리를 처리하도록 구성되지 않은 세컨더리 자동화된 어시스턴트(315)에 쿼리를 제공하는 대신에 세컨더리 자동화된 어시스턴트(310)에 쿼리가 제공될 수 있다.
일부 구현예에서, 쿼리를 말한 사용자에 기초하여 세컨더리 자동화된 어시스턴트가 선택될 수 있다. 예를 들어, 프라이머리 자동화된 어시스턴트가 관련 쿼리가 임계 시간 내에 세컨더리 자동화된 어시스턴트에 제공되었는지 결정할 수 없는 경우, 프라이머리 자동화된 어시스턴트는 동일한 사용자에 의해 이전에 제공되었던 동일한 세컨더리 자동화된 어시스턴트에 쿼리를 제공하기로 결정할 수 있다. 예를 들어, 제1 사용자는 "Do I have anything on my calendar"라는 쿼리를 프라이머리 자동화된 어시스턴트에 제공할 수 있으며, 이는 프로세싱을 위해 세컨더리 자동화된 어시스턴트에 제공된다. 그 후, 다른 사용자는 다른 세컨더리 자동화된 어시스턴트에 의해 프로세싱되는 추가 쿼리를 제공할 수 있다. 그 후, 제1 사용자는 "How tall is the president"라는 쿼리를 제출할 수 있지만 제1 쿼리를 제출한 후 임계 시간이 경과한 후이다. 그 경우, 대화의 연속성을 향상시키기 위해, 화자를 초기 쿼리와 동일한 화자로 식별하는 것에 기초하여 동일한 세컨더리 자동화된 어시스턴트에 후속 쿼리가 제공될 수 있다.
결정 블록(430)에서, 어시스턴트 결정 모듈(325)은 자동화된 어시스턴트가 임계 기간 내에 현재 분류의 쿼리를 처리하지 않았다고 결정할 수 있다. 이에 응답하여, 블록(440)에서, 어시스턴트 결정 모듈(325)은 현재 분류의 쿼리를 프로세싱할 수 있는 세컨더리 자동화된 어시스턴트에 쿼리를 제공할 수 있다. 예를 들어, 어시스턴트 결정 모듈(325)은 자동화된 어시스턴트의 기능 통신기(350)를 통해 현재 분류의 쿼리를 처리할 수 있음을 표시한 자동화된 어시스턴트를 선택할 수 있다. 쿼리가 가능한 세컨더리 자동화된 어시스턴트에 제공되면 블록(445)에서 인터렉션은 어시스턴트 결정 모듈(325)에 의해 나중에 활용되도록 데이터베이스(320)에 저장될 수 있다.
어시스턴트 결정 모듈(325)은 다수의 세컨더리 자동화된 어시스턴트가 특정 분류의 쿼리를 처리하도록 구성될 수 있지만 임계 기간 내에 그러한 쿼리를 처리한 세컨더리 자동화된 어시스턴트가 없다고(또는 다수의 세컨더리 자동화된 어시스턴트가 현재 분류의 쿼리를 처리했다고) 결정할 수 있다. 추가적으로 또는 대안적으로, 다수의 세컨더리 자동화된 어시스턴트가 임계 기간 내에 동일한 분류의 쿼리를 처리했을 수도 있다. 예를 들어, 세컨더리 자동화된 어시스턴트(310)는 쿼리 분류기(330)에 의해 "생산성" 쿼리로 분류된 "set an alarm"라는 쿼리를 프로세싱했을 수 있으며, 또한 세컨더리 자동화된 어시스턴트(315)는 쿼리 분류기(330)에 의해 "생산성" 쿼리로 분류된 "turn off the bedroom lights"라는 쿼리를 처리했을 수 있다. 쿼리를 처리하기 위해 다수의 세컨더리 자동화된 어시스턴트가 어시스턴트 결정 모듈(325)에 의해 식별되는 경우, 후보 세컨더리 자동화된 어시스턴트는 다른 세컨더리 자동화된 어시스턴트 대신에 하나의 세컨더리 자동화된 어시스턴트가 선택될 수 있도록 순위를 매기고 및/또는 점수를 매길 수 있다.
도 5a를 참조하면, 사용자(101)와 두 개의 자동화된 어시스턴트(305, 310) 사이의 인터렉션이 예시되어 있다. 도시된 환경에서, 프라이머리 자동화된 어시스턴트(305) 및 세컨더리 자동화된 어시스턴트(310, 315)는 각각 별도의 디바이스에서 실행되는 것으로 예시되어 있다. 그러나 일부 구현예에서, 자동화된 어시스턴트 중 하나 이상이 도 2에 예시된 바와 같이 동일한 디바이스에서 실행될 수 있다. 또한, 예시된 대화는 쿼리를 이행하지 않는 프라이머리 자동화된 어시스턴트(305)에 의해 수신된다. 따라서, 사용자(101)의 음성 발화는 추가 프로세싱을 위해 세컨더리 자동화된 어시스턴트(310 및/또는 315)에 쿼리를 제공하는 프라이머리 자동화된 어시스턴트(305)의 스피커에 의해 검출될 수 있다. 따라서, 사용자(101)는 프라이머리 자동화된 어시스턴트(305)와 인터렉션할 수 있지만, 도시된 바와 같이 쿼리에 대한 응답은 세컨더리 자동화된 어시스턴트(310 및 315)에 의해 제공될 수 있다.
대화 턴(505)에서, 사용자(101)는 "OK Assistant, how tall is the president"라는 발화를 말한다. 호출 문구 "OK Assistant"는 본 명세서에 설명된 바와 같이 프라이머리 자동화된 어시스턴트(305)를 호출할 수 있고, 또한 프라이머리 자동화된 어시스턴트(305)는 하나 이상의 마이크를 통해 "how tall is the president"라는 음성 쿼리를 수신한다. 프라이머리 자동화된 어시스턴트(305)의 쿼리 분류기(330)는 사용자(101)가 쿼리에 대한 답변을 요청하고 있음을 나타내는 "답변" 분류와 같은 쿼리에 대한 분류를 결정할 수 있다. 또한, 프라이머리 자동화된 어시스턴트(305)는 데이터베이스(320)의 표시에 기초하여 사용자(101)가 현재 대화 세션 내의 임계 기간 내에 "답변"으로 분류된 쿼리를 이전에 제출하지 않았음을 결정할 수 있다. 이에 응답하여, 어시스턴트 결정 모듈(325)은 세컨더리 자동화된 어시스턴트(310)와 같은 후보 세컨더리 자동화된 어시스턴트 중 하나에 쿼리를 제공할 수 있다. 쿼리를 다른 자동화된 어시스턴트에 제공하는 대신 하나의 자동화된 어시스턴트에게 제공하기로 한 결정은 예를 들어 사용자와 세컨더리 자동화된 어시스턴트와의 과거 인터렉션에 기초하여 식별된 "답변" 쿼리를 제공하는 것에서 세컨더리 자동화된 어시스턴트(310)에 대한 사용자 선호, 시간, 사용자의 위치 및/또는 쿼리를 프로세싱한 세컨더리 자동화된 어시스턴트(315) 대신 쿼리를 프로세싱한 세컨더리 자동화된 어시스턴트(310)에 사용자가 관심이 있다고 표시하는 다른 요인에 기초할 수 있다. 또한, 세컨더리 자동화된 어시스턴트(310)의 기능 통신기(350)는 자신이 "답변" 쿼리를 처리할 수 있다는 표시를 프라이머리 자동화된 어시스턴트(305)에 제공할 수 있고, 프라이머리 자동화된 어시스턴트(305)는 자동화된 어시스턴트의 표시된 능력에 기초하여 세컨더리 자동화된 어시스턴트(310)에 쿼리를 제공할 수 있다.
도 5b를 참조하면, 도 5a의 대화 턴 및 쿼리를 프로세싱하는 컴포넌트를 포함하는 다이어그램이 제공된다. 도시된 바와 같이, 음성 발화(505)는 먼저 쿼리 분류기(330)에 제공되고, 이는 505A에서 "답변"의 분류를 결정한다. "답변"의 분류 및/또는 쿼리와 관련된 다른 정보(예를 들어, 컨텍스트)는 세컨더리 자동화된 어시스턴트가 이전에 "답변" 쿼리를 프로세싱했는지 결정하기 위해 데이터베이스(320)에서 505B를 확인하는 어시스턴트 결정 모듈(325)에 제공된다. 이는 "답변"으로 분류된 프로세싱된 제1 쿼리이기 때문에, 데이터베이스(320)는 세컨더리 자동화된 어시스턴트에 대한 표시를 포함하지 않고 "n/a" 응답(505C)을 제공한다. 이에 응답하여, 어시스턴트 결정 모듈(325)은 하나 이상의 요인(예를 들어, 세컨더리 자동화된 어시스턴트와 사용자의 이전 인터렉션, 기계 학습 모델 출력)에 기초하여 세컨더리 자동화된 어시스턴트(315)에 쿼리를 제공하는 대신 세컨더리 자동화된 어시스턴트(310)(505D에서)에 쿼리를 제공하기로 결정한다.
프라이머리 자동화된 어시스턴트는 추가 프로세싱을 위해 세컨더리 자동화된 어시스턴트(310)에 쿼리를 제공한다. 이에 응답하여, 세컨더리 자동화된 어시스턴트의 쿼리 프로세싱 엔진(340)은 쿼리에 대한 응답(510)을 결정한다. 예를 들어, 도 5a를 다시 참조하면, "how tall is the president"라는 질문에 대해 세컨더리 자동화된 어시스턴트(310)는 "the president is 6 feet, 3 inches"라고 응답한다. 일부 구현예에서, 응답은 세컨더리 자동화된 어시스턴트(310)에 특정한 스피커(예를 들어, 자동화된 어시스턴트를 실행하고 있는 디바이스와 통합된 스피커)에 의해 제공될 수 있다. 일부 구현예에서, 응답은 프라이머리 자동화된 어시스턴트(305)와 같은 하나 이상의 다른 디바이스의 스피커에 의해 제공될 수 있다. 이러한 경우, 응답의 오디오 특성에 기초하여 응답을 제공하기 위해 둘 이상의 자동화 어시스턴트가 스피커를 활용하는 경우에도 응답이 세컨더리 자동화된 어시스턴트(310)에 의해 생성되었고 다른 자동화 어시스턴트에 의해 생성되지 않았다는 것을 사용자가 인식할 수 있도록 음성 프로필을 활용하여 세컨더리 자동화된 어시스턴트(310)에 특정한 응답을 제공할 수 있다. 또한, 다시 도 5b를 참조하면, 쿼리가 세컨더리 자동화된 어시스턴트(310)에 제공되면(및/또는 세컨더리 자동화된 어시스턴트(310)가 응답(510)을 제공하면), 어시스턴트 결정 모듈(325)은 쿼리, 쿼리 분류, 쿼리가 제공되었을 때의 타임스탬프, 쿼리에 대한 컨텍스트를 나타내는 인터렉션(505E) 및/또는 후속 "답변" 쿼리가 수신될 때 어시스턴트 결정 모듈(325)이 이전 인터렉션을 식별하고 인터렉션을 활용하여 어떤 자동화된 어시스턴트에 후속 "답변" 쿼리를 제공할지 결정하도록 하는 쿼리와 관련된 기타 정보를 데이터베이스(320)에 저장할 수 있다.
일부 구현예에서, 어시스턴트 결정 모듈(325)은 다수의 세컨더리 자동화된 어시스턴트가 현재 분류의 쿼리를 처리했다고 결정할 수 있다. 그러한 경우에, 블록(450)에서, 어시스턴트 결정 모듈(325)은 어느 세컨더리 자동화된 어시스턴트가 쿼리를 제공할지를 결정하기 위해 후보 세컨더리 자동화된 어시스턴트의 순위를 매길 수 있다. 앞서 설명된 바와 같이, 일부 구현예에서, 현재 분류를 갖는 쿼리는 임계 시간 기간 내에 (또는 전혀) 이전에 처리되지 않았을 수 있다. 따라서 쿼리를 처리하도록 구성된 세컨더리 자동화된 어시스턴트는 후보 자동화된 어시스턴트일 수 있다. 일부 구현예에서, 다수의 세컨더리 자동화된 어시스턴트는 현재 쿼리와 동일한 분류의 쿼리를 프로세싱했을 수 있으며 어시스턴트 결정 모듈(325)은 다수의 어시스턴트 중 어느 것에 쿼리를 제공할지 결정할 수 있다. 또한, 일부 구현예에서, 현재 쿼리와 다른 분류의 관련 쿼리가 프로세싱되었을 수 있으며, 이전 쿼리가 관련되어 있다는 결정에 기초하여, 다른 세컨더리 자동화된 어시스턴트가 아닌 세컨더리 자동화된 어시스턴트 중 하나가 쿼리를 프로세싱하기 위해 선택될 수 있다.
일부 구현예에서, 현재 쿼리 및 이전 쿼리는 이전 쿼리 중 하나 이상이 현재 쿼리와 관련되어 있는지 여부를 결정하고 따라서 현재 쿼리를 제공할 세컨더리 자동화된 어시스턴트를 결정하기 위해 후보 세컨더리 자동화된 어시스턴트에 순위를 매기기 위해 임베딩 공간에 임베드될 수 있다. 예를 들어, 여러 세컨더리 자동화된 어시스턴트가 현재 쿼리와 동일한 분류의 쿼리를 이전에 프로세싱한 경우, 이전 쿼리는 이전에 프로세싱된 쿼리에 대한 현재 쿼리의 관련성과 함께 임베딩 공간에 내장될 수 있다. 따라서, 현재 쿼리와 가장 관련성이 높은 쿼리를 이전에 프로세싱했던 세컨더리 자동화된 어시스턴트는 현재 쿼리를 프로세싱하기 위한 세컨더리 자동화된 어시스턴트로 선택될 수 있다(및/또는 과거 프로세싱된 쿼리의 관련성은 어떤 자동화된 어시스턴트에 현재 쿼리를 제공할지 결정하는 요인이 될 수 있다).
도 5a를 다시 참조하면, 음성 발화(515)는 사용자(101)에 의해 제공된다. "OK Assistant, what’s on my calendar"라는 발화는 프라이머리 자동화된 어시스턴트(305)에 의해 수신되고, 분류되고, 추가 프로세싱을 위해 세컨더리 자동화된 어시스턴트(310)에 제공된다. 이에 대해 세컨더리 자동화된 어시스턴트(310)는 "you have a meeting at 5"라는 응답을 제공한다. 도 5b를 다시 참조하면, 음성 발화(515)는 먼저 쿼리 분류기(305)에 제공되고, 쿼리 분류기는 쿼리가 "답변" 쿼리(515A)라고 결정한다. 분류는 데이터베이스(320)에 저장된 표시에 기초하여 사용자(101)가 "답변" 쿼리를 프로세싱한 자동화된 어시스턴트와 이전에 인터렉션했는지 여부를 결정하는 어시스턴트 결정 모듈(325)에 제공된다. 515B에서 데이터베이스(320)를 확인한 후, 사용자(101)와 세컨더리 자동화된 어시스턴트(305)의 이전 인터렉션이 식별된다(515C). 그러나, 어시스턴트 결정 모듈(325)은 이전 "답변" 쿼리(505)로부터 식별된 컨텍스트 정보에 기초하여 이 쿼리가 이전 "답변" 쿼리와 관련되지 않는다는 것을 추가로 결정할 수 있다. 이에 응답하여, 어시스턴트 결정 모듈(325)은 음성 발화(515)의 컨텍스트가 이전 "답변" 쿼리의 컨텍스트와 관련되지 않는다는 결정에 기초하여(즉, 발화(515)가 발화(505)에 의해 개시된 대화의 연속이 아님) 쿼리를 프로세싱하기 위한 자동화된 어시스턴트로서 세컨더리 자동화된 어시스턴트(305)를 선택하지 않을 수 있다. 어시스턴트 결정 모듈(325)은 예를 들어 자동화된 어시스턴트 각각에 의해 표시된 능력에 기초하여 결정하고, 예를 들어 세컨더리 자동화된 어시스턴트(310)가 사용자의 캘린더에 액세스하도록 구성되고, 사용자의 캘린더에 액세스하기 위해 이전에 사용자에 의해 활용되었다는 것을 식별하는 것 및/또는 캘린더 관련 쿼리를 프로세싱할 때 세컨더리 자동화된 어시스턴트(305)에 비해 세컨더리 자동화된 어시스턴트(310)에 대한 표시된 사용자 선호에 기초하여 쿼리를 세컨더리 자동화된 어시스턴트(310)에 제공한다. 쿼리가 세컨더리 자동화된 어시스턴트(310)에 제공되면, 인터렉션은 데이터베이스(320)에 저장되고(515E) 세컨더리 자동화된 어시스턴트(310)는 응답을 제공할 수 있다. 데이터베이스(320)에 저장된 이전 인터렉션과 마찬가지로, 세컨더리 자동화된 어시스턴트(310)와의 인터렉션은 컨텍스트 정보, 타임스탬프, 세컨더리 자동화된 어시스턴트에 의해 제공되는 쿼리 및/또는 응답의 벡터 임베딩, 및/또는 세컨더리 자동화된 어시스턴트에 후속 쿼리를 제공할지 여부를 결정하는데 활용하기 위한 쿼리 및/또는 응답과 관련된 기타 정보와 함께 저장될 수 있다. 일부 구현예에서, 이전 인터렉션은 후속 쿼리에 대해 임계 기간 내에 발생한 인터렉션만 검토되어 쿼리가 이전 쿼리와 관련되어 있는지를 결정하도록 일정 기간 동안 저장될 수 있다.
도 5a를 다시 참조하면, 사용자(101)는 "how many kids does he have"라는 음성 발화(525)를 제공한다. 이 음성 발화는 발화(505)로 개시되었던 대화의 연속이고, 응답을 생성하기 위해서는 이전 대화의 컨텍스트 중 적어도 일부가 필요하다. 예를 들어, 음성 발화(525)는 발화(525)에서 사용자(101)에 의해 표시된 바와 같이 "the president"과 관련하여 "he"라는 용어를 포함한다. 이에 대해 세컨더리 자동화된 어시스턴트(310)는 "the president has two children"고 응답한다.
도 5b를 다시 참조하면, 음성 발화(525)는 525A에서 쿼리를 "답변" 쿼리로 분류하는 쿼리 분류기(330)에 제공된다. 이전 쿼리와 마찬가지로, 어시스턴트 결정 모듈(325)은 세컨더리 자동화된 어시스턴트(310)와 세컨더리 자동화된 어시스턴트(315) 모두가 임계 기간 내에 "답변" 쿼리를 프로세싱했음을 식별(525C에서)하기 위해 데이터베이스(320)를 검사한다(525B). 그러나, 현재 쿼리의 콘텐츠(예를 들어, 용어가 무엇을 가리키는지에 대한 표시 없이 "he"라는 용어를 가짐) 및 인터렉션(505E)과 함께 저장될 수 있는 컨텍스트 정보에 기초하여, 어시스턴트 결정 모듈(325)은 (현재 쿼리와 관련되지 않은 "답변" 쿼리를 프로세싱한) 세컨더리 자동화된 어시스턴트(315)에 쿼리를 제공하는 대신에 세컨더리 자동화된 어시스턴트(310)에 쿼리(525D)를 제공하기로 결정할 수 있다. 또한, 세컨더리 자동화된 어시스턴트(310)와의 인터렉션은 쿼리 정보, 컨텍스트 및/또는 본 명세서에 기술된 기타 정보와 함께 데이터베이스(320)에 저장된다(525E).
도 5a를 다시 참조하면, 사용자는 다음으로 "OK, Assistant, send Bob a message of ‘Meeting is at 5"라는 음성 발화(535)를 제공한다. 이에 응답하여, 세컨더리 자동화된 어시스턴트(310)는 요청을 수행하고 "I sent Bob the message via Message Application"로 사용자(101)에게 응답한다. 일부 구현예에서, 프라이머리 자동화된 어시스턴트는 앞서 설명된 바와 같이 음성 발화(535)가 다른 이전 쿼리와 관련이 없다고 결정할 수 있고, 이에 따라 각 자동화된 어시스턴트에 의해 제공되는 능력, 사용자 선호도 및/또는 기타 요인에 기초하여 쿼리를 제공할 자동화된 어시스턴트를 결정할 수 있다. 일부 구현예에서, 프라이머리 자동화된 어시스턴트(305)는 발화(535)가 (쿼리의 용어에 기초하여) 회의와 관련되어 있고 사용자(101)가 캘린더 애플리케이션의 회의에 관해 이전에 세컨더리 자동화된 어시스턴트(315)와 인터렉션했다는 것을 결정할 수 있다. 따라서, 연속성을 위해, 프라이머리 자동화된 어시스턴트(305)는 쿼리의 컨텍스트가 세컨더리 자동화된 어시스턴트(310)에 의해 이전에 프로세싱된 것보다 세컨더리 자동화된 어시스턴트(315)에 의해 프로세싱되었던 이전 쿼리와 더 관련이 있다는 결정에 기초하여 세컨더리 자동화된 어시스턴트(310)가 아닌 세컨더리 자동화된 어시스턴트(315)에 쿼리를 제공할 수 있다.
도 5b를 다시 참조하면, 음성 발화는 먼저 쿼리 분류기(330)에 제공되며, 이는 쿼리가 "메시징" 쿼리(535A)(즉, 메시지 전송 요청)임을 결정한다. 이에 응답하여, 어시스턴트 결정 모듈(325)은 데이터베이스(320)를 확인하고(535B) "메시징" 쿼리를 프로세싱한 세컨더리 자동화된 어시스턴트와 사용자(101)의 이전 인터렉션을 식별하지 않지만, 캘린더(즉, 저장된 인터렉션(515E))에 관해 세컨더리 자동화된 어시스턴트(315)와 사용자(101)의 이전 인터렉션은 식별한다(535C에서). 따라서, 어시스턴트 결정 모듈(325)은 세컨더리 자동화된 어시스턴트(315)와의 이전 인터렉션이 현재 쿼리와 더 관련되어 있다고 결정하고 세컨더리 자동화된 어시스턴트(310)에 쿼리를 제공하는 대신 쿼리(535D)를 세컨더리 자동화된 어시스턴트(315)에 제공할 수 있다. 예를 들어, 어시스턴트 결정 모듈(325)은 하나 이상의 기계 학습 모델을 활용하여 발화(535)가 응답과 가장 유사하다고(예를 들어, 발화(535) 및 응답(520)은 "회의"에 대한 참조를 포함함) 결정하기 위해 임베딩 공간에 발화(505, 515, 525, 및 535) 및/또는 응답(510, 520 및 530)을 임베딩하고, 발화(515)를 프로세싱하고 응답(520)을 제공한 동일한 세컨더리 자동화된 어시스턴트(315)에 발화(535)를 제공한다. 이에 응답하여, 세컨더리 자동화된 어시스턴트(315)의 쿼리 프로세싱 엔진은 응답을 결정하고, 요청된 액션(즉, Bob에게 메시지 전송)을 수행하고, 사용자(101)에게 응답(540)을 제공할 수 있다. 그런 다음 세컨더리 자동화된 어시스턴트(535E)와의 인터렉션은 세컨더리 자동화된 어시스턴트에 "메시징" 쿼리를 언제 제공할지를 결정할 때 후속 활용을 위해 데이터베이스(320)에 저장될 수 있다.
일부 구현예에서, 기계 학습 모델은 입력으로서 하나 이상의 다른 신호를 수신하고, 출력으로서 동일한 분류의 이전 쿼리가 임계 시간 내에 세컨더리 자동화된 어시스턴트에 제공되지 않았을 때 쿼리를 제공하기 위해 후보 세컨더리 자동화된 어시스턴트의 순위를 제공할 수 있다. 예를 들어, 이전 쿼리가 세컨더리 자동화된 어시스턴트에 제공된 시점에 해당하는 현재 컨텍스트 및 이력적 컨텍스트를 기계 학습 모델에 대한 입력으로 활용하여 쿼리를 제공할 자동화된 어시스턴트를 결정할 수 있다. 쿼리에 대한 컨텍스트는 예를 들어 하나 이상의 컴퓨팅 디바이스를 통해 사용자에게 현재 제시되는 이미지 및/또는 인터페이스, 쿼리를 제공할 때 사용자가 액세스하고 있는 현재 애플리케이션, 사용자가 쿼리를 제공한 시간 및/또는 쿼리를 다른 세컨더리 자동화된 어시스턴트에 제공하는 대신 쿼리를 세컨더리 자동화된 어시스턴트에 제공하려는 사용자의 의도를 표시할 수 있는 하나 이상의 다른 사용자 또는 디바이스 피처를 포함할 수 있다.
도 4b를 다시 참조하면, 블록(455)에서 가장 높은 순위를 받은 후보 세컨더리 자동화된 어시스턴트에 쿼리가 제공될 수 있다. 결정 블록(460)에서, 선택된 세컨더리 자동화된 어시스턴트가 쿼리를 성공적으로 프로세싱하면, 세컨더리 자동화된 어시스턴트와의 인터렉션이 데이터베이스(320)에 저장된다(블록 465). 선택된 자동화된 어시스턴트가 쿼리를 성공적으로 프로세싱하지 못하는 경우(예를 들어, 응답을 생성할 수 없거나, 의도된 액션을 수행하지 못하는 경우), 블록(470)에서, 쿼리는 다음으로 높은 순위의 후보 자동화된 어시스턴트에 제공될 수 있다. 이는 모든 후보 자동화된 어시스턴트가 쿼리를 비성공적으로 제공받을 때까지 및/또는 후보 세컨더리 자동화된 어시스턴트가 쿼리를 성공적으로 프로세싱할 때까지 계속될 수 있다.
일부 구현예에서, 다른 세컨더리 자동화된 어시스턴트에 제공되었던 이전 쿼리와 관련되어 있다고 결정된 쿼리가 세컨더리 자동화된 어시스턴트에 처음으로 제공될 때, 이전 쿼리의 컨텍스트가 쿼리와 함께 제공될 수 있다. 예를 들어, "how tall is the president"라는 초기 쿼리의 경우, 쿼리가 "the president"과 관련되었다는 표시를 포함하는 텍스트 컨텍스트가 데이터베이스(320)에 저장될 수 있다. 이후, "how many kids does he have"라는 쿼리가 수신되어, 제1 쿼리와 다른 세컨더리 자동화된 어시스턴트에게 제공되면, "the president"라는 텍스트 컨텍스트가 제공되어 후속 쿼리에서 세컨더리 자동화된 어시스턴트가 "he"를 해결하는데 도움을 줄 수 있다. 일부 구현예에서, 하루 중 시간, 하나 이상의 컴퓨팅 디바이스의 상태, 사용자에 의해 현재 실행 중인 애플리케이션, 및/또는 이전 쿼리 및/또는 이전 쿼리 및/또는 선택된 세컨더리 자동화된 어시스턴트가 제공된 쿼리에서 하나 이상의 용어를 해결하는데 도움을 줄 수 있는 현재 쿼리 둘 중 하나의 다른 컨텍스트와 같은 다른 컨텍스트 정보가 후속 쿼리와 함께 제공될 수 있다.
도 6은 다른 자동화된 어시스턴트에 쿼리를 제공하는 대신에 세컨더리 자동화된 어시스턴트에 쿼리를 제공하는 또 다른 예시적 방법(600)을 도시하는 흐름도를 도시한다. 편의상, 방법(600)의 동작은 동작을 수행하는 시스템을 참조하여 기술된다. 방법(600)의 이 시스템은 하나 이상의 프로세서 및/또는 클라이언트 디바이스의 다른 컴포넌트(들)를 포함한다. 추가로, 방법(600)의 동작이 특정한 순서로 도시되었지만, 이는 그러한 제한을 의미하지 않는다. 하나 이상의 동작은 재순서화, 생략 또는 추가될 수 있다.
단계(605)에서, 프라이머리 어시스턴트에 의해 호출이 수신된다. 일부 구현예에서, 호출은 프라이머리 자동화된 어시스턴트를 비활성 상태(예를 들어, 들어오는 음성 발화를 프로세싱하지 않음)에서 활성 상태로 전환하는 음성 발화일 수 있다. 일부 구현예에서, 호출은 사용자의 제스처, 사용자가 클라이언트 디바이스 및/또는 클라이언트 디바이스의 인터페이스를 통해 버튼을 선택하는 것, 및/또는 프라이머리 자동화된 어시스턴트를 활성화하는데 있어서 사용자의 관심을 나타내는 하나 이상의 다른 액션을 포함할 수 있다.
일부 구현예에서, 프라이머리 자동화된 어시스턴트는 프라이머리 자동화된 어시스턴트(305)와 하나 이상의 특성을 공유할 수 있다. 예를 들어, 일부 구현예에서, 프라이머리 자동화된 어시스턴트는 하나 이상의 마이크를 통해 음성 발화를 수신하고, 음성 발화를 프로세싱할 세컨더리 자동화된 어시스턴트를 결정할 수 있다. 일부 구현예에서, 프라이머리 자동화된 어시스턴트는 프라이머리 자동화된 어시스턴트가 음성 쿼리 및/또는 다른 발화에 대한 응답을 생성할 수 있게 하는 쿼리 프로세싱 엔진을 포함할 수 있다. 일부 구현예에서, 프라이머리 자동화된 어시스턴트는 ASR, TTS, NLU와 같은 음성 발화의 프로세싱 및/또는 음성 발화의 내용을 결정하기 위한 다른 프로세싱을 수행할 수 있다.
일부 구현예에서, 호출은 오디오 데이터가 제공되는 특정 세컨더리 자동화된 어시스턴트를 나타낼 수 있다. 예를 들어, 프라이머리 자동화된 어시스턴트는 "OK Assistant"와 같은 일반 호출에 의해 호출될 수 있으며 "OK Assistant A"와 같은 특정 자동화된 어시스턴트를 나타내는 세컨더리 호출로 추가로 호출될 수 있다. 이 경우, 일반 자동화된 어시스턴트는 다른 세컨더리 자동화된 어시스턴트에 오디오 데이터를 제공하는 대신 "어시스턴트 A"에게 오디오를 구체적으로 제공할 수 있다(또는 오디오 데이터의 표시를 제공). 추가적으로 또는 대안적으로, 호출이 특정 자동화된 어시스턴트를 나타내는 경우, 어느 자동화된 어시스턴트에 오디오 데이터를 제공할지 결정할 때 호출은 하나 이상의 다른 신호와 함께 활용되어 자동화된 어시스턴트의 순위를 매길 수 있다.
단계(610)에서, 프라이머리 어시스턴트에 의해 음성 쿼리가 수신된다. 일부 구현예에서, 음성 쿼리는 자동화된 어시스턴트가 하나 이상의 액션을 수행하게 하는 요청을 포함할 수 있다. 예를 들어, 사용자는 제기된 질문에 대한 답변을 포함하는 응답을 수신할 의도로 "How tall is the president"라는 음성 쿼리를 제출할 수 있다. 또한, 예를 들어, 사용자는 하나 이상의 스마트 조명이 켜짐에서 꺼짐으로 전환하려는 의도로 "turn off the lights"라는 음성 쿼리를 제출할 수 있다.
단계(615)에서, 사용자의 이력 데이터가 식별된다. 이력적 데이터는 하나 이상의 세컨더리 자동화된 어시스턴트와 관련된 정보 및 각 세컨더리 자동화된 어시스턴트에 의해 프로세싱된 쿼리를 포함할 수 있다. 예를 들어, 이력적 데이터는 쿼리의 텍스트 표현, 쿼리가 프로세싱된 시점에 대한 콘텐츠, 쿼리에 대한 응답을 생성한 자동화된 어시스턴트, 생성된 응답 및/또는 하나 이상의 자동화된 어시스턴트와 사용자의 이력적 인터렉션에 대한 기타 표시를 포함할 수 있다.
단계(620)에서, 이력적 인터렉션의 적어도 일부와 음성 쿼리 사이의 관계가 결정된다. 일부 구현예에서, 관계는 세컨더리 자동화된 어시스턴트 중 하나 이상과 사용자의 이전 인터렉션을 식별하는 것, 현재 쿼리에 기초하여 어떤 세컨더리 어시스턴트가 현재 쿼리와 가장 유사한 이전 쿼리를 프로세싱했는지 결정하는 것에 기초하여 결정될 수 있다. 예를 들어, 사용자가 "How tall is the president"라는 이전 쿼리를 제출했을 수 있다. 그 후, 사용자는 "How many kids does he have"라는 질문을 제출할 수 있으며, "he"는 "the president"을 지칭한다. 제1 쿼리 다음에 오는 제2 쿼리의 컨텍스트(즉시 또는 하나 이상의 중간 쿼리와 함께)에 기초하여, 쿼리 간의 관계가 결정될 수 있다. 또한, 이전 쿼리에 관해 데이터베이스에 저장된 표시에 기초하여, 제1 쿼리에 대한 응답을 생성한 동일한 세컨더리 자동화된 어시스턴트가 식별되어 제2 쿼리가 동일한 자동화된 어시스턴트에 제공될 수 있다.
단계(625)에서, 음성 쿼리를 포함하는 오디오 데이터가 세컨더리 자동화된 어시스턴트에 제공된다. 일부 구현예에서, 오디오 데이터는 오디오 데이터의 전사로서 제공될 수 있다. 예를 들어, 일반 자동화된 어시스턴트는 오디오 데이터에 대한 스피치 인식을 수행하고 세컨더리 자동화된 어시스턴트에 전사를 제공할 수 있다. 일부 구현예에서, 오디오 데이터는 특정 세컨더리 자동화된 어시스턴트에 의해 프로세싱될 수 있는 오디오(예를 들어, 원시 오디오 데이터 및/또는 사전 프로세싱된 오디오 데이터)로서 제공될 수 있다.
도 7은 본 명세서에 기술된 기법들의 하나 이상의 양태들을 수행하기 위해 선택적으로 활용될 수 있는 예시적 컴퓨팅 디바이스(710)의 블록도이다. 컴퓨팅 디바이스(710)는 일반적으로 적어도 하나의 프로세서(714)를 포함하며, 버스 서브시스템(712)을 통해 다수의 주변 디바이스들과 통신한다. 이들 주변 디바이스들은 예를 들면, 메모리 서브시스템(725) 및 파일 저장 서브시스템(726)을 포함하는 저장 서브시스템(724), 사용자 인터페이스 출력 디바이스(720), 사용자 인터페이스 입력 디바이스(722) 및 네트워크 인터페이스 서브시스템(716)을 포함할 수 있다. 입력 및 출력 디바이스는 컴퓨팅 디바이스(710)와 사용자 인터렉션을 하게 한다. 네트워크 인터페이스 서브시스템(716)은 외부 네트워크에 대한 인터페이스를 제공하며, 다른 컴퓨팅 디바이스들의 대응하는 인터페이스 디바이스들과 연결된다.
사용자 인터페이스 입력 디바이스(722)는 키보드, 마우스, 트랙볼, 터치패드 또는 그래픽 태블릿, 스캐너, 디스플레이에 통합된 터치스크린과 같은 포인팅 디바이스, 음성 인식 시스템, 마이크로폰과 같은 오디오 입력 디바이스 및/또는 다른 유형의 입력 디바이스를 포함한다. 일반적으로, 용어 “입력 디바이스”의 사용은 정보를 컴퓨팅 디바이스(710) 또는 통신 네트워크에 입력하기 위한 모든 가능한 유형의 디바이스들과 방식들을 포함하도록 의도된다.
사용자 인터페이스 출력 디바이스(720)는 디스플레이 서브시스템, 프린터, 팩스 기계 또는 오디오 출력 디바이스와 같은 비-시각적 디스플레이를 포함할 수 있다. 디스플레이 서브시스템은 CRT, LCD와 같은 평면 패널 디바이스, 프로젝션 디바이스 또는 시각적 이미지를 생성하기 위한 일부 기타 메커니즘을 포함할 수 있다. 또한, 디스플레이 서브시스템은 오디오 출력 디바이스와 같은 비-시각적 디스플레이를 제공할 수 있다. 일반적으로, 용어 “출력 디바이스”의 사용은 정보를 컴퓨팅 디바이스(710)로부터 사용자에게 또는 다른 기계 또는 컴퓨팅 디바이스에 정보를 출력하기 위한 모든 가능한 유형의 디바이스들과 방식들을 포함하도록 의도된다.
저장 서브시스템(724)은 본 명세서에 기술된 일부 또는 전부의 모듈들의 기능을 제공하기 위한 프로그래밍 및 데이터 구조를 저장한다. 예를 들면, 저장 서브시스템(724)은 도 5 및/또는 도 6 방법들 중 선택된 양태를 수행하고 및/또는 도 2 및 도 3에 도시된 다양한 컴포넌트를 구현하기 위한 로직을 포함할 수 있다.
이들 소프트웨어 모듈들은 일반적으로 프로세서(714) 단독으로 또는 다른 프로세서들과의 조합에 의해 실행된다. 저장 서브시스템(724)에서 사용된 메모리(725)는 프로그램 실행 중에 명령어들 및 데이터의 저장을 위한 메인 RAM(730) 및 고정된 명령어들이 저장되는 ROM(732)을 포함하는 다수의 메모리들을 포함할 수 있다. 파일 저장 서브시스템(726)은 프로그램 및 데이터 파일에 대한 영구적 저장을 제공할 수 있고, 하드 디스크 드라이브, 연관된 이동식 매체와 함께인 플로피 디스크 드라이브, CD-ROM 드라이브, 광학 드라이브 또는 이동식 매체 카트리지들을 포함할 수 있다. 특정 구현예들의 기능을 구현하는 모듈들은 파일 저장 서브시스템(726)에 의해 저장 서브시스템(724)에 또는 프로세서(들)(714)에 의해 액세스가능한 다른 기계에 저장될 수 있다.
버스 서브시스템(712)은 의도된 대로 컴퓨팅 디바이스(710)의 다양한 컴포넌트들 및 서브시스템들이 서로 통신하게 하기 위한 메커니즘을 제공한다. 버스 서브시스템(712)이 개략적으로 단일의 버스로 도시되었지만, 버스 서브시스템의 대안적 구현예들은 다수의 버스들을 사용할 수 있다.
컴퓨팅 디바이스(710)는 워크스테이션, 서버, 컴퓨팅 클러스터, 블레이드 서버, 서퍼팜 또는 임의의 기타 데이터 프로세싱 시스템 또는 컴퓨팅 디바이스를 포함하는 다양한 유형들일 수 있다. 컴퓨터 및 네트워크의 끊임없이 변화하는 특성으로 인해, 도 7에 도시된 컴퓨팅 디바이스(710)는 일부 구현예를 설명하기 위한 목적의 특정 예로서만 의도된다. 컴퓨팅 디바이스(710)의 많은 다른 구성이 도 7에 도시된 컴퓨팅 디바이스보다 많거나 적은 컴포넌트를 가질 수 있다.
일부 구현예에서, 하나 이상의 프로세서들에 의해 구현되는 방법이 제공되고 상기 방법은 일반 자동화된 어시스턴트에 의해 호출을 수신하는 단계, 상기 호출 수신은 상기 일반 자동화된 어시스턴트가 호출되게 하며; 상기 호출된 일반 자동화된 어시스턴트를 통해, 클라이언트 디바이스의 하나 이상의 마이크에 의해 생성된 오디오 데이터에서 캡처된 음성 쿼리를 수신하는 단계; 사용자의 이력적 인터렉션 데이터를 식별하는 단계, 상기 이력적 인터렉션 데이터는 사용자의 하나 이상의 과거 쿼리와 상기 하나 이상의 과거 쿼리에 응답하여 그리고 시간 기간 내에 복수의 세컨더리 자동화된 어시스턴트들에 의해 생성된 하나 이상의 응답에 기초하여 생성되며; 및 상기 음성 쿼리의 전사를 이력적 인터렉션 데이터와 비교하는 것에 기초하여, 상기 음성 쿼리와 상기 복수의 세컨더리 자동화된 어시스턴트들 중 특정 자동화된 어시스턴트와 연관된 이력적 인터렉션 데이터의 일 부분 사이에 관계가 있음을 결정하는 단계를 포함한다. 상기 음성 쿼리가 상기 특정 자동화된 어시스턴트와 관계가 있다는 결정에 응답하여, 상기 방법은: 상기 세컨더리 자동화된 어시스턴트들 중 임의의 것에 제공하는 대신 상기 특정 자동화된 어시스턴트에게 오디오 데이터의 표시를 제공하는 단계를 포함하며, 상기 오디오 데이터의 표시의 제공은 상기 특정 자동화된 어시스턴트로 하여금 상기 음성 쿼리에 대한 응답을 생성하게 한다.
본 명세서에서 논의된 기술의 이들 또는 다른 구현예들은 다음 구성들 중 하나 이상을 포함할 수 있다.
일부 구현예에서, 상기 방법은 상기 이력적 인터렉션 데이터에 기초하여, 상기 음성 쿼리와 상기 복수의 세컨더리 자동화된 어시스턴트들 중 제2 특정 자동화된 어시스턴트와 연관된 이력적 인터렉션 데이터의 추가 부분 사이에 추가 관계가 있음을 결정하는 단계; 상기 이력적 인터렉션 데이터에 기초하여, 상기 사용자와 상기 제2 특정 자동화된 어시스턴트의 제2 어시스턴트 이력적 인터렉션에 대한 제2 어시스턴트 시간을 결정하는 단계; 상기 이력적 인터렉션 데이터에 기초하여, 상기 사용자와 상기 특정 자동화된 어시스턴트의 제1 어시스턴트 이력적 인터렉션에 대한 제1 어시스턴트 시간을 결정하는 단계; 상기 제1 어시스턴트 시간 및 상기 제2 어시스턴트 시간에 기초하여 상기 특정 자동화된 어시스턴트와 상기 제2 특정 자동화된 어시스턴트의 순위를 매기는 단계; 및 상기 순위에 기초하여 상기 특정 자동화된 어시스턴트를 선택하는 단계를 더 포함하고, 상기 세컨더리 자동화된 어시스턴트들 중 임의의 것에 제공하는 대신 상기 특정 자동화된 어시스턴트에게 오디오 데이터의 표시를 제공하는 단계는 상기 순위에 기초하여 상기 특정 자동화된 어시스턴트를 선택하는 것에 추가로 기초한다. 상기 구현예들 중 일부에서, 상기 방법은: 상기 관계에 대한 제1 유사성 점수 및 상기 추가 관계에 대한 제2 유사성 점수를 결정하는 단계를 더 포함하고, 상기 특정 자동화된 어시스턴트와 상기 제2 특정 자동화된 어시스턴트의 순위를 매기는 단계는 상기 제1 유사성 점수 및 상기 제2 유사성 점수에 추가로 기초한다.
일부 구현예에서, 상기 방법은 음성 쿼리의 분류를 결정하는 단계를 더 포함하고, 상기 음성 쿼리의 전사를 상기 특정 자동화된 어시스턴트에 제공하는 것은 상기 분류에 추가로 기초한다. 상기 구현예들 중 일부에서, 상기 방법은: 상기 이력적 인터렉션 데이터에 기초하여, 상기 분류를 갖는 과거 쿼리 중 하나 이상에 대해 상기 특정 자동화된 어시스턴트를 활용하기 위한 사용자의 표시된 선호를 식별하는 단계를 더 포함하고, 상기 특정 자동화된 어시스턴트에 오디오 데이터를 제공하는 것은 상기 사용자 선호에 추가로 기초한다. 상기 구현예들 중 일부에서, 상기 방법은: 상기 특정 자동화된 어시스턴트에 오디오 데이터를 제공하는 일반 자동화된 어시스턴트의 표시를 생성하는 단계; 및 상기 분류의 표시와 함께 상기 표시를 저장하는 단계를 더 포함한다. 상기 인스턴스 중 일부에서, 방법은 상기 오디오 데이터에 대한 현재 컨텍스트를 결정하는 단계; 및 상기 특정 자동화된 어시스턴트에 오디오 데이터를 제공하는 일반 자동화된 어시스턴트의 표시와 함께 현재 컨텍스트를 저장하는 단계를 더 포함한다.
일부 구현예에서, 상기 특정 자동화된 어시스턴트는 상기 오디오 데이터의 표시에 대해 자동 스피치 인식을 수행하여 상기 오디오 데이터의 텍스트 표현을 생성하고, 상기 텍스트 표현의 자연어 프로세싱을 생성하고, 상기 자연어 프로세싱에 기초하여 응답을 생성한다. 상기 구현예들 중 일부에서, 응답을 생성하는 것은 상기 자연어 프로세싱 결과를 서드파티 애플리케이션에 제공하는 것; 상기 서드파티 애플리케이션으로부터 응답을 수신하는 것; 및 상기 서드파티로부터의 응답에 적어도 부분적으로 기초하여 상기 응답을 생성하는 것을 포함한다.
일부 구현예에서, 상기 호출은 상기 특정 자동화 어시스턴트를 나타내며, 상기 오디오 데이터의 표시는 상기 오디오 데이터의 오디오 표현이다.
본 명세서에서 논의된 특정 구현예들이 사용자에 관한 개인 정보(예를 들어, 다른 전자 통신으로부터 추출된 사용자 데이터, 사용자의 소셜 네트워크에 관한 정보, 사용자의 위치, 사용자의 시간, 사용자의 생체 정보 및 사용자의 활동 및 인구통계적 정보, 사용자들 간의 관계 등)를 수집하거나 사용하는 상황들에서, 사용자에게 정보가 수집될지 여부, 개인정보가 저장될지 여부, 개인 정보가 사용될지 여부 및 사용자에 관한 정보가 어떻게 수집되고 저장되고 사용될지를 제어하기 위한 하나 이상의 기회들이 제공된다. 즉, 본 명세서에서 논의된 시스템 및 방법은 관련된 사용자로부터 명시적 허가를 수신함에 따라서만 사용자 개인 정보를 수집하고 저장 및/또는 사용한다.
예를 들면, 프로그램 또는 구성이 그 특정한 사용자 또는 프로그램 또는 구성과 관련된 다른 사용자에 관한 사용자 정보를 수집할지 여부에 관한 제어권이 사용자에게 제공된다. 개인정보가 수집될 각 사용자에게 그 사용자에 관한 정보 수집에 대해 제어하게 하고, 정보가 수집될지 여부에 관한 그리고 정보의 어떤 부분이 수집될지 허가 또는 인가를 제공하기 위한 하나 이상의 옵션들이 제시된다. 예를 들면, 통신 네트워크를 통해 사용자들에게 하나 이상의 상기 제어 옵션들이 제공될 수 있다. 추가로, 특정 데이터는 그것이 저장되거나 사용되기 전에 하나 이상의 다양한 방식들로 취급되어, 개인적으로 식별가능한 정보는 제거된다. 일 예시로서, 사용자의 신원은 개인적으로 식별가능한 정보가 결정될 수 없도록 취급될 수 있다. 다른 예시로서, 사용자의 지리적 위치는 넓은 지역으로 일반화되어 사용자의 특정한 위치가 결정될 수 없도록 한다.
몇몇 구현예가 본 명세서에서 기술되고 도시되었지만, 기능을 수행하고 및/또는 결과 및/또는 본 명세서에 기술된 하나 이상의 이점을 획득하기 위한 다양한 다른 수단들 및/또는 구조들이 활용될 수 있으며, 그러한 변형들 및/또는 수정들은 본 명세서에서 기술된 구현예들의 범위 내에 있는 것으로 간주된다. 보다 일반적으로, 본 명세서에 기술된 모든 파라미터, 치수, 재료 및 구성은 예시적인 것으로 의도되었으며, 실제 파라미터, 치수, 재료 및/또는 구성은 교시를 사용되는 특정 애플리케이션 또는 애플리케이션들에 의존할 것이다. 통상의 기술자는 일상적인 실험만을 사용하여 본 명세서에 기술된 특정 구현예들에 대한 많은 균등물들을 인식할 수 있거나 또는 확인할 수 있을 것이다. 따라서, 전술한 구현예들은 단지 예일 뿐이며, 첨부된 청구범위 및 그 균등물의 범위 내에서 구현은 구체적으로 기술되고 청구된 것과 다르게도 실시될 수 있음을 이해해야 한다. 본 개시의 구현은 본 명세서에 기술된 각각의 개별적인 구성, 시스템, 물품, 재료, 키트 및/또는 방법에 관한 것이다. 또한 구성, 시스템, 물품, 재료, 키트 및/또는 방법이 상호 불일치하지 않는다면, 그러한 두 개 이상의 구성, 시스템, 물품, 재료, 키트 및/또는 방법의 모든 조합이 본 발명의 범위 내에 포함된다.

Claims (20)

  1. 클라이언트 디바이스의 하나 이상의 프로세서에 의해 수행되는 방법으로서,
    일반 자동화된 어시스턴트에 의해 호출을 수신하는 단계, 상기 호출 수신은 상기 일반 자동화된 어시스턴트가 호출되게 하며;
    상기 호출된 일반 자동화된 어시스턴트를 통해, 클라이언트 디바이스의 하나 이상의 마이크에 의해 생성된 오디오 데이터에서 캡처된 음성 쿼리를 수신하는 단계;
    사용자의 이력적 인터렉션 데이터를 식별하는 단계, 상기 이력적 인터렉션 데이터는 사용자의 하나 이상의 과거 쿼리와 상기 하나 이상의 과거 쿼리에 응답하여 그리고 시간 기간 내에 복수의 세컨더리 자동화된 어시스턴트들에 의해 생성된 하나 이상의 응답에 기초하여 생성되며;
    상기 음성 쿼리의 전사를 이력적 인터렉션 데이터와 비교하는 것에 기초하여, 상기 음성 쿼리와 상기 복수의 세컨더리 자동화된 어시스턴트들 중 특정 자동화된 어시스턴트와 연관된 이력적 인터렉션 데이터의 일 부분 사이에 관계가 있음을 결정하는 단계;
    상기 음성 쿼리가 상기 특정 자동화된 어시스턴트와 관계가 있다는 결정에 응답하여:
    상기 세컨더리 자동화된 어시스턴트들 중 임의의 것에 제공하는 대신 상기 특정 자동화된 어시스턴트에게 오디오 데이터의 표시를 제공하는 단계를 포함하며, 상기 오디오 데이터의 표시의 제공은 상기 특정 자동화된 어시스턴트로 하여금 상기 음성 쿼리에 대한 응답을 생성하게 하는, 방법.
  2. 청구항 1에 있어서,
    상기 이력적 인터렉션 데이터에 기초하여, 상기 음성 쿼리와 상기 복수의 세컨더리 자동화된 어시스턴트들 중 제2 특정 자동화된 어시스턴트와 연관된 이력적 인터렉션 데이터의 추가 부분 사이에 추가 관계가 있음을 결정하는 단계;
    상기 이력적 인터렉션 데이터에 기초하여, 상기 사용자와 상기 제2 특정 자동화된 어시스턴트의 제2 어시스턴트 이력적 인터렉션에 대한 제2 어시스턴트 시간을 결정하는 단계;
    상기 이력적 인터렉션 데이터에 기초하여, 상기 사용자와 상기 특정 자동화된 어시스턴트의 제1 어시스턴트 이력적 인터렉션에 대한 제1 어시스턴트 시간을 결정하는 단계;
    상기 제1 어시스턴트 시간 및 상기 제2 어시스턴트 시간에 기초하여 상기 특정 자동화된 어시스턴트와 상기 제2 특정 자동화된 어시스턴트의 순위를 매기는 단계; 및
    상기 순위에 기초하여 상기 특정 자동화된 어시스턴트를 선택하는 단계를 더 포함하고,
    상기 세컨더리 자동화된 어시스턴트들 중 임의의 것에 제공하는 대신 상기 특정 자동화된 어시스턴트에게 오디오 데이터의 표시를 제공하는 단계는 상기 순위에 기초하여 상기 특정 자동화된 어시스턴트를 선택하는 것에 추가로 기초하는, 방법.
  3. 청구항 2에 있어서,
    상기 관계에 대한 제1 유사성 점수 및 상기 추가 관계에 대한 제2 유사성 점수를 결정하는 단계를 더 포함하고, 상기 특정 자동화된 어시스턴트와 상기 제2 특정 자동화된 어시스턴트의 순위를 매기는 단계는 상기 제1 유사성 점수 및 상기 제2 유사성 점수에 추가로 기초하는, 방법.
  4. 임의의 선행하는 청구항에 있어서,
    음성 쿼리의 분류를 결정하는 단계를 더 포함하고, 상기 음성 쿼리의 전사를 상기 특정 자동화된 어시스턴트에 제공하는 것은 상기 분류에 추가로 기초하는, 방법.
  5. 청구항 4에 있어서,
    상기 이력적 인터렉션 데이터에 기초하여, 상기 분류를 갖는 과거 쿼리 중 하나 이상에 대해 상기 특정 자동화된 어시스턴트를 활용하기 위한 사용자의 표시된 선호를 식별하는 단계를 더 포함하고, 상기 특정 자동화된 어시스턴트에 오디오 데이터를 제공하는 것은 상기 사용자 선호에 추가로 기초하는, 방법.
  6. 청구항 4에 있어서,
    상기 특정 자동화된 어시스턴트에 오디오 데이터를 제공하는 일반 자동화된 어시스턴트의 표시를 생성하는 단계; 및
    상기 분류의 표시와 함께 상기 표시를 저장하는 단계를 더 포함하는, 방법.
  7. 청구항 6에 있어서,
    상기 오디오 데이터에 대한 현재 컨텍스트를 결정하는 단계; 및
    상기 특정 자동화된 어시스턴트에 오디오 데이터를 제공하는 일반 자동화된 어시스턴트의 표시와 함께 현재 컨텍스트를 저장하는 단계를 더 포함하는, 방법.
  8. 임의의 선행하는 청구항에 있어서, 상기 특정 자동화된 어시스턴트는 상기 오디오 데이터의 표시에 대해 자동 스피치 인식을 수행하여 상기 오디오 데이터의 텍스트 표현을 생성하고, 상기 텍스트 표현의 자연어 프로세싱을 생성하고, 상기 자연어 프로세싱에 기초하여 응답을 생성하는, 방법.
  9. 청구항 8에 있어서, 상기 응답을 생성하는 것은:
    상기 자연어 프로세싱 결과를 서드파티 애플리케이션에 제공하는 것;
    상기 서드파티 애플리케이션으로부터 응답을 수신하는 것; 및
    상기 서드파티로부터의 응답에 적어도 부분적으로 기초하여 상기 응답을 생성하는 것을 포함하는, 방법.
  10. 임의의 선행하는 청구항에 있어서, 상기 호출은 상기 특정 자동화된 어시스턴트를 나타내고, 상기 오디오 데이터의 표시는 상기 오디오 데이터의 오디오 표현인, 방법.
  11. 하나 이상의 프로세서 및 명령어를 저장하는 메모리를 포함하는 시스템으로서, 상기 명령어는 상기 하나 이상의 프로세서에 의한 실행에 응답하여, 상기 하나 이상의 프로세서로 하여금 동작들을 수행하게 하며, 상기 동작들은:
    일반 자동화된 어시스턴트에 의해 호출을 수신하는 동작, 상기 호출 수신은 상기 일반 자동화된 어시스턴트가 호출되게 하며;
    상기 호출된 일반 자동화된 어시스턴트를 통해, 클라이언트 디바이스의 하나 이상의 마이크에 의해 생성된 오디오 데이터에서 캡처된 음성 쿼리를 수신하는 동작;
    사용자의 이력적 인터렉션 데이터를 식별하는 동작, 상기 이력적 인터렉션 데이터는 사용자의 하나 이상의 과거 쿼리와 상기 하나 이상의 과거 쿼리에 응답하여 그리고 시간 기간 내에 복수의 세컨더리 자동화된 어시스턴트들에 의해 생성된 하나 이상의 응답에 기초하여 생성되며;
    상기 음성 쿼리의 전사를 이력적 인터렉션 데이터와 비교하는 것에 기초하여, 상기 음성 쿼리와 상기 복수의 세컨더리 자동화된 어시스턴트들 중 특정 자동화된 어시스턴트와 연관된 이력적 인터렉션 데이터의 일 부분 사이에 관계가 있음을 결정하는 동작;
    상기 음성 쿼리가 상기 특정 자동화된 어시스턴트와 관계가 있다는 결정에 응답하여:
    상기 세컨더리 자동화된 어시스턴트들 중 임의의 것에 제공하는 대신 상기 특정 자동화된 어시스턴트에게 오디오 데이터의 표시를 제공하는 동작을 포함하며, 상기 오디오 데이터의 표시의 제공은 상기 특정 자동화된 어시스턴트로 하여금 상기 음성 쿼리에 대한 응답을 생성하게 하는, 시스템.
  12. 청구항 11에 있어서,
    상기 이력적 인터렉션 데이터에 기초하여, 상기 음성 쿼리와 상기 복수의 세컨더리 자동화된 어시스턴트들 중 제2 특정 자동화된 어시스턴트와 연관된 이력적 인터렉션 데이터의 추가 부분 사이에 추가 관계가 있음을 결정하는 동작;
    상기 이력적 인터렉션 데이터에 기초하여, 상기 사용자와 상기 제2 특정 자동화된 어시스턴트의 제2 어시스턴트 이력적 인터렉션에 대한 제2 어시스턴트 시간을 결정하는 동작;
    상기 이력적 인터렉션 데이터에 기초하여, 상기 사용자와 상기 특정 자동화된 어시스턴트의 제1 어시스턴트 이력적 인터렉션에 대한 제1 어시스턴트 시간을 결정하는 동작;
    상기 제1 어시스턴트 시간 및 상기 제2 어시스턴트 시간에 기초하여 상기 특정 자동화된 어시스턴트와 상기 제2 특정 자동화된 어시스턴트의 순위를 매기는 동작; 및
    상기 순위에 기초하여 상기 특정 자동화된 어시스턴트를 선택하는 동작을 더 포함하고,
    상기 세컨더리 자동화된 어시스턴트들 중 임의의 것에 제공하는 대신 상기 특정 자동화된 어시스턴트에게 오디오 데이터의 표시를 제공하는 동작은 상기 순위에 기초하여 상기 특정 자동화된 어시스턴트를 선택하는 것에 추가로 기초하는, 시스템.
  13. 청구항 11 또는 12에 있어서, 상기 특정 자동화된 어시스턴트는 상기 오디오 데이터의 표시에 대해 자동 스피치 인식을 수행하여 상기 오디오 데이터의 텍스트 표현을 생성하고, 상기 텍스트 표현의 자연어 프로세싱을 생성하고, 상기 자연어 프로세싱에 기초하여 응답을 생성하는, 시스템.
  14. 청구항 13에 있어서, 상기 응답을 생성하는 것은:
    상기 자연어 프로세싱 결과를 서드파티 애플리케이션에 제공하는 것;
    상기 서드파티 애플리케이션으로부터 응답을 수신하는 것; 및
    상기 서드파티로부터의 응답에 적어도 부분적으로 기초하여 상기 응답을 생성하는 것을 포함하는, 시스템.
  15. 청구항 11 내지 14 중 어느 한 항에 있어서, 상기 호출은 상기 특정 자동화된 어시스턴트를 나타내고, 상기 오디오 데이터의 표시는 상기 오디오 데이터의 오디오 표현인, 시스템.
  16. 명령어를 포함하는 적어도 하나의 비일시적 컴퓨터 판독가능 매체로서, 상기 명령어는 하나 이상의 프로세서에 의한 명령어의 실행에 응답하여, 상기 하나 이상의 프로세서로 하여금 동작들을 수행하게 하며, 상기 동작들은:
    일반 자동화된 어시스턴트에 의해 호출을 수신하는 동작, 상기 호출 수신은 상기 일반 자동화된 어시스턴트가 호출되게 하며;
    상기 호출된 일반 자동화된 어시스턴트를 통해, 클라이언트 디바이스의 하나 이상의 마이크에 의해 생성된 오디오 데이터에서 캡처된 음성 쿼리를 수신하는 동작;
    사용자의 이력적 인터렉션 데이터를 식별하는 동작, 상기 이력적 인터렉션 데이터는 사용자의 하나 이상의 과거 쿼리와 상기 하나 이상의 과거 쿼리에 응답하여 그리고 시간 기간 내에 복수의 세컨더리 자동화된 어시스턴트들에 의해 생성된 하나 이상의 응답에 기초하여 생성되며;
    상기 음성 쿼리의 전사를 이력적 인터렉션 데이터와 비교하는 것에 기초하여, 상기 음성 쿼리와 상기 복수의 세컨더리 자동화된 어시스턴트들 중 특정 자동화된 어시스턴트와 연관된 이력적 인터렉션 데이터의 일 부분 사이에 관계가 있음을 결정하는 동작;
    상기 음성 쿼리가 상기 특정 자동화된 어시스턴트와 관계가 있다는 결정에 응답하여:
    상기 세컨더리 자동화된 어시스턴트들 중 임의의 것에 제공하는 대신 상기 특정 자동화된 어시스턴트에게 오디오 데이터의 표시를 제공하는 동작을 포함하며, 상기 오디오 데이터의 표시의 제공은 상기 특정 자동화된 어시스턴트로 하여금 상기 음성 쿼리에 대한 응답을 생성하게 하는, 적어도 하나의 비일시적 컴퓨터 판독가능 매체.
  17. 청구항 16에 있어서,
    상기 이력적 인터렉션 데이터에 기초하여, 상기 음성 쿼리와 상기 복수의 세컨더리 자동화된 어시스턴트들 중 제2 특정 자동화된 어시스턴트와 연관된 이력적 인터렉션 데이터의 추가 부분 사이에 추가 관계가 있음을 결정하는 동작;
    상기 이력적 인터렉션 데이터에 기초하여, 상기 사용자와 상기 제2 특정 자동화된 어시스턴트의 제2 어시스턴트 이력적 인터렉션에 대한 제2 어시스턴트 시간을 결정하는 동작;
    상기 이력적 인터렉션 데이터에 기초하여, 상기 사용자와 상기 특정 자동화된 어시스턴트의 제1 어시스턴트 이력적 인터렉션에 대한 제1 어시스턴트 시간을 결정하는 동작;
    상기 제1 어시스턴트 시간 및 상기 제2 어시스턴트 시간에 기초하여 상기 특정 자동화된 어시스턴트와 상기 제2 특정 자동화된 어시스턴트의 순위를 매기는 동작; 및
    상기 순위에 기초하여 상기 특정 자동화된 어시스턴트를 선택하는 동작을 더 포함하고,
    상기 세컨더리 자동화된 어시스턴트들 중 임의의 것에 제공하는 대신 상기 특정 자동화된 어시스턴트에게 오디오 데이터의 표시를 제공하는 동작은 상기 순위에 기초하여 상기 특정 자동화된 어시스턴트를 선택하는 것에 추가로 기초하는, 적어도 하나의 비일시적 컴퓨터 판독가능 매체.
  18. 청구항 16 또는 17에 있어서, 상기 특정 자동화된 어시스턴트는 상기 오디오 데이터의 표시에 대해 자동 스피치 인식을 수행하여 상기 오디오 데이터의 텍스트 표현을 생성하고, 상기 텍스트 표현의 자연어 프로세싱을 생성하고, 상기 자연어 프로세싱에 기초하여 응답을 생성하는, 적어도 하나의 비일시적 컴퓨터 판독가능 매체.
  19. 청구항 16 내지 18 중 어느 한 항에 있어서, 상기 응답을 생성하는 것은:
    상기 자연어 프로세싱 결과를 서드파티 애플리케이션에 제공하는 것;
    상기 서드파티 애플리케이션으로부터 응답을 수신하는 것; 및
    상기 서드파티로부터의 응답에 적어도 부분적으로 기초하여 상기 응답을 생성하는 것을 포함하는, 적어도 하나의 비일시적 컴퓨터 판독가능 매체.
  20. 청구항 16 내지 19 중 어느 한 항에 있어서, 상기 호출은 상기 특정 자동화된 어시스턴트를 나타내고, 상기 오디오 데이터의 표시는 상기 오디오 데이터의 오디오 표현인, 적어도 하나의 비일시적 컴퓨터 판독가능 매체.
KR1020237045225A 2021-11-10 2022-10-31 과거 인터렉션에 기초하여 세컨더리 자동화된 어시스턴트에 관련 쿼리 제공 KR20240011841A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US202163277717P 2021-11-10 2021-11-10
US63/277,717 2021-11-10
US17/533,424 US11972764B2 (en) 2021-11-10 2021-11-23 Providing related queries to a secondary automated assistant based on past interactions
US17/533,424 2021-11-23
PCT/US2022/048388 WO2023086229A1 (en) 2021-11-10 2022-10-31 Providing related queries to a secondary automated assistant based on past interactions

Publications (1)

Publication Number Publication Date
KR20240011841A true KR20240011841A (ko) 2024-01-26

Family

ID=86229150

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020237045225A KR20240011841A (ko) 2021-11-10 2022-10-31 과거 인터렉션에 기초하여 세컨더리 자동화된 어시스턴트에 관련 쿼리 제공

Country Status (5)

Country Link
US (1) US11972764B2 (ko)
EP (1) EP4302179A1 (ko)
JP (1) JP2024519261A (ko)
KR (1) KR20240011841A (ko)
CN (1) CN117157614A (ko)

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7640160B2 (en) 2005-08-05 2009-12-29 Voicebox Technologies, Inc. Systems and methods for responding to natural language speech utterance
US10133612B2 (en) * 2016-03-17 2018-11-20 Nuance Communications, Inc. Session processing interaction between two or more virtual assistants
JP6686226B2 (ja) 2016-04-18 2020-04-22 グーグル エルエルシー 適切なエージェントの自動化アシスタント呼び出し
KR20180101063A (ko) * 2017-03-03 2018-09-12 삼성전자주식회사 사용자 입력을 처리하는 전자 장치 및 그 방법
US20190013019A1 (en) * 2017-07-10 2019-01-10 Intel Corporation Speaker command and key phrase management for muli -virtual assistant systems
US10572801B2 (en) 2017-11-22 2020-02-25 Clinc, Inc. System and method for implementing an artificially intelligent virtual assistant using machine learning
KR102624149B1 (ko) 2018-05-03 2024-01-11 구글 엘엘씨 오디오 쿼리들의 오버랩핑 프로세싱의 조정
US10497361B1 (en) 2018-12-26 2019-12-03 Capital One Services, Llc Systems and methods for providing a virtual assistant

Also Published As

Publication number Publication date
US11972764B2 (en) 2024-04-30
US20230144884A1 (en) 2023-05-11
CN117157614A (zh) 2023-12-01
JP2024519261A (ja) 2024-05-10
EP4302179A1 (en) 2024-01-10

Similar Documents

Publication Publication Date Title
CN110741433B (zh) 使用多个计算设备的对讲式通信
US20240054997A1 (en) Automatically determining language for speech recognition of spoken utterance received via an automated assistant interface
KR101726945B1 (ko) 수동 시작/종료 포인팅 및 트리거 구문들에 대한 필요성의 저감
KR20190016552A (ko) 퍼스널 어시스턴트 모듈에 의한 비결정적 작업 개시
KR102393876B1 (ko) 클라이언트-컴퓨팅된 콘텐츠 메타데이터에 기반한 음성 질의 QoS
EP3915105A1 (en) Initializing non-assistant background actions, via an automated assistant, while accessing a non-assistant application
JP2024020472A (ja) 人間の参加者の代理の自動アシスタントによる準委任通話
KR20240011841A (ko) 과거 인터렉션에 기초하여 세컨더리 자동화된 어시스턴트에 관련 쿼리 제공
KR20230147157A (ko) 어시스턴트 명령(들)의 컨텍스트적 억제
WO2023086229A1 (en) Providing related queries to a secondary automated assistant based on past interactions
US20230186909A1 (en) Selecting between multiple automated assistants based on invocation properties
JP7486680B1 (ja) 副次的なデジタルアシスタントに提供するクエリ内容の選択的マスキング
KR20240094013A (ko) 호출 속성에 기초한 다수의 자동 어시스턴트 사이에서의 선택
US11783828B2 (en) Combining responses from multiple automated assistants
US20240185848A1 (en) Generating a group automated assistant session to provide content to a plurality of users via headphones
WO2023113877A1 (en) Selecting between multiple automated assistants based on invocation properties
KR20230153450A (ko) 자동 스피치 인식의 로컬 실행을 위한 디바이스 중재
CN116670638A (zh) 从最初调用的自动化助理向随后调用的自动化助理转移对话数据
CN117121100A (zh) 为自动化助理启用具有软端点的自然对话