KR20230062612A - 자동화된 어시스턴트를 위한 자연스러운 대화 활성화 - Google Patents

자동화된 어시스턴트를 위한 자연스러운 대화 활성화 Download PDF

Info

Publication number
KR20230062612A
KR20230062612A KR1020237011520A KR20237011520A KR20230062612A KR 20230062612 A KR20230062612 A KR 20230062612A KR 1020237011520 A KR1020237011520 A KR 1020237011520A KR 20237011520 A KR20237011520 A KR 20237011520A KR 20230062612 A KR20230062612 A KR 20230062612A
Authority
KR
South Korea
Prior art keywords
stream
output
data
nlu
transition
Prior art date
Application number
KR1020237011520A
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 KR20230062612A publication Critical patent/KR20230062612A/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
    • G10L13/00Speech synthesis; Text to speech systems
    • G10L13/02Methods for producing synthetic speech; Speech synthesisers
    • 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
    • G10L15/1815Semantic context, e.g. disambiguation of the recognition hypotheses based on word meaning
    • 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
    • G10L15/30Distributed recognition, e.g. in client-server systems, for mobile phones or network applications
    • 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
    • G10L15/32Multiple recognisers used in sequence or in parallel; Score combination systems therefor, e.g. voting systems
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L25/00Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
    • G10L25/78Detection of presence or absence of voice signals
    • 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
    • G10L15/1822Parsing for meaning understanding
    • 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)
  • Signal Processing (AREA)
  • Artificial Intelligence (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

사용자와 자동화된 어시스턴트 간의 대화 세션의 일부로, 구현예들은 스트리밍 ASR 모델을 사용하여, ASR 출력을 생성하기 위해 오디오 데이터의 스트림을 프로세싱하고, NLU 모델을 사용하여, NLU 출력을 생성하기 위해 ASR 출력을 프로세싱하고, NLU 출력에 기초하여, 이행 데이터의 스트림을 생성할 수 있다. 또한, 구현예들은 오디오 데이터의 스트림의 프로세싱에 기초하여, 오디오 데이터의 스트림에서 캡처된 음성 발화(들)와 연관된 오디오 기반 특성들을 더 결정할 수 있다. NLU 출력의 스트림, 이행 데이터의 스트림 및 오디오 기반 특성들의 현재 상태에 기초하여, 구현예들은 구현될 다음 인터렉션 상태가: (i) 이행 출력이 구현되게 하는 것인지; (ii) 자연스러운 대화 출력을 청각적으로 렌더링되게 하는 것인지; 또는 (iii) 임의의 인터렉션이 구현되는 것을 억제하는 것인지 여부를 결정할 수 있고, 다음 인터렉션 상태가 구현되게 할 수 있다.

Description

자동화된 어시스턴트를 위한 자연스러운 대화 활성화
인간은 본 명세서에서 "자동화된 어시스턴트"("챗봇", “인터랙티브 개인 어시스턴트 ", "지능형 개인 어시스턴트", "개인 보이스 어시스턴트", "대화형 에이전트" 등이라고도 함)라고 하는 인터랙티브 소프트웨어 애플리케이션들을 사용하여 인간 대 컴퓨터 대화들에 참여할 수 있다. 자동화된 어시스턴트는 일반적으로 음성 발화(spoken utterance)를 해석하고 응답할 때 구성요소들의 파이프라인에 의존한다. 예를 들어, 자동 스피치 인식(ASR) 엔진은 음성 발화의 스피치 가설들(즉, 용어(들) 및/또는 다른 토큰(들)의 시퀀스)과 같은 ASR 출력을 생성하기 위해 사용자의 음성 발화에 대응하는 오디오 데이터를 프로세싱할 수 있다. 또한, 자연어 이해(NLU) 엔진은 ASR 출력(또는 터치/타이핑된 입력)을 프로세싱하여 음성 발화(또는 터치/타이핑된 입력)를 제공하는 사용자의 의도 및 선택적으로 그 의도와 연관된 파라미터(들)에 대한 슬롯 값(들)과 같은 NLL 출력을 생성할 수 있다. 또한, 이행 엔진은 NLU 출력을 프로세싱하고, 음성 발화에 응답하는 콘텐츠를 획득하고/하거나 음성 발화에 응답하는 행동을 수행하기 위한 구조화된 요청과 같은 이행 출력을 생성하는데 사용될 수 있다.
일반적으로, 자동화된 어시스턴트와의 대화 세션은 음성 발화를 제공하는 사용자에 의해 개시되며, 자동화된 어시스턴트는 응답을 생성하기 위해 앞서 언급한 구성요소들의 파이프라인을 사용하여 음성 발화에 응답할 수 있다. 사용자는 추가 음성 발화를 제공함으로써 대화 세션을 계속할 수 있으며, 자동화된 어시스턴트는 앞서 언급한 구성요소들의 파이프라인을 사용하여 추가 음성 발화에 응답하여 추가 응답을 생성할 수 있다. 다른 말로 하면, 이러한 대화 세션들은 일반적으로 사용자가 대화 세션에서 차례대로 음성 발화를 제공하고, 자동화된 어시스턴트가 대화 세션에서 차례대로 음성 발화에 응답한다는 점에서 턴(turn) 기반이다. 그러나, 사용자 관점에서, 이러한 턴 기반 대화 세션들은 인간이 실제로 서로 대화하는 방식을 반영하지 않기 때문에 자연스럽지 않을 수 있다.
예를 들어, 제1 인간은 하나의 생각을 제2 인간에게 전달하기 위해 다수의 이질적인 음성 발화들을 제공할 수 있고, 제2 인간은 제1 인간에 대한 응답을 만들 때 다수의 이질적인 음성 발화들 각각을 고려할 수 있다. 경우에 따라, 제1 인간은 이러한 다수의 이질적인 음성 발화들 사이에 다양한 시간 동안 일시정지할 수 있다. 특히, 제2 인간은 단순히 다수의 이질적인 음성 발화들의, 제1 음성 발화, 또는 분리된 다수의 이질적인 음성 발화들 각각에 기초하여 제1 인간에 대한 응답을 완전히 만들 수 없을 수 있다.
유사하게, 이러한 턴 기반 대화 세션들에서, 자동화된 어시스턴트는 다수의 이질적인 음성 발화들에 대해 주어진 음성 발화의 맥락을 고려하지 않고는 사용자의 주어진 음성 발화에 대한 응답을 완전히 만들 수 없을 수 있다. 결과적으로, 이러한 턴 기반 대화 세션들은 사용자가 이러한 턴 기반 대화 세션들의 하나의 턴 동안 하나의 음성 발화로 자동화된 어시스턴트에게 그/그녀의 생각들을 전달하려고 시도함에 따라 연장될 수 있으며, 이로 인해 계산 리소스가 낭비된다. 또한, 사용자가 이러한 턴 기반 대화 세션들의 하나의 턴 동안 다수의 음성 발화들로 자동화된 어시스턴트에게 그/그녀의 생각들을 전달하려고 시도하는 경우, 자동화된 어시스턴트는 단순히 실패할 수 있으며, 따라서 계산 리소스도 낭비할 수 있다. 예를 들어, 자동화된 어시스턴트는 사용자가 음성 발화를 만들려고 시도하는 동안 긴 일시정지를 제공할 때, 사용자가 말하기를 완료했다고 조기에 결론을 내리고, 불완전한 음성 발화를 프로세싱할 수 있으며, (프로세싱에서) 불완전한 음성 발화에 의해 의미 있는 의도가 전달되지 않는다고 결정한 결과로서 실패할 수 있다. 또한 턴 기반 대화 세션들은 어시스턴트 응답의 렌더링 중에 제공되는 사용자의 음성 발화가 의미 있게 프로세싱되는 것을 막을 수 있다. 이는 사용자가 음성 발화를 제공하기 전에 어시스턴트 응답의 렌더링 완료를 기다려야 하므로 대화 세션이 연장될 수 있다.
여기에 설명된 구현예들은 대화 세션 동안 자동화된 어시스턴트가 사용자와 자연스러운 대화를 수행할 수 있도록 하는 것에 관한 것이다. 일부 구현예들은 스트리밍 자동 스피치 인식(ASR) 모델을 사용하여, ASR 출력의 스트림을 생성하기 위해 사용자 클라이언트 디바이스의 마이크로폰(들)에 의해 생성된 오디오 데이터의 스트림을 프로세싱할 수 있다. 오디오 데이터의 스트림은 클라이언트 디바이스에서 적어도 부분적으로 구현된 자동화된 어시스턴트로 향하는 사용자의 하나 이상의 음성 발화들을 캡처할 수 있다. 또한, ASR 출력은 자연어 이해(NLU) 모델을 사용하여 프로세싱되어 NLU 출력의 스트림을 생성할 수 있다. 또한, 하나 이상의 이행 규칙들 및/또는 하나 이상의 이행 모델들을 사용하여, NLU 출력을 프로세싱하여 이행 데이터의 스트림을 생성할 수 있다. 추가적으로, 하나 이상의 음성 발화들과 연관된 오디오 기반 특성들은 오디오 데이터의 스트림의 프로세싱에 기초하여 결정될 수 있다. NLU 출력의 스트림, 이행 데이터의 스트림 및/또는 오디오 기반 특성들의 현재 상태에 기초하여 대화 세션 동안 구현될 다음 인터렉션 상태가 결정될 수 있다. 대화 세션 동안 구현될 다음 인터렉션 상태는 (i) 이행 데이터의 스트림에 기초하여 생성되는, 이행 출력이 구현되게 하는 것, (ii) 자연스러운 대화 출력을 사용자에게 제시하기 위해 청각적으로 렌더링되게 하는 것, 또는 (iii) 임의의 인터렉션이 구현되는 것을 억제하는 것 중 하나일 수 있다. 다음 인터렉션 상태는 대화 세션을 촉진하기 위해 구현될 수 있다. 또한, 다음 인터렉션 상태를 결정하는 것은 대화 세션 동안 반복적으로 발생할 수 있으며(예: 10Hz, 20Hz 또는 다른 주파수에서 연속적으로), 각 반복은 NLU 출력, 이행 데이터 및 오디오 기반 특성들의 각각의 현재 상태를 기초로 하며, 사용자 또는 자동화된 어시스턴트 응답이 완료될 때까지 기다리지 않는다. 따라서, 대화 세션 동안 본 명세서에 기술된 기법들을 사용하여 다음 인터렉션 상태를 결정함으로써, 자동화된 어시스턴트는 턴 기반 대화 세션들에서와 같이 사용자가 음성 발화를 제공한 후 단순히 사용자에게 응답하는 것이 아니라, 대화 세션을 촉진하기 위해 다음 인터렉션 상태를 구현할지 여부 및 다음 인터렉션 상태를 구현하는 방법을 결정할 수 있다.
예를 들어, 사용자가 자동화된 어시스턴트와의 대화 세션에 참여하고 "turn on the ... the uhmmm ..."이라는 음성 발화를 제공한다고 가정한다. 사용자가 음성 발화를 제공하면 음성 발화를 캡처하는 오디오 데이터의 스트림을 프로세싱하여 ASR 출력의 스트림, NLU 출력의 스트림 및 이행 데이터의 스트림을 생성할 수 있다. 특히, 이 예에서, NLU 출력의 스트림은 사용자가 일부 소프트웨어 애플리케이션(예: 음악 소프트웨어 애플리케이션, 비디오 소프트웨어 애플리케이션 등) 또는 일부 디바이스(예: 클라이언트 디바이스, 스마트 기기, 스마트 TV, 스마트 스피커 등)를 제어할 의도가 있음을 나타낼 수 있지만, 사용자는 "turn on”에 의해 정확히 의도된 것이 무엇인지 아직 식별하지 못했다. 그럼에도 불구하고, 이행 데이터의 스트림을 프로세싱하여 이행 출력들의 세트를 생성할 수 있다. 더욱이, 음성 발화와 연관된 오디오 기반 특성들은 오디오 데이터의 스트림의 프로세싱에 기초하여 생성될 수 있으며, 예를 들어 사용자가 "turn on”이 정확히 무엇을 의도했는지 확신하지 못함을 나타내는 억양 및 음성 케이던스(cadence), "turn on the” 와 “the uhmmm” 사이에 경과된 기간, “the uhmmm” 이후 경과된 기간, 및/또는 기타 오디오 기반 특성들을 포함할 수 있다. 또한 NLU 출력의 스트림과 오디오 기반 특성들을 프로세싱하여 자연스러운 대화 출력들의 세트를 생성할 수 있다.
이 예에서, NLU 출력의 스트림, 이행 데이터의 스트림 및 음성 발화와 연관된 오디오 기반 특성들의 현재 상태가 결정될 수 있다. 예를 들어, 분류 기계 학습(ML) 모델을 사용하여, NLU 출력의 스트림, 이행 데이터의 스트림 및 오디오 기반 특성들을 프로세싱하여 예측 측정치(measure)들(예: 이진 값들, 확률들, 로그 우도(log-likelihood)들, 등)을 생성할 수 있다. 각각의 다음 인터렉션 상태는 예측 측정치들 중 하나에 대응하는 것과 연관될 수 있으므로, 자동화된 어시스턴트는 (i) 이행 출력이 구현되게 할지, (ii) 자연스러운 대화 출력을 사용자에게 제시하기 위해 청각적으로 렌더링되게 할지, 또는 (iii) 어떠한 인터렉션도 구현되지 않게 할지 여부를 결정할 수 있다. 이 경우에, 자동화된 어시스턴트가 (i) 이행 출력이 구현되게 하기로 결정하는 경우, 자동화된 어시스턴트는 복수의 이행 출력들 중에서 이행 출력을 선택하고 그것이 구현되게 할 수 있다(예: 텔레비전 켜기, 조명 켜기, 음악 켜기 등과 연관된 어시스턴트 명령). 또한, 자동화된 어시스턴트가 (ii) 사용자에게 제시하기 위해 자연스러운 대화 출력을 청각적으로 렌더링되게 하기로 결정하는 경우, 자동화된 어시스턴트는 복수의 자연스러운 대화 출력들 중에서 자연스러운 대화 출력을 선택하여 청각적으로 렌더링되게 할 수 있다(예: "무엇을 턴 온 하기를 원하십니까?", "아직 거기 계십니까?" 등). 또한, 자동화된 어시스턴트가 (iii) 어떠한 인터렉션도 구현되지 않게 하기로 결정하는 경우, 자동화된 어시스턴트는 오디오 데이터의 스트림을 계속 프로세싱할 수 있다.
이 예에서, 대화 세션의 현재 시간 인스턴스는 사용자가 음성 발화 "turn on the ... the uhmmm ..."의 "the uhmmm" 부분을 제공한 후 2초에 대응한다고 더 가정한다. 현재 시간 인스턴스에 대해, 다음 인터렉션 상태와 연관된 대응하는 예측 측정치들은 자동화된 어시스턴트가 어떤 인터렉션이 구현되는 것을 억제해야 함을 나타낼 수 있다. 다른 말로 하면, 사용자가 일시적으로 말을 마친 것처럼 보이더라도, 자동화된 어시스턴트는 충분한 확신을 가지고 구현될 이행 결과를 결정하지 않았으며 사용자가 그/그녀의 생각을 수집하고 턴 온하고자 하는 정확히 무엇인지 식별할 수 있는 추가 시간을 제공해야 한다. 그러나, 추가로 5초가 경과한다고 더 가정한다. 이 후속 시간 인스턴스에서, 오디오 기반 특성들은 사용자가 마지막으로 말한 이후 7초가 경과했음을 나타낼 수 있으며, 현재 상태는 적어도 오디오 기반 특성들에 기초하여 업데이트될 수 있다. 따라서, 이 후속 시간 인스턴스에 대해, 다음 인터렉션 상태와 연관된 대응하는 예측 측정치들은 자동화된 어시스턴트가 대화 세션에서 사용자를 다시 참여시키기 위해 "무엇을 턴 온 하기를 원하십니까?"라는 자연스러운 대화 출력을 사용자에게 제시하기 위해 청각적으로 렌더링되게 해야 함을 나타낸다. 다른 말로 하면, 사용자가 말을 마쳤고 자동화된 어시스턴트가 아직 충분한 확신을 가지고 구현할 이행 출력을 결정하지 않은 경우에도, 자동화된 어시스턴트는 사용자에게 대화 세션을 촉진하고 사용자가 이전에 그/그녀가 하고 싶다고 표시한 것(예: 무언가 턴 온하는 것)으로 되돌아가도록 사용자에게 프롬프트할 수 있다. 또한, 사용자가 "oh, the television"이라는 추가 음성 발화를 제공한다고 더 가정한다. 이러한 추가적인 후속 시간 인스턴스에서, 데이터의 스트림들은 사용자가 텔레비전이 턴 온 되도록 의도함을 나타내도록 업데이트될 수 있고, 현재 상태는 업데이트된 데이터의 스트림에 기초하여 업데이트될 수 있다. 따라서, 이러한 추가적인 후속 시간 인스턴스에 대해, 다음 인터렉션 상태와 연관된 대응하는 예측 측정치들은 자동화된 어시스턴트가 텔레비전이 턴 온 되게 해야 함을 나타낼 수 있다(그리고 선택적으로 자동화된 어시스턴트가 텔레비전을 턴 온 할 것임을 나타내는 합성 스피치가 청각적으로 렌더링되게 한다). 다른 말로 하면, 이 추가 후속 시간 인스턴스에서 자동화된 어시스턴트는 충분한 확신을 가지고 이행 출력이 구현되도록 결정했다.
일부 구현예들에서, NLU 데이터의 스트림은 이행 데이터의 스트림을 생성하기 위해 복수의 에이전트들에 의해 프로세싱될 수 있다. 이행 출력들의 세트는 이행 데이터의 스트림에 기초하여 생성될 수 있으며, 이행 출력들은 NLU 데이터의 스트림과 연관된 예측 NLU 측정치들 및/또는 이행 데이터의 스트림과 연관된 예측 이행 측정치들에 기초하여 이행 출력들의 세트로부터 선택될 수 있다. 일부 구현예들에서, 하나의 이행 출력만이 다음 인터렉션 상태로 구현될 수 있는 반면, 다른 구현예들에서는 다수의 이행 출력들이 다음 인터렉션 상태로 구현될 수 있다. 여기에서 사용되는 "제1 당사자"(1P) 에이전트들, 디바이스들 및/또는 시스템들은 여기에서 언급된 자동화된 어시스턴트를 제어하는 당사자와 동일한 당사자가 제어하는 에이전트들, 디바이스들 및/또는 시스템들을 참조한다. 대조적으로, "제3당사자"(3P) 에이전트들, 디바이스들 및/또는 당사자에 의해 제어되는 시스템 참조 에이전트들, 디바이스들, 및/또는 시스템들은 여기에 언급된 자동화된 어시스턴트를 제어하는 당사자와 구별되지만, 하나 이상의 1P 에이전트들, 디바이스들, 및/또는 시스템들과 통신적으로 연결될 수 있다.
그러한 구현예들의 일부 버전들에서, 복수의 에이전트들은 하나 이상의 1P 에이전트들을 포함한다. 위의 예에서 계속해서, 대화 세션의 현재 인스턴스에서(예: 사용자가 "turn on the ... the uhmmm ..."이라는 음성 발화의 “the uhmmm” 부분을 제공한 이후 2초), 이행 데이터의 스트림은, 구현될 때 음악이 턴 온 되게 하는 어시스턴트 명령과 연관된 이행 출력을 생성하는 1P 음악 에이전트, 구현될 때 스트리밍 서비스가 턴 온 되게 하는 어시스턴트 명령과 연관된 이행 출력을 생성하는 1P 스트리밍 서비스 에이전트, 구현될 때 하나 이상의 1P 스마트 디바이스들이 제어되게 하는 어시스턴트 명령과 연관된 이행 출력을 생성하는 1P 스마트 디바이스 에이전트, 등 에 의해 프로세싱될 수 있다. 이 예에서, 이행 데이터의 스트림은 API(애플리케이션 프로그래밍 인터페이스)를 통해 1P 에이전트들로 전송될 수 있다. 이러한 구현예들의 추가 또는 대안 버전들에서, 복수의 에이전트들은 하나 이상의 3P 에이전트들을 포함한다. 3P 에이전트들에 의해 생성된 이행 출력들은 1P 에이전트들에 의해 생성된 출력들과 유사할 수 있지만, 3P 에이전트들에서 생성된다. 이 예에서, 이행 데이터의 스트림은 애플리케이션 프로그래밍 인터페이스(API) 및 하나 이상의 네트워크들을 통해 3P 에이전트들로 전송될 수 있으며, 3P 에이전트들은 이행 출력들을 다시 클라이언트 디바이스로 전송할 수 있다. 복수의 에이전트들(예: 1P 에이전트들 및/또는 3P 에이전트들)에 의해 생성된 이행 출력들 각각은 이행 출력들의 세트로서 집계될 수 있다.
위의 예는 어시스턴트 명령들의 이행 출력들의 세트와 관련하여 설명되었지만, 이는 예를 위한 것이며 제한하려는 의도가 아님을 이해해야 한다. 일부 구현예들에서, 이행 출력들의 세트는 대응하는 합성 스피치를 포함하는 합성 스피치 오디오 데이터의 인스턴스들을 포함할 수 있고, 클라이언트 디바이스의 스피커들 중 하나 이상을 통해 사용자에게 제시하기 위해 청각적으로 렌더링될 수 있다. 예를 들어, "타이머를 15분으로 설정해”라는 대화 세션 중에 사용자가 대신 음성 발화를 제공했다고 가정한다. 또한 NLU 데이터의 스트림과 연관된 예측 측정치 및/또는 이행 데이터의 스트림과 연관된 예측 측정치치들은 사용자가 15분 또는 50분이라고 말했음을 나타낸다고 더 가정한다. 이 예에서, 이행 데이터의 스트림은 제1 P 타이머 에이전트에 의해 프로세싱되어, 타이머를 15분으로 설정하는 제1 어시스턴트 명령과 연관된 제1 이행 출력, 타이머를 50분으로 설정하는 제2 어시스턴트 명령과 연관된 제2 이행 출력, 수행될 어시스턴트 명령을 확인하는 합성 스피치 오디오 데이터의 제1 인스턴스와 연관된 제3 이행 출력(예: "타이머가 15분으로 설정됨"), 수행될 어시스턴트 명령을 명확하게 하도록 사용자에게 요청하는 합성 스피치 오디오 데이터의 제1 인스턴스와 연관된 제4 이행 출력(예: "타이머가 15분인지 50분인지?") 등을 생성할 수 있다.
이 예에서, 자동화된 어시스턴트는 NLU 데이터의 스트림과 연관된 예측 NLU 측정치들 및/또는 이행 데이터의 스트림과 연관된 예측 이행 측정치들에 기초하여 구현될 이행 출력들의 세트 중에서 하나 이상의 이행 출력들을 선택할 수 있다. 예를 들어, 예측 측정치들이 제1 임계 측정치와 제2 임계 측정치를 모두 만족하고, 사용자가 "타이머를 15분으로 설정해"라고 말했다는 것에 매우 큰 확신을 나타낸다고 가정한다. 이 예에서, 자동화된 어시스턴트는 합성 스피치의 임의의 인스턴스들을 사용자에게 제시하기 위해 청각적으로 렌더링되게 하지 않고, 타이머를 15분으로 설정하는 제1 어시스턴트 명령과 연관된 제1 이행 출력이 구현되게 할 수 있다. 대조적으로, 예측 측정치들이 제1 임계 측정치는 만족하지만 제2 임계 측정치는 만족하지 않고, 사용자가 “타이머를 15분으로 설정해"라고 말했다는 것에 약한 확신을 나타낸다고 가정한다. 이 예에서, 자동화된 어시스턴트는 타이머를 15분으로 설정하는 제1 어시스턴트 명령과 연관된 제1 이행 출력이 구현되게 할 수 있고, 또한 수행될 어시스턴스 명령을 확인하는 합성 음성 오디오 데이터의 제1 인스턴스와 연관된 제3 이행 출력(예: “타이머가 15분으로 설정됨")이 구현되게 할 수 있다. 이는 잘못된 경우 사용자가 자동화된 어시스턴트를 수정할 수 있는 기회를 제공한다. 그러나, 예측 측정치들이 제1 임계 측정치와 제2 임계 측정치를 모두 만족하지 않고, 사용자가 "타이머를 15분으로 설정해”라고 말했다는 것에 낮은 확신을 나타낸다고 가정한다. 이 예에서, 자동화된 어시스턴트는 수행될 어시스턴트 명령을 명확하게 사용자에게 요청하는 합성 스피치 오디오 데이터의 제1 인스턴스와 연관된 제4 이행 출력(예: "타이머가 15분인지 50분인지?")을 야기할 수 있으며, 자동화된 인스턴스는 이러한 낮은 확신으로 인해 임의의 타이머가 설정되는 것을 억제할 수 있다.
일부 구현예들에서, 이행 출력들의 세트는 추가로 또는 대안적으로 클라이언트 디바이스의 디스플레이 또는 클라이언트 디바이스와 통신하는 추가 클라이언트 디바이스를 통해 사용자에게 제시하기 위해 시각적으로 렌더링될 수 있는 그래픽 콘텐츠의 인스턴스들을 포함할 수 있다. 위의 타이머 예를 계속하면, 이행 데이터의 스트림은 1P 타이머 에이전트에 의해 프로세싱되어 15분 동안 설정된 타이머를 나타내는 제1 그래픽 콘텐츠와 연관된 제5 이행 출력 및 50분 동안 설정된 타이머를 나타내는 제2 그래픽 콘텐츠와 연관된 제6 이행 출력을 생성할 수 있다. 유사하게, 자동화된 어시스턴트는 NLU 데이터의 스트림과 연관된 예측 NLU 측정치들 및/또는 이행 데이터의 스트림과 연관된 예측 이행 측정치들에 기초하여 구현될 이행 출력들의 세트 중에서 하나 이상의 이행 출력들을 선택할 수 있다. 예를 들어, 예측 측정치들이 제1 임계 측정치 및/또는 제2 임계 측정치를 만족하고, 사용자가 "타이머를 15분으로 설정해”라고 말했다는 것에 매우 크거나 및/또는 약한 확신을 나타낸다고 가정한다. 이 예에서, 자동화된 어시스턴트는 추가로 또는 대안적으로 15분 동안 설정된 타이머의 그래픽 묘사가 사용자에게 제시하기 위해 시각적으로 렌더링되도록, 15분으로 설정된 타이머를 묘사하는 제1 그래픽 콘텐츠와 연관된 제5 이행 출력이 구현되게 할 수 있다. 대조적으로, 예측 측정치들이 제1 임계 측정치와 제2 임계 측정치를 모두 만족하지 않고, "타이머를 15분으로 설정해”라고 말했다는 것에 낮은 확신을 나타낸다고 가정한다. 이 예에서, 자동화된 어시스턴트는 15분으로 설정된 타이머의 그래픽 묘사와 50분으로 설정된 타이머의 또 다른 그래픽 묘사가 둘 다 사용자에게 제시하기 위해 시각적으로 렌더링되도록, 추가로 또는 대안적으로 15분으로 설정된 타이머를 묘사하는 제1 그래픽 콘텐츠와 연관된 제5 이행 출력 및 50으로 설정된 타이머를 묘사하는 제2 그래픽 콘텐츠와 연관된 제6 이행 출력이 구현되게 할 수 있다. 따라서, 다음 인터렉션 상태가 이행 출력이 구현되어야 함을 나타내는 경우에도, 이행 출력은 현재 상태에 기초하여 동적으로 결정될 수 있다.
일부 구현예들에서, 자동화된 어시스턴트는 이행 출력이 구현되게 하는 다음 인터렉션 상태를 결정하기 전에 이행 출력들의 세트 내 이행 출력들이 부분적으로 이행되게 할 수 있다. 사용자가 "turn on the ... the uhmmm ..."이라는 음성 발화를 제공한 초기 예에 대해 위에서 언급한 바와 같이, 복수의 에이전트들에 의해 생성된 이행 출력들의 세트는 구현될 때 음악이 턴 온 되게 하는 어시스턴트 명령과 연관된 이행 출력, 구현될 때 비디오 스트리밍 서비스가 턴 온 되게 하는 어시스턴트 명령과 연관된 이행 출력, 구현될 때 하나 이상의 1P 스마트 디바이스들이 제어되게 하는 어시스턴트 명령과 연관된 이행 출력 등을 포함할 수 있다. 이 예에서, 자동화된 어시스턴트는 사용자가 자동화된 어시스턴트가 소프트웨어 애플리케이션들 및/또는 스마트 디바이스들과 관련하여 수행될 어떤 행동을 수행하도록 요청할 것을 예상하고, 소프트웨어 애플리케이션들(예: 음악 애플리케이션, 비디오 스트리밍 애플리케이션) 및/또는 스마트 디바이스들(예: 스마트 TV, 스마트 기기 등)과의 연결을 사전에 설정할 수 있다. 그 결과 이행 출력이 다음 인터렉션 상태로 구현되게 하는 대기 시간을 줄일 수 있다.
일부 구현예들에서, 자연스러운 대화 출력들의 세트는 NLU 데이터의 스트림과 연관된 NLU 측정치들 및/또는 오디오 기반 특성들에 기초하여 생성될 수 있고, 자연스러운 대화 출력은 자연스러운 대화 출력들의 세트 중에서 선택될 수 있다. 이러한 구현예들의 일부 버전들에서, 자연스러운 대화 출력들의 슈퍼세트는 클라이언트 디바이스에 의해 액세스할 수 있는 하나 이상의 데이터베이스들에 저장될 수 있으며, 자연스러운 대화 출력들의 세트는 NLU 데이터의 스트림과 연관된 NLU 측정치들 및/또는 오디오 기반 특성들에 기초하여 자연스러운 대화 출력들의 슈퍼세트로부터 생성될 수 있다. 이러한 자연스러운 대화 출력들은 대화 세션을 촉진하는 다음 인터렉션 상태로 구현될 수 있지만 반드시 이행으로 구현되는 것은 아니다. 예를 들어, 자연스러운 대화 출력은 사용자가 자동화된 어시스턴트와 계속해서 인터렉션하기를 원하는 표시를 확인하도록 요청하는 것(예: "아직 거기 계십니까?" 등), 사용자와 자동화된 어시스턴트 간의 대화 세션을 촉진하기 위해 추가 사용자 입력을 제공하도록 사용자에게 요청하는 것(예: "무엇을 턴 온 하기를 원하십니까?" 등), 보충 스피치(예: "물론이죠", "알겠습니다" 등)를 포함할 수 있다.
일부 구현예들에서, 구현될 다음 인터렉션 상태가 인터렉션이 구현되는 것을 억제하는 것이더라도, 오디오 데이터의 스트림은 여전히 ASR 모델을 사용하여 계속 프로세싱되어 ASR 출력의 스트림, NLU 출력의 스트림 및 이행 데이터의 스트림을 업데이트할 수 있다. 따라서, 현재 상태는 반복적으로 업데이트될 수 있으므로, 다음 인터렉션 상태를 결정하는 것도 대화 세션 동안 반복적으로 발생할 수 있다. 이러한 구현예들의 일부 버전들에서, 자동화된 어시스턴트는 보이스 활동의 발생을 모니터링하기 위하여(예: 사용자가 몇 초 동안 침묵한 후), 보이스 활동 검출(VAD) 모델을 사용하여 오디오 데이터의 스트림을 추가로 또는 대안적으로 프로세싱할 수 있다. 이러한 구현예들에서, 자동화된 어시스턴트는 검출된 보이스 활동의 발생이 자동화된 어시스턴트로 향하는지 여부를 결정할 수 있다. 예를 들어, 업데이트된 NLU 데이터의 스트림은 이 검출된 보이스 활동이 자동화된 어시스턴트로 전달되는지 여부를 나타낼 수 있다. 그렇다면, 자동화된 어시스턴트는 이행 데이터의 스트림과 이행 출력들의 세트를 계속 업데이트할 수 있다.
일부 구현예들에서, NLU 출력의 스트림, 이행 데이터의 스트림 및 오디오 기반 특성들의 현재 상태는 하나 이상의 음성 발화들 중 가장 최근의 음성 발화에 기초하여 생성된 NLU 출력의 가장 최근 인스턴스, 가장 최근의 NLU 출력에 기초하여 생성된 이행 데이터의 가장 최근 인스턴스 및 가장 최근의 음성 발화에 기초하여 생성된 오디오 기반 특성들의 가장 최근 인스턴스를 포함한다. 위의 예를 계속하면, 대화 세션의 현재 인스턴스에서(예: 사용자가 "turn on the ... the uhmmm ..."이라는 음성 발화의 “the uhmmm” 부분을 제공한 이후 2초), 현재 상태는 음성 발화의 “the uhmmm” 부분에 기초하여 생성된 NLU 데이터, 이행 데이터 및 오디오 기반 특성들에만 대응할 수 있다. 추가적 또는 대안적 구현예들에서, NLU 출력의 스트림, 이행 데이터의 스트림 및 오디오 기반 특성들의 현재 상태는 가장 최근의 음성 발화에 선행하는 하나 이상의 과거 음성 발화들에 기초하여 생성된 NLU 출력의 하나 이상의 과거 인스턴스들, NLU 출력의 하나 이상의 과거 인스턴스들에 기초하여 생성된 하나 이상의 과거 인스턴스들 및 하나 이상의 과거 음성 발화들에 기초하여 생성된 오디오 기반 특성들의 하나 이상의 과거 인스턴스들을 더 포함한다. 위의 예를 계속하면, 대화 세션의 현재 인스턴스에서(예: 사용자가 "turn on the ... the uhmmm ..."이라는 음성 발화의 “the uhmmm” 부분을 제공한 이후 2초), 현재 상태는 음성 발화의 “the uhmmm” 부분, 음성 발화의 “turn on the” 부분 및 선택적으로 음성 발화의 “turn on the” 부분 이전에 발생한 임의의 음성 발화들에만 대응할 수 있다.
본 명세서에 기술된 기법들을 사용함으로써, 하나 이상의 기술적 이점들이 달성될 수 있다. 하나의 비제한적 예로서, 여기에 설명된 기법들은 자동화된 어시스턴트로 하여금 대화 세션 동안 사용자와 자연스러운 대화들에 참여하게 할 수 있다. 예를 들어, 자동화된 어시스턴트는 대화 세션의 현재 상태에 기초하여 대화 세션에 대한 다음 인터렉션 상태를 결정할 수 있으므로, 자동화된 어시스턴트는 턴 기반 대화 세션에 제한되지 않거나 사용자가 응답하기 전에 말하기를 완료했는지 결정하는 데 의존하지 않는다. 따라서, 자동화된 어시스턴트는 사용자가 이러한 자연스러운 대화들에 참여할 때 사용자에게 응답할 시기와 사용자에게 응답하는 방법을 결정할 수 있다. 이로 인해 클라이언트 디바이스에서 컴퓨팅 리소스를 절약하고 대화 세션들이 더 빠르고 효율적인 방식으로 종료되게 하는 다양한 기술적 이점들이 있다. 예를 들어, 자동화된 어시스턴트가 사용자를 대신하여 임의의 이행을 수행하려고 시도하기 전에 사용자로부터 더 많은 정보를 기다릴 수 있기 때문에 자동화된 어시스턴트 실패의 발생 횟수를 줄일 수 있다. 또한, 예를 들어, 클라이언트 디바이스에서 수신되는 사용자 입력의 양이 감소될 수 있는데, 그 이유는 사용자가 스스로 반복하거나 자동화된 어시스턴트를 다시 호출해야 하는 발생 횟수가 감소될 수 있기 때문이다.
본 명세서에서 사용되는 바와 같이, "대화 세션"은 사용자와 자동화된 어시스턴트(및 어떤 경우에는 다른 인간 참여자들) 사이의 논리적으로 자체적으로 포함된 교환(logically-self-contained exchange)을 포함할 수 있다. 자동화된 어시스턴트는 세션들 간의 시간 경과, 세션 간의 사용자 맥락의 변경((예: 위치, 예정된 회의 전/중/후 등), 사용자와 자동화 어시스턴트 사이의 대화 이외의 사용자와 클라이언트 디바이스 사이의 하나 이상의 개입 인터렉션들의 검출(예: 사용자가 잠시 동안 애플리케이션들을 바꾸고, 사용자가 멀어졌다가 나중에 독립형 음성 활성화 제품으로 돌아옴), 세션들 사이의 클라이언트 디바이스 잠금/휴면, 자동화된 어시스턴트와 인터페이스하는 데 사용되는 클라이언트 디바이스의 변경 등과 같은 다양한 신호들에 기초하여 사용자와의 다수의 대화 세션들을 구분할 수 있다.
상기 설명은 본 명세서에 개시된 일부 구현예들의 개요로서 제공된다. 이러한 구현예들 및 기타 구현예들은 여기에서 추가로 자세히 설명된다.
본 명세서에 개시된 기법들은 클라이언트 디바이스에서 로컬로, 하나 이상의 네트워크들을 통해 클라이언트 디바이스에 연결된 서버(들)에 의해 원격으로 및/또는 둘 다 구현될 수 있음을 이해해야 한다.
도 1은 본 발명의 다양한 양태들을 보여주는 예시적인 환경의 블록도를 도시하며, 여기에 개시된 구현예들이 구현될 수 있다.
도 2는 다양한 구현예들에 따른, 도 1의 다양한 구성요소들을 사용하여 본 발명의 다양한 양태들을 보여주는 예시적인 프로세스 흐름을 도시한다.
도 3a 및 도 3b는 다양한 구현예들에 따른, 대화 세션 동안 구현될 다음 인터렉션 상태가 (i) 이행 출력이 구현되게 하는 것인지, (ii) 자연스러운 대화 출력을 사용자에게 제시하기 위해 청각적으로 렌더링되게 하는 것인지, 또는 (iii) 임의의 인터렉션이 구현되는 것을 억제하는 것인지 여부를 결정하는 예시적인 방법을 설명하는 순서도를 도시한다.
도 4는 다양한 구현예들에 따른, 대화 세션 동안 구현될 다음 인터렉션 상태가 (i) 이행 출력이 구현되게 하는 것인지, (ii) 자연스러운 대화 출력을 사용자에게 제시하기 위해 청각적으로 렌더링되게 하는 것인지, 또는 (iii) 임의의 인터렉션이 구현되는 것을 억제하는 것인지 여부를 결정하는 예시적인 방법을 설명하는 비제한적인 예를 도시한다.
도 5a, 도 5b 및 도 5c는 다양한 구현예들에 따른, 대화 세션 동안 이행 출력이 구현되게 하는 다양한 비제한적인 예들을 도시한다.
도 6은 다양한 구현예들에 따른, 컴퓨팅 디바이스의 예시적인 아키텍처를 도시한다.
이제 도 1로 돌아가면, 본 발명의 다양한 양태들을 보여주는 예시적인 환경의 블록도가 도시되어 있으며, 여기에 개시된 구현예들이 구현될 수 있는 것이 묘사된다. 예시적인 환경은 클라이언트 디바이스(110) 및 자연스러운 대화 시스템(180)을 포함한다. 일부 구현예에서, 자연스러운 대화 시스템(180)은 클라이언트 디바이스(110)에서 로컬로 구현될 수 있다. 추가적인 또는 대안적인 구현예에서, 자연스러운 대화 시스템(180)은 도 1에 도시된 바와 같이 클라이언트 디바이스(110)로부터 원격으로 구현될 수 있다. 이러한 구현예에서, 클라이언트 디바이스(110) 및 자연스러운 대화 시스템(180)은 하나 이상의 유선 또는 무선 로컬 영역 네트워크들(Wi-Fi LAN, 메시 네트워크, 블루투스, 근거리 통신 등을 포함한 "LAN") 또는 광역 네트워크들(인터넷을 포함한 "WAN")과 같은 하나 이상의 네트워크(199)를 통해 서로 통신적으로 연결될 수 있다.
클라이언트 디바이스(110)는 예를 들어 데스크탑 컴퓨터, 랩탑 컴퓨터, 태블릿, 모바일 폰, 차량의 컴퓨팅 디바이스(예: 차량 내 통신 시스템, 차량 내 엔터테인먼트 시스템, 차량 내 내비게이션 시스템), 독립형 인터랙티브 스피커(선택적으로 디스플레이 포함), 스마트 TV와 같은 스마트 기기 및/또는 컴퓨팅 디바이스를 포함하는 사용자의 웨어러블 장치(예: 컴퓨팅 디바이스를 갖는 사용자의 시계, 컴퓨팅 디바이스를 갖는 사용자의 안경, 가상 또는 증강 현실 컴퓨팅 디바이스) 중 하나 이상일 수 있다. 추가 및/또는 대체 클라이언트 디바이스들이 제공될 수 있다.
클라이언트 디바이스(110)는 자동화된 어시스턴트 클라이언트(114)를 실행할 수 있다. 자동화된 어시스턴트 클라이언트(114)의 인스턴스는 클라이언트 디바이스(110)의 운영 체제와 별개인(예: 운영 체제의 "상단"에 설치된) 애플리케이션일 수 있거나, 대안적으로 클라이언트 디바이스(110)의 운영 체제에 의해 직접 구현될 수 있다. 자동화된 어시스턴트 클라이언트(114)는 클라이언트 디바이스(110)에서 로컬로 구현되거나 또는 도 1에 도시된 바와 같이 네트워크들(199) 중 하나 이상을 통해 자연스러운 대화 시스템(180)과 인터렉션할 수 있다. 자동화된 어시스턴트 클라이언트(114)(및 선택적으로 다른 원격 시스템(예: 서버(들))과의 인터렉션을 통해)는 사용자 관점에서, 사용자가 인간 대 컴퓨터 대화에 참여할 수 있는 자동화된 어시스턴트(115)의 논리적 인스턴스인 것처럼 보이는 것을 형성할 수 있다. 자동화된 어시스턴트(115)의 인스턴스가 도 1에 도시되어 있고, 클라이언트 디바이스(110)의 자동화된 어시스턴트 클라이언트(114) 및 자연스러운 대화 시스템(180)을 포함하는 점선으로 둘러싸여 있다. 따라서 클라이언트 디바이스(110)에서 실행되는 자동화된 어시스턴트 클라이언트(114)에 참여하는 사용자는, 사실상, 자동화된 어시스턴트(115)의 자신의 논리적 인스턴스(또는 가정(household) 또는 다른 사용자들의 그룹 간에 공유되는 자동화된 어시스턴트(115)의 논리적 인스턴스)에 참여할 수 있다는 것을 이해해야 한다. 간결함과 단순함을 위해, 본 명세서에서 사용되는 자동화된 어시스턴트(115)는 클라이언트 디바이스(110) 및/ 또는 자연스러운 대화 시스템(180)을 구현할 수 있는 하나 이상의 서버들에서 로컬로 실행되는 자동화된 어시스턴트 클라이언트(114)를 지칭할 것이다.
다양한 구현예들에서, 클라이언트 디바이스(110)는 하나 이상의 사용자 인터페이스 입력 디바이스들을 사용하여 클라이언트 디바이스(110)의 사용자에 의해 제공되는 사용자 입력을 검출하도록 구성된 사용자 입력 엔진(111)을 포함할 수 있다. 예를 들어, 클라이언트 디바이스(110)는 클라이언트 디바이스(110)의 환경 내의 사용자의 음성 발화들 또는 다른 사운드들에 대응하는 오디오 데이터와 같은 오디오 데이터를 캡처하는 하나 이상의 마이크로폰들을 구비할 수 있다. 추가로 또는 대안적으로, 클라이언트 디바이스(110)는 하나 이상의 시각(vision) 구성요소들의 시야(field of view)에서 검출된 이미지들 및/또는 움직임들(예: 제스처들)에 대응하는 시각 데이터를 캡처하도록 구성된 하나 이상의 시각 구성요소들을 구비할 수 있다. 추가적으로 또는 대안적으로, 클라이언트 디바이스(110)는 클라이언트 디바이스(110)로 향하는 터치 입력에 대응하는 신호(들)을 캡처하도록 구성된 하나 이상의 터치 감응형(touch sensitive) 구성요소들(예: 키보드 및 마우스, 스타일러스, 터치 스크린, 터치 패널, 하나 이상의 하드웨어 버튼 등)을 구비할 수 있다.
다양한 구현예들에서, 클라이언트 디바이스(110)는 하나 이상의 사용자 인터페이스 출력 디바이스들을 사용하여 클라이언트 디바이스(110)의 사용자에게 청각적 및/또는 시각적 제시를 위한 콘텐츠를 제공하도록 구성된 렌더링 엔진(112)을 포함할 수 있다. 예를 들어, 클라이언트 디바이스(110)는 클라이언트 디바이스(110)를 통해 사용자에게 청각적 제시를 위해 콘텐츠가 제공될 수 있게 하는 하나 이상의 스피커들을 구비할 수 있다. 부가적으로 또는 대안적으로, 클라이언트 디바이스(110)는 클라이언트 디바이스(110)를 통해 사용자에게 시각적 제시를 위해 콘텐츠가 제공될 수 있게 하는 디스플레이 또는 프로젝터를 구비할 수 있다.
다양한 구현예들에서, 클라이언트 디바이스(110)는 대응하는 사용자(들)로부터의 승인과 함께 검출된 존재, 특히 인간의 존재를 나타내는 신호들을 제공하도록 구성된 하나 이상의 존재(presence) 센서들(113)을 포함할 수 있다. 이러한 구현예들 중 일부에서, 자동화된 어시스턴트(115)는 클라이언트 디바이스(110)에서 (또는 클라이언트 디바이스(110)의 사용자와 연관된 다른 컴퓨팅 디바이스에서) 적어도 사용자의 존재의 일부에 기초하여 음성 발화를 충족시키기 위해 클라이언트 디바이스(110)(또는 클라이언트 디바이스(110)의 사용자와 연관된 다른 컴퓨팅 디바이스)를 식별할 수 있다. 음성 발화는 클라이언트 디바이스(110) 및/또는 클라이언트 디바이스(110)의 사용자와 연관된 다른 컴퓨팅 디바이스(들)에서 (예: 렌더링 엔진(112)을 통해) 응답 콘텐츠를 렌더링함으로써, 클라이언트 디바이스(110) 및/또는 클라이언트 디바이스(110)의 사용자와 연관된 다른 컴퓨팅 디바이스(들)이 제어되게 함으로써, 및 또는 클라이언트 디바이스(110) 및/또는 클라이언트 디바이스(110)의 사용자와 연관된 다른 컴퓨팅 디바이스(들)이 음성 발화를 충족시키기 위한 어떤 다른 행동을 수행하게 함으로써, 충족될 수 있다. 본 명세서에 설명된 바와 같이, 자동화된 어시스턴트(115)는 사용자가 근처에 있거나 최근에 근처에 있었던 위치에 기초하여 클라이언트 디바이스(110)(또는 다른 컴퓨팅 디바이스(들))를 결정할 때 존재 센서들(113)에 기초하여 결정된 데이터를 활용할 수 있고, 클라이언트 디바이스(110)(또는 다른 컴퓨팅 디바이스(들))에만 대응하는 명령어들을 제공할 수 있다. 일부 추가적인 또는 대안적인 구현예들에서, 자동화된 어시스턴트(115)는 임의의 사용자(들)(임의의 사용자들 또는 특정 사용자들)가 클라이언트 디바이스(110)(또는 다른 컴퓨팅 디바이스(들))에 현재 근접해 있는지 여부를 결정하는 데 존재 센서들(113)에 기초하여 결정된 데이터를 활용할 수 있고, 선택적으로 클라이언트 디바이스(110)(또는 다른 컴퓨팅 디바이스(들))에 근접한 사용자(들)에 기초하여 클라이언트 디바이스(110)(또는 다른 컴퓨팅 디바이스(들))로의 및/또는 그로부터의 데이터 제공을 막을 수 있다.
존재 센서들(113)은 다양한 형태들을 가질 수 있다. 예를 들어, 클라이언트 디바이스(110)는 사용자의 존재를 검출하기 위해 사용자 입력 엔진(111)에 대해 전술한 하나 이상의 사용자 인터페이스 입력 구성요소들을 활용할 수 있다. 추가로 또는 대안적으로, 클라이언트 디바이스(110)는 그들의 시야 내에 있는 객체들로부터 방사되는 적외선("IR") 광을 측정하는 수동 적외선("PIR") 센서들과 같은 다른 유형들의 광 기반 존재 센서들(113)를 구비할 수 있다.
추가적으로 또는 대안적으로, 일부 구현예들에서, 존재 센서들(113)은 인간의 존재 또는 디바이스의 존재와 연관된 다른 현상을 검출하도록 구성될 수 있다. 예를 들어, 일부 실시예들에서, 클라이언트 디바이스(110)는 예를 들어 사용자에 의해 휴대/작동되는 다른 컴퓨팅 디바이스들(예: 모바일 디바이스, 웨어러블 컴퓨팅 디바이스, 등)에 의해 방출되는 다양한 유형들의 무선 신호들(예: 라디오, 초음파, 전자기 등과 같은 파동)를 검출하는 존재 센서(113)를 구비할 수 있다. 예를 들어, 클라이언트 디바이스(110)는 (예: 초음파 가능(ultrasonic-capable) 마이크로폰들과 같은 초음파/적외선 수신기를 통해) 다른 컴퓨팅 디바이스(들)에 의해 검출될 수 있는 초음파 또는 적외선과 같이 인간들이 인지할 수 없는 파동을 방출하도록 구성될 수 있다.
추가적으로 또는 대안적으로, 클라이언트 디바이스(110)는 사용자에 의해 휴대/작동되는 다른 컴퓨팅 디바이스(들)(예: 모바일 디바이스, 웨어러블 컴퓨팅 디바이스 등)에 의해 검출될 수 있고 사용자의 특정 위치를 결정하는데 사용될 수 있는 전파(예: Wi-Fi, 블루투스, 셀룰러 등)와 같은 다른 유형들의 인간이 인지할 수 없는 파동을 방출할 수 있다. 일부 구현예들에서는, GPS 및/또는 Wi-Fi 삼각 측량(triangulation)은 예를 들어, 클라이언트 디바이스(110)로/로부터의 GPS 및/또는 Wi-Fi 신호들에 기초하여 사람의 위치를 검출하는 데 사용될 수 있다. 다른 구현예들에서, 비행 시간(time-of-flight), 신호 강도 등과 같은 다른 무선 신호 특성들은 사용자에 의해 휴대/작동되는 다른 컴퓨팅 디바이스(들)에 의해 방출된 신호들에 기초하여 특정 사람의 위치를 결정하기 위해 클라이언트 디바이스(110)에 의해 단독으로 또는 집합적으로 사용될 수 있다.
부가적으로 또는 대안적으로, 일부 구현예들에서, 클라이언트 디바이스(110)는 화자 식별(SID)을 수행하여 그들의 보이스로부터 사용자를 인식할 수 있다. 일부 구현예들에서, 화자의 움직임은 예를 들어 클라이언트 디바이스(110)의 존재 센서들(113)(및 선택적으로 클라이언트 디바이스(110)의 GPS 센서, Soli 칩 및/또는 가속도계)에 의해 결정될 수 있다. 일부 구현예들에서, 그러한 검출된 움직임에 기초하여, 사용자의 위치가 예측될 수 있고, 이 위치는 사용자의 위치에 대한 클라이언트 디바이스(110) 및/또는 다른 컴퓨팅 디바이스(들)의 근접성에 적어도 부분적으로 기초하여 임의의 콘텐츠가 클라이언트 디바이스(110) 및/또는 다른 컴퓨팅 디바이스(들)에서 렌더링되게 할 때 사용자의 위치인 것으로 가정될 수 있다. 일부 구현예들에서, 사용자는 특히 마지막 참여 이후 많은 시간이 경과하지 않은 경우, 자동화된 어시스턴트(115)와 참여했던 마지막 위치에 있는 것으로 간단하게 가정될 수 있다.
또한, 클라이언트 디바이스(110) 및/또는 자연스러운 대화 시스템(180)은 데이터 및/또는 소프트웨어 애플리케이션들(198)의 저장을 위한 하나 이상의 메모리, 데이터에 액세스하고 소프트웨어 애플리케이션들(198)을 실행하기 위한 하나 이상의 프로세서들, 및/또는 하나 이상의 네트워크들(199)을 통한 통신을 용이하게 하는 다른 구성요소들을 포함할 수 있다. 일부 구현예들에서, 소프트웨어 애플리케이션들(198) 중 하나 이상은 클라이언트 디바이스(110)에 로컬로 설치될 수 있는 반면, 다른 구현예들에서 소프트웨어 애플리케이션들(198) 중 하나 이상은 (예: 하나 이상의 서버들에 의해) 원격으로 호스트될 수 있고 하나 이상의 네트워크들(199)을 통해 클라이언트 디바이스(110)에 의해 액세스될 수 있다. 클라이언트 디바이스(110), 다른 컴퓨팅 디바이스(들) 및/또는 자동화된 어시스턴트(115)에 의해 수행되는 동작들은 다수의 컴퓨터 시스템들에 걸쳐 분산될 수 있다. 자동화된 어시스턴트(115)는 예를 들어, 클라이언트 디바이스(110) 및/또는 네트워크(예: 도 1의 네트워크(들)(199))를 통해 서로 연결되는 하나 이상의 위치에 있는 하나 이상의 컴퓨터들에서 실행되는 컴퓨터 프로그램들로 구현될 수 있다.
일부 구현예들에서, 자동화된 어시스턴트(115)에 의해 수행되는 동작들은 자동화된 어시스턴트 클라이언트(114)를 통해 클라이언트 디바이스(110)에서 로컬로 구현될 수 있다. 도 1에 도시된 바와 같이, 자동화된 어시스턴트 클라이언트(114)는 자동 스피치 인식(ASR) 엔진(120A1), 자연어 이해(NLU) 엔진(130A1), 이행 엔진(140A1) 및 텍스트 스피치 변환(TTS) 엔진(150A1)을 포함할 수 있다. 일부 구현예들에서, 자동화된 어시스턴트(115)에 의해 수행되는 동작들은 자연스러운 대화 시스템(180)이 도 1에 도시된 바와 같이 클라이언트 디바이스(110)로부터 원격으로 구현될 때와 같이 다수의 컴퓨터 시스템들에 걸쳐 분산될 수 있다. 이러한 구현예들에서, 자동화된 어시스턴트(115)는 자연스러운 대화 시스템(180)의 ASR 엔진(120A2), NLU 엔진(130A2), 이행 엔진(140A2) 및 TTS 엔진(150A2)을 추가적으로 또는 대안적으로 활용할 수 있다.
이러한 엔진들 각각은 하나 이상의 기능들을 수행하도록 구성될 수 있다. 예를 들어, ASR 엔진(120A1 및/또는 120A2)은 기계 학습(ML) 모델(들) 데이터베이스(115A)에 저장된 스트리밍 ASR 모델(들)(예: 순환 신경 네트워크(RNN) 모델, 변환기 모델, 및/또는 ASR을 수행할 수 있는 임의의 다른 유형의 ML 모델)을 사용하여, 음성 발화들을 캡처하고 클라이언트 디바이스(110)의 마이크로폰(들)에 의해 생성되는 오디오 데이터의 스트림을 프로세싱하여 ASR 출력의 스트림을 생성할 수 있다. 특히, 스트리밍 ASR 모델은 오디오 데이터의 스트림이 생성됨에 따라 ASR 출력의 스트림을 생성하는 데 활용될 수 있다. 또한, NLU 엔진(130A1 및/또는 130A2)은 ML 모델(들) 데이터베이스(115A)에 저장된 NLU 모델(들)(예: 장단기 메모리(LSTM), 게이트 순환 유닛(GRU), 및 /또는 다른 유형의 RNN 또는 NLU를 수행할 수 있는 다른 ML 모델) 및/또는 문법 기반 규칙(들)을 사용하여, ASR 출력의 스트림을 프로세싱하여 NLU 출력의 스트림을 생성할 수 있다. 또한, 이행 엔진(140A1 및/또는 140A2)은 NLU 출력의 스트림에 기초하여 생성된 이행 데이터의 스트림에 기초하여 이행 출력들의 세트를 생성할 수 있다. 이행 데이터의 스트림은 예를 들어 하나 이상의 제1 당사자(first-party)(1P) 에이전트들(171) 및/또는 하나 이상의 제3 당사자(third-party)(3P) 에이전트들(171)(예: 도 2와 관련하여 설명됨)를 사용하여 생성될 수 있다. 마지막으로, TTS 엔진(150A1 및/또는 150A2)은 ML 모델(들) 데이터베이스(115A)에 저장된 TTS 모델(들)을 사용하여, 텍스트 데이터(예: 자동화된 어시스턴트(115)에 의해 공식화된 텍스트)를 프로세싱하여 컴퓨터에서 생성된 합성 스피치를 포함하는 합성 스피치 오디오 데이터를 생성할 수 있다. 특히, ML 모델(들) 데이터베이스(115A)에 저장된 ML 모델(들)은 클라이언트 디바이스(110)에 로컬로 저장되는 디바이스 내 ML 모델들이거나 클라이언트 디바이스(110) 및/또는 원격 시스템들(예: 서버(들)) 둘 다에 액세스 가능한 공유 ML 모델들일 수 있다.
다양한 구현예들에서, ASR 출력의 스트림은 예를 들어, 오디오 데이터의 스트림에서 캡처되는 사용자의 음성 발화(들)에 대응하는 것으로 예측되는 스피치 가설들(예: 용어(term) 가설들 및/또는 전사(transcription) 가설들)의 스트림, 스피치 가설들 각각에 대한 하나 이상의 대응하는 예측 값들(예: 확률들, 로그 우도(log likelihood)들, 및/또는 다른 값들), 오디오 데이터의 스트림에서 캡처된 사용자의 음성 발화(들)에 대응하는 것으로 예측되는 복수의 음소들 및/또는 기타 ASR 출력을 포함할 수 있다. 그러한 구현예들의 일부 버전에서, ASR 엔진(120A1 및/또는 120A2)은 (예: 대응하는 예측 값들에 기초하여) 음성 발화에 대응하는 인식된 텍스트로서 스피치 가설들 중 하나 이상을 선택할 수 있다.
다양한 구현예들에서, NLU 출력의 스트림은 예를 들어, 인식된 텍스트의 용어들 중 하나 이상(예: 모두)에 대한 인식된 텍스트의 하나 이상의 주석들을 포함하는 주석이 달린 인식된 텍스트의 스트림을 포함할 수 있다. 예를 들어, NLU 엔진(130A1 및/또는 130A2)은 문법적 역할들로 용어들에 주석을 달도록 구성된 스피치 태거(tagger)(미도시)의 일부를 포함할 수 있다. 추가적으로 또는 대안적으로, NLU 엔진(130A1 및/또는 130A2)은 사람(예를 들어, 문학적 캐릭터, 유명인사, 공인 등 포함), 조직, 위치(실제 또는 가상) 등에 대한 참조들과 같이 인식된 텍스트의 하나 이상의 세그먼트들에서 엔터티(entity) 참조들에 주석을 달도록 구성된 엔터티 태거를 포함할 수 있다. 일부 구현예들에서, 엔터티들에 대한 데이터는 지식 그래프(미도시)와 같은 하나 이상의 데이터베이스에 저장될 수 있다. 일부 구현예들에서, 지식 그래프는 알려진 엔터티들(및 경우에 따라 엔터티 속성들)을 나타내는 노드들뿐만 아니라, 노드들을 연결하고 엔터티들 사이의 관계를 나타내는 에지들을 포함할 수 있다. 엔터티 태거는 높은 수준의 세분화(예: 사람과 같은 엔터티 클래스에 대한 모든 참조들을 식별할 수 있도록) 및/또는 낮은 수준의 세분화(예: 특정 개인과 같은 특정 엔터티에 대한 모든 참조들을 식별할 수 있도록)로 엔터티에 대한 참조들에 주석을 달 수 있다. 엔터티 태거는 특정 엔터티를 리졸브하기 위해 자연어 입력의 콘텐츠에 의존할 수 있고 및/또는 특정 엔터티를 리졸브하기 위해 지식 그래프 또는 다른 엔터티 데이터베이스와 선택적으로 통신할 수 있다. 추가로 또는 대안적으로, NLU 엔진(130A1 및/또는 130A2)은 하나 이상의 맥락상의 단서들에 기초하여 동일한 엔터티에 대한 참조들을 그룹화하거나 또는 "클러스터"하도록 구성된 공동 참조 리졸버(coreference resolver)(미도시)를 포함할 수 있다. 예를 들어, 공동 참조 리졸버는 입력 "buy them"을 수신하기 직전에 렌더링된 클라이언트 디바이스 알림에서 언급된 " theatre tickets"에 기초하여, "them"이라는 용어를 자연어 입력 "buy them"에서 " buy theatre tickets"로 리졸브하기 위해 활용될 수 있다. 일부 구현예들에서, NLU 엔진(130A1 및/또는 130A2)의 하나 이상의 구성요소들은 NLU 엔진(130A1 및/또는 130A2)의 하나 이상의 다른 구성요소들로부터의 주석에 의존할 수 있다. 예를 들어, 일부 구현예들에서, 엔터티 태거는 특정 엔터티에 대한 모든 언급들에 주석을 달 때 공동 참조 리졸버의 주석들에 의존할 수 있다. 또한 예를, 들어 일부 구현예들에서, 공동 참조 리졸버는 동일한 엔터티에 대한 클러스터링 참조들에서 엔터티 태거의 주석들에 의존할 수 있다.
도 1은 단일 사용자를 갖는 단일 클라이언트 디바이스에 대해 설명되지만, 이는 예시를 위한 것이며 제한하려는 의도가 아님을 이해해야 한다. 예를 들어, 사용자의 하나 이상의 추가 클라이언트 디바이스들은 또한 여기에 설명된 기법들을 구현할 수 있다. 예를 들어, 클라이언트 디바이스(110), 하나 이상의 추가 클라이언트 디바이스들, 및/또는 사용자의 임의의 다른 컴퓨팅 디바이스들은 여기에 설명된 기법들을 사용할 수 있는 디바이스들의 생태계를 형성할 수 있다. 이러한 추가 클라이언트 디바이스들 및/또는 컴퓨팅 디바이스들은 (예: 네트워크(들)(199)를 통해) 클라이언트 디바이스(110)와 통신할 수 있다. 다른 예로서, 주어진 클라이언트 디바이스는 공유 설정(예: 사용자들의 그룹, 가정)에서 다수의 사용자들에 의해 활용될 수 있다.
본 명세서에 기술된 바와 같이, 자동화된 어시스턴트(115)는, NLU 출력의 스트림, 이행 데이터의 스트림, 및 NLU 출력의 스트림 및 이행 데이터의 스트림이 생성되는 오디오 데이터의 스트림에서 캡처된 음성 발화(들)의 오디오 기반 특성들의 현재 상태에 기초하여, 사용자와 자동화된 어시스턴트(115) 사이의 대화 세션 동안 구현될 다음 인터렉션 상태가 (i) 이행 출력이 구현되게 하는 것인지, (ii) 자연스러운 대화 출력을 사용자에게 제시하기 위해 청각적으로 렌더링되게 하는 것인지, 또는 (iii) 임의의 인터렉션이 구현되는 것을 억제하는 것인지 여부를 결정할 수 있다. 이러한 결정을 내리는데 있어서, 자동화된 어시스턴트는 자연스러운 대화 엔진(160)을 활용할 수 있다. 다양한 구현예들에서, 그리고 도 1에 도시된 바와 같이, 자연스러운 대화 엔진(160)은 음향 엔진(161), 상태 엔진(162), 이행 출력 엔진(163), 자연스러운 대화 출력 엔진(164) 및 부분 이행 엔진(165)을 포함할 수 있다.
일부 구현예들에서, 음향 엔진(161)은 오디오 데이터의 스트림의 프로세싱에 기초하여, 오디오 기반 특성들을 결정할 수 있다. 일부 구현예들에서, 음향 엔진(161)은 ML 모델(들) 데이터베이스(115A)에 저장된 음향 ML 모델을 사용하여, 오디오 기반 특성들을 결정하기 위해 오디오 데이터의 스트림을 프로세싱할 수 있다. 일부 구현예들에서, 음향 엔진(161)은 하나 이상의 규칙들을 사용하여, 오디오 기반 특성들을 결정하기 위해 오디오 데이터의 스트림을 프로세싱할 수 있다. 오디오 기반 특성들은, 예를 들어 오디오 데이터의 스트림에서 캡처된 음성 발화(들)와 연관된 운율적 속성들, 가장 최근의 음성 발화가 제공된 이후 경과된 기간 및/또는 기타 오디오-기반 특성들을 포함할 수 있다. 운율적 속성들은, 예를 들어 억양, 톤, 강세, 리듬, 템포, 음높이 및 일시정지와 같은 언어적 기능들을 포함하는 음절들 및 더 큰 스피치 유닛들의 하나 이상의 속성들을 포함할 수 있다. 또한, 운율적 속성들은, 예를 들어 감정 상태; 형식(예: 진술, 질문 또는 명령); 반어; 풍자; 스피치 케이던스; 및/또는 강조의 표시를 제공할 수 있다. 즉, 운율적 속성들은 주어진 사용자의 개별 보이스 특성들과 독립적이고, 개별 음성 발화들 및/또는 다수의 음성 발화들의 조합을 기반으로 대화 세션 중에 동적으로 결정될 수 있는 스피치의 특징들이다.
일부 구현예들에서, 상태 엔진(162)은 NLU 출력의 스트림, 이행 데이터의 스트림 및 오디오 기반 특성들에 기초하여 대화 세션의 현재 상태를 결정할 수 있다. 또한, 상태 엔진(162)은 대화 세션의 현재 상태에 기초하여, 대화 세션을 촉진하기 위해 구현될 다음 인터렉션 상태를 결정할 수 있다. 다음 인터렉션 상태는 예를 들어, (i) 이행 출력이 구현되게 하는 것, (ii) 자연스러운 대화 출력을 사용자에게 제시하기 위해 청각적으로 렌더링되게 하는 것, 또는 (iii) 임의의 인터렉션이 구현되는 것을 억제하는 것을 포함할 수 있다. 다른 식으로 말하면, 상태 엔진(162)은 본 명세서에 기술된 다양한 구성요소들에 의해 생성된 신호들을 분석하여 대화의 현재 상태를 결정하고, 현재 상태에 기초하여 자동화된 어시스턴트(115)가 대화 세션을 촉진하기 위해 어떻게 진행해야 하는지를 결정할 수 있다. 특히, 상태 엔진(162)은 NLU 출력의 스트림, 이행 데이터의 스트림, 및 오디오 기반 특성들에 대한 업데이트에 기초하여 대화 세션 전체에서 (예: 10Hz, 20Hz 또는 기타 주파수에서 연속적으로) 사용자 또는 자동화된 어시스턴트 응답의 완료를 기다리지 않고, 현재 상태를 반복적으로 업데이트할 수 있다. 그 결과, 구현될 다음 인터렉션 상태는 자동화된 어시스턴트(115)가 대화 세션을 촉진하기 위해 어떻게 진행해야 하는지가 계속해서 결정되도록 반복적으로 업데이트될 수 있다.
일부 구현예들에서, NLU 출력의 스트림, 이행 데이터의 스트림 및 오디오 기반 특성들의 현재 상태는 하나 이상의 음성 발화들 중 가장 최근의 음성 발화에 기초하여 생성된 NLU 출력의 가장 최근 인스턴스, 가장 최근의 NLU 출력에 기초하여 생성된 이행 데이터의 가장 최근 인스턴스 및 가장 최근의 음성 발화에 기초하여 생성된 오디오 기반 특성들의 가장 최근 인스턴스를 포함한다. 추가적 또는 대안적 구현예들에서, NLU 출력의 스트림, 이행 데이터의 스트림 및 오디오 기반 특성들의 현재 상태는 가장 최근의 음성 발화에 선행하는 하나 이상의 과거 음성 발화들에 기초하여 생성된 NLU 출력의 하나 이상의 과거 인스턴스들, NLU 출력의 하나 이상의 과거 인스턴스들에 기초하여 생성된 이행 데이터의 하나 이상의 과거 인스턴스들 및 하나 이상의 과거 음성 발화들에 기초하여 생성된 오디오 기반 특성들의 하나 이상의 과거 인스턴스들을 포함한다. 따라서, 대화 세션의 현재 상태는 가장 최근의 음성 발화 및/또는 하나 이상의 이전 음성 발화들의 함수(function)로서 결정될 수 있다.
다양한 구현예들에서, 상태 엔진(162)은 ML 모델(들) 데이터베이스(115A)에 저장된 분류 ML 모델을 사용하여 NLU 출력의 스트림, 이행 데이터의 스트림 및 오디오 기반 특성들의 현재 상태를 프로세싱하는 것에 기초하여 다음 인터렉션 상태를 결정할 수 있다. 분류 ML 모델은 NLU 출력의 스트림, 이행 데이터의 스트림 및 오디오 기반 특성들의 현재 상태를 프로세싱하는 것에 기초하여 각 다음 인터렉션 상태와 연관된 대응하는 예측 측정치들을 생성할 수 있다. 분류 ML 모델은 복수의 트레이닝 인스턴스들에 기초하여 트레이닝될 수 있다. 트레이닝 인스턴스들 각각에는 트레이닝 인스턴스 입력 및 트레이닝 인스턴스 출력이 포함될 수 있다. 트레이닝 인스턴스 입력은 예를 들어, NLU 출력의 트레이닝 스트림, 이행 데이터의 트레이닝 스트림 및 트레이닝 오디오 기반 특성들의 트레이닝 상태를 포함할 수 있고, 트레이닝 인스턴스 출력은 자동화된 어시스턴트(115)가 트레이닝 인스턴스에 기초하여, (i) 이행 출력이 구현되게 해야 하는지, (ii) 자연스러운 대화 출력을 사용자에게 제시하기 위해 청각적으로 렌더링되게 해야 하는지 또는 (iii) 임의의 인터렉션이 구현되는 것을 억제해야 하는지 여부와 연관된 실측(ground truth) 출력을 포함할 수 있다. 트레이닝 상태는 사용자와 자동화된 어시스턴트(115)(및/또는 다른 사용자들 및 각각의 자동화된 어시스턴트) 사이의 과거 대화 세션들에 기초하여 결정될 수 있거나 경험적으로 정의될 수 있다. 분류 ML 모델을 트레이닝할 때, 트레이닝 인스턴스를 입력으로 적용하여 예측 출력(예: 대응하는 예측 측정치들)을 생성하고, 예측 출력을 실측(ground truth) 출력과 비교하여 하나 이상의 손실들을 생성할 수 있다. 분류 모델은 하나 이상의 손실들에 기초하여 업데이트될 수 있다(예: 역전파를 통해) 일단 트레이닝되면, 분류 ML 모델은 본 명세서에 기술된 바와 같이 상태 엔진(162)에 의해 사용하기 위해 배치(deploy)될 수 있다.
일부 구현예들에서, 이행 출력 엔진(163)은 구현될 다음 인터렉션 상태가 (i) 이행 출력이 구현되게 하는 것이라는 결정에 응답하여 이행 출력들의 세트 중에서 구현될 하나 이상의 이행 출력들을 선택할 수 있다. 전술한 바와 같이, 이행 엔진(140A1 및/또는 140A2)은 이행 데이터의 스트림에 기초하여 이행 출력들의 세트를 생성할 수 있고, 이행 데이터의 스트림은 예를 들어, 하나 이상의 1P 에이전트들(171) 및/또는 하나 이상의 3P 에이전트들(171)을 사용하여 생성될 수 있다. 하나 이상의 1P 에이전트들(171)이 도 1의 네트워크들(199) 중 하나 이상을 통해 구현되는 것으로 도시되어 있지만, 이는 예시를 위한 것이며 제한하려는 의도가 아닌 것으로 이해되어야 한다. 예를 들어, 하나 이상의 1P 에이전트들(171)은 클라이언트 디바이스(110)에서 로컬로 구현될 수 있고, NLU 출력의 스트림은 애플리케이션 프로그래밍 인터페이스(API)를 통해 하나 이상의 1P 에이전트들(171)로 전송될 수 있으며, 하나 이상의 1P 에이전트들(171)로부터의 이행 데이터는 API를 통해 이행 출력 엔진(163)에 의해 획득되고, 이행 데이터의 스트림에 통합될 수 있다. 하나 이상의 3P 에이전트들(172)은 대응하는 3P 시스템(예: 3P 서버(들))을 통해 구현될 수 있다. NLU 출력의 스트림은 추가로 또는 대안적으로 하나 이상의 3P 에이전트들(172)(및 클라이언트 디바이스(110)에서 로컬로 구현되지 않는 하나 이상의 1P 에이전트들(171))이 네트워크들(199) 중 하나 이상을 통해 전송되어 하나 이상의 3P 에이전트들(172)로 하여금 이행 데이터를 생성하게 할 수 있다. 이행 데이터는 네트워크들(199) 중 하나 이상을 통해 클라이언트 디바이스(110)로 다시 전송될 수 있고 이행 데이터의 스트림에 통합될 수 있다.
또한, 이행 출력 엔진(163)은 NLU 데이터의 스트림과 연관된 NLU 측정치들 및/또는 이행 데이터의 스트림과 연관된 이행 측정치들에 기초하여, 이행 출력들의 세트 중에서 하나 이상의 이행 출력들을 선택할 수 있다. NLU 측정치들은 예를 들어, NLU 엔진(130A1 및/또는 130A2)이 예측된 의도(들)가 오디오 데이터의 스트림에서 캡처된 음성 발화(들)을 제공한 사용자의 실제 의도에 대응한다는 것을 얼마나 확신하는지 및/또는 예측된 의도(들)와 연관된 파라미터(들)에 대한 예측된 슬롯 값(들)이 예측된 의도(들)과 연관된 파라미터(들)에 대한 실제 슬롯 값(들)에 대응한다는 것을 얼마나 확신하는지를 나타내는 확률들, 로그 우도들, 이진 값들, 등이 될 수 있다. NLU 측정치들은 NLU 엔진(130A1 및/또는 130A2)이 NLU 출력의 스트림을 생성할 때 생성될 수 있고 NLU 출력의 스트림에 포함될 수 있다. 이행 측정치들은, 예를 들어 이행 엔진(140A1 및/또는 140A2)이 예측된 이행 출력(들)이 원하는 사용자의 이행에 대응한다는 것을 얼마나 확신하는지를 나타내는 확률들, 로그 우도들, 이진 값들, 등이 될 수 있다. 이행 측정치들은 하나 이상의 1P 에이전트들(171) 및/또는 하나 이상의 3P 에이전트들(172)이 이행 데이터를 생성함에 따라 생성될 수 있고 이행 데이터의 스트림에 통합될 수 있고, 그리고/및 이행 엔진(140A1 및/또는 140A2)이 하나 이상의 1P 에이전트들(171) 및/또는 하나 이상의 3P 에이전트들(172)로부터 수신된 이행 데이터를 프로세싱함에 따라 생성될 수 있고 이행 데이터의 스트림에 통합될 수 있다.
일부 구현예들에서, 자연스러운 대화 출력 엔진(164)은 자연스러운 대화 출력들의 세트를 생성할 수 있고, 구현될 다음 인터렉션 상태가 (ii) 자연스러운 대화 출력을 사용자에게 제시하기 위해 청각적으로 렌더링되게 하는 것이라는 결정에 응답하여 구현될 자연스러운 대화 출력들의 세트 중에서, 하나 이상의 자연스러운 대화 출력들을 선택할 수 있다. 자연스러운 대화 출력들의 세트는, 예를 들어, NLU 데이터의 스트림과 연관된 NLU 측정치들과 및/또는 오디오 기반 특성들에 기초하여, 생성될 수 있다. 이러한 구현예들의 일부 버전에서, 자연스러운 대화 출력들의 슈퍼세트는 클라이언트 디바이스(110)에 의해 액세스 가능한 하나 이상의 데이터베이스들(도시되지 않음)에 저장될 수 있고, 자연스러운 대화 출력들의 세트는 NLU 데이터의 스트림과 연관된 NLU 측정치들과 및/또는 오디오 기반 특성들에 기초하여 자연스러운 대화 출력들의 슈퍼세트로부터 생성될 수 있다. 이러한 자연스러운 대화 출력들은 대화 세션을 촉진하기 위해 다음 인터렉션 상태로 구현될 수 있지만 반드시 이행으로 구현되는 것은 아니다. 예를 들어, 자연스러운 대화 출력은 사용자에게 자동화된 어시스턴트(115)와 계속 인터렉션하기를 원하는 표시(예: "아직 거기 계십니까?" 등)를 확인하도록 요청하는 것, 사용자와 자동화된 어시스턴트(115) 사이의 대화 세션을 촉진하기 위해 추가 사용자 입력을 제공하도록 사용자에게 요청하는 것(예: "무엇을 턴 온 하기를 원하십니까?" 등), 보충 스피치(예: "물론이죠", "알겠습니다" 등)을 포함할 수 있다. 다양한 구현예들에서, 자연스러운 대화 엔진(164)은 자연스러운 대화 출력들의 세트를 생성할 때 ML 모델(들) 데이터베이스(115A)에 저장된 하나 이상의 언어 모델들을 활용할 수 있다.
일부 구현예들에서, 부분 이행 엔진(165)은 다음 인터렉션 상태가 이행 출력이 구현되게 하는 것이라고 결정하기 전에 이행 출력들의 세트 내 이행 출력들이 부분적으로 이행되게 할 수 있다. 예를 들어, 부분 이행 엔진(165)은 소프트웨어 애플리케이션(198) 중 하나 이상, 1P 에이전트들(171) 중 하나 이상, 3P 에이전트들(172) 중 하나 이상, 클라이언트 디바이스(110)와 통신하는 추가 클라이언트 디바이스, 및/또는 이행 출력들의 세트를 포함하는 이행 출력들과 연관된 클라이언트 디바이스(110)와 통신하는 하나 이상의 스마트 디바이스들과의 연결을 설정할 수 있고, 합성 스피치를 포함하는 합성 스피치 오디오 데이터가 생성되게 할 수 있고(단, 청각적으로 렌더링되지는 않음), 그래픽 콘텐츠가 생성되게 할 수 있으며(시각적으로 렌더링되지는 않음), 및/또는 이행 출력들 중 하나 이상에 대한 다른 부분 이행을 수행할 수 있다. 그 결과, 이행 출력이 다음 인터렉션 상태로 구현되게 하는 대기 시간을 줄일 수 있다.
이제 도 2로 돌아가면, 도 1의 다양한 구성요소들을 사용하여 본 발명의 다양한 양태들을 설명하는 예시적인 프로세스 흐름이 묘사된다. ASR 엔진(120A1 및/또는 120A2)은 ML 모델(들) 데이터베이스(115A)에 저장된 스트리밍 ASR 모델을 사용하여, ASR 출력(220)의 스트림을 생성하기 위해 오디오 데이터(201A)의 스트림을 프로세싱할 수 있다. NLU 엔진(130A1 및/또는 130A2)은 ML 모델(들) 데이터베이스(115A)에 저장된 NLU 모델을 사용하여, ASR 출력(220)의 스트림을 프로세싱하여 NLU 출력(230)의 스트림을 생성할 수 있다. 일부 구현예들에서, NLU 엔진(130A1 및/또는 130A2)은 NLU 출력(230)의 스트림을 생성할 때 비-오디오 데이터(201B)의 스트림을 추가적으로 또는 대안적으로 프로세싱할 수 있다. 비-오디오 데이터(201B)의 스트림은, 클라이언트 디바이스(110)의 시각 구성요소(들)에 의해 생성된 시각 데이터의 스트림, 클라이언트 디바이스(110)의 디스플레이를 통해 사용자에 의해 제공되는 터치 입력의 스트림, 클라이언트 디바이스(110) 또는 주변 디바이스(예: 마우스 및 키보드)의 디스플레이를 통해 사용자에 의해 제공되는 타이핑된 입력의 스트림, 및/또는 임의의 다른 비-오디오 데이터를 포함할 수 있다. 일부 구현예들에서, 1P 에이전트(들)(171)는 1P 이행 데이터(240A)를 생성하기 위해 NLU 출력의 스트림을 프로세싱할 수 있다. 추가적인 또는 대안적인 구현예들에서, 3P 에이전트(들)(172)는 NLU 출력(230)의 스트림을 프로세싱하여 3P 이행 데이터(240B)를 생성할 수 있다. 이행 엔진(140A1 및/또는 140A2)은 1P 이행 데이터(240A) 및/또는 3P 이행 데이터(240B)에 기초하여 이행 데이터(240)의 스트림을 생성할 수 있다. 또한, 음향 엔진(161)은 오디오 데이터(201A)의 스트림과 연관된 오디오 기반 특성들(261)을 생성하기 위해 오디오 데이터(201A)의 스트림을 프로세싱할 수 있다.
상태 엔진(162)은 현재 상태(262)를 결정하기 위해 NLU 출력(230)의 스트림, 이행 데이터(240)의 스트림 및/또는 오디오 기반 특성들을 프로세싱할 수 있고, 블록(299)에 표시된 바와 같이 다음 인터렉션 상태가: (i) 이행 출력이 구현되게 하는 것인지, (ii) 자연스러운 대화 출력을 사용자에게 제시하기 위해 청각적으로 렌더링되게 하는 것인지, 또는 (iii) 임의의 인터렉션이 구현되는 것을 억제하는지 여부를 결정할 수 있다. 예를 들어, NLU 출력(230)의 스트림, 이행 데이터(240)의 스트림 및 오디오 기반 특성들은(241) 분류 ML 모델을 사용하여, 예측 측정치들(예: 이진 값들, 확률들, 로그 우도들, 등)을 생성하기 위해 프로세싱될 수 있다. 다음 인터렉션 상태들 각각은 예측 측정치들 중 대응하는 것과 연관될 수 있으므로, 상태 엔진(162)은 (i) 이행 출력이 예측 측정치들 중 제1 대응 예측 측정치에 기초하여 구현되게 하는지, (ii) 예측 측정치들 중 제2 대응 예측 측정치에 기초하여 자연스러운 대화 출력을 사용자에게 제시하기 위해 청각적으로 렌더링되게 하는지, 또는 (iii) 예측 측정치들 중 제3 대응 예측 측정치에 기초하여 임의의 인터렉션이 구현되는 것을 억제하는지 여부를 결정할 수 있다.
이 경우에, 상태 엔진(162)이 (i) 제1 대응 예측 측정치에 기초하여 이행 출력이 구현되도록 결정하면, 이행 출력 엔진(163)은 이행 출력들의 세트 중에서 하나 이상의 이행 출력들(263)을 선택할 수 있고, 하나 이상의 이행 출력들(263)은 280으로 나타낸 바와 같이 구현될 수 있다. 또한, 이 경우에, 상태 엔진(162)이 (ii) 제2 대응 예측 측정치에 기초하여 자연스러운 대화 출력을 사용자에게 제시하기 위해 청각적으로 렌더링되도록 결정하면, 자연스러운 대화 출력 엔진(164)은 자연스러운 대화 출력들의 세트 중에서 하나 이상의 자연스러운 대화 출력들(264)를 선택할 수 있고, 하나 이상의 자연스러운 대화 출력들(264)은 280으로 나타낸 바와 같이 사용자에게 제시하기 위해 청각적으로 렌더링될 수 있다. 또한, 이 경우에, 상태 엔진(162)이 (iii) 제3의 대응 예측 측정치에 기초하여 임의의 인터렉션이 구현되는 것을 억제한다고 결정하면, 자동화된 어시스턴트(115)는 280으로 나타낸 바와 같이 임의의 인터렉션의 구현을 억제할 수 있다. 특정 구현예가 도 2의 프로세스 흐름과 관련하여 설명되지만, 이는 예시를 위한 것이며 제한하려는 의도가 아님을 이해해야 한다.
본 명세서에 기술된 기법들을 사용함으로써, 하나 이상의 기술적 이점들이 달성될 수 있다. 하나의 비제한적 예로서, 여기에 설명된 기법들은 자동화된 어시스턴트가 대화 세션 동안 사용자와 자연스러운 대화들에 참여할 수 있게 한다. 예를 들어, 자동화된 어시스턴트는 대화 세션의 현재 상태에 기초하여 대화 세션에 대한 다음 인터렉션 상태를 결정할 수 있으므로, 자동화된 어시스턴트가 턴 기반 대화 세션들에 제한되지 않거나 사용자에게 응답하기 전에 사용자가 말하기를 완료했는지 결정하는 데 의존하지 않는다. 따라서, 자동화된 어시스턴트는 사용자가 이러한 자연스러운 대화들에 참여할 때 사용자에게 응답할 시기와 사용자에게 응답하는 방법을 결정할 수 있다. 이로 인해 클라이언트 디바이스에서 컴퓨팅 리소스를 절약하고 대화 세션들이 더 빠르고 효율적인 방식으로 종료될 수 있게 하는 다양한 기술적 이점들이 있다. 예를 들어, 자동화된 어시스턴트가 사용자를 대신하여 임의의 이행을 수행하려고 시도하기 전에 사용자로부터 더 많은 정보를 기다릴 수 있기 때문에 자동화된 어시스턴트 실패의 발생 횟수가 감소될 수 있다. 또한, 예를 들어, 사용자가 스스로 반복해야 하거나 자동화된 어시스턴트를 다시 호출해야 하는 발생 횟수가 감소될 수 있기 때문에 클라이언트 디바이스에서 수신되는 사용자 입력의 양은 감소될 수 있다.
이제 도 3a로 돌아가면, 대화 세션 동안 구현될 다음 인터렉션 상태가 (i) 이행 출력이 구현되게 하는 것인지, (ii) 자연스러운 대화 출력을 사용자에게 제시하기 위해 청각적으로 렌더링되게 하는 것인지, 또는 (iii) 임의의 인터렉션이 구현되는 것을 억제하는지 여부를 결정하는 예시적인 방법(300)을 나타내는 흐름도가 묘사된다. 편의상, 방법(300)의 동작들은 동작들을 수행하는 시스템을 참조하여 설명된다. 방법(300)의 이 시스템은 하나 이상의 프로세서들, 메모리, 및/또는 컴퓨팅 디바이스(들) (예: 도 1의 클라이언트 디바이스(110), 도 4의 클라이언트 디바이스(110A), 도 5a 내지 도 5c의 클라이언트 디바이스(110B), 및/또는 도 6의 컴퓨팅 디바이스, 하나 이상의 서버들, 및/또는 다른 컴퓨팅 디바이스들)의 다른 구성요소(들)을 포함한다. 더욱이, 방법(300)의 동작들이 특정 순서로 도시되어 있지만, 이것은 제한을 의미하지 않는다. 하나 이상의 동작들을 재정렬, 생략 및/또는 추가할 수 있다.
블록(352)에서, 시스템은 스트리밍 ASR 모델을 사용하여, ASR 출력의 스트림을 생성하기 위해 오디오 데이터의 스트림을 프로세싱한다. 오디오 데이터의 스트림은 클라이언트 디바이스에서 적어도 부분적으로 구현되는 자동화된 어시스턴트와의 대화 세션에 참여하는 사용자의 클라이언트 디바이스의 마이크로폰(들)에 의해 생성될 수 있다. 또한, 오디오 데이터의 스트림은 자동화된 어시스턴트로 향하는 사용자의 하나 이상의 음성 발화들을 캡처할 수 있다. 일부 구현예들에서, 시스템은 하나 이상의 특정 단어들 및/또는 문구들(예: "헤이 어시스턴트", "어시스턴트” 등), 하나 이상의 버튼들(예: 소프트웨어 및/또는 하드웨어 버튼들)의 작용(actuation), 클라이언트 디바이스의 시각 구성요소(들)에 의해 캡처된 하나 이상의 제스처들을 통해 사용자가 자동화된 어시스턴트를 호출했다는 결정에 응답하여 오디오 데이터의 스트림을 프로세싱할 수 있으며, 검출 시, 자동화된 어시스턴트를 호출하고 및/또는 임의의 다른 수단들에 의해 수행할 수 있다. 블록(354)에서, 시스템은 NLU 모델을 사용하여, NLU 출력의 스트림을 생성하기 위해 ASR 출력의 스트림을 프로세싱한다. 블록(356)에서, 시스템은 NLU 출력의 스트림에 기초하여 이행 데이터의 스트림을 생성한다. 블록(358)에서, 시스템은 오디오 데이터의 스트림의 프로세싱에 기초하여, 오디오 데이터에서 캡처된 하나 이상의 음성 발화들과 연관된 오디오 기반 특성들을 결정한다. 오디오 기반 특성들은, 예를 들어 하나 이상의 음성 발화들 각각과 연관된 하나 이상의 운율적 속성들(예: 억양, 톤, 강세, 리듬, 템포, 음높이, 일시정지 및/또는 다른 운율적 속성들), 사용자가 하나 이상의 음성 발화들 중 가장 최근의 음성 발화를 제공한 이후 경과된 기간, 및/또는 오디오 데이터의 스트림의 프로세싱에 기초하여 결정될 수 있는 다른 오디오 기반 특성들을 포함할 수 있다.
블록(360)에서, 시스템은 NLU 출력의 스트림, 이행 데이터의 스트림, 및/또는 오디오 데이터에서 캡처된 하나 이상의 음성 발화들과 연관된 오디오 기반 특성들의 현재 상태에 기초하여, 구현될 인터렉션 상태를 결정한다. 일부 구현예들에서, 현재 상태는 대화 세션의 현재 시간 인스턴스에서 NLU 출력, 이행 데이터, 및/또는 오디오 기반 특성들에 기초할 수 있다. 추가적 또는 대안적 구현예들에서, 현재 상태는 대화 세션에서 하나 이상의 이전 시간 인스턴스에서 NLU 출력, 이행 데이터 및/또는 오디오 기반 특성들에 기초할 수 있다. 다른 말로 하면, 현재 상태는 사용자 및/또는 전체 대화 세션에 의해 제공되는 가장 최근의 음성 발화의 맥락 내의 대화 세션의 상태에 대응할 수 있다. 시스템은 예를 들어, 도 3b의 방법(360A)을 사용하여 현재 상태에 기초하여 구현될 다음 인터렉션 상태를 결정할 수 있다.
도 3b를 참조하면, 블록 382에서, 시스템은 분류 ML 모델을 사용하여, 대응하는 예측 측정치들을 생성하기 위해 NLU 출력의 스트림, 이행 데이터의 스트림 및/또는 오디오 기반 특성들의 현재 상태를 프로세싱한다. 예를 들어, 시스템은 (i) 이행 출력이 구현되게 하는 것과 연관된 제1 대응 예측 측정치, (ii) 자연스러운 대화 출력을 사용자에게 제시하기 위해 청각적으로 렌더링되게 하는 것과 연관된 제2 대응 예측 측정치, 및 (iii) 임의의 인터렉션이 구현되는 것을 억제하는 것과 연관된 제3 대응 예측 측정치를 생성할 수 있다. 대응하는 예측 측정치들은, 예를 들어 (i) 이행 출력이 구현되게 하는 것, (ii) 자연스러운 대화 출력을 사용자에게 제시하기 위해 청각적으로 렌더링되게 하는 것, 및 (iii) 임의의 인터렉션이 구현되는 것을 억제하는 것 중 하나가 다음 인터렉션 상태로 구현되어야 할 가능성을 나타내는 이진 값, 확률, 로그 우도, 등일 수 있다.
블록(384)에서, 시스템은 대응하는 예측 측정치들에 기초하여, 다음 인터렉션 상태가: (i) 이행 출력이 구현되게 하는 것인지, (ii) 자연스러운 대화 출력을 사용자에게 제시하기 위해 청각적으로 렌더링되게 하는 것인지, 또는 (iii) 임의의 인터렉션이 구현되는 것을 억제하는 것인지 여부를 결정할 수 있다.
블록(384)의 반복에서, 시스템이 대응하는 예측 측정치들에 기초하여 다음 인터렉션 상태가 (i) 이행 출력이 구현되게 하는 것이라고 결정하면, 시스템은 블록(386A)으로 진행할 수 있다. 블록(386A)에서, 시스템은 NLU 출력의 스트림과 연관된 NLU 예측 측정치들 및/또는 이행 데이터의 스트림과 연관된 이행 측정치들에 기초하여, 이행 출력들의 세트 중에서 이행 출력을 선택한다(예: 도 1및 도 2의 이행 출력 엔진(163)에 대해 설명된 바와 같이). 이행 출력들의 세트는 (예: 도 1 및 도 2의 1P 에이전트(들)(171) 및/또는 3P 에이전트(들)(172)에 대해 설명된 바와 같이) 복수의 에이전트들에 의해 생성될 수 있다. 시스템은 도 3a의 블록(362)으로 돌아갈 수 있고, 다음 인터렉션 상태가 구현되게 할 수 있다. 달리 말하면, 시스템은 블록(386A)에서 선택된 이행 출력이 구현되게 할 수 있다.
블록(384)의 반복에서, 시스템이 대응하는 예측 측정치들에 기초하여 다음 인터렉션 상태가, (ii) 자연스러운 대화 출력을 사용자에게 제시하기 위해 청각적으로 렌더링되게 하는 것이라고 결정하면, 시스템은 블록(386B)으로 진행할 수 있다. 블록(386B)에서, 시스템은 NLU 출력의 스트림과 연관된 NLU 예측 측정치들 및/또는 블록(360)에서 결정된 오디오 기반 특성들에 기초하여, 자연스러운 대화 출력들의 세트 중에서 자연스러운 대화 출력을 선택한다. 자연스러운 대화 출력들의 세트는 (예: 도 1 및 도 2의 자연스러운 대화 출력 엔진(164)에 대해 설명된 바와 같이) 자연스러운 대화 출력들의 슈퍼세트를 포함하는 하나 이상의 데이터베이스들에 기초하여 생성될 수 있다. 시스템은 도 3a의 블록(362)으로 돌아갈 수 있고, 다음 인터렉션 상태가 구현되게 할 수 있다. 달리 말하면, 시스템은 블록 386B에서 선택된 자연스러운 대화 출력을 사용자에게 제시하기 위해 청각적으로 렌더링되게 할 수 있다.
블록(384)의 반복에서, 시스템이 대응하는 예측 측정치들에 기초하여 다음 인터렉션 상태가 (iii) 임의의 인터렉션이 구현되는 것을 억제하는 것이라고 결정하면, 시스템은 블록(384C)으로 진행할 수 있다. 블록(384BA)에서, 시스템은 인터렉션이 구현되는 것을 억제한다. 시스템은 도 3a의 블록(362)으로 돌아갈 수 있고, 다음 인터렉션 상태가 구현되게 할 수 있다. 달리 말하면, 시스템은 자동화된 어시스턴트가 이 주어진 대화 세션의 시간 인스턴스에서 어떤 행동도 수행하지 않고 오디오 데이터의 스트림을 계속 프로세싱하게 할 수 있다.
특히, 다시 도 3a를 참조하면, 시스템이 다음 인터렉션 상태가 블록 362에서 구현되게 한 후, 시스템은 블록 352로 복귀한다. 블록(352)의 후속 반복에서, 시스템은 ASR 출력의 스트림, NLU 데이터의 스트림 및 이행 데이터의 스트림을 계속 생성하기 위해 오디오 데이터의 스트림을 계속 프로세싱한다. 또한, 이 후속 반복에서 오디오 데이터의 스트림의 프로세싱에 기초하여 하나 이상의 추가 오디오 기반 특성들이 결정될 수 있다. 그 결과, 이 후속 반복을 위해 현재 상태가 업데이트될 수 있고, 업데이트된 현재 상태에 기초하여 다음 인터렉션 상태가 결정될 수 있다. 이러한 방식으로, 대화 세션에 대한 다음 인터렉션 상태를 지속적으로 결정하기 위해 현재 상태를 지속적으로 업데이트할 수 있다.
이제 도 4로 돌아가면, 대화 세션 동안 구현될 다음 인터렉션 상태가 (i) 이행 출력이 구현되게 하는 것인지, (ii) 자연스러운 대화 출력을 사용자에게 제시하기 위해 청각적으로 렌더링되게 하는 것인지, 또는 (iii) 임의의 인터렉션이 구현되는 것을 억제하는 것인지 여부를 결정하는 비제한적인 예가 묘사된다. 자동화된 어시스턴트는 클라이언트 디바이스(110A)(예: 도 1과 관련하여 설명된 자동화된 어시스턴트(115))에서 적어도 부분적으로 구현될 수 있다. 자동화된 어시스턴트는 다음 인터렉션 상태를 결정하기 위해 자연스러운 대화 시스템(예를 들어, 도 1과 관련하여 설명된 자연 대화 시스템(180))을 활용할 수 있다. 도 4에 도시된 클라이언트 디바이스(110A)는 예를 들어, 음성 발화 및/또는 다른 가청 입력에 기초하여 오디오 데이터를 생성하는 마이크로폰(들), 합성 스피치 및/또는 다른 가청 출력을 청각적으로 렌더링하는 스피커(들), 및/또는 터치 입력을 수신하기 위한 및/또는 전사들 및/또는 다른 시각적 출력을 시각적으로 렌더링하기 위한 디스플레이(190A)를 포함한다. 도 4에 도시된 클라이언트 디바이스(110A)는 도 4는 모바일 디바이스이지만, 이는 예시를 위한 것이며 제한하려는 의도가 아님을 이해해야 한다.
또한, 도 4에 도시된 바와 같이, 클라이언트 디바이스(110A)의 디스플레이(190A)는 클라이언트 디바이스(110A)로 하여금 하나 이상의 행동들을 수행하게 하기 위해 클라이언트 디바이스(110A)의 사용자에 의해 인터렉션될 수 있는 다양한 시스템 인터페이스 요소들(191, 192 및 193)(예: 하드웨어 및/또는 소프트웨어 인터페이스 요소들)을 포함한다. 클라이언트 디바이스(110A)의 디스플레이(190A)는 사용자로 하여금 터치 입력(예: 사용자 입력을 디스플레이(190A) 또는 그 일부들(예: 텍스트 입력 박스(194) 또는 디스플레이(190A)의 다른 부분들)에 향하게 함으로써) 및/또는 음성 입력(예: 마이크로폰 인터페이스 요소(195)를 선택함으로써 - 또는 반드시 마이크 인터페이스 요소(195)를 선택하지 않고 단지 말을 함으로써(즉, 자동화된 어시스턴트는 클라이언트 디바이스(110A)에서 음성 입력을 활성화하기 위해 하나 이상의 특정 용어 또는 문구들, 제스처(들) 시선(들), 입 움직임(들), 입술 움직임(들), 및/또는 기타 조건들을 모니터링할 수 있음))에 의해 디스플레이(190A)에 렌더링된 콘텐츠와 인터렉션하게 한다.
예를 들어, 클라이언트 디바이스(110A)의 사용자가 대화 세션을 개시하기 위해 "어시스턴트, 사무실에 전화해"라는 음성 발화(452)를 제공한다고 가정한다. 특히, 대화 세션을 개시할 때, 사용자는 자동화된 어시스턴트가 사용자를 대신하여 전화를 걸도록 요청하고 있다. 자동화된 어시스턴트는, NLU 데이터의 스트림, 이행 데이터의 스트림, 및/또는 음성 발화(452)를 캡처하는 오디오 데이터의 스트림의 프로세싱에 기초하여 생성되는 오디오 기반 특성들의 현재 상태에 기초하여, 대화 세션을 촉진하기 위해 구현될 다음 인터렉션 상태를 결정할 수 있다. 예를 들어, 자동화된 어시스턴트가 NLU 데이터의 스트림(예: 현재 상태를 결정하는 데 활용됨)에 기초하여 음성 발화(452)가 사용자를 대신하여 전화를 거는 의도와 연관되어 있고, 전화번호 파라미터에 대한 슬롯 값은 "사무실"에 대응한다고 가정한다. 이 경우에, NLU 데이터의 스트림은 이행 데이터의 스트림을 생성하기 위해 복수의 에이전트들(예: 도 1의 1P 에이전트(들)(171) 및/또는 3P 에이전트(들)(172))에 의해 프로세싱될 수 있다(예: 현재 상태를 결정하는 데 활용됨). 또한 이행 데이터의 스트림이 "사무실" 파라미터에 대해 이용 가능한 연락처 항목이 없음을 나타내므로, 전화번호 파라미터에 대한 슬롯 값이 리졸브되지 않는다고 가정한다.
이 예에서, 그리고 적어도 NLU 데이터의 스트림 및 이행 데이터의 스트림에 기초하여, 결정된 현재 상태는 하나 이상의 이행 출력들이 대화 세션을 촉진하기 위해 다음 인터렉션 상태로 구현되어야 함을 나타낼 수 있다. 구현될 하나 이상의 이행 출력들은 이행 출력들의 세트 중에서 선택될 수 있다. 이행 출력들의 세트는 예를 들어 연락처 항목이 "사무실"인 사용자를 대신하여 전화 통화를 개시하는 어시스턴트 명령, 연락처 항목 "사무실"에 대한 추가 정보를 요청하는 합성 스피치를 포함하는 합성 스피치 오디오 데이터, 및/또는 기타 이행 출력들을 포함할 수 있다. 또한 이 예에서, 이행 데이터의 스트림은 "사무실"에 대해 이용 가능한 연락처 항목이 없음을 나타내므로, 자동화된 어시스턴트는 연락처 항목 “사무실”에 대한 추가 정보를 요청하는 합성 스피치를 포함하는 합성 스피치 오디오 데이터로 구현될 다음 이행 출력을 선택할 수 있다. 따라서, 자동화된 어시스턴트는 연락처 항목 "사무실"에 대한 추가 정보를 요청하는 합성 스피치 오디오 데이터에 포함된 합성 스피치(454)를 클라이언트 디바이스(110A)의 스피커(들)를 통해 사용자에게 제시하기 위해 청각적으로 렌더링되게 할 수 있다. 도 4에 도시된 바와 같이, 합성 스피치(454)는 "예, 전화번호가 무엇입니까"를 포함할 수 있다.
또한, 합성 스피치(454)를 사용자에게 제시하기 위해 청각적으로 렌더링되게 하는 것에 응답하여, 사용자가 "It’s uhhh ..."이라는 음성 발화(456)에 이어 몇 초 동안 일시정지하고, 음성 발화(458) 이후 또 다른 몇 초간 일시정지를 제공한다고 가정한다. 사용자가 음성 발화(456 및 458)를 제공할 때, 자동화된 어시스턴트는 구현될 다음 인터렉션 상태를 결정하기 위해 현재 상태를 반복적으로 업데이트하기 위해 클라이언트 디바이스(110A)의 마이크로폰(들)에 의해 생성된 오디오 데이터의 스트림을 계속 프로세싱할 수 있다. 예를 들어, 사용자가 음성 발화(456)를 제공한 후 그리고 사용자가 음성 발화(458)를 제공하기 전에 대화 세션의 주어진 시간 인스턴스에서, 현재를 결정하는데 활용되는 오디오 기반 특성들을 포함하는 억양 또는 스피치 케이던스는 사용자가 "사무실"의 전화번호에 대한 확신이 없지만 전화번호를 찾으려고 시도하고 있음을 나타낼 수 있다. 이 예에서, 자동화된 어시스턴트는 사용자가 전화번호를 찾아 그/그녀의 생각들을 완료할 시간을 제공받을 수 있도록 어떤 인터렉션도 구현되지 않도록 결정할 수 있다. 따라서, 자동화된 어시스턴트가 사용자가 음성 발화(456)를 완료했다고 결정하더라도, 자동화된 어시스턴트는 여전히 사용자로부터 추가 정보를 기다릴 수 있다. 또한, 사용자가 음성 발화(458)를 제공한 후 대화 세션의 주어진 시간 인스턴스에서, 현재를 결정하는 데 활용되는 오디오 기반 특성들을 포함하는 억양 또는 스피치 케이던스는 여전히 사용자가 “사무실”의 전화 번호에 대해 확신이 없음을 나타낼 수 있다. 그 결과, 자동화된 어시스턴트는 여전히 사용자가 전화번호를 찾아 그/그녀의 생각을 완료할 시간을 제공받을 수 있도록 어떤 인터렉션도 구현되지 않도록 결정할 수 있다. 그러나, 대화 세션의 후속 시간 인스턴스에서 (예: 사용자가 음성 발화(458)를 제공한 후 몇 초 후), 오디오 기반 특성들은 사용자가 음성 발화(458)를 제공한 이후의 기간을 포함할 수 있다.
이 예에서, 그리고 NLU 데이터의 스트림과 이행 데이터의 스트림(예: 사용자를 대신하여 전화 통화를 시작하려면 "사무실"의 전화번호가 필요함을 여전히 나타냄) 및 사용자가 전화 번호에 대해 확신이 없고 몇 초 동안 침묵했음을 나타내는 오디오 기반 특성들에 기초하여, 결정된 현재 상태는 하나 이상의 자연스러운 대화 출력들이 대화 세션을 촉진하기 위해 다음 인터렉션 상태로 구현되어야 함을 나타낼 수 있다. 따라서, 자동화된 어시스턴트가 사용자가 주어진 시간 인스턴스에서 음성 발화(458)를 완료했다고 결정하더라도, 자동화된 어시스턴트는 하나 이상의 자연스러운 대화 출력들이 다음 인터렉션 상태로서 구현되어야 하는 이 후속 시간 인스턴스(예: 주어진 시간 인스턴스 이후)까지는 아니지만 사용자로부터 추가 정보를 여전히 기다릴 수 있다.
구현될 하나 이상의 자연스러운 대화 출력들은 자연스러운 대화 출력들의 세트 중에서 선택될 수 있다. 자연스러운 대화 출력들의 세트는 예를 들어, 사용자가 정보 또는 그/그녀의 생각을 더 수집하기를 더 원하는지 여부를 요청하는 합성 스피치를 포함하는 합성 스피치 오디오 데이터, 사용자가 여전히 자동화된 어시스턴트와 인터렉션하기를 원하는지 여부를 요청하는 합성 스피치를 포함하는 합성 스피치 오디오 데이터, 및/또는 기타 자연스러운 대화 출력들을 포함할 수 있다. 또한, 이 예에서 이행 데이터의 스트림은 "사무실"에 대한 이용 가능한 연락처 항목이 없음을 나타내고 오디오 기반 특성들은 사용자가 "사무실"에 대한 연락처 항목과 연관된 정보에 대해 확신이 없음을 나타내므로, 자동화된 어시스턴트는 사용자에게 제시하기 위해 청각적으로 렌더링될 다음 자연스러운 대화 출력을 선택할 수 있고, 이는 사용자가 정보 또는 그/그녀의 생각을 더 수집하기를 원하는지 여부를 요청하는 합성 스피치 오디오 데이터여야 한다. 따라서, 자동화된 어시스턴트는 합성 스피치 오디오 데이터에 포함된 합성 스피치(460)로 하여금 사용자가 정보를 더 수집하기를 원하는지 또는 그의/그녀의 생각이 클라이언트 디바이스(110A)의 스피커(들)를 통해 사용자에게 제시하기 위해 청각적으로 렌더링되기를 원하는지 여부를 요청하게 할 수 있다. 도 4에 도시된 바와 같이, 합성 스피치(460)는 "시간이 더 필요합니까?"을 포함할 수 있다.
또한, 합성 스피치(460)가 사용자에게 제시하기 위해 청각적으로 렌더링되는 것에 응답하여, 사용자가 "예"라는 음성 발화(462)를 제공하고, 자동화된 어시스턴트는 사용자에게 더 많은 시간의 지연을 원하는 사용자의 요구를 확인하기 위해 "오케이"라는 합성 스피치(464)가 청각적으로 렌더링되게 했다고 가정한다. 일부 구현예들에서, 그리고 사용자가 지연을 호출하더라도(예: "찾을 시간을 좀 줄 수 있습니까?"라는 음성 발화를 제공함으로써), 자동화된 어시스턴트는 현재 상태를 업데이트하기 위하여 오디오 데이터의 스트림을 계속 프로세싱할 수 있지만, 구현될 다음 인터렉션 상태가 사용자가 자동화된 어시스턴트에 추가 입력을 지시하지 않는 한(예: 음성 입력, 터치 입력, 및/또는 타이핑된 입력), 임계 기간(threshold duration of time)(예: 10초, 15초, 30초, 등)동안 구현될 임의의 인터렉션을 억제하는 것에 대응한다고 결정할 수 있다. 추가적 또는 대안적 구현예들에서, 그리고 사용자가 지연을 호출한 경우에도, 자동화된 어시스턴트는 현재 상태를 업데이트하기 위해 오디오 데이터의 스트림을 계속 프로세싱할 수 있고, 지연에 관계없이 구현될 다음 인터렉션 상태를 결정할 수 있다.
예를 들어, 466으로 나타낸 바와 같이, 사용자가 음성 발화(462)를 제공한 후 15초가 경과했다고 가정하고, 468로 나타낸 바와 같이 보이스 활동이 검출되었다고 더 가정한다. 이 예에서 자동화된 어시스턴트는 VAD 모델을 사용하여, 오디오 데이터의 스트림을 프로세싱함으로써 보이스 활동이 검출되는지 결정할 수 있다. 또한, 자동화된 어시스턴트는 보이스 활동을 캡처하는 오디오 데이터의 스트림에 기초하여 생성된 NLU 데이터의 업데이트된 스트림에 기초하여 검출된 보이스 활동이 자동화된 어시스턴트로 향하는지 여부를 결정할 수 있다. 실제로 보이스 활동이 자동화된 어시스턴트로 향한다고 가정하면, 자동화된 어시스턴트는 현재 상태에 기초하여 구현될 다음 인터렉션 상태를 결정하고 다음 인터렉션 상태가 구현되게 할 수 있다. 그러나, 보이스 활동이 자동화된 어시스턴트로 향하지 않는다고 가정하고, 도 4에 설명된 바와 같이, 오디오 기반 특성들은 자동화된 어시스턴트로 향하지 않는 보이스 활동이 검출되었고, 사용자가 마지막으로 자동화된 어시스턴트에게 음성 발화를 제공한 이후의 기간이 15초(또는 임계 기간을 만족할 수 있는 다른 기간)이라는 오디오 데이터의 스트림 프로세싱에 기초하여 결정될 수 있다. 따라서, 이 시점에서, 자동화된 어시스턴트는 사용자에게 프롬프트하기 위해 하나 이상의 자연스러운 대화 출력들이 다음 인터렉션 상태로 구현되어야 한다고 결정할 수 있다. 예를 들어, 자동화된 어시스턴트는 사용자가 자동화된 어시스턴트와 계속 인터렉션할지 여부를 표시하도록 요청하는 합성 음성 오디오 데이터에 포함된 합성 스피치(470)를 발생시킬 수 있다. 도 4에 도시된 바와 같이, 합성 스피치(470)는 사용자가 자동화된 어시스턴트와의 대화 세션을 계속할지 여부를 표시하기 위한 프롬프트로서 합성된 “아직 거기에 계십니까?”를 포함할 수 있다.
또한 사용자가 합성 스피치(470)에 응답하는 "예, 번호는 123-456-7890입니다"라는 음성 발화(472)를 제공한다고 가정한다. 이 때, 자동화된 어시스턴트는 음성 발화(472)를 캡처하는 오디오 데이터의 스트림에 기초하여 현재 상태를 업데이트할 수 있다. 예를 들어, NLU 출력의 스트림을 업데이트하여 전화번호 파라미터(예: "123-456-7890")의 슬롯 값을 나타낼 수 있다. 결과적으로, 이행 데이터의 스트림을 업데이트하여 "사무실"로 전화 통화를 시작할 수 있음을 나타낼 수 있다. 따라서, 이 시점에서, 업데이트된 현재 상태에 기초하여, 자동화된 어시스턴트는 이행 출력이 구현되게 할 수 있다. 이 예에서 구현될 이행 출력에는 "사무실"(예: "123-456-7890"의 전화번호)을 가진 사용자를 대신하여 전화 통화를 시작하는 어시스턴트 명령이 포함될 수 있으며, 전화 통화가 시작되고 있다는 표시를 사용자에게 제공하기 위해 “알겠습니다, 지금 사무실에 전화합니다”라는 합성 스피치(474)를 선택적으로 포함할 수 있다. 따라서, 도 4의 예에서, 자동화된 어시스턴트는 턴 기반 대화 세션들에서와 같이 음성 발화들 각각에 단순히 응답하는 것이 아니라, 대화 세션을 촉진하기 위해 구현될 다음 인터렉션 상태를 반복적으로 결정할 수 있다.
특히, 전화 통화는 합성 스피치(474)와 연관된 대화 세션의 시간 인스턴스까지 개시되지 않더라도, 자동화된 어시스턴트는 전화 통화를 개시하는 어시스턴트 명령이 이 시간 인스턴스 이전에 부분적으로 이행되게 할 수 있다. 예를 들어, 자동화된 어시스턴트는 사용자가 결국 전화 번호 파라미터에 대한 슬롯 값을 제공할 때 개시되는 전화 통화의 대기 시간을 줄이기 위해 음성 발화(452) 수신에 응답하여(또는 대화 세션의 다른 시간 인스턴스에서) 클라이언트 디바이스의 백그라운드에서 실행 중인 전화 애플리케이션과의 연결을 설정할 수 있다(예: 도 1의 부분 이행 엔진(165)과 관련하여 설명된 바와 같이). 더욱이, 대화 세션이 자동화된 어시스턴트 애플리케이션을 통한 전사로 묘사되지만, 이는 예시를 위한 것이며 제한하려는 의도가 아님을 이해해야 한다.
이제 도 5a, 5b 및 5c로 돌아가면, 이행 출력이 대화 세션 동안 구현되게 하는 다양한 비제한적 예가 도시되어 있다. 자동화된 어시스턴트는 클라이언트 디바이스(110B)(예: 도 1과 관련하여 설명된 자동화된 어시스턴트(115))에서 적어도 부분적으로 구현될 수 있다. 자동화된 어시스턴트는 자동화된 어시스턴트가 다음 인터렉션 상태로 구현될 이행을 결정한다고 가정하여 구현될 이행 출력을 결정하기 위해 자연스러운 대화 시스템(예: 도 1과 관련하여 설명된 자연스러운 대화 시스템(180))을 활용할 수 있다. 도 5a, 도 5b 및 도 5c에 도시된 클라이언트 디바이스(110B)는 예를 들어, 음성 발화들 및/또는 다른 가청 입력에 기초하여 오디오 데이터를 생성하는 마이크로폰(들), 합성 스피치 및/또는 다른 가청 입력을 청각적으로 렌더링하는 스피커(들), 및 터치 입력을 수신하기 위한 및/또는 전사들 및/또는 다른 시각적 출력을 시각적으로 렌더링하기 위한 디스플레이(190B)를 포함할 수 있다. 도 5a, 도 5b 및 도 5c에 도시된 클라이언트 디바이스(110B)는 디스플레이(190B)를 갖는 독립형 인터렉션하는 스피커이지만, 이는 예시를 위한 것이며 제한하려는 의도가 아님을 이해해야 한다.
도 5a, 도 5b 및 도 5c 전체의 예를 들어, 사용자(101)가 "어시스턴트, 타이머를 15분으로 설정해"라는 음성 발화(552)를 제공한다고 가정한다. 또한 자동화된 어시스턴트가 구현될 다음 인터렉션 상태가 NLU 출력의 스트림, 이행 데이터의 스트림 및/또는 음성 발화(552)를 캡처하는 오디오 데이터의 스트림의 프로세싱에 기초하여 생성되는 오디오 기반 특성들의 현재 상태에 기초하여 하나 이상의 이행 출력들이 구현되게 하는 것이라고 결정했다고 가정한다. 그러나, 이러한 이들 예에서, 자동화된 어시스턴트에 의해 구현되는 하나 이상의 이행 출력들은 현재 상태를 결정하는 데 활용되는 NLU 데이터의 스트림과 연관된 NLU 측정치들 및/또는 현재 상태를 결정하는 데 활용되는 이행 데이터의 스트림과 연관된 이행 측정치들에 기초하여 달라질 수 있다.
구체적으로 도 5a를 참조하면, NLU 측정치들, 이행 측정치들, 및/또는 NLU 측정치들과 이행 측정치들의 일부 조합(예: 측정치들의 평균, 측정치들 중 최저치 등)이 사용자가 타이머를 15분으로 설정하기를 원한다고 표시했다고 자동화된 어시스턴트가 매우 확신한다고 더 가정한다. 예를 들어, NLU 측정치들 및/또는 이행 측정치들이 제1 임계 측정치 및 제2 임계 측정치(또는 개별적으로 고려되는 경우 각각의 제1 임계 측정치 및 각각의 제2 임계 측정치)를 만족한다고 가정한다. 따라서, NLU 측정치들은 15분의 지속 시간 파라미터에 대한 슬롯 값과 함께 타이머를 설정하는 것과 연관된 의도에 대한 이러한 큰 확신을 나타낼 수 있으며, 이행 측정치들은 타이머를 15으로 설정하라는 어시스턴트 명령에 대한 이러한 큰 확신을 나타낼 수 있다. 그 결과, 자동화된 어시스턴트는 1) 타이머를 15분으로 설정하는 어시스턴트 명령을 구현하고, 2) 디스플레이(190B)에 도시된 15분 타이머로 표시되는 바와 같이 사용자에게 시각적 제시를 위해 제공될 그래픽 콘텐츠를 구현하고; 및/또는 “오케이, 타이머를 15분으로 설정했습니다”라는 합성 스피치(554A)를 구현하는 이행 출력을 선택할 수 있다.
구체적으로 도 5b를 참조하면, NLU 측정치들, 이행 측정치들, 및/또는 NLU 측정치들과 이행 측정치들의 일부 조합(예: 측정치들의 평균, 측정치들 중 최저치 등)이 사용자가 타이머를 15분으로 설정하기를 원한다고 표시했다고 자동화된 어시스턴트가 약간 확신한다고 더 가정한다. 예를 들어, NLU 측정치들 및/또는 이행 측정치들이 제1 임계 측정치를 만족하지만 제2 임계 측정치는 만족하지 않는다고 가정한다(또는 개별적으로 고려되는 경우 각각의 제1 임계 측정치를 만족하지만, 각각의 제2 임계 측정치는 만족하지 않음). 따라서 NLU 측정치들은 15분의 지속 기간 파라미터에 대한 슬롯 값(그러나, 50분의 지속 시간 파라미터에 대한 슬롯 값도 고려)과 함께 타이머를 설정하는 것과 연관된 의도에 대한 이러한 약한 확신을 나타낼 수 있고, 이행 측정치들은 타이머를 15분으로 설정하라는 어시스턴트 명령(그러나, 타이머를 50분으로 설정하라는 어시스턴트 명령도 고려)에 대한 이러한 약한 확신을 나타낼 수 있다. 그 결과, 자동화된 어시스턴트는: 1) 디스플레이(190B)에 도시된 15분 타이머로 표시되는 바와 같이 사용자에게 시각적 제시를 위해 제공될 그래픽 콘텐츠를 구현하고; 및/또는 2) “오케이, 당신은 타이머를 50분이 아니라 15분으로 원합니다, 맞습니까?"라는 합성 스피치(554B)를 구현하는 이행 출력을 선택할 수 있다. 이 예에서, 자동화된 어시스턴트는 사용자가 타이머가 50분이 아닌 15분으로 설정되어 있음을 확인할 때까지 타이머를 15분으로 설정하는 어시스턴트 명령을 구현할 수 없지만, 어시스턴트 명령은 이미 부분적으로 이행될 수 있다(사용자에게 시각적 제시를 위해 제공되는 그래픽 콘텐츠를 구현함으로써 표시됨).
구체적으로 도 5c를 참조하면, NLU 측정치들, 이행 측정치들, 및/또는 NLU 측정치들과 이행 측정치들의 일부 조합(예: 측정치들의 평균, 측정치들 중 최저치 등)이 사용자가 타이머를 15분으로 설정하기를 원한다고 표시했다고 자동화된 어시스턴트가 확신하지 못한다고 더 가정한다. 예를 들어, NLU 측정치들 및/또는 이행 측정치들이 제1 임계 측정치 및 제2 임계 측정치(또는 개별적으로 고려되는 경우 각각의 제1 임계 측정치 및 각각의 제2 임계 측정치)를 만족하지 못한다고 가정한다. 따라서, NLU 측정치들은 15분 또는 50분의 지속 시간 파라미터에 대한 슬롯 값과 함께 타이머를 설정하는 것과 연관된 의도에 대한 이러한 낮은 확신을 나타낼 수 있으며, 이행 측정치들은 타이머를 15분 또는 50분으로 설정하라는 어시스턴트 명령에 대한 낮은 확신을 나타낼 수 있다. 그 결과, 자동화된 어시스턴트는: 1) 디스플레이(190B)에 도시된 15분 타이머 및 50분 모두에 의해 표시되는 바와 같이 사용자에게 시각적 제시를 위해 제공될 그래픽 콘텐츠를 구현하고; 및/또는 2) "타이머, 물론이죠, 그런데 15분이었나요 또는 50분이었나요?"라는 합성 스피치(554C)를 구현하는 이행 출력을 선택할 수 있다. 이 예에서, 자동화된 어시스턴트는 사용자가 타이머가 50분이 아닌 15분으로 설정되어 있음을 확인할 때까지 타이머를 15분 또는 50분으로 설정하는 어시스턴트 명령을 구현할 수 없지만, 어시스턴트 명령은 이미 부분적으로 이행될 수 있다(사용자에게 시각적 제시를 위해 제공되는 그래픽 콘텐츠를 구현함으로써 표시됨).
따라서, 자동화된 어시스턴트가 구현될 다음 인터렉션 상태가 이행 출력이 구현되게 하는 것 (자연스러운 대화 출력이 청각적으로 렌더링되게 하는 것이거나 임의의 인터렉션이 구현되는 것을 억제하는 것 대신)이라고 결정하는 경우에도, 자동화된 어시스턴트는 여전히 이행 출력으로 포함할 항목을 결정할 수 있다. 비록 도 5a, 도 5b 및 도 5c는 특정 임계값들에 기초하여 구현되는 특정 이행 출력들에 대해 설명되지만, 이는 예를 위한 것이며 제한하려는 의도가 아님을 이해해야 한다. 예를 들어, 다수의 추가 또는 대체 임계값들을 사용하여 구현될 이행 출력을 결정할 수 있다. 또한, 예를 들어 이행 출력들은 묘사된 것과 다를 수 있다. 예를 들어, 다시 도 4a를 참조하면, 자동화된 어시스턴트는 자동화된 어시스턴트가 사용자가 타이머를 15분으로 설정하기를 원한다고 표시했다고 매우 확신하기 때문에 합성 스피치(554A)를 제공하지 않고 사용자를 위한 시간을 15분으로 간단하게 설정할 수 있다.
이제 도 6로 돌아가면, 본 명세서에 기술된 기법들의 하나 이상의 양태들을 수행하기 위해 선택적으로 활용될 수 있는 예시적인 컴퓨팅 디바이스(610)의 블록도가 도시되어 있다. 일부 구현예들에서, 클라이언트 디바이스, 클라우드 기반 자동화된 어시스턴트 구성요소(들) 및/또는 다른 구성요소(들) 중 하나 이상은 예시적인 컴퓨팅 디바이스(610)의 하나 이상의 구성요소들을 포함할 수 있다.
컴퓨팅 디바이스(610)는 전형적으로 버스 서브시스템(612)을 통해 다수의 주변 디바이스들과 통신하는 적어도 하나의 프로세서(614)를 포함한다. 이러한 주변 디바이스들은 예를 들어, 메모리 서브시스템(625) 및 파일 스토리지 서브시스템(626)을 포함하는 스토리지 서브시스템(624), 사용자 인터페이스 출력 디바이스들(620), 사용자 인터페이스 입력 디바이스들(622) 및 네트워크 인터페이스 서브시스템(616)을 포함할 수 있다. 입력 및 출력 디바이스들은 사용자가 컴퓨팅 디바이스(610)와 인터렉션할 수 있도록 한다. 네트워크 인터페이스 서브시스템(616)은 외부 네트워크들에 대한 인터페이스를 제공하고 다른 컴퓨팅 디바이스들 내 대응하는 인터페이스에 연결된다.
사용자 인터페이스 입력 디바이스들(622)은 키보드, 마우스, 트랙볼, 터치패드 또는 그래픽 태블릿과 같은 포인팅 디바이스들, 스캐너, 디스플레이에 통합된 터치 스크린, 보이스 인식 시스템들과 같은 오디오 입력 디바이스들, 마이크로폰들 및/또는 기타 유형들의 입력 디바이스들을 포함한다. 일반적으로, "입력 디바이스"라는 용어의 사용은 정보를 컴퓨팅 디바이스(610) 또는 통신 네트워크에 입력하기 위한 모든 가능한 유형들의 디바이스들 및 방법들을 포함하도록 의도된다.
사용자 인터페이스 출력 디바이스들(620)은 디스플레이 서브시스템, 프린터, 팩스 또는 오디오 출력 디바이스들과 같은 비-시각적 디스플레이들을 포함할 수 있다. 디스플레이 서브시스템은 음극선관(CRT), 액정 디스플레이(LCD)와 같은 평면 패널 디바이스, 프로젝션 디바이스 또는 가시적인(visible) 이미지를 생성하기 위한 기타 메커니즘을 포함할 수 있다. 디스플레이 서브시스템은 오디오 출력 디바이스들과 같은 비-시각적 디스플레이를 제공할 수도 있다. 일반적으로, "출력 디바이스"라는 용어의 사용은 컴퓨팅 디바이스(610)로부터 사용자 또는 다른 기계 또는 컴퓨팅 디바이스로 정보를 출력하기 위한 모든 가능한 유형들의 디바이스들 및 방법들을 포함하도록 의도된다.
스토리지 서브시스템(624)은 본 명세서에 기술된 일부 또는 모든 모듈들의 기능을 제공하는 프로그래밍 및 데이터 구성들을 저장한다. 예를 들어, 스토리지 서브시스템(624)은 본 명세서에 개시된 방법들의 선택된 양태들을 수행할 뿐만 아니라, 도 1 및 도 2에 도시된 다양한 구성요소들을 구현하기 위한 로직을 포함할 수 있다.
이들 소프트웨어 모듈들은 일반적으로 프로세서(614) 단독으로 또는 다른 프로세서들과 조합하여 실행된다. 스토리지 서브시스템(624)에서 사용되는 메모리(625)는 프로그램 실행 동안 명령어들 및 데이터 저장을 위한 메인 랜덤 액세스 메모리(RAM)(630) 및 고정 명령어들이 저장되는 읽기 전용 메모리(ROM)(632)를 포함하는 다수의 메모리들을 포함할 수 있다. 파일 스토리지 서브시스템(626)은 프로그램 및 데이터 파일들을 위한 영구 스토리지를 제공할 수 있고, 하드 디스크 드라이브, 연관된 이동식 미디어와 함께 플로피 디스크 드라이브, CD-ROM 드라이브, 광학 드라이브 또는 이동식 미디어 카트리지들을 포함할 수 있다. 특정 구현의 기능을 구현하는 모듈들은 스토리지 서브시스템(624)의 파일 스토리지 서브시스템(626) 또는 프로세서(들)(614)에 의해 액세스 가능한 다른 기계들에 저장될 수 있다.
버스 서브시스템(612)은 컴퓨팅 디바이스(610)의 다양한 구성요소들 및 서브시스템이 의도한 대로 서로 통신하게 하는 메커니즘을 제공한다. 버스 서브시스템(612)이 개략적으로 단일 버스로 도시되어 있지만, 버스 서브시스템(612)의 대안적인 구현예들은 다중 버스를 사용할 수 있다.
컴퓨팅 디바이스(610)는 워크스테이션, 서버, 컴퓨팅 클러스터, 블레이드 서버, 서버 팜 또는 임의의 다른 데이터 프로세싱 시스템 또는 컴퓨팅 디바이스를 포함하는 다양한 유형들일 수 있다. 끊임없이 변화하는 컴퓨터들 및 네트워크들의 특성으로 인해, 도 6에 도시된 컴퓨팅 디바이스(610)에 대한 설명은 일부 구현예들을 예시하기 위한 목적들을 위한 특정 예로서만 의도된 것이다. 컴퓨팅 디바이스(610)의 많은 다른 구성들은 도 6에 도시된 컴퓨팅 디바이스보다 더 많거나 더 적은 구성요소들을 갖는 것이 가능하다.
여기에 설명된 시스템이 사용자에 대한 개인 정보를 수집 또는 모니터링하거나 개인 및/또는 모니터링된 정보를 사용할 수 있는 상황에서, 사용자들은 프로그램들 또는 특징들이 사용자 정보((예: 사용자의 소셜 네트워크, 소셜 행동들 또는 활동들, 직업, 사용자의 선호도들 또는 사용자의 현재 지리적 위치에 대한 정보)를 수집할지 여부를 제어하거나 사용자와 더 관련이 있을 수 있는 콘텐츠 서버로부터 콘텐츠를 수신할지 여부 및/또는 방법을 제어할 수 있는 기회를 제공받을 수 있다. 또한, 특정 데이터는 저장되거나 사용되기 전에 하나 이상의 방식들로 처리되어 개인 식별 정보가 제거될 수 있다. 예를 들어, 사용자의 개인 식별 정보를 결정할 수 없도록 사용자의 신원을 처리하거나, 지리적 위치 정보가 획득된 경우 사용자의 지리적 위치를 일반화(예: 도시, 우편 번호 또는 주 수준)하여, 사용자의 특정 지리적 위치가 결정될 수 없도록 할 수 있다.
일부 구현예들에서, 하나 이상의 프로세서들에 의해 구현되는 방법이 제공되며, 이는 자동 스피치 인식(ASR) 모델을 사용하여, ASR 출력의 스트림을 생성하기 위해 오디오 데이터의 스트림을 프로세싱하는 단계, 오디오 데이터의 스트림은 클라이언트 디바이스의 하나 이상의 마이크로폰들에 의해 생성되고, 오디오 데이터의 스트림은 클라이언트 디바이스에서 적어도 부분적으로 구현되는 자동화된 어시스턴트로 향하는 사용자의 하나 이상의 음성 발화들을 캡처하며; 자연어 이해(NLU) 모델을 사용하여, NLU 출력의 스트림을 생성하기 위해, ASR 출력의 스트림을 프로세싱하는 단계; NLU 출력의 스트림에 기초하여, 이행 데이터의 스트림을 생성하는 단계; 오디오 데이터의 스트림의 프로세싱에 기초하여, 하나 이상의 음성 발화들과 연관된 오디오 기반 특성들을 결정하는 단계; NLU 출력의 스트림, 이행 출력의 스트림, 및 하나 이상의 음성 발화들과 연관된 오디오 기반 특성들의 현재 상태에 기초하여, 구현될 다음 인터렉션 상태가: (i) 이행 데이터의 스트림에 기초하여 생성되는, 이행 출력이 구현되게 하는 것인지, (ii) 자연스러운 대화 출력을 사용자에게 제시하기 위해 청각적으로 렌더링되게 하는 것인지, 또는 (iii) 임의의 인터렉션이 구현되는 것을 억제하는 것인지 여부를 결정하는 단계; 및 다음 인터렉션 상태가 구현되게 하는 단계를 포함한다.
본 명세서에 개시된 기술의 이러한 및 다른 구현예들은 선택적으로 다음 특징들 중 하나 이상을 포함할 수 있다.
일부 구현예들에서, 구현될 다음 인터렉션 상태가, NLU 출력의 스트림, 이행 데이터의 스트림, 및 하나 이상의 음성 발화들과 연관된 오디오 기반 특성들의 현재 상태에 기초하여, (i) 이행 데이터의 스트림에 기초하여 생성되는, 이행 출력이 구현되게 하는 것인지, (ii) 자연스러운 대화 출력을 사용자에게 제시하기 위해 청각적으로 렌더링되게 하는 것인지, 또는 (iii) 임의의 인터렉션이 구현되는 것을 억제하는 것인지 여부를 결정하는 단계는, 분류 기계 학습(ML) 모델을 사용하여, (i) 이행 데이터의 스트림에 기초하여 생성되는, 이행 출력이 구현되게 하는 것, (ii) 자연스러운 대화 출력을 사용자에게 제시하기 위해 청각적으로 렌더링되게 하는 것, 그리고 (iii) 임의의 인터렉션이 구현되는 것을 억제하는 것의 각각과 연관된 대응하는 예측 응답 측정치들을 생성하기 위해, NLU 출력의 스트림, 이행 데이터의 스트림, 및 오디오 기반 특성들의 현재 상태를 프로세싱하는 단계; 및 대응하는 예측 응답 측정치들에 기초하여, 구현될 다음 인터렉션 상태가 (i) 이행 데이터의 스트림에 기초하여 생성되는, 이행 출력이 구현되게 하는지, (ii) 자연스러운 대화 출력을 사용자에게 제시하기 위해 청각적으로 렌더링되게 하는지, 또는 (iii) 임의의 인터렉션이 구현되는 것을 억제하는지 여부를 결정하는 단계를 포함할 수 있다.
일부 구현예들에서, 방법은 이행 데이터의 스트림에 기초하여, 이행 출력들의 세트를 결정하는 단계; 및 NLU 데이터의 스트림과 연관된 예측 NLU 측정치들 및/또는 이행 데이터의 스트림과 연관된 예측 이행 측정치들에 기초하여, 이행 출력들의 세트 중에서 이행 출력을 선택하는 단계를 더 포함할 수 있다.
이러한 구현예들의 일부 버전들에서, 이행 출력들의 세트 중에서 이행 출력을 선택하는 단계는 구현될 다음 인터렉션 상태가 (i) 이행 데이터의 스트림에 기초하여 생성되는, 이행 출력이 구현되게 하는 것이라는 결정에 대한 응답일 수 있다. NLU 데이터의 스트림과 연관된 예측 NLU 측정치들 및/또는 이행 데이터의 스트림과 연관된 예측 이행 측정치들에 기초하여 이행 출력들의 세트 중에서 이행 출력을 선택하는 단계는 NLU 데이터의 스트림과 연관된 예측 NLU 측정치들 및/또는 이행 데이터의 스트림과 연관된 예측 이행 측정치들이 제1 임계 측정치(threshold measure) 및 제2 임계 측정치 모두를 만족한다는 결정에 응답하여 상기 이행 출력으로, 상기 이행 출력들의 세트 중에서 제1 이행 출력을 선택하는 단계를 포함할 수 있다.
이러한 구현예들의 일부 추가 버전들에서, NLU 데이터의 스트림과 연관된 예측 NLU 측정치들 및/또는 이행 데이터의 스트림과 연관된 예측 이행 측정치들에 기초하여 이행 출력들의 세트 중에서 이행 출력을 선택하는 단계는 NLU 데이터의 스트림과 연관된 예측 NLU 측정치들 및/또는 이행 데이터의 스트림과 연관된 예측 이행 측정치들이 제1 임계 측정치는 모두 만족하지만, 제2 임계 측정치는 만족하지 않는다는 결정에 응답하여 이행 출력으로, 이행 출력들의 세트 중에서 제2 이행 출력을 선택하는 단계를 더 포함할 수 있다. 제2 이행 출력은 제1 이행 출력과 상이할 수 있다.
이러한 구현예들의 일부 추가적인 또는 대안적인 추가 버전들에서, NLU 데이터의 스트림과 연관된 예측 NLU 측정치들 및/또는 이행 데이터의 스트림과 연관된 예측 이행 측정치들에 기초하여 이행 출력들의 세트 중에서 이행 출력을 선택하는 단계는 NLU 데이터의 스트림과 연관된 예측 NLU 측정치들 및/또는 이행 데이터의 스트림과 연관된 예측 이행 측정치들이 제1 임계 측정치 및 제2 임계 측정치 모두를 만족하지 않는다는 결정에 응답하여 이행 출력으로, 이행 출력들의 세트 중에서 제3 이행 출력을 선택하는 단계를 더 포함할 수 있다. 제3 이행 출력은 제1 이행 출력 및 제2 이행 출력 모두와 상이할 수 있다.
이러한 구현예들의 일부 버전들에서, 이행 데이터의 스트림에 기초하여 이행 출력들의 세트를 결정하는 단계는 복수의 제1 당사자(first-party) 에이전트들을 사용하여, 대응하는 제1 당사자 이행 출력을 생성하기 위해 이행 데이터를 프로세싱하는 단계; 및 대응하는 제1 당사자 이행 출력을 이행 출력들의 세트에 통합하는 단계를 포함할 수 있다. 이러한 구현예들의 일부 추가 버전들에서, 이행 데이터의 스트림에 기초하여 이행 출력들의 세트를 결정하는 단계는 하나 이상의 네트워크들을 통해, 클라이언트 디바이스로부터 하나 이상의 제3 당사자(third-party) 시스템들로 이행 데이터를 전송하는 단계, 하나 이상의 네트워크들을 통해, 클라이언트 디바이스에서 그리고 하나 이상의 제3 당사자 시스템들로부터, 대응하는 제3 당사자 이행 출력들을 수신하는 단계; 및 복수의 제1 당사자 버티컬들을 사용하여 생성된 대응하는 제3 당사자 이행 출력을 이행 출력들의 세트에 통합하는 단계를 더 포함할 수 있다. 이행 데이터를 하나 이상의 제3 당사자 시스템들로 전송하는 단계는 제3 당사자 시스템들 각각이, 대응하는 제3 당사자 에이전트를 사용하여, 대응하는 제3 당사자 이행 출력을 생성하기 위해 상기 이행 데이터를 프로세싱하게 한다.
이러한 구현예들의 일부 버전들에서, 방법은 이행 데이터의 스트림에 기초하여 생성된 이행 출력에 대응하는 합성 스피치가 클라이언트 디바이스의 하나 이상의 스피커들을 통해 청각적으로 렌더링되게 하기 전에: 이행 출력들의 세트 중 하나 이상의 이행 출력들에 대해 부분 이행을 개시하는 단계를 더 포함할 수 있고, 여기서 부분 이행은 상기 이행 출력들의 세트의 이행 출력들 각각에 특정적이다.
일부 구현예들에서, 이행 출력은: 클라이언트 디바이스의 하나 이상의 스피커들을 통해 사용자에게 제시하기 위해 청각적으로 렌더링되는 이행 출력에 대응하는 합성 스피치를 포함하는 합성 스피치 오디오 데이터, 클라이언트 디바이스 또는 클라이언트 디바이스와 통신하는 추가 클라이언트 디바이스의 디스플레이를 통해 사용자에게 제시하기 위해 시각적으로 렌더링되는 이행 출력에 대응하는 그래픽 콘텐츠, 또는 실행될 때, 자동화된 어시스턴트가 클라이언트 디바이스 또는 클라이언트 디바이스와 통신하는 추가 클라이언트 디바이스를 제어하게 하는 이행 출력에 대응하는 어시스턴트 명령 중 하나 이상을 포함할 수 있다.
일부 구현예들에서, 방법은 클라이언트 디바이스에 의해 액세스할 수 있는 하나 이상의 데이터베이스들에서, 자연스러운 대화 출력들의 세트를 유지하는 단계; 및 하나 이상의 음성 발화들과 연관된 오디오 기반 특성들에 기초하여, 자연스러운 대화 출력들의 세트 중에서 자연스러운 대화 출력을 선택하는 단계를 더 포함할 수 있다. 이러한 구현예들의 일부 버전들에서, 자연스러운 대화 출력들의 세트 중에서 자연스러운 대화 출력을 선택하는 단계는 구현될 다음 인터렉션 상태가 (ii) 자연스러운 대화 출력을 사용자에게 제시하기 위해 청각적으로 렌더링되게 하는 것이라는 결정에 대한 응답일 수 있다. 자연스러운 대화 출력들의 세트 중에서 자연스러운 대화 출력을 선택하는 단계는 NLU 출력과 연관된 예측 측정치들 및 하나 이상의 음성 발화들과 연관된 오디오 기반 특성들에 기초하여 자연스러운 대화 출력으로, 자연스러운 대화 출력들의 세트 중에서 제1 자연스러운 대화 출력을 선택하는 단계를 포함할 수 있다. 이러한 구현예들의 일부 추가 버전들에서, 자연스러운 대화 출력들의 세트 중에서 자연스러운 대화 출력을 선택하는 단계는 NLU 출력과 연관된 예측 측정치들 및 하나 이상의 음성 발화들과 연관된 오디오 기반 특성들에 기초하여 자연스러운 대화 출력으로, 자연스러운 대화 출력들의 세트 중에서 제2 자연스러운 대화 출력을 선택하는 단계를 더 포함할 수 있다. 제2 자연스러운 대화 출력은 제1 자연스러운 대화 출력과 상이할 수 있다.
일부 구현예들에서, 방법은 구현될 다음 인터렉션 상태가: (iii) 임의의 인터렉션이 구현되는 것을 억제하는 것이라는 결정에 응답하여: 보이스 활동 검출 모델을 사용하여, 보이스 활동의 발생을 모니터링하기 위해 오디오 데이터의 스트림을 프로세싱하는 단계; 및 보이스 활동의 발생 검출에 응답하여: 보이스 활동의 발생이 자동화된 어시스턴트로 향하는지 여부를 결정하는 단계를 더 포함할 수 있다. 이러한 구현예들의 추가 버전들에서, 보이스 활동의 발생이 자동화된 어시스턴트로 향하는지 여부를 결정하는 단계는 ASR 모델을 사용하여, ASR 출력의 스트림을 계속 생성하기 위해 오디오 데이터의 스트림을 프로세싱하는 단계; NLU 모델을 사용하여, NLU 출력의 스트림을 계속 생성하기 위해 ASR 출력의 스트림을 프로세싱하는 단계; 및 NLU 출력의 스트림에 기초하여, 보이스 활동의 발생이 자동화된 어시스턴트로 향하는지 여부를 결정하는 단계를 포함할 수 있다. 이러한 구현예들의 일부 추가 버전들에서, 방법은 보이스 활동의 발생이 자동화된 어시스턴트로 향한다는 결정에 응답하여: NLU 출력의 스트림에 기초하여, 이행 데이터의 스트림을 계속 생성하는 단계; 및 이행 데이터의 스트림에 기초하여, 이행 출력이 선택되는 이행 출력들의 세트를 업데이트하는 단계를 더 포함할 수 있다. 이러한 구현예들의 일부 추가적인 또는 대안적인 추가 버전들에서, 방법은 보이스 활동의 발생이 자동화된 어시스턴트로 향하지 않는다는 결정에 응답하여: 사용자가 하나 이상의 음성 발화들을 제공한 이후 임계 지속 시간이 경과했는지 여부를 결정하는 단계; 및 사용자가 하나 이상의 음성 발화들을 제공한 이후 임계 지속 시간이 경과했다는 결정에 응답하여: 구현될 다음 인터렉션 상태가 (ii) 자연스러운 대화 출력을 사용자에게 제시하기 위해 청각적으로 렌더링되게 하는 것이라고 결정하는 단계를 더 포함할 수 있다. 이러한 구현예들의 추가 버전들에서, 클라이언트 디바이스의 하나 이상의 스피커들을 통해 사용자에게 제시하기 위해 청각적으로 렌더링되는 자연스러운 대화 출력은: 자동화된 어시스턴트와의 인터렉션을 계속하기를 원하는지의 표시; 또는 사용자와 자동화된 어시스턴트 사이의 대화 세션을 촉진하기 위해 사용자에게 추가 사용자 입력을 제공하라는 요청을 포함할 수 있다.
일부 구현예들에서, 하나 이상의 음성 발화들과 연관된 오디오 기반 특성들은: 하나 이상의 음성 발화들 각각과 연관된 하나 이상의 운율적 속성들, 여기서 하나 이상의 운율적 속성들은: 억양, 톤, 강세, 리듬, 템포, 음높이 및 일시정지 중 하나 이상을 포함하고; 또는 사용자가 상기 하나 이상의 음성 발화들 중 가장 최근의 음성 발화를 제공한 이후 경과된 기간 중 하나 이상을 포함할 수 있다.
일부 구현예들에서, NLU 출력의 스트림, 이행 데이터의 스트림, 및 오디오 기반 특성들의 현재 상태는 하나 이상의 음성 발화들 중 가장 최근의 음성 발화에 기초하여 생성된 NLU 출력 중 가장 최근의 인스턴스, 가장 최근의 NLU 출력에 기초하여 생성된 이행 데이터 중 가장 최근의 인스턴스, 및 가장 최근의 음성 발화에 기초하여 생성된 오디오 기반 특성들 중 가장 최근의 인스턴스를 포함할 수 있다. 이러한 구현예들의 일부 버전들에서, NLU 출력의 스트림, 이행 데이터의 스트림, 및 오디오 기반 특성들의 현재 상태는 가장 최근의 음성 발화에 선행하는 하나 이상의 과거 음성 발화들에 기초하여 생성된 NLU 출력의 하나 이상의 과거 인스턴스들, NLU 출력의 하나 이상의 과거 인스턴스들에 기초하여 생성된 이행 데이터의 하나 이상의 과거 인스턴스들, 및 하나 이상의 과거 음성 발화들에 기초하여 생성된 오디오 기반 특성들의 하나 이상의 과거 인스턴스들을 더 포함할 수 있다.
일부 구현예들에서, 하나 이상의 프로세서들에 의해 구현되는 방법으로서, 방법은: 자동 스피치 인식(ASR) 모델을 사용하여, ASR 출력의 스트림 , 클라이언트 디바이스의 하나 이상의 마이크로폰들에 의해 생성되는 오디오 데이터의 스트림, 및 클라이언트 디바이스에서 적어도 부분적으로 구현되는 자동화된 어시스턴트로 향하는 사용자의 하나 이상의 음성 발화들을 캡처하는 오디오 데이터의 스트림을 프로세싱하는 단계; 자연어 이해(NLU) 모델을 사용하여, NLU 출력의 스트림을 생성하기 위해, ASR 출력의 스트림을 프로세싱하는 단계; NLU 출력의 스트림에 기초하여, 이행 데이터의 스트림을 생성하는 단계; 오디오 데이터의 스트림의 프로세싱에 기초하여, 하나 이상의 음성 발화들과 연관된 오디오 기반 특성들을 결정하는 단계; NLU 출력의 스트림, 이행 데이터의 스트림, 및 하나 이상의 음성 발화들과 연관된 오디오 기반 특성들의 현재 상태에 기초하여, (i) 합성된 스피치를 포함하는 합성된 스피치 오디오 데이터를 사용자에게 제시하기 위해 청각적으로 렌더링되게 하는 시기 및 (ii) 합성된 스피치에 포함할 내용을 결정하는 단계; 및 합성된 스피치 오디오 데이터를 사용자에게 제시하기 위해 청각적으로 렌더링되게 하는 결정에 응답하여: 합성된 스피치 오디오 데이터를 클라이언트 디바이스의 하나 이상의 스피커들을 통해 청각적으로 렌더링되게 하는 단계; 및 합성된 스피치 오디오 데이터를 사용자에게 제시하기 위해 청각적으로 렌더링되지 않게 하는 결정에 응답하여: 합성된 스피치 오디오 데이터를 클라이언트 디바이스의 하나 이상의 스피커들을 통해 청각적으로 렌더링되게 하는 것을 억제하는 단계를 포함한다.
또한, 일부 구현예들은 하나 이상의 컴퓨팅 디바이스들의 하나 이상의 프로세서들(예: 중앙 프로세싱 유닛(들)(CPU(s)), 그래픽 프로세싱 유닛(들)(GPU(s)) 및/또는 텐서 프로세싱 유닛(들)(TPU(들))을 포함하며, 여기서 하나 이상의 프로세서들은 연관된 메모리에 저장된 명령어들을 실행하도록 작동 가능하고, 명령어들은 전술한 방법들 중 임의의 것을 수행하도록 구성된다. 일부 구현예들은 또한 전술한 방법들 중 임의의 것을 수행하기 위해 하나 이상의 프로세서들에 의해 실행 가능한 컴퓨터 명령어들을 저장하는 하나 이상의 비일시적 컴퓨터 판독 가능 저장 매체를 포함한다. 일부 구현예들은 또한 전술한 방법들 중 임의의 것을 수행하기 위해 하나 이상의 프로세서들에 의해 실행 가능한 명령어들을 포함하는 컴퓨터 프로그램 제품을 포함한다.

Claims (25)

  1. 하나 이상의 프로세서들에 의해 구현되는 방법으로서, 상기 방법은:
    자동 스피치 인식(ASR) 모델을 사용하여, ASR 출력의 스트림을 생성하기 위한 오디오 데이터의 스트림을 프로세싱 하는 단계, 상기 오디오 데이터의 스트림은 클라이언트 디바이스의 하나 이상의 마이크로폰들에 의해 생성되고, 그리고 상기 오디오 데이터의 스트림은 클라이언트 디바이스에서 적어도 부분적으로 구현되는 자동화된 어시스턴트로 향하는 사용자의 하나 이상의 음성 발화들을 캡처하며;
    자연어 이해(NLU) 모델을 사용하여, NLU 출력의 스트림을 생성하기 위해, 상기 ASR 출력의 스트림을 프로세싱하는 단계;
    상기 NLU 출력의 스트림에 기초하여, 이행 데이터의 스트림을 생성하는 단계;
    상기 오디오 데이터의 스트림의 프로세싱에 기초하여, 하나 이상의 음성 발화들과 연관된 오디오 기반 특성들을 결정하는 단계;
    상기 NLU 출력의 스트림, 상기 이행 데이터의 스트림, 및 상기 하나 이상의 음성 발화들과 연관된 오디오 기반 특성들의 현재 상태에 기초하여, 구현될 다음 인터렉션 상태가:
    (i) 상기 이행 데이터의 스트림에 기초하여 생성되는, 이행 출력이 구현되게 하는 것인지,
    (ii) 자연스러운 대화 출력을 사용자에게 제시하기 위해 청각적으로 렌더링되게 하는 것인지, 또는
    (iii) 임의의 인터렉션이 구현되는 것을 억제하는 것인지 여부를 결정하는 단계; 및
    상기 다음 인터렉션 상태가 구현되게 하는 단계를 포함하는, 방법.
  2. 제1 항에 있어서,
    상기 구현될 다음 인터렉션 상태가, 상기 NLU 출력의 스트림, 상기 이행 데이터의 스트림, 및 상기 하나 이상의 음성 발화들과 연관된 오디오 기반 특성들의 현재 상태에 기초하여, (i) 상기 이행 데이터의 스트림에 기초하여 생성되는, 이행 출력이 구현되게 하는 것인지, (ii) 자연스러운 대화 출력을 사용자에게 제시하기 위해 청각적으로 렌더링되게 하는 것인지, 또는 (iii) 임의의 인터렉션이 구현되는 것을 억제하는 것인지 여부를 결정하는 단계는:
    분류 기계 학습(ML) 모델을 사용하여, (i) 상기 이행 데이터의 스트림에 기초하여 생성되는, 이행 출력이 구현되게 하는 것, (ii) 자연스러운 대화 출력을 사용자에게 제시하기 위해 청각적으로 렌더링되게 하는 것, 그리고 (iii) 임의의 인터렉션이 구현되는 것을 억제하는 것의 각각과 연관된 대응하는 예측 응답 측정치들을 생성하기 위해, 상기 NLU 출력의 스트림, 상기 이행 데이터의 스트림, 및 상기 오디오 기반 특성들의 현재 상태를 프로세싱하는 단계; 및
    상기 대응하는 예측 응답 측정치들에 기초하여, 상기 구현될 다음 인터렉션 상태가 (i) 상기 이행 데이터의 스트림에 기초하여 생성되는, 이행 출력이 구현되게 하는 것인지, (ii) 자연스러운 대화 출력을 사용자에게 제시하기 위해 청각적으로 렌더링되게 하는 것인지, 또는 (iii) 임의의 인터렉션이 구현되는 것을 억제하는 것인지 여부를 결정하는 단계를 포함하는, 방법.
  3. 제1항 또는 제2항에 있어서,
    상기 이행 데이터의 스트림에 기초하여, 이행 출력들의 세트를 결정하는 단계; 및
    NLU 데이터의 스트림과 연관된 예측 NLU 측정치들 및/또는 이행 데이터의 스트림과 연관된 예측 이행 측정치들에 기초하여, 상기 이행 출력들의 세트 중에서 상기 이행 출력을 선택하는 단계를 더 포함하는, 방법.
  4. 제3항에 있어서,
    상기 이행 출력들의 세트 중에서 상기 이행 출력을 선택하는 단계는 상기 구현될 다음 인터렉션 상태가 (i) 상기 이행 데이터의 스트림에 기초하여 생성되는, 이행 출력이 구현되게 하는 것이라는 결정에 대한 응답이고, 그리고 상기 NLU 데이터의 스트림과 연관된 예측 NLU 측정치들 및/또는 상기 이행 데이터의 스트림과 연관된 예측 이행 측정치들에 기초하여 상기 이행 출력들의 세트 중에서 상기 이행 출력을 선택하는 단계는:
    상기 NLU 데이터의 스트림과 연관된 예측 NLU 측정치들 및/또는 상기 이행 데이터의 스트림과 연관된 예측 이행 측정치들이 제1 임계 측정치(threshold measure) 및 제2 임계 측정치 모두를 만족한다는 결정에 응답하여 상기 이행 출력으로, 상기 이행 출력들의 세트 중에서 제1 이행 출력을 선택하는 단계를 포함하는, 방법.
  5. 제4항에 있어서,
    상기 NLU 데이터의 스트림과 연관된 예측 NLU 측정치들 및/또는 상기 이행 데이터의 스트림과 연관된 예측 이행 측정치들에 기초하여 상기 이행 출력들의 세트 중에서 상기 이행 출력을 선택하는 단계는:
    상기 NLU 데이터의 스트림과 연관된 예측 NLU 측정치들 및/또는 상기 이행 데이터의 스트림과 연관된 예측 이행 측정치들이 제1 임계 측정치는 모두 만족하지만, 제2 임계 측정치는 만족하지 않는다는 결정에 응답하여 상기 이행 출력으로, 상기 이행 출력들의 세트 중에서 제2 이행 출력을 선택하는 단계를 더 포함하고,
    상기 제2 이행 출력은 상기 제1 이행 출력과 상이한, 방법.
  6. 제4항에 있어서,
    상기 NLU 데이터의 스트림과 연관된 예측 NLU 측정치들 및/또는 상기 이행 데이터의 스트림과 연관된 예측 이행 측정치들에 기초하여 상기 이행 출력들의 세트 중에서 상기 이행 출력을 선택하는 단계는:
    상기 NLU 데이터의 스트림과 연관된 예측 NLU 측정치들 및/또는 상기 이행 데이터의 스트림과 연관된 예측 이행 측정치들이 제1 임계 측정치 및 제2 임계 측정치 모두를 만족하지 않는다는 결정에 응답하여 상기 이행 출력으로, 상기 이행 출력들의 세트 중에서 제3 이행 출력을 선택하는 단계를 더 포함하고,
    상기 제3 이행 출력은 상기 제1 이행 출력 및 상기 제2 이행 출력 모두와 상이한, 방법.
  7. 제3항 내지 제6항 중 어느 한 항에 있어서,
    상기 이행 데이터의 스트림에 기초하여 상기 이행 출력들의 세트를 결정하는 단계는:
    복수의 제1 당사자(first-party) 에이전트들을 사용하여, 대응하는 제1 당사자 이행 출력을 생성하기 위해 이행 데이터를 프로세싱하는 단계; 및
    상기 대응하는 제1 당사자 이행 출력을 상기 이행 출력들의 세트에 통합하는 단계를 포함하는, 방법.
  8. 제7항에 있어서,
    상기 이행 데이터의 스트림에 기초하여 상기 이행 출력들의 세트를 결정하는 단계는:
    하나 이상의 네트워크들을 통해, 클라이언트 디바이스로부터 하나 이상의 제3 당사자(third-party) 시스템들로 상기 이행 데이터를 전송하는 단계, 상기 이행 데이터를 하나 이상의 제3 당사자 시스템들로 전송하는 단계는 상기 제3 당사자 시스템들 각각이, 대응하는 제3 당사자 에이전트를 사용하여, 대응하는 제3 당사자 이행 출력을 생성하기 위해 상기 이행 데이터를 프로세싱하게 하며;
    상기 하나 이상의 네트워크들을 통해, 클라이언트 디바이스에서 그리고 상기 하나 이상의 제3 당사자 시스템들로부터, 상기 대응하는 제3 당사자 이행 출력들을 수신하는 단계; 및
    복수의 제1 당사자 버티컬들을 사용하여 생성된 상기 대응하는 제3 당사자 이행 출력을 상기 이행 출력들의 세트에 통합하는 단계를 더 포함하는, 방법.
  9. 제3항 내지 제8항 중 어느 한 항에 있어서,
    상기 이행 데이터의 스트림에 기초하여 생성된 이행 출력에 대응하는 합성 스피치를 클라이언트 디바이스의 하나 이상의 스피커들을 통해 청각적으로 렌더링되게 하기 전에:
    상기 이행 출력들의 세트 중 하나 이상의 이행 출력들에 대해 부분 이행을 개시하는 단계를 더 포함하고, 상기 부분 이행은 상기 이행 출력들의 세트의 이행 출력들 각각에 특정적인, 방법.
  10. 선행하는 어느 한 항에 있어서,
    상기 이행 출력은:
    클라이언트 디바이스의 하나 이상의 스피커들을 통해 사용자에게 제시하기 위해 청각적으로 렌더링되는 상기 이행 출력에 대응하는 합성 스피치를 포함하는 합성 스피치 오디오 데이터,
    클라이언트 디바이스 또는 클라이언트 디바이스와 통신하는 추가 클라이언트 디바이스의 디스플레이를 통해 사용자에게 제시하기 위해 시각적으로 렌더링되는 상기 이행 출력에 대응하는 그래픽 콘텐츠, 또는
    실행될 때, 자동화된 어시스턴트가 클라이언트 디바이스 또는 클라이언트 디바이스와 통신하는 추가 클라이언트 디바이스를 제어하게 하는 상기 이행 출력에 대응하는 어시스턴트 명령 중 하나 이상을 포함하는, 방법.
  11. 선행하는 어느 한 항에 있어서,
    클라이언트 디바이스에 의해 액세스할 수 있는 하나 이상의 데이터베이스들에서, 자연스러운 대화 출력들의 세트를 유지하는 단계; 및
    상기 하나 이상의 음성 발화들과 연관된 오디오 기반 특성들에 기초하여, 상기 자연스러운 대화 출력들의 세트 중에서 상기 자연스러운 대화 출력을 선택하는 단계를 더 포함하는, 방법.
  12. 제11항에 있어서,
    상기 자연스러운 대화 출력들의 세트 중에서 상기 자연스러운 대화 출력을 선택하는 단계는 상기 구현될 다음 인터렉션 상태가 (ii) 자연스러운 대화 출력을 사용자에게 제시하기 위해 청각적으로 렌더링되게 하는 것이라는 결정에 대한 응답이고, 그리고 상기 자연스러운 대화 출력들의 세트 중에서 상기 자연스러운 대화 출력을 선택하는 단계는:
    NLU 출력과 연관된 예측 측정치들 및 상기 하나 이상의 음성 발화들과 연관된 오디오 기반 특성들에 기초하여 상기 자연스러운 대화 출력으로, 상기 자연스러운 대화 출력들의 세트 중에서 제1 자연스러운 대화 출력을 선택하는 단계를 포함하는, 방법.
  13. 제12항에 있어서,
    상기 자연스러운 대화 출력들의 세트 중에서 상기 자연스러운 대화 출력을 선택하는 단계는:
    상기 NLU 출력과 연관된 예측 측정치들 및 상기 하나 이상의 음성 발화들과 연관된 오디오 기반 특성들에 기초하여 상기 자연스러운 대화 출력으로, 상기 자연스러운 대화 출력들의 세트 중에서 제2 자연스러운 대화 출력을 선택하는 단계를 더 포함하고,
    상기 제2 자연스러운 대화 출력은 상기 제1 자연스러운 대화 출력과 상이한, 방법.
  14. 선행하는 어느 한 항에 있어서,
    상기 구현될 다음 인터렉션 상태가: (iii) 임의의 인터렉션이 구현되는 것을 억제하는 것이라는 결정에 응답하여:
    보이스 활동 검출 모델을 사용하여, 보이스 활동의 발생을 모니터링하기 위해 상기 오디오 데이터의 스트림을 프로세싱하는 단계; 및
    상기 보이스 활동의 발생 검출에 응답하여:
    상기 보이스 활동의 발생이 자동화된 어시스턴트로 향하는지 여부를 결정하는 단계를 더 포함하는, 방법.
  15. 제14항에 있어서,
    상기 보이스 활동의 발생이 자동화된 어시스턴트로 향하는지 여부를 결정하는 단계는:
    ASR 모델을 사용하여, 상기 ASR 출력의 스트림을 계속 생성하기 위해 상기 오디오 데이터의 스트림을 프로세싱하는 단계;
    NLU 모델을 사용하여, 상기 NLU 출력의 스트림을 계속 생성하기 위해 상기 ASR 출력의 스트림을 프로세싱하는 단계; 및
    상기 NLU 출력의 스트림에 기초하여, 상기 보이스 활동의 발생이 자동화된 어시스턴트로 향하는지 여부를 결정하는 단계를 포함하는, 방법.
  16. 제15항에 있어서,
    상기 보이스 활동의 발생이 자동화된 어시스턴트로 향한다는 결정에 응답하여:
    상기 NLU 출력의 스트림에 기초하여, 상기 이행 데이터의 스트림을 계속 생성하는 단계; 및
    상기 이행 데이터의 스트림에 기초하여, 상기 이행 출력이 선택되는 상기 이행 출력들의 세트를 업데이트하는 단계를 더 포함하는, 방법.
  17. 제15항 또는 제16항에 있어서,
    상기 보이스 활동의 발생이 자동화된 어시스턴트로 향하지 않는다는 결정에 응답하여:
    사용자가 하나 이상의 음성 발화들을 제공한 이후 임계 지속 시간(threshold duration)이 경과했는지 여부를 결정하는 단계; 및
    사용자가 하나 이상의 음성 발화들을 제공한 이후 상기 임계 지속 시간이 경과했다는 결정에 응답하여:
    상기 구현될 다음 인터렉션 상태가 (ii) 자연스러운 대화 출력을 사용자에게 제시하기 위해 청각적으로 렌더링되게 하는 것이라고 결정하는 단계를 더 포함하는, 방법.
  18. 제17항에 있어서,
    클라이언트 디바이스의 하나 이상의 스피커들을 통해 사용자에게 제시하기 위해 청각적으로 렌더링되는 상기 자연스러운 대화 출력은:
    자동화된 어시스턴트와의 인터렉션을 계속하기를 원하는지의 표시; 또는
    사용자와 자동화된 어시스턴트 사이의 대화 세션을 촉진하기 위해 사용자에게 추가 사용자 입력을 제공하라는 요청을 포함하는, 방법.
  19. 선행하는 어느 한 항에 있어서,
    상기 하나 이상의 음성 발화들과 연관된 오디오 기반 특성들은:
    하나 이상의 음성 발화들 각각과 연관된 하나 이상의 운율적 속성들, 상기 하나 이상의 운율적 속성들은: 억양, 톤, 강세, 리듬, 템포, 음높이 및 일시정지 중 하나 이상을 포함하고; 또는
    사용자가 상기 하나 이상의 음성 발화들 중 가장 최근의 음성 발화를 제공한 이후 경과된 기간 중 하나 이상을 포함하는, 방법.
  20. 선행하는 어느 한 항에 있어서,
    상기 NLU 출력의 스트림, 상기 이행 데이터의 스트림, 및 상기 오디오 기반 특성들의 현재 상태는 상기 하나 이상의 음성 발화들 중 가장 최근의 음성 발화에 기초하여 생성된 NLU 출력 중 가장 최근의 인스턴스, 가장 최근의 NLU 출력에 기초하여 생성된 이행 데이터 중 가장 최근의 인스턴스, 및 가장 최근의 음성 발화에 기초하여 생성된 오디오 기반 특성들 중 가장 최근의 인스턴스를 포함하는, 방법.
  21. 제20항에 있어서,
    상기 NLU 출력의 스트림, 상기 이행 데이터의 스트림, 및 상기 오디오 기반 특성들의 현재 상태는 가장 최근의 음성 발화에 선행하는 하나 이상의 과거 음성 발화들에 기초하여 생성된 NLU 출력의 하나 이상의 과거 인스턴스들, 상기 NLU 출력의 하나 이상의 과거 인스턴스들에 기초하여 생성된 이행 데이터의 하나 이상의 과거 인스턴스들, 및 상기 하나 이상의 과거 음성 발화들에 기초하여 생성된 오디오 기반 특성들의 하나 이상의 과거 인스턴스들을 더 포함하는, 방법.
  22. 하나 이상의 프로세서들에 의해 구현되는 방법으로서, 상기 방법은:
    자동 스피치 인식(ASR) 모델을 사용하여, ASR 출력의 스트림, 클라이언트 디바이스의 하나 이상의 마이크로폰들에 의해 생성되는 오디오 데이터의 스트림, 및 클라이언트 디바이스에서 적어도 부분적으로 구현되는 자동화된 어시스턴트로 향하는 사용자의 하나 이상의 음성 발화들을 캡처하는 오디오 데이터의 스트림을 프로세싱하는 단계;
    자연어 이해(NLU) 모델을 사용하여, NLU 출력의 스트림을 생성하기 위해, 상기 ASR 출력의 스트림을 프로세싱하는 단계;
    상기 NLU 출력의 스트림에 기초하여, 이행 데이터의 스트림을 생성하는 단계;
    상기 오디오 데이터의 스트림의 프로세싱에 기초하여, 하나 이상의 음성 발화들과 연관된 오디오 기반 특성들을 결정하는 단계;
    상기 NLU 출력의 스트림, 상기 이행 데이터의 스트림, 및 상기 하나 이상의 음성 발화들과 연관된 오디오 기반 특성들의 현재 상태에 기초하여, (i) 합성 스피치를 포함하는 합성 스피치 오디오 데이터를 사용자에게 제시하기 위해 청각적으로 렌더링되게 하는 시기 및 (ii) 합성 스피치에 포함할 내용을 결정하는 단계; 및
    상기 합성 스피치 오디오 데이터를 사용자에게 제시하기 위해 청각적으로 렌더링되게 하는 결정에 응답하여:
    상기 합성 스피치 오디오 데이터를 클라이언트 디바이스의 하나 이상의 스피커들을 통해 청각적으로 렌더링되게 하는 단계; 및
    상기 합성 스피치 오디오 데이터를 사용자에게 제시하기 위해 청각적으로 렌더링되지 않게 하는 결정에 응답하여:
    상기 합성 스피치 오디오 데이터를 클라이언트 디바이스의 하나 이상의 스피커들을 통해 청각적으로 렌더링되게 하는 것을 억제하는 단계를 포함하는, 방법.
  23. 시스템으로서:
    적어도 하나의 프로세서; 및
    명령어들을 포함하는 메모리를 포함하고, 상기 명령어들은 실행될 때, 상기 적어도 하나의 프로세서로 하여금:
    자동 스피치 인식(ASR) 모델을 사용하여, ASR 출력의 스트림을 생성하기 위한 오디오 데이터의 스트림, 클라이언트 디바이스의 하나 이상의 마이크로폰들에 의해 생성되는 오디오 데이터의 스트림, 및 클라이언트 디바이스에서 적어도 부분적으로 구현되는 자동화된 어시스턴트로 향하는 사용자의 하나 이상의 음성 발화들을 캡처하는 오디오 데이터의 스트림을 프로세싱하게 하고;
    자연어 이해(NLU) 모델을 사용하여, NLU 출력의 스트림을 생성하기 위해, 상기 ASR 출력의 스트림을 프로세싱하게 하고;
    상기 NLU 출력의 스트림에 기초하여, 이행 데이터의 스트림을 생성하게 하고;
    상기 오디오 데이터의 스트림의 프로세싱에 기초하여, 상기 하나 이상의 음성 발화들과 연관된 오디오 기반 특성들을 결정하게 하고;
    상기 NLU 출력의 스트림, 상기 이행 데이터의 스트림, 및 하나 이상의 음성 발화들과 연관된 오디오 기반 특성들의 현재 상태에 기초하여, 구현될 다음 인터렉션 상태가:
    (i) 이행 데이터의 스트림에 기초하여 생성되는, 이행 출력이 구현되게 하는 것인지,
    (ii) 자연스러운 대화 출력을 사용자에게 제시하기 위해 청각적으로 렌더링되게 하는 것인지, 또는
    (iii) 임의의 인터렉션이 구현되는 것을 억제하는 것인지 여부를 결정하게 하고; 그리고
    상기 다음 인터렉션 상태가 구현되게 하는, 시스템.
  24. 시스템으로서:
    적어도 하나의 프로세서; 및
    실행될 때, 상기 적어도 하나의 프로세서로 하여금 제1항 내지 제23항 중 어느 한 항에 대응하는 동작들을 수행하게 하는 명령어들을 저장하는 메모리를 포함하는, 시스템.
  25. 비일시적 컴퓨터 판독 가능 저장 매체로서,
    실행될 때, 적어도 하나의 프로세서로 하여금 제1항 내지 제23항 중 어느 한 항에 대응하는 동작들을 수행하게 하는 명령어들을 저장하는, 비일시적 컴퓨터 판독 가능 저장 매체.
KR1020237011520A 2021-05-17 2021-12-01 자동화된 어시스턴트를 위한 자연스러운 대화 활성화 KR20230062612A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US202163189472P 2021-05-17 2021-05-17
US63/189,472 2021-05-17
US17/537,122 2021-11-29
US17/537,122 US20220366905A1 (en) 2021-05-17 2021-11-29 Enabling natural conversations for an automated assistant
PCT/US2021/061466 WO2022245393A1 (en) 2021-05-17 2021-12-01 Enabling natural conversations for an automated assistant

Publications (1)

Publication Number Publication Date
KR20230062612A true KR20230062612A (ko) 2023-05-09

Family

ID=79425618

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020237011520A KR20230062612A (ko) 2021-05-17 2021-12-01 자동화된 어시스턴트를 위한 자연스러운 대화 활성화

Country Status (6)

Country Link
US (1) US20220366905A1 (ko)
EP (1) EP4115411A1 (ko)
JP (1) JP2023549015A (ko)
KR (1) KR20230062612A (ko)
CN (1) CN116368562A (ko)
WO (1) WO2022245393A1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11908452B1 (en) * 2021-05-20 2024-02-20 Amazon Technologies, Inc. Alternative input representations for speech inputs
KR102516391B1 (ko) * 2022-09-02 2023-04-03 주식회사 액션파워 음성 구간 길이를 고려하여 오디오에서 음성 구간을 검출하는 방법

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10832005B1 (en) * 2013-11-21 2020-11-10 Soundhound, Inc. Parsing to determine interruptible state in an utterance by detecting pause duration and complete sentences
US10586535B2 (en) * 2016-06-10 2020-03-10 Apple Inc. Intelligent digital assistant in a multi-tasking environment
US10818288B2 (en) * 2018-03-26 2020-10-27 Apple Inc. Natural assistant interaction
US11423885B2 (en) * 2019-02-20 2022-08-23 Google Llc Utilizing pre-event and post-event input streams to engage an automated assistant

Also Published As

Publication number Publication date
EP4115411A1 (en) 2023-01-11
CN116368562A (zh) 2023-06-30
JP2023549015A (ja) 2023-11-22
WO2022245393A1 (en) 2022-11-24
US20220366905A1 (en) 2022-11-17

Similar Documents

Publication Publication Date Title
US20230074406A1 (en) Using large language model(s) in generating automated assistant response(s
JP2018180523A (ja) マン・マシン・ダイアログにおけるエージェント係属の管理
JP2022534888A (ja) 2パスエンドツーエンド音声認識
US20230046658A1 (en) Synthesized speech audio data generated on behalf of human participant in conversation
JP7371135B2 (ja) 特定話者スピーチモデルを使用した話者認識
AU2021463794A1 (en) Using large language model(s) in generating automated assistant response(s)
KR20230062612A (ko) 자동화된 어시스턴트를 위한 자연스러운 대화 활성화
US20230343324A1 (en) Dynamically adapting given assistant output based on a given persona assigned to an automated assistant
US20230395066A1 (en) Hot-word free pre-emption of automated assistant response presentation
US20230143177A1 (en) Contextual suppression of assistant command(s)
US20230215422A1 (en) Multimodal intent understanding for automated assistant
US20230061929A1 (en) Dynamically configuring a warm word button with assistant commands
US12020703B2 (en) Enabling natural conversations with soft endpointing for an automated assistant
EP4158621A1 (en) Enabling natural conversations with soft endpointing for an automated assistant
CN117121100A (zh) 为自动化助理启用具有软端点的自然对话
US20240031339A1 (en) Method(s) and system(s) for utilizing an independent server to facilitate secure exchange of data
US20240078374A1 (en) System(s) and method(s) for causing contextually relevant emoji(s) to be visually rendered for presentation to user(s) in smart dictation
WO2024019767A1 (en) Method(s) and system(s) for utilizing an independent server to facilitate secure exchange of data
WO2024054271A1 (en) System(s) and method(s) for causing contextually relevant emoji(s) to be visually rendered for presentation to user(s) in smart dictation