KR20230025457A - 어시스턴트 요청들의 협력적 프로세싱을 위한 그룹화된 어시스턴트 디바이스들의 디바이스-상 모델들의 동적 적응 - Google Patents

어시스턴트 요청들의 협력적 프로세싱을 위한 그룹화된 어시스턴트 디바이스들의 디바이스-상 모델들의 동적 적응 Download PDF

Info

Publication number
KR20230025457A
KR20230025457A KR1020237001778A KR20237001778A KR20230025457A KR 20230025457 A KR20230025457 A KR 20230025457A KR 1020237001778 A KR1020237001778 A KR 1020237001778A KR 20237001778 A KR20237001778 A KR 20237001778A KR 20230025457 A KR20230025457 A KR 20230025457A
Authority
KR
South Korea
Prior art keywords
assistant
assistant device
group
devices
wake
Prior art date
Application number
KR1020237001778A
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 KR20230025457A publication Critical patent/KR20230025457A/ko

Links

Images

Classifications

    • 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
    • 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/005Language recognition
    • 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/06Creation of reference templates; Training of speech recognition systems, e.g. adaptation to the characteristics of the speaker's voice
    • G10L15/063Training
    • 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
    • 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
    • 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)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Computational Linguistics (AREA)
  • Acoustics & Sound (AREA)
  • Theoretical Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • General Health & Medical Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • User Interface Of Digital Computer (AREA)
  • Machine Translation (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

구현예들은, 어떤 어시스턴트 디바이스-상 모델(들)이 어시스턴트 디바이스 그룹의 어시스턴트 디바이스들에서 로컬로 저장되는지를 동적으로 적응시키는 것에 관한 것이고, 그리고/또는 어시스턴트 디바이스 그룹의 어시스턴트 디바이스(들)의 어시스턴트 프로세싱 역할(들)을 동적으로 적응시키는 것에 관한 것이다. 이러한 구현예들 중 일부에서, 그룹의 어시스턴트 디바이스들 각각에 대해, 대응하는 디바이스-상 모델(들) 및/또는 대응하는 프로세싱 역할(들)은, 그룹의 어시스턴트 디바이스들의 개별적 프로세싱 능력들을 집합적으로 고려하는 것에 근거하여 결정된다. 구현예들은 추가적으로 또는 대안적으로, 그룹의 어시스턴트 디바이스들 중 어느 하나의 어시스턴트 디바이스로 지향된 어시스턴트 요청들을 협력하여 프로세싱할 때, 그룹의 어시스턴트 디바이스들과 그리고 이들의 관련된 적응-후 디바이스-상 모델(들) 및/또는 적응-후 프로세싱 역할(들)을 협력하여 이용하는 것에 관한 것이다.

Description

어시스턴트 요청들의 협력적 프로세싱을 위한 그룹화된 어시스턴트 디바이스들의 디바이스-상 모델들의 동적 적응
인간들은 본 명세서에서 "자동화된 어시스턴트(automated assistant)들"로서 지칭되는 상호작용형 소프트웨어 애플리케이션(interactive software application)들과의 인간-대-컴퓨터 대화(human-to-computer dialog)들에 참여할 수 있다(이러한 상호작용형 소프트웨어 애플리케이션들은 또한, "챗봇(chatbot)들", "상호작용형 개인 어시스턴트(interactive personal assistant)들", "지능형 개인 어시스턴트(intelligent personal assistant)들", "개인 목소리 어시스턴트(personal voice assistant)들", "대화형 에이전트(conversational agent)들", 등으로서 지칭됨). 예를 들어, 인간들(이들이 자동화된 어시스턴트들과 상호작용할 때는 "사용자들"로서 지칭될 수 있음)은 발성된 자연 언어 입력(즉, 발성된 발언들)(이것은 일부 경우들에서 텍스트(text)로 변환될 수 있고, 그 다음에 프로세싱될 수 있음)을 사용하여, 커맨드(command)들 및/또는 요청들을 자동화된 어시스턴트에 제공할 수 있다. 커맨드(들) 및/또는 요청(들)은 추가적으로 또는 대안적으로, 텍스트형(예컨대, 타이핑된(typed)) 자연 언어 입력, 터치-스크린 입력(touch-screen input), 및/또는 (예컨대, 대응하는 어시스턴트 디바이스의 카메라(들)에 의해 검출되는) 터치-프리 제스처 입력(touch-free gesture input)과 같은 다른 입력 양상(input modality) 혹은 양상들을 통해 제공될 수 있다. 자동화된 어시스턴트는 일반적으로, 응답형 사용자 인터페이스 출력(예컨대, 청취가능한 그리고/또는 시각적인 사용자 인터페이스 출력)을 제공함으로써, 그리고/또는 다른 액션(action)(들)을 수행함으로써, 커맨드 또는 요청에 응답한다.
자동화된 어시스턴트들은 전형적으로 사용자 요청들을 프로세싱할 때 컴포넌트(component)들의 파이프라인(pipeline)에 의존한다. 예를 들어, 깨우기 워드 검출 엔진(wake word detecting engine)은, 발성된 깨우기 워드(예컨대, "오케이 어시스턴트(OK Assistant)")의 일어남에 대해 모니터링(monitoring)할 때 오디오 데이터(audio data)를 프로세싱하는 것, 그리고 이러한 일어남을 검출하는 것에 응답하여 다른 컴포넌트(들)에 의한 프로세싱이 일어나도록 하는 것을 행하기 위해 사용될 수 있다. 또 하나의 다른 예로서, 자동 음성 인식(Automatic Speech Recognition, ASR) 엔진은, 사용자의 발언의 전사(transcription)(즉, 용어(term)(들)의 시퀀스(sequence) 및/또는 다른 토큰(token)(들)의 시퀀스)를 발생시키기 위해서, 발성된 발언을 포함하는 오디오 데이터를 프로세싱하기 위해 사용될 수 있다. ASR 엔진은, 깨우기 워드 검출 엔진에 의해 검출되는 바와 같이, 그리고/또는 자동화된 어시스턴트의 다른 호출(invocation)(들)에 응답하여, 발성된 깨우기 워드의 후속하는 일어남에 근거하여 오디오 데이터를 프로세싱할 수 있다. 또 하나의 다른 예로서, 자연 언어 이해(Natural Language Understanding, NLU) 엔진은, 요청의 텍스트(ASR을 사용하여, 발성된 발언으로부터 변환된 텍스트)를 프로세싱하여 텍스트의 의미론적 표현(semantic representation)인 신념 상태(belief state) 또는 상징적 표현(symbolic representation)을 발생시키는데 사용될 수 있다. 예컨대, 신념 상태는, 텍스트에 대응하는 의도(intent)(들), 그리고 선택에 따라서는 그러한 의도(들)에 대한 파라미터(들)(예컨대, 슬롯 값(slot value)들)를 포함할 수 있다. 신념 상태는, 하나 이상의 대화 전환(dialog turn)들을 통해 완전히 형성되면(예컨대, 모든 의무적 파라미터(mandatory parameter)들이 해결되면), 발성된 발언에 응답하여 수행될 액션(들)을 나타낸다. 그 다음에, 별개의 이행 컴포넌트(fulfillment component)가, 완전히 형성된 신념 상태를 이용하여 신념 상태에 대응하는 액션(들)을 수행할 수 있다.
사용자는 자동화된 어시스턴트와 상호작용할 때 하나 이상의 어시스턴트 디바이스들(자동화된 어시스턴트 인터페이스를 갖는 클라이언트 디바이스)을 이용한다. 어시스턴트 디바이스에서 제공되는 요청을 프로세싱할 때 이용되는 컴포넌트들의 파이프라인은, 어시스턴트 디바이스와 네트워크 통신을 하고 있는 하나 이상의 원격 서버들에서 구현되는 컴포넌트(들) 및/또는 어시스턴트 디바이스에서 로컬로(locally) 실행되는 컴포넌트(들)를 포함할 수 있다.
어시스턴트 디바이스에서 로컬로 실행되는 컴포넌트들의 분량(quantity)을 증 증가시키려는 노력들, 그리고/또는 이러한 컴포넌트들의 강인성(robustness) 및/또는 정확성을 증가시키려는 노력들이 있어왔다. 이러한 노력들은, 레이턴시(latency)를 감소시키는 것, 데이터의 보안을 증가시키는 것, 네트워크 사용을 감소시키는 것, 그리고/또는 다른 기술적 혜택(들)을 성취하려고 추구하는 것과 같은 고려(들)에 의해 동기를 부여받는다. 하나의 예로서, 일부 어시스턴트 디바이스들은 로컬 깨우기 워드 엔진(local wake word engine) 및/또는 로컬 ASR 엔진(local ASR engine)을 포함할 수 있다.
하지만, 다양한 어시스턴트 디바이스들의 제한된 프로세싱 능력들로 인해, 어시스턴트 디바이스에서 로컬로 구현되는 컴포넌트(들)는 클라우드-기반 대응물(cloud-based counterpart)들보다 덜 강인할 수 있고 그리고/또는 덜 정확할 수 있다. 이것은 특히, (a) 다양한 컴포넌트(들)를 실행하는 것 및/또는 이들의 관련된 모델(들)을 이용하는 것을 행하기 위한 프로세싱 파워(processing power) 및/또는 메모리 용량(memory capacity)이 부족할 수 있는, 그리고 (b) 다양한 관련된 모델(들)을 저장하기 위한 디스크-공간 용량(disk-space capacity)이 부족할 수 있는, 오래된 그리고/또는 비용이 저렴한 어시스턴트들에 대해 진실일 수 있다.
본 명세서에서 개시되는 구현예들은, 어떤 어시스턴트 디바이스-상 모델(들)이 어시스턴트 디바이스 그룹의 어시스턴트 디바이스들에서 로컬로 저장되는지를 동적으로 적응시키는 것에 관한 것이고, 그리고/또는 어시스턴트 디바이스 그룹의 어시스턴트 디바이스(들)의 어시스턴트 프로세싱 역할(들)을 동적으로 적응시키는 것에 관한 것이다. 이러한 구현예들 중 일부에서, 그룹의 어시스턴트 디바이스들 각각에 대해, 대응하는 디바이스-상 모델(들) 및/또는 대응하는 프로세싱 역할(들)은, 그룹의 어시스턴트 디바이스들의 개별적 프로세싱 능력들을 집합적으로 고려하는 것에 근거하여 결정된다. 예를 들어, 주어진 어시스턴트 디바이스에 대한 디바이스-상 모델(들) 및/또는 프로세싱 역할(들)은, 주어진 어시스턴트 디바이스의 개별적 프로세싱 능력들에 근거하여 결정될 수 있고(예컨대, 주어진 어시스턴트 디바이스가, 프로세서, 메모리, 및/또는 저장소 제약들을 고려하여 볼 때, 이러한 디바이스-상 모델(들)을 저장할 수 있고 이러한 프로세싱 역할(들)을 수행할 수 있는가에 근거하여 결정될 수 있고), 아울러 그룹의 다른 어시스턴트 디바이스(들)의 대응하는 프로세싱 능력들을 고려하여 결정될 수 있다(예컨대, 다른 디바이스(들)가 다른 필요한 디바이스-상 모델(들)을 저장할 수 있을 것이고 그리고/또는 다른 필요한 프로세싱 역할(들)을 수행할 수 있을 것인가를 고려하여 결정될 수 있음). 일부 구현예들에서, 사용 데이터가 또한, 그룹의 어시스턴트 디바이스들 각각에 대한 대응하는 디바이스-상 모델(들) 및/또는 대응하는 프로세싱 역할(들)을 결정할 때 이용될 수 있다.
본 명세서에서 개시되는 구현예들은, 추가적으로 또는 대안적으로, 그룹의 어시스턴트 디바이스들 중 어느 하나의 어시스턴트 디바이스로 지향된 어시스턴트 요청들을 협력하여 프로세싱(cooperatively processing)할 때, 그룹의 어시스턴트 디바이스들과 그리고 이들의 관련된 적응-후 디바이스-상 모델(post-adaptation on-device model)(들) 및/또는 적응-후 프로세싱 역할(post-adaptation processing role)(들)을 협력하여 이용하는 것에 관한 것이다.
이러한 방식들 및 다른 방식들에서, 디바이스-상 모델들 및 디바이스-상 프로세싱 역할들은, 그룹의 다수의 이종의 어시스턴트 디바이스들 간에, 이러한 어시스턴트 디바이스들의 프로세싱 능력들을 고려하여, 분산될 수 있다. 더욱이, 그룹의 다수의 어시스턴트들 간에 분산되는 경우, 디바이스-상 모델들 및 디바이스-상 프로세싱 능력들의 집합적 강인성 및/또는 능력들은, 어시스턴트 디바이스들 중 어느 하나의 어시스턴트로 개별적으로 가능한 것을 능가(surpass)한다. 바꿔 말하면, 본 명세서에서 개시되는 구현예들은 그룹의 어시스턴트 디바이스들 간에 분산되는 어시스턴트 컴포넌트들의 디바이스-상 파이프라인을 효과적으로 구현할 수 있다. 이러한 분산된 파이프라인의 강인성 및/또는 정확성은 또한, 대신에 그룹의 어시스턴트 디바이스들 중 오로지 단일의 어시스턴트 디바이스 상에서만 구현된 임의의 파이프라인의 강인성 및/또는 정확성 능력들을 능가한다. 본 명세서에서 개시되는 바와 같은 강인성 및/또는 정확성을 증가시키는 것은 더 큰 분량의 어시스턴트 요청들에 대한 레이턴시를 감소시킬 수 있다. 더욱이, 증가된 강인성 및/또는 정확성은 결과적으로, 어시스턴트 요청들을 해결할 때 원격의 자동화된 어시스턴트 컴포넌트(들)에게 더 적은 데이터가 전송되게 한다(또는 심지어 어떠한 데이터도 전송되지 않게 함). 이것의 직접적인 결과는, 어시스턴트 요청들을 해결할 때, 사용자 데이터의 보안이 향상되는 것, 네트워크 사용의 빈도에서의 감소, 네트워크를 통해 전송되는 데이터의 분량에서의 감소, 그리고/또는 레이턴시가 감소되는 것이다(예컨대, 로컬로 해결된 이러한 어시스턴트 요청(들)은 원격 어시스턴트 컴포넌트(들)가 관여된 경우보다 더 적은 레이턴시로 해결될 수 있음).
특정 적응들은 결과적으로, 그룹의 하나 이상의 어시스턴트 디바이스들에게서, 해당 어시스턴트 디바이스가 많은 어시스턴트 요청들을 자신이 프로세싱하기 위해 필요한 엔진(들) 및/또는 모델(들)이 결여(lacking)되게 할 수 있다. 예를 들어, 특정 적응들은 결과적으로, 어시스턴트 디바이스에게서 임의의 깨우기 워드 검출 능력들 및/또는 ASR 능력들이 결여되게 할 수 있다. 하지만, 본 명세서에서 개시되는 구현예들에 따라 적응되는 경우 그리고 그룹 내에 있는 경우, 어시스턴트 디바이스는 그룹의 다른 어시스턴트 디바이스(들)와 협력하는 관계에서 어시스턴트 요청들을 협력하여 프로세싱할 수 있다(이 경우, 각각의 어시스턴트 디바이스는 이렇게 할 때 자기 자신의 프로세싱 역할(들)을 수행하고 자기 자신의 디바이스-상 모델(들)을 이용함). 이에 따라, 어시스턴트 디바이스로 지향된 어시스턴트 요청들은 그룹의 다른 어시스턴트 디바이스들과 협력하는 관계에서 여전히 프로세싱될 수 있다.
다양한 구현예들에서, 그룹의 어시스턴트 디바이스(들)에 대한 적응들은 그룹의 발생 또는 그룹의 수정(예컨대, 그룹으로부터 어시스턴트 디바이스(들)의 제거 또는 통합)에 응답하여 수행된다. 본 명세서에서 설명되는 바와 같이, 그룹은, 그룹에 대한 욕구(desire)를 표시하는 명시적 사용자 입력(들)에 근거하여 발생될 수 있고, 그리고/또는 예를 들어, 그룹의 어시스턴트 디바이스(들)가 서로에 대해 근접 조건(proximity condition)(들)을 만족시킨다는 결정에 근거하여 자동적으로 발생될 수 있다. 그룹(들)이 이러한 방식(들)에서 생성될 때에만 적응(들)을 수행하는 구현예들에서, 그룹의 두 개의 별개의 디바이스들에서 동시에 수신되는(그리고 병렬로 협력하여 프로세싱될 수 없을 수 있는) 두 개의 어시스턴트 요청들의 일어남들은 완화될 수 있다. 예를 들어, 그룹을 발생시킬 때 근접 조건(들)이 고려되는 경우, 두 개의 이종의 동시 요청들이 그룹의 두 개의 상이한 어시스턴트 디바이스들에서 수신될 가능성은 희박하다. 예컨대, 주택의 다수의 층들에 걸쳐 그룹의 어시스턴트 디바이스들이 흩어져 있는 것과는 반대로 그룹의 어시스턴트 디바이스들이 모두 동일한 방 안에 있는 경우 이러한 것들이 일어날 가능성은 낮다. 또 하나의 다른 예로서, 사용자가 그룹이 발생돼야함을 명시적으로 표시하는 경우, 중첩되지 않은 어시스턴트 요청들이 그룹의 어시스턴트 디바이스(들)에게 제공될 가능성이 높다.
다양한 구현예들의 하나의 특정 예로서, 제 1 어시스턴트 디바이스 및 제 2 어시스턴트 디바이스로 구성되는 어시스턴트 디바이스 그룹이 발생된다고 가정한다. 더욱이, 어시스턴트 디바이스 그룹이 발생되는 시간에, 제 1 어시스턴트 디바이스가, 깨우기 워드 엔진 및 대응하는 깨우기 워드 모델(들), 워밍 신호(warm cue)(들) 엔진 및 대응하는 워밍 신호(들) 모델(들), 인증 엔진 및 대응하는 인증 모델(들), 그리고 대응하는 디바이스-상 ASR 엔진 및 대응하는 ASR 모델을 포함한다고 가정한다. 더욱이, 어시스턴트 디바이스 그룹이 발생되는 시간에, 제 2 어시스턴트 디바이스가 또한, 제 1 어시스턴트 디바이스와 동일한 엔진들 및 모델들(또는 그 변형물들)을 포함하고, 추가적으로, 디바이스-상 NLU 엔진 및 대응하는 NLU 모델(들), 디바이스-상 이행 및 대응하는 이행 모델(들), 그리고 디바이스-상 TTS 엔진 및 대응하는 TTS 모델(들)을 포함한다고 가정한다.
제 1 어시스턴트 디바이스 및 제 2 어시스턴트 디바이스가 그룹화되는 것에 응답하여, 제 1 어시스턴트 디바이스 및 제 2 어시스턴트 디바이스에서 로컬로 저장되는 어시스턴트 디바이스-상 모델(들) 및/또는 제 1 어시스턴트 디바이스 및 제 2 어시스턴트 디바이스의 대응하는 프로세싱 역할들은 적응될 수 있다. 제 1 어시스턴트 디바이스 및 제 2 어시스턴트 디바이스 각각에 대한 디바이스-상 모델(들) 및 프로세싱 역할(들)은 제 1 어시스턴트 디바이스 및 제 2 어시스턴트 디바이스의 제 1 프로세싱 능력들을 고려하는 것에 근거하여 결정될 수 있다. 예를 들어, 제 1 어시스턴트 디바이스 상에서 대응하는 프로세싱 역할/엔진에 의해 저장될 수 있고 이용될 수 있는 제 1 서브세트를 포함하는 디바이스-상 모델들의 세트가 결정될 수 있다. 더욱이, 세트는, 제 2 어시스턴트 디바이스 상에서 대응하는 프로세싱 역할에 의해 저장될 수 있고 이용될 수 있는 제 2 서브세트를 포함할 수 있다. 예를 들어, 제 1 서브세트는 ASR 모델(들)만을 포함할 수 있지만, 제 1 서브세트의 ASR 모델(들)은 제 1 어시스턴트 디바이스의 적응-전 ASR 모델(들)보다 더 강인할 수 있고 그리고/또는 더 정확할 수 있다. 더욱이, 이들은 ASR을 수행할 때 이용할 더 큰 컴퓨팅연산 리소스(computational resource)들을 요구할 수 있다. 하지만, 제 1 어시스턴트 디바이스는 제 1 서브세트의 ASR 모델(들) 및 ASR 엔진만을 가질 수 있고, 그리고 적응-전 모델들 및 엔진들은 소거(purge)될 수 있어, 제 1 서브세트의 ASR 모델(들)을 이용하는 ASR을 수행할 때의 이용을 위한 컴퓨팅연산 리소스들을 확보(freeing up)하게 된다. 이러한 예를 계속하면, 제 2 서브세트는, ASR 모델(들)이 생략될 수 있다는 것, 그리고 더 강인한 그리고/또는 더 정확한 NLU 모델(들)이 적응-전 NLU 모델(들)을 대체할 수 있다는 것을 제외하면, 전에 포함된 제 2 어시스턴트 디바이스와 동일한 모델(들)을 포함할 수 있다. 더 강인한 그리고/또는 더 정확한 NLU 모델(들)은, 적응-전 NLU 모델(들)보다 더 큰 리소스들을 요구할 수 있지만, 이들은 적응-전 ASR 모델(들)의 소거(및 제 2 서브세트로부터 임의의 ASR 모델(들)의 생략)을 통해 확보될 수 있다.
제 1 어시스턴트 디바이스 및 제 2 어시스턴트 디바이스는, 그 다음에, 그룹의 어시스턴트 디바이스들 중 어느 하나의 어시스턴트 디바이스로 지향된 어시스턴트 요청들을 협력하여 프로세싱할 때, 이들의 관련된 적응-후 디바이스-상 모델(들) 및/또는 적응-후 프로세싱 역할(들)을 협력하여 이용할 수 있다. 예를 들어, "오케이 어시스턴트, 온도를 2도 올려"의 발성된 발언을 가정한다. 제 2 어시스턴트 디바이스의 깨우기 신호(들) 엔진은 깨우기 신호 "오케이 어시스턴트"의 일어남을 검출할 수 있다. 이에 응답하여, 깨우기 신호(들) 엔진은 제 1 어시스턴트 디바이스에게 커맨드를 전송하여 제 1 어시스턴트 디바이스의 ASR 엔진으로 하여금 깨우기 신호에 후속하는 캡처된 오디오 데이터(captured audio data)에 관해 음성 인식을 수행하도록 할 수 있다. 제 1 어시스턴트 디바이스의 ASR 엔진에 의해 발생된 전사(transcription)는 제 2 어시스턴트 디바이스에게 전송될 수 있고, 그리고 제 2 어시스턴트 디바이스의 NLU 엔진은 전사에 관해 NLU를 수행할 수 있다. NLU의 결과들은 제 2 어시스턴트 디바이스의 이행 엔진(fulfillment engine)으로 전달될 수 있고, 이행 엔진은 이러한 NLU 결과들을 사용하여 스마트 온도조절기(smart thermostat)로 하여금 온도를 2도만큼 증가시키도록 하기 위해 스마트 온도조절기에 전송할 커맨드(들)를 결정할 수 있다.
이전의 것은 단지 일부 구현예들의 개관으로서 제공된다. 이러한 구현예들 및 다른 구현예들이 본 명세서에서 더 상세히 개시된다.
추가적으로, 일부 구현예들은 하나 이상의 사용자 디바이스들을 포함하는 시스템을 포함할 수 있고, 여기서 각각의 사용자 디바이스는 하나 이상의 프로세서들과 그리고 이러한 하나 이상의 프로세서들과 동작가능하게 결합된 메모리를 가지며, 하나 이상의 사용자 디바이스들의 메모리(들)는, 하나 이상의 사용자 디바이스들의 하나 이상의 프로세서들에 의한 명령들의 실행에 응답하여, 하나 이상의 프로세서들로 하여금 본 명세서에서 설명되는 방법들 중 임의의 방법을 수행하도록 하는 명령들을 저장한다. 일부 구현예들은 또한, 적어도 하나의 비-일시적 컴퓨터-판독가능 매체를 포함하고, 여기서 적어도 하나의 비-일시적 컴퓨터-판독가능 매체는, 하나 이상의 프로세서들에 의한 명령들의 실행에 응답하여, 하나 이상의 프로세서들로 하여금 본 명세서에서 설명되는 방법들 중 임의의 방법을 수행하도록 하는 명령들을 포함한다.
본 명세서에서 더 상세히 설명되는 앞서의 개념들 및 추가적인 개념들의 모든 조합들이 본 명세서에서 개시되는 주된 내용의 일부인 것으로서 고려됨이 이해돼야 한다. 예를 들어, 본 개시내용의 끝에서 출현하는 청구되는 주된 내용의 모든 조합들이 본 명세서에서 개시되는 주된 내용의 일부인 것으로서 고려된다.
도 1a는 어떠한 어시스턴트 디바이스들도 본 명세서에서 개시되는 구현예들에 따라 그룹화 및 조정되지 않은 예시적 어시스턴트 생태계(assistant ecosystem)의 블록도이다.
도 1ba, 도 1bb, 및 도 1bc 각각은 도 1a의 예시적 어시스턴트 생태계를 예시하는데, 여기서 제 1 어시스턴트 디바이스 및 제 2 어시스턴트 디바이스는 그룹화되었고, 구현될 수 있는 적응들의 상이한 예들이 제시된다.
도 1c는 도 1a의 예시적 어시스턴트 생태계를 예시하는데, 여기서 제 1 어시스턴트 디바이스, 제 2 어시스턴트 디바이스, 및 제 3 어시스턴트 디바이스는 그룹화되었고, 구현될 수 있는 적응들의 예들이 제시된다.
도 1d는 도 1a의 예시적 어시스턴트 생태계를 예시하는데, 여기서 제 3 어시스턴트 디바이스 및 제 4 어시스턴트 디바이스는 그룹화되었고, 구현될 수 있는 적응들의 예들이 제시된다.
도 2는 그룹 내의 어시스턴트 디바이스들의 디바이스-상 모델(들) 및/또는 프로세싱 역할(들)을 적응시키는 예시적 방법을 예시하는 흐름도이다.
도 3은 그룹 내의 어시스턴트 디바이스들의 디바이스-상 모델(들) 및/또는 프로세싱 역할(들)을 적응시킬 때, 그룹 내의 다수의 어시스턴트 디바이스들 각각에 의해 구현될 수 있는 예시적 방법을 예시하는 흐름도이다.
도 4는 컴퓨팅 디바이스의 예시적 아키텍처를 예시한다.
많은 사용자들은, 다수의 어시스턴트 디바이스들 중 임의의 어시스턴트 디바이스를 사용하여, 자동화된 어시스턴트를 활용(engage)할 수 있다. 예를 들어, 일부 사용자들은, 자동화된 어시스턴트로 지향된 사용자 입력을 수신할 수 있는 그리고/또는 자동화된 어시스턴트에 의해 제어될 수 있는 어시스턴트 디바이스들의 조정된 "생태계"를 소유할 수 있는데, 이러한 어시스턴트 디바이스들은 예컨대, 다른 어시스턴트 디바이스들 중에서도, 하나 이상의 스마트 폰(smart phone)들, 하나 이상의 태블릿 컴퓨터(tablet computer)들, 하나 이상의 차량 컴퓨팅 시스템(vehicle computing system)들, 하나 이상의 착용가능 컴퓨팅 디바이스(wearable computing device)들, 하나 이상의 스마트 텔레비전(smart television)들, 하나 이상의 상호작용형 독립 스피커(interactive standalone speaker)들, 디스플레이를 갖는 하나 이상의 상호작용형 독립 스피커들, 하나 이상의 IoT 디바이스들과 같은 것이 있다.
사용자는 이러한 어시스턴트 디바이스들 중 임의의 어시스턴트 디바이스를 사용해, 자동화된 어시스턴트와의 인간-대-컴퓨터 대화에 참여할 수 있다(자동화된 어시스턴트 클라이언트가 설치되어 있고 어시스턴트 디바이스가 입력을 수신할 수 있다고 가정함). 일부 경우들에서, 이러한 어시스턴트 디바이스들은 사용자의 주된 거주지, 이차 거주지, 작업장, 및/또는 다른 구조 둘레에 흩어져 있을 수 있다. 예를 들어, 스마트 폰들, 태블릿들, 스마트 워치들, 등과 같은 모바일 어시스턴트 디바이스들은 사용자의 신체 상에 있을 수 있고, 그리고/또는 사용자가 이들을 마지막으로 놓은 곳 어디에나 있을 수 있다. 전통적인 데스크탑 컴퓨터들, 스마트 텔레비전들, 상호작용형 독립 스피커들, 및 IoT 디바이스들과 같은 다른 어시스턴트 디바이스들은 더 정적일 수 있지만, 그럼에도 불구하고 사용자의 자택 혹은 작업장 내의 다양한 장소들(예컨대, 방들)에 위치할 수 있다.
먼저 도 1a을 참조하면, 예시적 어시스턴트 생태계가 예시된다. 예시적 어시스턴트 생태계는, 제 1 어시스턴트 디바이스(110A), 제 2 어시스턴트 디바이스(110B), 제 3 어시스턴트 디바이스(110C), 및 제 4 어시스턴트 디바이스(110D)를 포함한다. 어시스턴트 디바이스들(110A 내지 110D)은 모두, 가정, 사업체, 또는 다른 환경 내에 배치될 수 있다. 더욱이, 어시스턴트 디바이스들(110A 내지 110D)은 모두, 하나 이상의 데이터 구조들에서, 함께 링크(link)될 수 있거나, 또는 그렇지 않으면 서로 관련될 수 있다. 예를 들어, 네 개의 어시스턴트 디바이스들(110A 내지 110D)은 모두, 동일한 사용자 계정(user account)에 등록될 수 있고, 사용자 계정(들)의 동일한 세트에 등록될 수 있고, 특정 구조에 등록될 수 있고, 그리고/또는 디바이스 토폴로지 표현(device topology representation)에서의 특정 구조에 모두 할당될 수 있다. 디바이스 토폴로지 표현은, 어시스턴트 디바이스들(110A 내지 110D) 각각에 대해, 대응하는 고유한 식별자(들)를 포함할 수 있고, 그리고 선택에 따라서는, 어시스턴트 인터페이스를 포함하지 않는 IoT 디바이스(들)와 같은, 어시스턴트 디바이스들이 아닌(하지만, 어시스턴트 디바이스를 통해 상호작용될 수 있는) 다른 디바이스(들)에 대한 대응하는 고유한 식별자(들)를 포함할 수 있다. 더욱이, 디바이스 토폴로지 표현은 각각의 어시스턴트 디바이스들(110A 내지 110D)과 관련된 디바이스 속성(들)을 특정할 수 있다. 주어진 어시스턴트 디바이스에 대한 디바이스 속성들은, 예를 들어, 각각의 어시스턴트 디바이스들에 의해 지원되는 하나 이상의 입력 및/또는 출력 양상들, 각각의 어시스턴트 디바이스들에 대한 프로세싱 능력들, (어떤 프로세싱 능력들이 결정될 수 있는 가에 근거하는) 각각의 어시스턴트 디바이스들의 제조자(make), 모델, 및/또는 고유한 식별자(예컨대, 일련 번호), 그리고/또는 다른 속성(들)을 표시할 수 있다. 또 하나의 다른 예로서, 네 개의 어시스턴트 디바이스들은 모두, 보안화된 액세스 무선 네트워크와 같은 동일한 무선 네트워크에 연결되는 것에 따라, 그리고/또는 (예컨대, 블루투스(Bluetooth)를 통해 그리고 짝지기(pairing)(들) 이후) 서로 집합적으로 피어-투-피어 통신(peer-to-peer communication) 상태에 있는 것에 따라, 함께 링크될 수 있거나, 또는 그렇지 않으면 서로 관련될 수 있다. 바꿔 말하면, 일부 구현예들에서, 다수의 어시스턴트 디바이스들은, 임의의 데이터 구조에서 서로가 반드시 관련될 필요없이 서로가 보안화된 네트워크 연결 상태 있는 것에 따라, 함께 링크되는 것으로 고려될 수 있고, 그리고 본 명세서에서 개시되는 구현예들에 따라 잠재적으로 적응되는 것으로 고려될 수 있다.
비-한정적인 작동 예로서, 제 1 어시스턴트 디바이스(110A)는, 디스플레이 및 카메라를 갖는 상호작용형 독립 스피커의 특정 모델과 같은 어시스턴트 디바이스의 제 1 타입일 수 있다. 제 2 어시스턴트 디바이스(110B)는, 디스플레이 및 카메라를 갖지 않는 상호작용형 독립 스피커의 제 1 모델과 같은 어시스턴트 디바이스의 제 2 타입일 수 있다. 어시스턴트 디바이스들(110C 및 110D)은 각각, 디스플레이를 갖지 않는 상호작용형 독립 스피커의 제 3 모델과 같은 어시스턴트 디바이스의 제 3 타입일 수 있다. 제 3 타입(어시스턴트 디바이스들(110C 및 110D))은 제 2 타입(어시스턴트 디바이스(110D))보다 더 적은 프로세싱 능력들을 가질 수 있다. 예를 들어, 제 3 타입은 제 2 타입의 프로세서(들)보다 더 적은 프로세싱 능력들을 갖는 프로세서(들)를 가질 수 있다. 예컨대, 제 3 타입의 프로세서(들)는 어떠한 GPU도 갖지 않을 수 있고, 반면 제 1 타입의 프로세서(들)는 GPU(들)를 포함한다. 또한, 예컨대, 제 3 타입의 프로세서(들)는 제 2 타입의 프로세서(들)보다 더 작은 캐시(cache) 및/또는 더 낮은 동작 주파수를 가질 수 있다. 또 하나의 다른 예로서, 제 3 타입의 디바이스-상 메모리의 크기는 제 2 타입의 디바이스-상 메모리의 크기보다 더 적을 수 있다(예컨대, 2 GB와 비교해 1 GB). 또 다른 예로서, 제 3 타입의 이용가능한 디스크 공간은 제 1 타입의 이용가능한 디스크 공간보다 더 적을 수 있다. 이용가능한 디스크 공간은 현재 이용가능한 디스크 공간과는 다를 수 있다. 예를 들어, 이용가능한 디스크 공간은 현재 이용가능한 디스크 공간에 하나 이상의 디바이스-상 모델(들)에 의해 현재 점유된 디스크 공간이 합해진 것으로서 결정될 수 있다. 또 하나의 다른 예로서, 이용가능한 디스크 공간은, 총 디스크 공간에서 오퍼레이팅 시스템(operating system) 및/또는 다른 특정 소프트웨어에 의해 점유된 임의의 공간이 차감(subtracting away)된 것일 수 있다. 이러한 작동 예를 계속하면, 제 1 타입 및 제 2 타입은 동일한 프로세싱 능력들을 가질 수 있다.
데이터 구조(들)에서 함께 링크되는 것에 추가하여, 어시스턴트 디바이스들(110A 내지 110D) 중 둘 이상의 어시스턴트 디바이스들(예컨대, 모든 어시스턴트 디바이스들)은 또한, 로컬 영역 네트워크(Local Area Network)(들)(LAN(들))(108)를 통해 적어도 선택적으로 서로 통신 상태에 있다. LAN(들)(108)은 와이-파이(Wi-Fi)를 이용하는 것들과 같은 무선 네트워크(들), 블루투스를 이용하는 것과 같은 다이렉트 피어-투-피어 네트워크(direct peer-to-peer network)(들), 그리고/또는 다른 통신 프로토콜(들)을 이용하는 다른 통신 토폴로지들을 포함할 수 있다.
어시스턴트 디바이스(110A)는 어시스턴트 클라이언트(120A)를 포함하는데, 이러한 어시스턴트 클라이언트(120A)는 오퍼레이팅 시스템의 상단에 있는 독립형 애플리케이션일 수 있거나, 또는 어시스턴트 디바이스(110A)의 오퍼레이팅 시스템의 일부 혹은 전부를 형성할 수 있다. 도 1a에서 어시스턴트 클라이언트(120A)는 깨우기/호출 엔진(121A1) 및 하나 이상의 관련된 디바이스-상 깨우기/호출 모델들(131A1)을 포함한다. 깨우기/호출 엔진(121A1)은 하나 이상의 깨우기 또는 호출 신호들의 일어남에 대해 모니터링할 수 있고, 그리고 이러한 신호(들) 중 하나 이상을 검출하는 것에 응답하여, 어시스턴트 클라이언트(120A)의 하나 이상의 이전에 비활성인 기능들을 호출할 수 있다. 예를 들어, 어시스턴트 클라이언트(120A)를 호출하는 것은 ASR 엔진(122A1), NLU 엔진(123A1), 및/또는 다른 엔진(들)으로 하여금 활성화되도록 하는 것을 포함할 수 있다. 예컨대, 이것은, ASR 엔진(122A1)으로 하여금 깨우기 또는 호출 신호들에 후속하는 추가 오디오 데이터 프레임(audio data frame)들을 프로세싱하도록 할 수 있고(반면 호출 이전에는 오디오 데이터 프레임들의 어떠한 추가 프로세싱도 일어나고 있지 않았음), 그리고/또는 어시스턴트 클라이언트(120A)로 하여금 프로세싱(예컨대, 클라우드 기반 어시스턴트 컴포넌트(들)(140)의 원격 ASR 엔진에 의한 오디오 데이터 프레임들의 프로세싱)을 위해 클라우드 기반 어시스턴트 컴포넌트(들)(140)로 전송될 추가 오디오 데이터 프레임들 및/또는 다른 데이터를 전송하도록 할 수 있다.
일부 구현예들에서, 깨우기 신호(들) 엔진(121A)은, 발성된 깨우기 워드(들) 또는 호출 어구(invocation phrase)(들)(예컨대, "오케이 어시스턴트", "헤이 어시스턴트(Hey Assistant)")의 일어남에 대해 모니터링하기 위해, 클라이언트 디바이스(110A)의 하나 이상의 마이크로폰들로부터의 출력에 근거하는 오디오 데이터 프레임들의 스트림(stream)을 (예컨대, 만약 "비활성" 모드에 있지 않다면) 계속해서 프로세싱할 수 있다. 프로세싱은 깨우기 모델(들)(131A1) 중 하나 이상을 이용하는 깨우기 신호(들) 엔진(121A)에 의해 수행될 수 있다. 예를 들어, 깨우기 모델(들)(131A1) 중 하나는, 오디오 데이터의 프레임들을 프로세싱하는 것, 그리고 오디오 데이터 내에 하나 이상의 깨우기 워드들이 존재하는지 여부를 표시하는 출력을 발생시키는 것을 행하도록 훈련된 뉴럴 네트워크 모델(neural network model)일 수 있다. 깨우기 워드(들)의 일어남에 대해 모니터링하는 동안, 깨우기 신호(들) 엔진(121)은 깨우기 워드(들)를 포함하지 않은 임의의 오디오 데이터 프레임들을 (예컨대, 버퍼 내에 임시 저장 이후) 폐기한다. 깨우기 신호(들) 엔진(121A)은, 깨우기 워드(들)의 일어남에 대해 모니터링하는 것에 추가하여 또는 그 대신에, 다른 호출 신호(들)의 일어남에 대해 모니터링할 수 있다. 예를 들어, 깨우기 신호(들) 엔진(121A)은 또한, 호출 하드웨어 버튼(invocation hardware button) 및/또는 호출 소프트웨어 버튼(invocation software button)의 눌림(press)에 대해 모니터링할 수 있다. 또 하나의 다른 예로서, 그리고 이러한 작동 예를 계속하면, 어시스턴트 디바이스(110A)가 카메라를 포함하는 경우, 깨우기 신호(들) 엔진(121A1)은 또한, 선택에 따라서는, 사용자의 응시(gaze)가 카메라에 지향되는 동안 손 흔들기(hand wave)와 같은 호출 제스처(invocation gesture)(들)의 일어남에 대해 모니터링할 때, 그리고/또는 사용자가 발성하고 있다는 표시와 함께 카메라에 지향되는 사용자의 응시와 같은 다른 호출 신호(들)의 일어남에 대해 모니터링할 때, 카메라로부터의 이미지 프레임(들)을 프로세싱할 수 있다.
도 1a에서 어시스턴트 클라이언트(120A)는 또한, 자동 음성 인식(ASR) 엔진(122A1) 및 하나 이상의 관련된 디바이스-상 ASR 모델들(132A1)을 포함한다. ASR 엔진(122A1)은, 사용자의 발언의 전사(즉, 용어(들)의 시퀀스 및/또는 다른 토큰(들)의 시퀀스)를 발생시키기 위해서, 발성된 발언을 포함하는 오디오 데이터를 프로세싱하기 위해 사용될 수 있다. ASR 엔진(122A1)은 디바이스-상 ASR 모델(들)(132A1)을 이용하여 오디오 데이터를 프로세싱할 수 있다. 디바이스-상 ASR 모델(들)(132A1)은 예를 들어, 뉴럴 네트워크 모델인 2-패스 ASR 모델(two-pass ASR model)을 포함할 수 있는데, 이러한 2-패스 ASR 모델은 토큰들에 대한 확률들의 시퀀스(그리고 전사물(transcript)을 발생시키기 위해 이용되는 확률들의 시퀀스)를 발생시키기 위해 ASR 엔진(122A1)에 의해 이용된다. 또 하나의 다른 예로서, 디바이스-상 ASR 모델(들)(132A1)은, 뉴럴 네트워크 모델인 음향 모델(acoustic model), 그리고 음소 시퀀스(phoneme sequence)들을 워드들에 맵핑(mapping)시키는 것을 포함하는 언어 모델을 포함할 수 있다. ASR 엔진(122A1)은, 음향 모델을 사용하여 오디오 데이터를 프로세싱하여 음소들의 시퀀스를 발생시킬 수 있고, 그리고 언어 모델을 사용하여 음소들의 시퀀스를 특정 용어들에 맵핑시킬 수 있다. 추가적인 또는 대안적인 ASR 모델들이 이용될 수 있다.
도 1a에서 어시스턴트 클라이언트(120A)는 또한, 자연 언어 이해(NLU) 엔진(123A1) 및 하나 이상의 관련된 디바이스-상 NLU 모델들(133A1)을 포함한다. NLU 엔진(123A1)은, 타이핑된 텍스트(예컨대, 어시스턴트 디바이스(110A)의 가상 키보드를 이용하여 타이핑된 텍스트) 또는 ASR 엔진(122A1)에 의해 발생된 전사에서의 텍스트와 같은 자연 언어 텍스트의 의미론적 표현인 신념 상태 또는 상징적 표현을 발생시킬 수 있다. 예컨대, 신념 상태는, 텍스트에 대응하는 의도(들), 그리고 선택에 따라서는 그러한 의도(들)에 대한 파라미터(들)(예컨대, 슬롯 값들)를 포함할 수 있다. 신념 상태는, 하나 이상의 대화 전환들을 통해 완전히 형성되면(예컨대, 모든 의무적 파라미터들이 해결되면), 발성된 발언에 응답하여 수행될 액션(들)을 나타낸다. 상징적 표현을 발생시킬 때, NLU 엔진(123A1)은 하나 이상의 디바이스-상 NLU 모델들(133A1)을 이용할 수 있다. NLU 모델(들)(133A1)은, 텍스트를 프로세싱하는 것, 그리고 텍스트에 의해 표현된 의도(들) 및/또는 텍스트의 어떤 부분(들)이 해당 의도에 대한 어떤 파라미터(들)에 대응하는지의 표시를 표시하는 출력을 발생시키는 것을 행하도록 훈련된 하나 이상의 뉴럴 네트워크 모델들을 포함할 수 있다. NLU 모델(들)은 추가적으로 또는 대안적으로, 텍스트 및/또는 템플릿(template)들을 대응하는 상징적 표현(들)에 맵핑시키는 것을 포함하는 하나 이상의 모델들을 포함할 수 있다. 예를 들어, 이러한 맵핑들은 텍스트 "몇 시"를 "현재 위치"의 파라미터들을 갖는 "현재 시간"의 의도에 맵핑시키는 것을 포함할 수 있다. 또 하나의 다른 예로서, 맵핑들은 템플릿 "[아이템(item)(들)]을 나의 쇼핑 목록에 추가해"를 템플릿 내의 [아이템(들)]에 대응하는 실제 자연 언어 내에 포함된 아이템(들)의 파라미터(들)를 갖는 "쇼핑 목록에 삽입하는 것"의 의도에 맵핑시키는 것을 포함할 수 있다.
도 1a에서 어시스턴트 클라이언트(120A)는 또한, 이행 엔진(124A1) 및 하나 이상의 관련된 디바이스-상 이행 모델들(134A1)을 포함한다. 이행 엔진(124A1)은 NLU 엔진(123A1)으로부터의 완전히 형성된 상징적 표현을 이용하여 그 상징적 표현에 대응하는 액션(들)을 수행할 수 있거나 또는 해당 액션(들)의 수행을 일으킬 수 있다. 액션(들)은, 응답형 사용자 인터페이스 출력(예컨대, 청취가능한 그리고/또는 시각적인 사용자 인터페이스 출력)을 제공하는 것, 스마트 디바이스(들)를 제어하는 것, 그리고/또는 다른 액션(들)을 수행하는 것을 포함할 수 있다. 액션(들)을 수행하거나 또는 해당 액션(들)의 수행을 일으킬 때, 이행 엔진(124A1)은 이행 모델(들)(134A1)을 이용할 수 있다. 하나의 예로서, 특정 스마트 조명(smart light)(들)을 특정하는 파라미터(들)를 갖는 "턴온(turn on)시키는 것"의 의도에 대해, 이행 엔진(124A1)은 이행 모델(들)(134A1)을 이용하여 특정 스마트 조명(들)의 네트워크 어드레스(network address)(들)를 식별할 수 있고 그리고/또는 특정 스마트 조명(들)으로 하여금 "온(on)" 상태로 전이하도록 하기 위해 전송할 커맨드(들)를 식별할 수 있다. 또 하나의 다른 예로서, "현재 위치"의 파라미터를 갖는 "현재"의 의도에 대해, 이행 엔진(124A1)은 이행 모델(들)(134A1)을 이용하여 클라이언트 디바이스(110A)에서의 현재 시간이 검색돼야하고 (TTS 엔진(125A1)을 이용하여) 청취가능하게 렌더링(rendering)돼야함을 식별할 수 있다.
도 1a에서 어시스턴트 클라이언트(120A)는 또한, 텍스트-투-음성(Text-To-Speech, TTS) 엔진(125A1) 및 하나 이상의 관련된 디바이스-상 TTS 모델들(135A1)을 포함한다. TTS 엔진(125A1)은 디바이스-상 TTS 모델(들)(135A1)을 이용하여 텍스트(또는 텍스트의 음성 표현(phonetic representation))를 프로세싱하여 합성된 음성을 발생시킬 수 있다. 합성된 음성은 (텍스트를 음성으로 변환하는) 어시스턴트 디바이스(110A) 로컬 텍스트-투-음성("TTS") 엔진의 스피커(들)를 통해 청취가능하게 렌더링될 수 있다. 합성된 음성은, 자동화된 어시스턴트로부터의 응답의 일부 혹은 전부로서 발생 및 렌더링될 수 있고, 그리고/또는 사용자로 하여금 파라미터(들) 및/또는 의도(들)를 정의하도록 그리고/또는 명확히 하도록 촉구(prompting)할 때 발생 및 렌더링될 수 있다.
도 1a에서 어시스턴트 클라이언트(120A)는 또한, 인증(authentication) 엔진(126A1) 및 하나 이상의 관련된 디바이스-상 인증 모델들(136A1)을 포함한다. 인증 엔진(126A1)은 하나 이상의 인증 기법(들)을 이용하여 다수의 등록된 사용자 중 어느 사용자가 어시스턴트 디바이스(110)와 상호작용하고 있는지를 검증할 수 있고, 또는 만약 단일의 사용자만이 어시스턴트 디바이스(110)에 대해 등록된 것이라면, 해당 사용자가 어시스턴트 디바이스(110)와 상호작용하고 있는 등록된 사용자인지 여부(혹은 대신에, 게스트(guest)/미등록된 사용자(unregistered user)인지 여부)를 검증할 수 있다. 하나의 예로서, 텍스트-의존형 화자 검증(Text-Dependent Speaker Verification)(들)(TD-SV(들))이, 등록된 사용자들 각각에 대해 (예컨대, 이들의 대응하는 사용자 프로파일(user profile)들과 관련되어) 관련된 사용자(들)로부터의 허가와 함께, 발생 및 저장될 수 있다. 인증 엔진(126A1)은, 대응하는 TD-SV를 발생시킬 때, 그리고/또는 오디오 데이터 TD-SV의 대응하는 부분을 프로세싱하여 대응하는 현재 TD-SV를 발생시킬 때 디바이스-상 인증 모델(들)(136A1)의 TD-SV를 이용한다(이 경우 이러한 현재 TD-SV는 저장된 TD-SV(들)와 비교되어 매칭(match)이 존재하는지 여부가 결정될 수 있음). 다른 예들로서, 인증 엔진(126A1)은 추가적으로 또는 대안적으로, (특정 사용자를 인증할 때) 텍스트-독립 화자 검증(Text-Independent Speaker Verification, TI-SV) 기법들, 화자 검증 기법들, 안면 검증 기법들, 및/또는 다른 검증 기법(들)(예컨대, PIN 입력(PIN entry))과, 그리고 대응하는 디바이스-상 인증 모델(들)(136A1)을 이용할 수 있다.
도 1a에서 어시스턴트 클라이언트(120A)는 또한, 워밍 신호(들) 엔진(127A1) 및 하나 이상의 관련된 디바이스-상 워밍 신호(들) 모델들(137A1)을 포함한다. 워밍 신호(들) 엔진(127A1)은 하나 이상의 워밍 워드(들) 또는 다른 워밍 워드(들)의 일어남에 대해 적어도 선택적으로 모니터링할 수 있고, 그리고 이러한 워밍 신호(들) 중 하나 이상을 검출하는 것에 응답하여, 특정 액션으로 하여금 어시스턴트 클라이언트(120A)에 의해 수행되도록 한다. 워밍 신호(들)는 임의의 깨우기 워드(들) 또는 다른 깨우기 신호(들)에 추가하여 존재할 수 있고, 워밍 신호(들) 각각은 적어도 선택적으로 활성화될 수 있다. 유의할 것으로, 워밍 신호의 일어남을 검출하는 것은, 검출된 일어남이 임의의 깨우기 신호에 후행하지 않는 경우에도, 특정 액션이 수행되도록 한다. 이에 따라, 워밍 신호가 특정 워드 또는 워드들인 경우, 사용자는 임의의 깨우기 신호(들)를 제공할 필요없이, 해당 워드(들)를 간단히 발성할 수 있고, 그리고 대응하는 특정 액션의 수행을 일으킬 수 있다.
하나의 예로서, "정지(stop)" 워밍 신호(들)는 적어도, 타이머(timer) 또는 알람(alarm)이 어시스턴트 디바이스(110A)에서 자동화된 어시스턴트(120A)를 통해 청취가능하게 렌더링되고 있는 때에 활성화될 수 있다. 예컨대, 이러한 때에(또는 적어도 VAD 엔진(128A1)이 목소리 활동을 검출하는 때에), 워밍 신호(들) 엔진(127A)은, 클라이언트 디바이스(110A)의 하나 이상의 마이크로폰들로부터의 출력에 근거하는 오디오 데이터 프레임들의 스트림을 계속해서 프로세싱하여 "정지", "중단", 또는 특정 워밍 워드(들)의 다른 제한된 세트의 일어남에 대해 모니터링할 수 있다. 프로세싱은, 오디오 데이터의 프레임들을 프로세싱하는 것, 그리고 "정지"의 발성된 일어남이 오디오 데이터 내에 존재하는지 여부를 표시하는 출력을 발생시키는 것을 행하도록 훈련된 뉴럴 네트워크 모델과 같은, 워밍 신호(들) 모델(들)(137A1) 중 하나를 이용하여 워밍 신호(들) 엔진(127A)에 의해 수행될 수 있다. "정지"의 일어남을 검출하는 것에 응답하여, 워밍 신호(들) 엔진(127A)은 청취가능하게 소리나는 타이머 또는 알람을 클리어(clear)하는 커맨드로 하여금 구현되도록 할 수 있다. 이러한 때에(또는 적어도 존재 센서(presence sensor)가 존재를 검출하는 때에), 워밍 신호(들) 엔진(127A)은, 어시스턴트 디바이스(110A)의 카메라로부터의 이미지들의 스트림을 계속해서 프로세싱하여 "정지" 자세(pose)에서의 손의 일어남에 대해 모니터링할 수 있다. 프로세싱은, 비전 데이터(vision data)의 프레임들을 프로세싱하는 것, 그리고 손이 "정지" 자세에서 존재하는지 여부를 표시하는 출력을 발생시키는 것을 행하도록 훈련된 뉴럴 네트워크 모델과 같은, 워밍 신호(들) 모델(들)(137A1) 중 하나를 이용하여 워밍 신호(들) 엔진(127A)에 의해 수행될 수 있다. 이러한 "정지" 자세의 일어남을 검출하는 것에 응답하여, 워밍 신호(들) 엔진(127A)은 청취가능하게 소리나는 타이머 또는 알람을 클리어하는 커맨드로 하여금 구현되도록 할 수 있다.
또 하나의 다른 예로서, "음량 높임(volume up)", "음량 낮춤(volume down)", 및 "다음(next)" 워밍 신호(들)가, 적어도, 음악(music)이 어시스턴트 디바이스(110A)에서 자동화된 어시스턴트(120A)를 통해 청취가능하게 렌더링되고 있는 때에 활성화될 수 있다. 예컨대, 이러한 때에, 워밍 신호(들) 엔진(127A)은, 클라이언트 디바이스(110A)의 하나 이상의 마이크로폰들로부터의 출력에 근거하는 오디오 데이터 프레임들의 스트림을 계속해서 프로세싱할 수 있다. 프로세싱은, 워밍 신호(들) 모델(들)(137A1) 중 제 1 워밍 신호 모델을 사용하여 "음량 높임"의 일어남에 대해 모니터링하는 것, 워밍 신호(들) 모델(들)(137A1) 중 제 2 워밍 신호 모델을 사용하여 "음량 낮춤"의 일어남에 대해 모니터링하는 것, 그리고 워밍 신호(들) 모델(들)(137A1) 중 제 3 워밍 신호 모델을 사용하여 "다음"의 일어남에 대해 모니터링하는 것을 포함할 수 있다. "음량 높임"의 일어남을 검출하는 것에 응답하여, 워밍 신호(들) 엔진(127A)은 렌더링되고 있는 음악의 음량을 증가시키는 커맨드로 하여금 구현되도록 할 수 있고, "음량 낮춤"의 일어남을 검출하는 것에 응답하여, 워밍 신호(들) 엔진은 음악의 음량을 감소시키는 커맨드로 하여금 구현되도록 할 수 있고, 그리고 "음량 낮춤"의 일어남을 검출하는 것에 응답하여, 워밍 신호(들) 엔진은 현재 음악 트랙(music track) 대신에 다음 트랙이 렌더링되게 하는 커맨드로 하여금 구현되도록 할 수 있다
도 1a에서 어시스턴트 클라이언트(120A)는 또한, 목소리 활동 검출기(Voice Activity Detector, VAD) 엔진(128A1) 및 하나 이상의 관련된 디바이스-상 VAD 모델들(138A1)을 포함한다. VAD 엔진(128A1)은 오디오 데이터 내에서 목소리 활동의 일어남에 대해 적어도 선택적으로 모니터링할 수 있고, 그리고 일어남을 검출하는 것에 응답하여, 하나 이상의 기능들로 하여금 어시스턴트 클라이언트(120A)에 의해 수행되도록 할 수 있다. 예를 들어, VAD 엔진(128A1)은 목소리 활동을 검출하는 것에 응답하여 깨우기 신호(들) 엔진(121A1)으로 하여금 활성화되도록 할 수 있다. 또 하나의 다른 예로서, VAD 엔진(128A1)은 계속되는 청취 모드에서 이용되어 오디오 데이터 내에서 목소리 활동의 일어남에 대해 모니터링할 수 있고, 그리고 일어남을 검출하는 것에 응답하여 ASR 엔진(122A1)으로 하여금 활성화되도록 할 수 있다. VAD 엔진(128A1)은 목소리 활동이 오디오 데이터 내에 존재하는지 여부를 결정할 때 VAD 모델(들)(138A1)을 이용하여 오디오 데이터를 프로세싱할 수 있다.
특정 엔진들 및 대응하는 모델들이 어시스턴트 클라이언트(120A)와 관련하여 설명되었다. 하지만, 일부 엔진들은 생략될 수 있고 그리고/또는 추가적인 엔진(들)이 포함될 수 있음에 유의해야 한다. 어시스턴트 클라이언트(120A)는 발성된 발언들로서 제공되는 많은 어시스턴트 요청들을 포함하는 많은 어시스턴트 요청들을 자신의 다양한 디바이스-상 엔진들 및 대응하는 모델들을 통해 완전히 프로세싱할 수 있음에 또한 유의해야 한다. 하지만, 클라이언트 디바이스(110A)가 프로세싱 능력들의 측면에서 상대적으로 제약을 받기 때문에, 어시스턴트 디바이스(110A)에서 로컬로 완전히 프로세싱될 수 없는 많은 어시스턴트 요청들이 여전히 존재한다. 예를 들어, NLU 엔진(123A1) 및/또는 대응하는 NLU 모델들(133A1)은 자동화된 어시스턴트를 통해 이용가능한 모든 이용가능한 의도들 및/또는 파라미터들의 서브세트만을 커버(cover)할 수 있다. 또 하나의 다른 예로서, 이행 엔진(124A1) 및/또는 대응하는 이행 모델(들)은 이용가능한 이행들의 서브세트만을 커버할 수 있다. 또 다른 예로서, ASR 엔진(122A1) 및 대응하는 ASR 모델(들)(132A1)은 다양한 발성된 언급들을 정확하게 전사할 만큼 충분히 강인하지 않을 수 있고 그리고/또는 정확하지 않을 수 있다.
이러한 고려들 및 다른 고려들에 비추어, 클라우드 기반 어시스턴트 컴포넌트(들)(140)는 어시스턴트 디바이스(110A)에서 수신되는 어시스턴트 요청들의 적어도 일부 프로세싱을 수행할 때 여전히 적어도 선택적으로 이용될 수 있다. 클라우드 기반 자동화된 어시스턴트 컴포넌트들(140)은 어시스턴트 디바이스(110A)의 엔진들 및/또는 모델들에 대한 대응하는 엔진들 및/또는 모델들(그리고/또는 추가적인 것들 혹은 대안적인 것들)을 포함할 수 있다. 하지만, 클라우드 기반 자동화된 어시스턴트 컴포넌트들(140)은 클라우드의 사실상 무제한의 리소스들을 활용할 수 있기 때문에, 클라우드 기반 대응물들 중 하나 이상은 어시스턴트 클라이언트(120A)의 것들보다 더 강인할 수 있고 그리고/또는 더 정확할 수 있다. 하나의 예로서, 로컬 NLU 엔진(123A1) 및/또는 로컬 이행 엔진(124A1)에 의해 지원되지 않는 어시스턴트 액션(들)의 수행을 추구하는 발성된 발언에 응답하여, 어시스턴트 클라이언트(120A)는 발성된 발언에 대한 오디오 데이터, 그리고/또는 ASR 엔진(122A1)에 의해 발생된 발성된 발언의 전사를 클라우드 기반 자동화된 어시스턴트 컴포넌트들(140)에게 전송할 수 있다. 클라우드 기반 자동화된 어시스턴트 컴포넌트들(140)(예컨대, 이들의 NLU 엔진 및/또는 이행 엔진)은 이러한 데이터의 더 강인한 프로세싱을 수행할 수 있고, 이것은 어시스턴트 액션(들)의 해결 및/또는 수행을 가능하게 한다. 데이터를 클라우드 기반 자동화된 어시스턴트 컴포넌트들(140)에게 전송하는 것은, 하나 이상의 와이드 영역 네트워크(Wide Area Network)들(WAN(들))(109)을 통해, 예컨대, 인터넷 또는 사설 WAN을 통해, 이루어진다.
제 2 어시스턴트 디바이스(110B)는 어시스턴트 클라이언트(120B)를 포함하는데, 이러한 어시스턴트 클라이언트(120B)는 오퍼레이팅 시스템의 상단에 있는 독립형 애플리케이션일 수 있거나, 또는 어시스턴트 디바이스(110B)의 오퍼레이팅 시스템의 일부 혹은 전부를 형성할 수 있다. 어시스턴트 클라이언트(120A)처럼, 어시스턴트 클라이언트(120B)는, 깨우기/호출 엔진(121B1) 및 하나 이상의 관련된 디바이스-상 깨우기/호출 모델들(131B1); ASR 엔진(122B1) 및 하나 이상의 관련된 디바이스-상 ASR 모델들(132B1); NLU 엔진(123B1) 및 하나 이상의 관련된 디바이스-상 NLU 모델들(133B1); 이행 엔진(124B1) 및 하나 이상의 관련된 디바이스-상 이행 모델들(134B1); TTS 엔진(125B1) 및 하나 이상의 관련된 디바이스-상 TTS 모델들(135B1); 인증 엔진(126B1) 및 하나 이상의 관련된 디바이스-상 인증 모델들(136B1); 워밍 신호(들) 엔진(127B1) 및 하나 이상의 관련된 디바이스-상 워밍 신호(들) 모델들(137B1); 및 VAD 엔진(128B1) 및 하나 이상의 관련된 디바이스-상 VAD 모델들(138B1)을 포함한다.
어시스턴트 클라이언트(120B)의 엔진들 및/또는 모델들 중 일부 혹은 모두는 어시스턴트 클라이언트(120A)의 것들과 동일할 수 있고, 그리고/또는 엔진들 및/또는 모델들 중 일부 혹은 모두는 다를 수 있다. 예를 들어, 깨우기 신호(들) 엔진(121B1)은 이미지(들) 내에서 깨우기 신호(들)를 검출하기 위한 기능을 갖지 않을 수 있고, 그리고/또는 깨우기 모델(들)(131B1)은 깨우기 신호(들)의 검출을 위해 이미지(들)를 프로세싱하기 위한 모델(들)을 갖지 않을 수 있는데, 반면 깨우기 신호(들) 엔진(121A1)은 이러한 기능을 포함하고, 그리고 깨우기 모델(들)(131B1)은 이러한 모델(들)을 포함한다. 이것은 예컨대, 카메라를 포함하는 어시스턴트 디바이스(110A), 및 카메라를 포함하지 않는 어시스턴트 디바이스(110B)로 인한 것일 수 있다. 또 하나의 다른 예로서, ASR 엔진(122B1)에 의해 이용되는 ASR 모델(들)(131B1)은 ASR 엔진(122A1)에 의해 이용되는 ASR 모델(들)(131A1)과는 다를 수 있다. 이것은 예컨대, 어시스턴트 디바이스(110A)와 어시스턴트 디바이스(110B) 간의 상이한 프로세서 및/또는 메모리 능력들에 대해 최적화된 상이한 모델들로 인한 것일 수 있다.
특정 엔진들 및 대응하는 모델들이 어시스턴트 클라이언트(120B)와 관련하여 설명되었다. 하지만, 일부 엔진들은 생략될 수 있고 그리고/또는 추가적인 엔진(들)이 포함될 수 있음에 유의해야 한다. 어시스턴트 클라이언트(120B)는 발성된 발언들로서 제공되는 많은 어시스턴트 요청들을 포함하는 많은 어시스턴트 요청들을 자신의 다양한 디바이스-상 엔진들 및 대응하는 모델들을 통해 완전히 프로세싱할 수 있음에 또한 유의해야 한다. 하지만, 클라이언트 디바이스(110B)가 프로세싱 능력들의 측면에서 상대적으로 제약을 받기 때문에, 어시스턴트 디바이스(110B)에서 로컬로 완전히 프로세싱될 수 없는 많은 어시스턴트 요청들이 여전히 존재한다. 이러한 고려들 및 다른 고려들에 비추어, 클라우드 기반 어시스턴트 컴포넌트(들)(140)는 어시스턴트 디바이스(110B)에서 수신되는 어시스턴트 요청들의 적어도 일부 프로세싱을 수행할 때 여전히 적어도 선택적으로 이용될 수 있다.
제 3 어시스턴트 디바이스(110C)는 어시스턴트 클라이언트(120C)를 포함하는데, 이러한 어시스턴트 클라이언트(120C)는 오퍼레이팅 시스템의 상단에 있는 독립형 애플리케이션일 수 있거나, 또는 어시스턴트 디바이스(110C)의 오퍼레이팅 시스템의 일부 혹은 전부를 형성할 수 있다. 어시스턴트 클라이언트(120A) 및 어시스턴트 클라이언트(120B)처럼, 어시스턴트 클라이언트(120C)는, 깨우기/호출 엔진(121C1) 및 하나 이상의 관련된 디바이스-상 깨우기/호출 모델들(131C1); 인증 엔진(126C1) 및 하나 이상의 관련된 디바이스-상 인증 모델들(136C1); 워밍 신호(들) 엔진(127C1) 및 하나 이상의 관련된 디바이스-상 워밍 신호(들) 모델들(137C1); 및 VAD 엔진(128C1) 및 하나 이상의 관련된 디바이스-상 VAD 모델들(138C1)을 포함한다. 어시스턴트 클라이언트(120C)의 엔진들 및/또는 모델들 중 일부 혹은 모두는 어시스턴트 클라이언트(120A) 및/또는 어시스턴트 클라이언트(120B)의 것들과 동일할 수 있고, 그리고/또는 엔진들 및/또는 모델들 중 일부 혹은 모두는 다를 수 있다.
하지만, 어시스턴트 클라이언트(120A) 및 어시스턴트 클라이언트(120B)와는 달리, 어시스턴트 클라이언트(120C)는, 임의의 ASR 엔진 또는 관련된 모델들; 임의의 NLU 엔진 또는 관련된 모델들; 임의의 이행 엔진 또는 관련된 모델들; 및 임의의 TTS 엔진 또는 관련된 모델들을 포함하지 않음에 유의해야 한다. 더욱이, 어시스턴트 클라이언트(120B)는 특정 어시스턴트 요청(들)(즉, 워밍 신호(들) 엔진(127C1)에 의해 검출되는 워밍 신호(들)에 적합한 것들)만을 자신의 다양한 디바이스-상 엔진들 및 대응하는 모델들을 통해 완전히 프로세싱할 수 있고 발성된 발언들로서 제공되는 것들 및 워밍 신호에 적합하지 않은 것들과 같은 많은 어시스턴트 요청들을 프로세싱할 수 없음에 또한 유의해야 한다. 이러한 고려들 및 다른 고려들에 비추어, 클라우드 기반 어시스턴트 컴포넌트(들)(140)는 어시스턴트 디바이스(110C)에서 수신되는 어시스턴트 요청들의 적어도 일부 프로세싱을 수행할 때 여전히 적어도 선택적으로 이용될 수 있다.
제 4 어시스턴트 디바이스(110D)는 어시스턴트 클라이언트(120D)를 포함하는데, 이러한 어시스턴트 클라이언트(120D)는 오퍼레이팅 시스템의 상단에 있는 독립형 애플리케이션일 수 있거나, 또는 어시스턴트 디바이스(110D)의 오퍼레이팅 시스템의 일부 혹은 전부를 형성할 수 있다. 어시스턴트 클라이언트(120A), 어시스턴트 클라이언트(120B), 및 어시스턴트 클라이언트(120C)처럼, 어시스턴트 클라이언트(120D)는, 깨우기/호출 엔진(121D1) 및 하나 이상의 관련된 디바이스-상 깨우기/호출 모델들(131D1); 인증 엔진(126D1) 및 하나 이상의 관련된 디바이스-상 인증 모델들(136D1); 워밍 신호(들) 엔진(127D1) 및 하나 이상의 관련된 디바이스-상 워밍 신호(들) 모델들(137D1); 및 VAD 엔진(128D1) 및 하나 이상의 관련된 디바이스-상 VAD 모델들(138D1)을 포함한다. 어시스턴트 클라이언트(120C)의 엔진들 및/또는 모델들 중 일부 혹은 모두는 어시스턴트 클라이언트(120A), 어시스턴트 클라이언트(120B) 및/또는 어시스턴트 클라이언트(120C)의 것들과 동일할 수 있고, 그리고/또는 엔진들 및/또는 모델들 중 일부 혹은 모두는 다를 수 있다.
하지만, 어시스턴트 클라이언트(120A) 및 어시스턴트 클라이언트(120B)와는 달리 그리고 어시스턴트 클라이언트(120C)처럼, 어시스턴트 클라이언트(120D)는, 임의의 ASR 엔진 또는 관련된 모델들; 임의의 NLU 엔진 또는 관련된 모델들; 임의의 이행 엔진 또는 관련된 모델들; 및 임의의 TTS 엔진 또는 관련된 모델들을 포함하지 않음에 유의해야 한다. 더욱이, 어시스턴트 클라이언트(120D)는 특정 어시스턴트 요청(들)(즉, 워밍 신호(들) 엔진(127D1)에 의해 검출되는 워밍 신호(들)에 적합한 것들)만을 자신의 다양한 디바이스-상 엔진들 및 대응하는 모델들을 통해 완전히 프로세싱할 수 있고 발성된 발언들로서 제공되는 것들 및 워밍 신호에 적합하지 않은 것들과 같은 많은 어시스턴트 요청들을 프로세싱할 수 없음에 또한 유의해야 한다. 이러한 고려들 및 다른 고려들에 비추어, 클라우드 기반 어시스턴트 컴포넌트(들)(140)는 어시스턴트 디바이스(110D)에서 수신되는 어시스턴트 요청들의 적어도 일부 프로세싱을 수행할 때 여전히 적어도 선택적으로 이용될 수 있다.
이제 도 1ba, 도 1bb, 도 1bc, 도 1c, 및 도 1d를 참조하면, 어시스턴트 디바이스 그룹들의 상이한 비-한정적 예들이, 어시스턴트 디바이스 그룹들이 발생되는 것에 응답하여 구현될 수 있는 적응들의 상이한 비-한정적 예들과 함께, 예시된다. 적응들 각각을 통해, 그룹화된 어시스턴트 디바이스들은 다양한 어시스턴트 요청들을 프로세싱할 때 집합적으로 이용될 수 있고, 그리고 집합적 이용을 통해, 그룹의 어시스턴트 디바이스들 중 어느 하나가 적응들 전에 개별적으로 수행할 수 있었던 것보다 이러한 다양한 어시스턴트 요청들의 더 강인한 그리고/또는 더 정확한 프로세싱을 수행할 수 있다. 이것은 결과적으로 본 명세서에서 설명되는 것과 같은 다양한 기술적 이점들을 초래한다.
도 1ba, 도 1bb, 도 1bc, 도 1c, 및 도 1d에서, 도 1a에서와 동일한 참조 번호를 갖는 어시스턴트 클라이언트들의 엔진들 및 모델들은 도 1a와 비교해 적응되지 않았다. 예를 들어, 도 1ba, 도 1bb, 및 도 1bc에서, 어시스턴트 클라이언트 디바이스들(110C 및 110D)의 엔진들 및 모델들은 적응되지 않았는데, 왜냐하면 어시스턴트 클라이언트 디바이스들(110C 및 110D)은 도 1ba, 도 1bb, 및 도 1bc의 그룹(101B) 내에 포함되지 않기 때문이다. 하지만, 도 1ba, 도 1bb, 도 1bc, 도 1c, 및 도 1d에서, 도 1a의 참조 번호와는 다른(즉, "1" 대신 "2", "3", 또는 "4"로 끝나는) 참조 번호를 갖는 어시스턴트 클라이언트의 엔진들 및 모델들은, 이들이 도 1에서의 이들의 대응물과 비교해 적응되었음을 표시한다. 더욱이, 하나의 도면에서 "2"로 끝나는 참조 번호를 갖고 또 하나의 다른 도면에서는 "3"으로 끝나는 참조 번호를 갖는 엔진 또는 모델(들)은 도면들 사이에서 엔진 또는 모델(들)에 대한 상이한 적응들이 행해졌음을 의미한다. 마찬가지로, 하나의 도면에서 "4"로 끝나는 참조 번호를 갖는 엔진 또는 모델(들)은, 해당 도면에서의 엔진 또는 모델(들)에 대한 적응이, 참조 번호가 "2" 또는 "3"으로 끝나는 도면들에서와는 다르다는 것을 의미한다.
먼저 도 1ba를 참조하면, 디바이스 그룹(101B)이 만들어졌는데, 여기서 어시스턴트 디바이스들(110A 및 110B)이 디바이스 그룹(101B) 내에 포함된다. 일부 구현예들에서, 디바이스 그룹(101B)은 어시스턴트 디바이스들(110A 및 110B)을 그룹화하려는 욕구를 명시적으로 표시하는 사용자 인터페이스 입력에 응답하여 발생될 수 있다. 하나의 예로서, 사용자는 어시스턴트 디바이스들(110A 내지 110D) 중 어느 하나에게 "[어시스턴트 디바이스(110A)에 대한 라벨(label)]과 [어시스턴트 디바이스(110B)에 대한 라벨]을 그룹화해"의 발성된 발언을 제공할 수 있다. 이러한 발성된 발언은 각각의 어시스턴트 디바이스 및/또는 클라우드 기반 어시스턴트 컴포넌트들(140)에 의해 프로세싱될 수 있고, 어시스턴트 디바이스들(110A 및 110B)을 그룹화하기 요청으로서 해석되고, 그리고 이러한 해석에 응답하여 그룹(101B)이 발생될 수 있다. 또 하나의 다른 예로서, 어시스턴트 디바이스들(110A 내지 110D)에 대한 등록된 사용자는 어시스턴트 디바이스들(110A 내지 110D)의 설정들을 구성할 수 있는 애플리케이션에서 터치 입력(들)을 제공할 수 있다. 이러한 터치 입력(들)은 어시스턴트 디바이스들(110A 및 110B)이 그룹화돼야함을 명시적으로 지정할 수 있고, 그리고 이에 응답하여 그룹(101B)이 발생될 수 있다. 또 다른 예로서, 디바이스 그룹(101B)을 자동적으로 발생시킬 때 아래에서 설명되는 예시적 기법들 중 하나가, 디바이스 그룹(101B)이 발생돼야함을 결정하기 위해 대신 이용될 수 있는데, 하지만 디바이스 그룹(101B)을 발생시키기 전에 디바이스 그룹(101B)의 발생을 명시적으로 승인하는 사용자 입력이 요구될 수 있다. 예를 들어, 디바이스 그룹(101B)이 발생돼야함을 표시하는 프롬프트(prompt)가 어시스턴트 디바이스들(110A 내지 110D) 중 하나 이상에서 렌더링될 수 있고, 그리고 만약 이러한 프롬프트에 응답하여 긍정적인 사용자 인터페이스 입력이 수신된다면(그리고 선택에 따라서는 만약 그 사용자 인터페이스 입력이, 등록된 사용자로부터 온 것으로 검증된다면) 이러한 경우에만 디바이스 그룹(101B)이 실제로 발생될 수 있다.
일부 구현예들에서, 디바이스 그룹(101B)은 대신, 자동적으로 발생될 수 있다. 이러한 구현예들 중 일부에서, 디바이스 그룹(101B)의 발생이 그룹의 대응하는 사용자(들) 및/또는 등록된 사용자(들)에게 알려주기 위해 어시스턴트 디바이스들(110A 내지 110D) 중 하나 이상의 어시스턴트 디바이스에서 렌더링될 수 있음을 표시하는 사용자 인터페이스 출력은, 사용자 인터페이스 입력(들)을 통해 디바이스 그룹(101B)의 자동 발생을 무시(override)할 수 있다. 하지만, 디바이스 그룹(101B)이 자동적으로 발생되는 경우, (비록 시간에 있어 더 이른 시간에 입력이 전반적으로 그룹들을 생성하기 위한 승인을 표시할 수 있을지라도) 특정 디바이스 그룹(101B)을 생성하려는 욕구를 명시적으로 표시하는 사용자 인터페이스 입력을 먼저 요구함이 없이, 디바이스 그룹(101B)은 발생될 것이고 대응하는 적응들이 행해질 것이다. 일부 구현예들에서, 디바이스 그룹(101B)은 어시스턴트 디바이스들(110A 및 110B)이 서로에 대해 하나 이상의 근접 조건들을 만족시킨다고 결정함에 응답하여 자동적으로 발생될 수 있다. 예를 들어, 근접 조건(들)은, 어시스턴트 디바이스들(110A 및 110B)이 디바이스 토폴로지에서 동일한 구조(예컨대, 특정 자택, 특정 별장, 특정 사무실)에 할당되는 것, 그리고/또는 동일한 구조 내에서 동일한 방(예컨대, 부엌, 거실, 식당) 혹은 다른 영역(들)에 할당되는 것을 포함할 수 있다. 또 하나의 다른 예로서, 근접 조건(들)은 어시스턴트들(110A 및 110B) 각각으로부터의 센서 신호들이, 이들이 서로 위치적으로 근접해 있음을 표시하는 것을 포함할 수 있다. 예컨대, 만약 어시스턴트 디바이스(110A 및 110B) 양쪽 모두가 동일한 시간에 혹은 동일한 시간 가까이에서(예컨대, 동일한 시간의 1초 내에서) 깨우기 워드의 일어남을 지속적으로(예컨대, 해당 시간의 70%를 초과하여 또는 다른 임계치를 초과하여) 검출한다면, 이것은 이들이 서로 위치적으로 근접해 있음을 표시할 수 있다. 또한, 예컨대, 어시스턴트 디바이스들(110A 및 110B) 중 하나의 어시스턴트 디바이스는 신호(예컨대, 초음파 소리)를 방출할 수 있고, 어시스턴트 디바이스들(110A 및 110B) 중 다른 어시스턴트 디바이스는 방출된 신호를 검출하려고 시도할 수 있다. 만약 어시스턴트 디바이스들(110A 및 110B) 중 다른 어시스턴트 디바이스가 선택에 따라서는 임계 강도를 갖는 방출된 신호를 검출한다면, 이것은 이들이 서로 위치적으로 근접해 있음을 표시할 수 있다. 시간적 근접(temporal proximity)을 결정하는 것, 그리고/또는 디바이스 그룹을 자동적으로 발생시키는 것을 행하기 위한 추가적인 그리고/또는 대안적인 기법들이 이용될 수 있다.
그룹(101B)이 어떻게 발생됐는지에 상관없이, 도 1ba는 어시스턴트 디바이스들(110A 및 110B)이 그룹(101B) 내에 포함되는 것에 응답하여 어시스턴트 디바이스들(110A 및 110B)에 행해질 수 있는 적응들의 하나의 예를 보여준다. 다양한 구현예들에서, 어시스턴트 클라이언트들(120A 및 120B) 중 하나 혹은 양쪽 모두는 행해져야 하는 적응들을 결정할 수 있고 이러한 적응들로 하여금 일어나도록 할 수 있다. 다른 구현예들에서, 클라우드 기반 어시스턴트 컴포넌트(들)(140)의 하나 이상의 엔진(들)이, 추가적으로 또는 대안적으로, 행해져야 하는 적응들을 결정할 수 있고 이러한 적응들로 하여금 일어나도록 할 수 있다. 본 명세서에서 설명되는 바와 같이, 행해질 적응들은 어시스턴트 클라이언트들(120A 및 120B) 양쪽 모두의 프로세싱 능력들을 고려하는 것에 근거하여 결정될 수 있다. 예를 들어, 적응들은, 어시스턴트 디바이스(들) 각각의 개별 프로세싱 능력들이, 로컬로 저장될 그리고 해당 어시스턴트에서 이용될 엔진(들) 및/또는 모델(들)에 대해 충분함을 보장하면서, 집합적 프로세싱 능력들 중 가능한 한 많은 프로세싱 능력을 이용하려고 추구할 수 있다. 더욱이, 행해질 적응들은 또한, 그룹의 어시스턴트 디바이스(들)의 실제 사용, 및/또는 생태계의 다른 비-그룹화된 어시스턴트 디바이스들의 실제 사용에 관한 메트릭(metric)(들)을 반영하는 사용 데이터에 근거하여 결정될 수 있다. 예를 들어, 만약 프로세싱 능력들이, 더 크지만 더 정확한 깨우기 신호(들) 모델(들)을 허용하거나, 또는 더 크지만 더 강인한 워밍 신호(들) 모델들을 허용한다면, 하지만, 양쪽 모두를 허용하지는 않는다면, 이러한 두 개의 옵션(option)들 간에 선택을 행하기 위해 사용 데이터가 이용될 수 있다. 예를 들어, 만약 사용 데이터가 워밍 워드들의 드문 사용(또는 전혀 사용하지 않음)을 반영한다면, 그리고/또는 웨이크 워드들의 검출이 임계치를 좀처럼 초과하지 않음을 반영한다면, 그리고/또는 깨우기 워드들에 대한 허위 부정(false negative)들과 종종 마주치게 됨을 반영한다면, 더 크지만 더 정확한 깨우기 신호(들) 모델(들)이 선택될 수 있다. 반면, 만약 사용 데이터가 워밍 워드들의 빈번한 사용을 반영한다면, 그리고/또는 웨이크 워드들의 검출이 임계치를 지속적으로 초과함을 반영한다면, 그리고/또는 깨우기 워드들에 대한 허위 부정이 드물게 있음을 반영한다면, 더 크지만 더 정확한 워밍 신호(들) 모델(들)이 선택될 수 있다. 이러한 사용 데이터의 고려는 도 1ba의 적응이 선택될지, 도 1bb의 적응이 선택될지, 또는 도 1bc의 적응이 선택될지를 결정하는 것일 수 있는데, 왜냐하면 도 1ba, 도 1bb, 또는 도 1bc 각각은 동일한 그룹(101B)에 대한 상이한 적응을 보여주기 때문이다.
도 1ba에서, 이행 엔진(124A1) 및 이행 모델(들)(134A1) 그리고 TTS 엔진(125A1) 및 TTS 모델(들)(135A1)은 어시스턴트 디바이스(110A)로부터 소거되었다. 더욱이, 어시스턴트 디바이스(110A)는 상이한 ASR 엔진(122A2) 및 상이한 디바이스-상 ASR 모델(들)(132A2)을 갖고, 뿐만 아니라 상이한 NLU 엔진(123A2) 및 상이한 디바이스-상 NLU 모델(들)(133A2)을 갖는다. 상이한 엔진들은, 어시스턴트 디바이스(110A)에서, 클라우드 기반 어시스턴트 컴포넌트(들)(140)와의 상호작용을 통해 액세스가능한 로컬 모델들 보관소(150)로부터 다운로드될 수 있다. 도 1ba에서, 깨우기 신호(들) 엔진(121B1), ASR 엔진(122B1), 및 인증 엔진(126B1), 그리고 이들의 대응하는 모델들(131B1, 133B1, 및 136B1)이 어시스턴트 디바이스(110B)로부터 소거되었다. 더욱이, 어시스턴트 디바이스(110B)는, 상이한 NLU 엔진(123B2) 및 상이한 디바이스-상 NLU 모델(들)(133B2), 상이한 이행 엔진(124B2) 및 이행 모델(들)(133B2), 그리고 상이한 워밍 워드 엔진(127B2) 및 워밍 워드 모델(들)(137B2)을 갖는다. 상이한 엔진들은, 어시스턴트 클라이언트(110B)에서, 클라우드 기반 어시스턴트 컴포넌트(들)(140)와의 상호작용을 통해 액세스가능한 로컬 모델들 보관소(150)로부터 다운로드될 수 있다.
어시스턴트 디바이스(110A)의 ASR 엔진(122A2) 및 ASR 모델(들)(132A2)은, ASR 엔진(122A1) 및 ASR 모델(들)(132A1)보다 더 강인할 수 있고 그리고/또는 더 정확할 수 있지만, ASR 엔진(122A1) 및 ASR 모델(들)(132A1)보다 더 많은 디스크 공간을 점유할 수 있고, 더 많은 메모리를 이용할 수 있고, 그리고/또는 더 큰 프로세서 리소스(들)를 요구할 수 있다. 예를 들어, ASR 모델(들)(132A1)은 단일 패스 모델(single pass model)만을 포함할 수 있고, ASR 모델(들)(132A2)은 2-패스 모델(two-pass model)을 포함할 수 있다.
마찬가지로, NLU 엔진(123A2) 및 NLU 모델(들)(133A2)은, NLU 엔진(123A1) 및 NLU 모델(들)(133A1)보다 더 강인할 수 있고 그리고/또는 더 정확할 수 있지만, NLU 엔진(123A1) 및 NLU 모델(들)(133A1)보다 더 많은 디스크 공간을 점유할 수 있고, 더 많은 메모리를 이용할 수 있고, 그리고/또는 더 큰 프로세서 리소스(들)를 요구할 수 있다. 예를 들어, NLU 모델(들)(133A1)은 "조명 제어"와 같은 제 1 분류에 대한 의도(들) 및 파라미터(들)만을 포함했을 수 있지만, NLU 모델(들)(133A2)은 "조명 제어"에 대한 의도(들), 뿐만 아니라 "온도조절기 제어", "스마트 잠금 제어(smart lock control)", 및 "상기시키는 것(reminder)들"에 대한 의도(들)를 포함할 수 있다.
이에 따라, ASR 엔진(122A2), ASR 모델(들)(132A2), NLU 엔진(123A2), 및 NLU 모델(들)(133A2)은 이들의 대체된 대응물들과 비교해 향상된다. 하지만, 어시스턴트 디바이스(110A)의 프로세싱 능력들은, 이행 엔진(124A1) 및 이행 모델(들)(134A1) 그리고 TTS 엔진(125A1) 및 TTS 모델(들)(135A1)을 먼저 소거함이 없이 ASR 엔진(122A2), ASR 모델(들)(132A2), NLU 엔진(123A2), 및 NLU 모델(들)(133A2)을 저장 및/또는 사용하는 것을 막을 수 있다는 것에 유의해야 한다. 어시스턴트 디바이스(110B)에 대한 상보적 적응들 및 어시스턴트 디바이스(110B)와의 협력적 프로세싱 없이, 단순히 이러한 모델들을 어시스턴트 디바이스(110A)로부터 소거하는 것은 결과적으로, 어시스턴트 클라이언트(120A)에게서 다양한 어시스턴트 요청들을 완전히 로컬로(즉, 하나 이상의 클라우드 기반 어시스턴트 컴포넌트(들)(140)의 이용을 필요로 함이 없이) 프로세싱하기 위한 능력들이 결여되게 한다.
이에 따라, 어시스턴트 디바이스(110B)에 대한 상보적 적응들이 행해지고, 그리고 이러한 적응들 이후 어시스턴트 디바이스들(110A 및 110B) 간의 협력적 프로세싱이 일어난다. 어시스턴트 디바이스(110B)에 대한 NLU 엔진(123B2) 및 NLU 모델(들)(133B2)은, NLU 엔진(123B1) 및 NLU 모델(들)(133B1)보다 더 강인할 수 있고 그리고/또는 더 정확할 수 있지만, NLU 엔진(123B1) 및 NLU 모델(들)(133B1)보다 더 많은 디스크 공간을 점유할 수 있고, 더 많은 메모리를 이용할 수 있고, 그리고/또는 더 큰 프로세서 리소스(들)를 요구할 수 있다. 예를 들어, NLU 모델(들)(133B1)은 "조명 제어"와 같은 제 1 분류에 대한 의도(들) 및 파라미터(들)만을 포함했을 수 있다. 하지만, NLU 모델(들)(133B2)은 의도들 및 파라미터들의 더 큰 분량을 커버할 수 있다. NLU 모델(들)(133B2)에 의해 커버되는 의도들 및 파라미터들은 어시스턴트 클라이언트(120A)의 NLU 모델(들)(133A2)에 의해 이미 커버된 것이 아닌 의도들로 제한될 수 있음에 유의해야 한다. 이것은 어시스턴트 클라이언트들(120A 및 120B) 간의 기능들의 중복(duplication)을 막을 수 있고, 그리고 어시스턴트 클라이언트들(120A 및 120B)이 어시스턴트 요청들을 협력하여 프로세싱할 때 집합적 능력들을 확장시킨다.
마찬가지로, 이행 엔진(124B2) 및 이행 모델(들)(134B2)은, 이행 엔진(124B1) 및 이행 모델(들)(124B1)보다 더 강인할 수 있고 그리고/또는 더 정확할 수 있지만, 이행 엔진(124B1) 및 이행 모델(들)(124B1)보다 더 많은 디스크 공간을 점유할 수 있고, 더 많은 메모리를 이용할 수 있고, 그리고/또는 더 큰 프로세서 리소스(들)를 요구할 수 있다. 예를 들어, 이행 모델(들)(124B1)은 NLU 모델(133B1)의 단일 분류에 대한 이행 능력들만을 포함했을 수 있지만, 이행 모델(들)(124B2)은 NLU 모델(133B2)의 모든 분류들에 대한 이행 능력들, 뿐만 아니라 NLU 모델(133A2)에 대한 이행 능력들을 포함할 수 있다.
이에 따라, 이행 엔진(124B2), 이행 모델(들)(134B2), NLU 엔진(123B2), 및 NLU 모델(들)(133B2)은 이들의 대체된 대응물들과 비교해 향상된다. 하지만, 어시스턴트 디바이스(110B)의 프로세싱 능력들은, 소거된 모델들 및 소거된 엔진들을 어시스턴트 디바이스(110B)로부터 먼저 소거함이 없이 이행 엔진(124B2), 이행 모델(들)(134B2), NLU 엔진(123B2), 및 NLU 모델(들)(133B2)을 저장 및/또는 사용하는 것을 막을 수 있다. 어시스턴트 디바이스(110A)에 대한 상보적 적응들 및 어시스턴트 디바이스(110A)와의 협력적 프로세싱 없이, 단순히 이러한 모델들을 어시스턴트 디바이스(110B)로부터 소거하는 것은 결과적으로, 어시스턴트 클라이언트(120B)에게서 다양한 어시스턴트 요청들을 완전히 로컬로 프로세싱하기 위한 능력들이 결여되게 한다.
클라이언트 디바이스(110B)의 워밍 신호(들) 엔진(127B2) 및 워밍 신호(들) 모델(137B2)은, 임의의 추가적인 디스크 공간을 점유하지 않거나, 워밍 신호(들) 엔진(127B1) 및 워밍 신호(들) 모델(127B1)보다 더 많은 메모리를 이용하지 않고, 또는 더 큰 프로세서 리소스들을 요구하지 않는다. 예를 들어, 이들은 동일한 프로세싱 능력들 또는 훨씬 더 작은 프로세싱 능력들을 요구할 수 있다. 하지만, 워밍 신호(들) 엔진(127B2) 및 워밍 신호(들) 모델(137B2)은, 워밍 신호(들) 엔진(127B1) 및 워밍 신호(들) 모델(127B1)에 의해 커버되는 것들에 추가하여 존재하는, 그리고 어시스턴트 클라이언트(120A)의 워밍 신호(들) 엔진(127A1) 및 워밍 신호(들) 모델(127A1)에 의해 커버되는 것들에 추가하여 존재하는, 워밍 신호(들)를 커버한다.
도 1ba의 구성에서, 어시스턴트 클라이언트(120A)는, 깨우기 신호(들)에 대해 모니터링하는 프로세싱 역할, ASR을 수행하는 프로세싱 역할, 분류들의 제 1 세트에 대한 NLU를 수행하는 프로세싱 역할, 인증을 수행하는 프로세싱 역할, 워밍 신호들의 제 1 세트에 대해 모니터링하는 프로세싱 역할, 및 VAD를 수행하는 프로세싱 역할을 할당받을 수 있다. 어시스턴트 클라이언트(120B)는, 분류들의 제 2 세트에 대한 NLU를 수행하는 프로세싱 역할, 이행을 수행하는 프로세싱 역할, TTS를 수행하는 프로세싱 역할, 및 워밍 신호들의 제 2 세트에 대해 모니터링하는 프로세싱 역할을 할당받을 수 있다. 프로세싱 역할들은 전달될 수 있고 어시스턴트 클라이언트들(120A) 각각에서 저장될 수 있으며, 다양한 어시스턴트 요청들의 프로세싱의 조정은 어시스턴트 클라이언트들(120A 및 120B) 중 하나 혹은 양쪽 모두에 의해 수행될 수 있다.
도 1ba의 적응들을 사용하는 어시스턴트 요청의 협력적 프로세싱의 하나의 예로서, "오케이 어시스턴트, 부억 조명들을 턴온시켜"의 발성된 발언이 제공되는 것, 그리고 해당하는 어시스턴트 디바이스(120A)가 프로세싱을 조정하는 선도 디바이스(lead device)인 것을 가정한다. 어시스턴트 클라이언트(120A)의 깨우기 신호(들) 엔진(121A1)은 깨우기 신호 "오케이 어시스턴트"의 일어남을 검출할 수 있다. 이에 응답하여, 깨우기 신호(들) 엔진(121A1)은 ASR 엔진(122A2)으로 하여금 깨우기 신호에 후속하는 캡처된 오디오 데이터를 프로세싱하도록 할 수 있다. 깨우기 신호(들) 엔진(121A1)은 또한 선택에 따라서는, 어시스턴트 요청의 특정 프로세싱을 수행하도록 어시스턴트 클라이언트(120B)를 준비시키기 위해 커맨드를 어시스턴트 디바이스(110B)에게 로컬로 전송하여 어시스턴트 디바이스(110B)로 하여금 저-전력 상태로부터 고-전력 상태로 전이하도록 할 수 있다. ASR 엔진(122A2)에 의해 프로세싱되는 오디오 데이터는, 어시스턴트 디바이스(110A)의 마이크로폰(들)에 의해 캡처된 오디오 데이터 및/또는 어시스턴트 디바이스(110B)의 마이크로폰(들)에 의해 캡처된 오디오 데이터일 수 있다. 예를 들어, 어시스턴트 디바이스(110B)로 하여금 고-전력 상태로 전이하도록 하기 위해 어시스턴트 디바이스(110B)에게 전송되는 커맨드는 또한, 어시스턴트 디바이스(110B)로 하여금 오디오 데이터를 로컬로 캡처하도록 할 수 있고, 그리고 선택에 따라서는 이러한 오디오 데이터를 어시스턴트 클라이언트(120A)에게 전송하도록 할 수 있다. 일부 구현예들에서, 어시스턴트 클라이언트(120A)는, 그 수신된 오디오 데이터를 사용할지, 또는 대신에 로컬로 캡처된 오디오 데이터를 사용할지를, 오디오 데이터의 각각의 인스턴스(instance)들의 특성(들)의 분석에 근거하여, 결정할 수 있다. 예를 들어, 오디오 데이터의 하나의 인스턴스는, 해당 인스턴스가 더 낮은 신호 대 잡음 비율(signal to noise ratio)을 갖는다는 것 그리고/또는 더 높은 음량을 갖는 발성된 발언을 캡처했다는 것에 근거하여, 또 하나의 다른 인스턴스에 우선하여 이용될 수 있다.
ASR 엔진(122A2)에 의해 발생된 전사는, 분류들의 제 1 세트에 대해 전사에 관한 NLU를 수행하도록 NLU 엔진(123A2)으로 전달될 수 있고, 또한 NLU 엔진(123B2)으로 하여금 분류들의 제 2 세트에 대해 전사에 관한 NLU를 수행하도록 하기 위해 어시스턴트 클라이언트(120B)에게 전송될 수 있다. NLU 엔진(123B2)에 의해 수행된 NLU의 결과들은 어시스턴트 클라이언트(120A)에게 전송될 수 있고, 이러한 결과들 및 NLU 엔진(123A2)으로부터의 결과들에 근거하여, 만약 있다면, 어떤 결과들을 이용할지가 결정될 수 있다. 예를 들어, 어시스턴트 클라이언트(120A)는 가장 높은 확률 의도를 갖는 결과들을 (해당 확률이 어떤 임계치를 만족시키는 한) 이용할 수 있다. 예컨대, "턴온시키는 것"의 의도를 포함하고 아울러 "주방 조명들"에 대한 식별자를 특정하는 파라미터(들)를 포함하는 결과들이 이용될 수 있다. 만약 어떠한 확률들도 임계치를 만족시키지 않는다면, 클라우드 기반 어시스턴트 컴포넌트(들)(140)의 NLU 엔진이 선택에 따라서는 NLU를 수행하기 위해 이용될 수 있음에 유의해야 한다. 어시스턴트 클라이언트(120A)는 가장 높은 확률을 갖는 NLU 결과들을 어시스턴트 클라이언트(120B)에게 전송할 수 있다. 어시스턴트 클라이언트(120B)의 이행 엔진(124B2)은 이러한 NLU 결과들을 이용하여 "주방 조명들"로 하여금 "온" 상태로 전이하도록 하기 위해 "주방 조명들"에게 전송할 커맨드(들)를 결정할 수 있고, 이러한 커맨드를 LAN(들)(108)을 통해 전송할 수 있다. 선택에 따라서는, 이행 엔진(124B2)은 TTS 엔진(125B1)을 이용하여 "주방 조명들을 턴온시키는 것"의 수행을 확인(confirm)시키는 합성된 음성을 발생시킬 수 있다. 이러한 상황에서, 합성된 음성은 어시스턴트 클라이언트(120B)에 의해 어시스턴트 디바이스(110B)에서 렌더링될 수 있고, 그리고/또는 어시스턴트 클라이언트(120A)에 의한 렌더링을 위해 어시스턴트 디바이스(110A)에게 전송될 수 있다.
어시스턴트 요청들의 협력적 프로세싱의 또 하나의 다른 예로서, 이제 막 만료된 어시스턴트 클라이언트(120A)에서 로컬 타이머(local timer)에 대한 알람(alarm)을 렌더링하고 있다고 가정한다. 더욱이, 워밍 신호들 엔진(127B2)에 의해 모니터링되고 있는 워밍 신호들은 "정지"를 포함하고, 워밍 신호들 엔진(127A1)에 의해 모니터링되고 있는 워밍 신호들은 "정지"를 포함하지 않는다고 가정한다. 마지막으로, 알람이 렌더링되고 있을 때, "정지"의 발성된 발언이 제공되고, 이것이 어시스턴트 클라이언트(120B)의 마이크로폰들을 통해 검출된 오디오 데이터 내에서 캡처된다고 가정한다. 워밍 워드들 엔진(127B2)은 오디오 데이터를 프로세싱할 수 있고 워드 "정지"의 일어남을 결정할 수 있다. 더욱이, 워밍 워드들 엔진(127B2)은, 워드 "정지"의 일어남이 청취가능하게 소리나는 타이머 또는 알람을 클리어하는 커맨드에 직접적으로 맵핑됨을 결정할 수 있다. 해당 커맨드는, 어시스턴트 클라이언트(120A)로 하여금 해당 커맨드를 구현하도록 하기 위해 그리고 청취가능하게 소리나는 타이머 또는 알람을 클리어하도록 하기 위해, 어시스턴트 클라이언트(120B)에 의해 어시스턴트 클라이언트(120A)에게 전송될 수 있다. 일부 구현예들에서, 워밍 워드들 엔진(127B2)은 특정 상황들에서 "정지"의 일어남에 대해서만 모니터링할 수 있다. 이러한 구현예들에서, 어시스턴트 클라이언트(120A)는, 알람의 렌더링에 응답하여 또는 알람의 렌더링을 예상하여, 워밍 워드들 엔진(127B2)으로 하여금 "정지"의 일어남에 대해 모니터링하도록 하기 위한 커맨드를 전송할 수 있다. 이러한 커맨드는 모니터링으로 하여금 특정 기간 동안 일어나도록 할 수 있고, 또는 대안적으로, 모니터링 커맨드의 중단(cessation)이 전송될 때까지 일어나도록 할 수 있다.
이제 도 1bb를 참조하면, 동일한 그룹(101B)이 예시된다. 도 1bb에서는, 도 1ba에서와 동일한 적응들이 행해졌는데, 예외적인 것은 ASR 엔진(121A1) 및 ASR 모델(들)(132A1)이 ASR 엔진(122A2) 및 ASR 모델(들)(132A2)에 의해 대체되지 않았다는 것이다. 오히려, ASR 엔진(121A1) 및 ASR 모델(들)(132A1)은 유지되고, 그리고 추가적인 ASR 엔진(122A3) 및 추가적인 ASR 모델(들)(132A3)이 제공된다.
ASR 엔진(121A1) 및 ASR 모델(들)(132A1)은 제 1 언어(예컨대, 영어)에서 발언들의 음성 인식을 위한 것일 수 있고, 그리고 추가적인 ASR 엔진(122A3) 및 추가적인 ASR 모델(들)(132A3)은 제 2 언어(예컨대, 스페인어)에서 발언들의 음성 인식을 위한 것일 수 있다. 도 1ba의 ASR 엔진(121A2) 및 ASR 모델(들)(132A2)은 또한 제 1 언어에 대한 것일 수 있고, 그리고 ASR 엔진(121A1) 및 ASR 모델(들)(132A1)보다 더 강인할 수 있고 그리고/또는 더 정확할 수 있다. 하지만, 어시스턴트 클라이언트(120A)의 프로세싱 능력들은, ASR 엔진(121A2) 및 ASR 모델(들)(132A2)이 ASR 엔진(122A3) 및 추가적인 ASR 모델(들)(132A3)과 함께 로컬로 저장되는 것을 막을 수 있다. 그렇지만, 프로세싱 능력들은 ASR 엔진(121A1) 및 ASR 모델(들)(132A1)과 추가적인 ASR 엔진(122A3) 및 추가적인 ASR 모델(들)(132A3) 양쪽 모두의 저장 및 이용을 가능하게 할 수 있다.
도 1ba의 ASR 엔진(121A2) 및 ASR 모델(들)(132A2) 대신에, ASR 엔진(121A1) 및 ASR 모델(들)(132A1)과 추가적인 ASR 엔진(122A3) 및 추가적인 ASR 모델(들)(132A3) 양쪽 모두를 로컬로 저장할 결정은, 도 1bb의 예에서, 어시스턴트 디바이스들(110A 및 110B)(그리고/또는 어시스턴트 디바이스들(110C 및 110D))에서 제공되는 발성된 발언들이 제 1 언어 발성된 발언들 및 제 2 언어 발성된 발언들 양쪽 모두를 포함한다고 표시하는 사용 통계치들에 근거할 수 있다. 도 1b1의 예에서, 사용 통계치들은 제 1 언어의 발성된 발언들만을 표시할 수 있고, 이것은 결과적으로 도 1ba에서 더 강인한 ASR 엔진(121A2) 및 ASR 모델(들)(132A2)의 선택이 일어나게 한다.
이제 도 1bc를 참조하면, 동일한 그룹(101B)이 다시 예시된다. 도 1bc에서는, 도 1ba에서와 동일한 적응들이 행해졌는데, 예외적인 것들은, (1) ASR 엔진(121A1) 및 ASR 모델(들)(132A1)이 ASR 엔진(122A2) 및 ASR 모델(들)(132A2)에 의해 대체되는 대신 ASR 엔진(122A4) 및 ASR 모델(들)(132A4)에 의해 대체된다는 것; (2) 어시스턴트 디바이스(110B) 상에 어떠한 워밍 신호(들) 엔진 또는 워밍 신호(들) 모델(들)이 존재하지 않는다는 것; 그리고 (3) ASR 엔진(122B4) 및 ASR 모델(들)(132B4)이 어시스턴트 디바이스(110B) 상에서 로컬로 저정되고 이용된다는 것이다.
ASR 엔진(122A4) 및 ASR 모델(들)(132A4)은 음성 인식의 제 1 부분을 수행하기 위해 이용될 수 있고, 그리고 ASR 엔진(122B4) 및 ASR 모델(들)(132B4)은 음성 인식의 제 2 부분을 수행하기 위해 이용될 수 있다. 예를 들어, ASR 엔진(122A4)은 ASR 모델(들)(132A4)을 이용하여 출력을 발생시킬 수 있고, 이러한 출력은 어시스턴트 클라이언트(120B)에게 전송될 수 있고, 그리고 ASR 엔진(122B4)은 음성의 인식을 발생시킬 때 이러한 출력을 프로세싱할 수 있다. 하나의 특정 예로서, 출력은 후보 인식(candidate recognition)들을 나타내는 그래프(graph)일 수 있고, 그리고 ASR 엔진(122B4)은 음성의 인식을 발생시킬 때 이러한 그래프에 관해 빔 검색(beam search)을 수행할 수 있다. 또 하나의 다른 특정 예로서, ASR 모델(들)(132A4)은 종단-간 음성 인식 모델(end-to-end speech recognition model)의 초기/다운스트림 부분(즉, 제 1 뉴럴 네트워크 계층(들))일 수 있고, 그리고 ASR 모델(들)(132B4)은 종단-간 음성 인식 모델의 이후/업스트림 부분(즉, 제 2 뉴럴 네트워크 계층(들))일 수 있다. 이러한 예에서, 종단-간 모델은 두 개의 어시스턴트 디바이스들(110A 및 110B) 간에 분할되고, 프로세싱 이후 초기 부분의 마지막 계층(예컨대, 임베딩(embedding))의 상태들이 출력될 수 있다. 또 다른 예로서, ASR 모델(들)(132A4)은 음향 모델일 수 있고, ASR 모델(들)(132B4)은 언어 모델(들)일 수 있다. 이러한 예에서, 출력은 음소들의 시퀀스 또는 음소들에 대한 확률 분포들의 시퀀스를 표시할 수 있고, 그리고 ASR 엔진(122B4)은 언어 모델을 이용하여 이러한 시퀀스에 대응하는 전사/인식을 선택할 수 있다.
협력하여 작동하는 ASR 엔진(122A4), ASR 모델(들)(132A4), ASR 엔진(122B4), 및 ASR 모델(들)(132B4)의 강인성 및/또는 정확성은 도 1ba의 ASR 엔진(122A2) 및 ASR 모델(들)(132A2)의 강인성 및/또는 정확성을 능가할 수 있다. 더욱이, 어시스턴트 클라이언트(120A) 및 어시스턴트 클라이언트(120B)의 프로세싱 능력들은 ASR 모델(들)(132A4 및 132B4)이 디바이스들 중 어느 하나의 디바이스 상에 홀로(singularly) 저장 및 사용되는 것을 막을 수 있다. 하지만, 프로세싱 능력들은 본 명세서에서 설명되는 바와 같이 모델들의 분할 및 ASR 엔진들(122A4 및 122B4) 간의 프로세싱 역할들의 분할을 가능하게 할 수 있다. 어시스턴트 디바이스(110B) 상에서, 워밍 신호(들) 엔진 및 워밍 신호(들) 모델의 소거는 ASR 엔진(122B4) 및 ASR 모델(들)(132B4)의 저장 및 이용을 가능하게 하는 것일 수 있음에 유의해야 한다. 바꿔 말하면, 어시스턴트 디바이스(110B)의 프로세싱 능력들은 워밍 신호(들) 엔진 및 워밍 신호(들) 모델로 하여금 도 1bc에서 예시되는 다른 엔진들 및 모델들과 함께 저장 및/또는 이용될 수 있게 하지 않게 한다.
도 1ba의 ASR 엔진(121A2) 및 ASR 모델(들)(132A2) 대신에, ASR 엔진(122A4), ASR 모델(들)(132A4), ASR 엔진(122B4), 및 ASR 모델(들)(132B4)을 로컬로 저장할 결정은, 도 1bc의 예에서, 어시스턴트 디바이스들(110A 및 110B)(그리고/또는 어시스턴트 디바이스들(110C 및 110D))에서의 음성 인식들이 종종 낮은-신뢰도를 갖고 그리고/또는 종종 부정확하다고 표시하는 사용 통계치들에 근거할 수 있다. 예를 들어, 사용 통계치들은, 인식들에 대한 신뢰도 메트릭들(confidence metrics)이 평균(예컨대, 사용자들의 모집단(population)에 근거하는 평균) 아래임을 표시할 수 있고, 그리고/또는 인식들이 사용자에 의해 (예컨대, 전사의 디스플레이의 편집을 통해) 종종 수정된다고 표시할 수 있다.
이제 도 1c를 참조하면, 디바이스 그룹(101C)이 만들어졌는데, 여기서 어시스턴트 디바이스들(110A, 110B, 및 110C)이 디바이스 그룹(101C) 내에 포함된다. 일부 구현예들에서, 디바이스 그룹(101C)은 어시스턴트 디바이스들(110A, 110B, 및 110C)을 그룹화하려는 욕구를 명시적으로 표시하는 사용자 인터페이스 입력에 응답하여 발생될 수 있다. 예를 들어, 사용자 인터페이스 입력은 처음부터 디바이스 그룹(101C)을 생성하려는 요구를 표시할 수 있거나, 또는 대안적으로 디바이스 그룹(101B)(도 1ba, 도 1bb, 및 도 1bc)에 어시스턴트 디바이스(110C)를 추가하여 수정된 그룹(101C)이 생성되게 하려는 요구를 표시할 수 있다. 일부 구현예들에서, 디바이스 그룹(101C)은 대신, 자동적으로 발생될 수 있다. 예를 들어, 어시스턴트 디바이스들(110A 및 110B)이 가깝게 근접해 있다고 결정함에 근거하여 디바이스 그룹(101B)(도 1ba, 도 1bb, 및 도 1bc)이 이전에 발생됐을 수 있고, 그리고 디바이스 그룹(101B)의 생성 이후, 어시스턴트 디바이스(110C)는 사용자에 의해 이동될 수 있고, 이에 따라 어시스턴트 디바이스(110C)는 이제 디바이스들(110A 및 110B)에 근접하게 된다. 결과적으로 어시스턴트 디바이스(110C)는 디바이스 그룹(101B)에 자동적으로 추가될 수 있어, 수정된 그룹(101C)이 생성되게 된다.
그룹(101C)이 어떻게 발생됐는지에 상관없이, 도 1c는 어시스턴트 디바이스들(110A, 110B, 및 110C)이 그룹(101C) 내에 포함되는 것에 응답하여 어시스턴트 디바이스들(110A, 110B, 및 110C)에 행해질 수 있는 적응들의 하나의 예를 보여준다.
도 1c에서, 어시스턴트 디바이스(110B)는 도 1bc에서 어시스턴트 디바이스(110B)가 가진 적응들과 동일한 적응들을 갖는다. 더욱이, 어시스턴트 디바이스(110A)는 도 1bc에서 어시스턴트 디바이스(110A)가 가진 적응들과 동일한 적응들을 갖는데, 예외적인 것들은, (1) 인증 엔진(126A1) 및 VAD 엔진(128A1), 그리고 이들의 대응하는 모델(들)(13A1 및 138A1)이 소거되었다는 것; (2) 깨우기 신호(들) 엔진(121A1) 및 깨우기 신호(들) 모델(들)(131A1)이 깨우기 신호(들) 엔진(121A2) 및 깨우기 신호(들) 모델(들)(131A2)로 대체되었다는 것; 그리고 (3) 어시스턴트 디바이스(110B) 상에 어떠한 워밍 신호(들) 엔진 또는 워밍 신호(들) 모델(들)이 존재하지 않는다는 것이다. 어시스턴트 디바이스(110C) 상에 저장된 모델들 및 엔진들은 적응되지 않았다. 하지만, 어시스턴트 클라이언트(120C)는 어시스턴트 클라이언트(120A) 및 어시스턴트 클라이언트(120B)와 함께 어시스턴트 요청들의 협력적 프로세싱을 가능하게 하도록 적응될 수 있다.
도 1c에서, 인증 엔진(126A1) 및 VAD 엔진(128A1)은 어시스턴트 디바이스(110A)로부터 소거되었는데, 왜냐하면 대응물들이 이미 어시스턴트 디바이스(110C) 상에 존재하기 때문이다. 일부 구현예들에서, 인증 엔진(126A1) 및/또는 VAD 엔진(128A1)은, 이러한 컴포넌트(들)로부터의 일부 데이터 혹은 모든 데이터가 어시스턴트 디바이스(110C) 상에 이미 존재하는 이들의 대응물들과 병합된 이후에만 소거될 수 있다. 하나의 예로서, 인증 엔진(126A1)은 제 1 사용자 및 제 2 사용자에 대한 목소리 임베딩(voice embedding)을 저장할 수 있지만, 인증 엔진(126C1)은 제 1 사용자에 대한 목소리 임베딩만을 저장할 수 있다. 인증 엔진(126A1)을 소거하기 전에, 제 2 사용자에 대한 목소리 임베딩은 로컬로 인증 엔진(126C1)에게 전송될 수 있고, 이에 따라 이러한 목소리 임베딩은 인증 엔진(126C1)에 의해 이용될 수 있게 되는데, 이것은 적응-전 능력들이 적응-후에 유지되는 것을 보장한다. 또 하나의 다른 예로서, 인증 엔진(126A1)은, 제 2 사용자의 발언을 각각이 캡처한 오디오 데이터의 인스턴스들, 아울러 제 2 사용자에 대한 목소리 임베딩을 발생시키기 위해 이용된 오디오 데이터의 인스턴스들을 저장할 수 있고, 그리고 인증 엔진(126C1)은 제 2 사용자에 대한 어떠한 목소리 임베딩도 갖지 않을 수 있다. 인증 엔진(126A1)을 소거하기 전에, 오디오 데이터의 인스턴스들은 로컬로 인증 엔진(126A1)로부터 인증 엔진(126C1)에게 전송될 수 있고, 이에 따라 오디오 데이터의 인스턴스들은 디바이스-상 인증 모델(들)(136C1)을 이용하여 제 2 사용자에 대한 목소리 임베딩을 발생시킬 때 인증 엔진(126C1)에 의해 이용될 수 있게 되는데, 이것은 적응-전 능력들이 적응-후에 유지되는 것을 보장한다. 더욱이, 깨우기 신호(들) 엔진(121A1) 및 깨우기 신호(들) 모델(들)(131A1)은 더 작은 저장 크기 깨우기 신호(들) 엔진(121A2) 및 깨우기 신호(들) 모델(들)(131A2)로 대체되었다. 예를 들어, 깨우기 신호(들) 엔진(121A1) 및 깨우기 신호(들) 모델(들)(131A1)은 발성된 깨우기 신호(들) 및 이미지 기반 깨우기 신호(들) 양쪽 모두의 검출을 가능하게 했고, 반면 깨우기 신호(들) 엔진(121A2) 및 깨우기 신호(들) 모델(들)(131A2)은 이미지 기반 깨우기 신호(들)만의 검출을 가능하게 한다. 선택에 따라서는, 깨우기 신호(들) 엔진(121A1) 및 깨우기 신호(들) 모델(들)(131A1)의 이미지 기반 깨우기 신호(들) 부분으로부터의 개인화(personalization)(들), 훈련 인스턴스(들), 및/또는 다른 설정(들)은, 깨우기 신호(들) 엔진(121A1) 및 깨우기 신호(들) 모델(들)(131A1)의 소거 전에, 깨우기 신호(들) 엔진(121A2) 및 깨우기 신호(들) 모델(들)(131A2)과 병합될 수 있거나, 또는 그렇지 않다면 공유될 수 있다. 깨우기 신호(들) 엔진(121C1) 및 깨우기 신호(들) 모델(들)(131C1)은 발성된 깨우기 신호(들)만의 검출을 가능하게 한다. 따라서, 깨우기 신호(들) 엔진(121A2) 및 깨우기 신호(들) 모델(들)(131A2)과, 깨우기 신호(들) 엔진(121C1) 및 깨우기 신호(들) 모델(들)(131C1)은, 발성된 깨우기 신호들 및 이미지 기반 깨우기 신호들 양쪽 모두의 검출을 집합적으로 가능하게 한다. 선택에 따라서는, 깨우기 신호(들) 엔진(121A1) 및 깨우기 신호(들) 모델(들)(131A1)의 발성된 신호(들) 부분으로부터의 개인화(들), 및/또는 다른 설정(들)은, 깨우기 신호(들) 엔진(121C1) 및 깨우기 신호(들) 모델(들)(131C1)과의 병합, 또는 그렇지 않다면 공유를 위해 클라이언트 디바이스(110C)에게 전송될 수 있다.
더욱이, 깨우기 신호(들) 엔진(121A1) 및 깨우기 신호(들) 모델(들)(131A1)을 더 작은 저장 크기 깨우기 신호(들) 엔진(121A2) 및 깨우기 신호(들) 모델(들)(131A2)로 대체하는 것은 여분의 저장 공간을 제공한다. 이러한 여분의 저장 공간, 뿐만 아니라 인증 엔진(126A1) 및 VAD 엔진(128A1) 그리고 이들의 대응하는 모델들(13A1 및 138A1)을 소거함으로써 제공되는 여부의 저장 공간은, (대체된 워밍 신호(들) 엔진(127A1) 및 워밍 신호(들) 모델보다 집합적으로 더 큰) 워밍 신호(들) 엔진(127A2) 및 워밍 신호(들) 모델(137A2)을 위한 공간을 제공한다. 워밍 신호(들) 엔진(127A2) 및 워밍 신호(들) 모델(137A2)은, 워밍 신호(들) 엔진(127C1) 및 워밍 신호(들) 모델(137C1)을 이용하여 모니터링되는 위밍 신호들과는 다른 워밍 신호(들)에 대해 모니터링하기 위해 이용될 수 있다.
도 1c의 적응들을 사용하는 어시스턴트 요청의 협력적 프로세싱의 하나의 예로서, "오케이 어시스턴트, 부억 조명들을 턴온시켜"의 발성된 발언이 제공되는 것, 그리고 해당하는 어시스턴트 디바이스(120A)가 프로세싱을 조정하는 선도 디바이스인 것을 가정한다. 어시스턴트 클라이언트(110C)의 깨우기 신호(들) 엔진(121C1)은 깨우기 신호 "오케이 어시스턴트"의 일어남을 검출할 수 있다. 이에 응답하여, 깨우기 신호(들) 엔진(121C1)은 ASR 엔진들(122A4 및 122B4)로 하여금 깨우기 신호에 후속하는 캡처된 오디오 데이터를 협력하여 프로세싱하도록 하기 위해 커맨드(들)를 어시스턴트 디바이스들(110A 및 110B)에게 전송할 수 있다. 프로세싱되는 오디오 데이터는, 어시스턴트 디바이스(110C)의 마이크로폰(들)에 의해 캡처된 오디오 데이터 및/또는 어시스턴트 디바이스(110B)의 마이크로폰(들)에 의해 그리고/또는 어시스턴트 디바이스(110C)에 의해 캡처된 오디오 데이터일 수 있다.
ASR 엔진(122B4)에 의해 발생된 전사는, 분류들의 제 2 세트에 대해 전사에 관한 NLU를 수행하도록 NLU 엔진(123B2)으로 전달될 수 있고, 또한 NLU 엔진(123A2)으로 하여금 분류들의 제 1 세트에 대해 전사에 관한 NLU를 수행하도록 하기 위해 어시스턴트 클라이언트(120A)에게 전송될 수 있다. NLU 엔진(123B2)에 의해 수행된 NLU의 결과들은 어시스턴트 클라이언트(120A)에게 전송될 수 있고, 이러한 결과들 및 NLU 엔진(123A2)으로부터의 결과들에 근거하여, 만약 있다면, 어떤 결과들을 이용할지가 결정될 수 있다. 어시스턴트 클라이언트(120A)는 가장 높은 확률을 갖는 NLU 결과들을 어시스턴트 클라이언트(120B)에게 전송할 수 있다. 어시스턴트 클라이언트(120B)의 이행 엔진(124B2)은 이러한 NLU 결과들을 이용하여 "주방 조명들"로 하여금 "온" 상태로 전이하도록 하기 위해 "주방 조명들"에게 전송할 커맨드(들)를 결정할 수 있고, 이러한 커맨드를 LAN(들)(108)을 통해 전송할 수 있다. 선택에 따라서는, 이행 엔진(124B2)은 TTS 엔진(125B1)을 이용하여 "주방 조명들을 턴온시키는 것"의 수행을 확인시키는 합성된 음성을 발생시킬 수 있다. 이러한 상황에서, 합성된 음성은 어시스턴트 클라이언트(120B)에 의해 어시스턴트 디바이스(110B)에서 렌더링될 수 있고, 어시스턴트 클라이언트(120A)에 의한 렌더링을 위해 어시스턴트 디바이스(110A)에게 전송될 수 있고, 그리고/또는 어시스턴트 클라이언트(120C)에 의한 렌더링을 위해 어시스턴트 디바이스(110C)에게 전송될 수 있다.
이제 도 1d를 참조하면, 디바이스 그룹(101D)이 만들어졌는데, 여기서 어시스턴트 디바이스들(110C 및 110D)이 디바이스 그룹(101D) 내에 포함된다. 일부 구현예들에서, 디바이스 그룹(101D)은 어시스턴트 디바이스들((110C 및 110D)을 그룹화하려는 욕구를 명시적으로 표시하는 사용자 인터페이스 입력에 응답하여 발생될 수 있다. 일부 구현예들에서, 디바이스 그룹(101D)은 대신, 자동적으로 발생될 수 있다.
그룹(101D)이 어떻게 발생됐는지에 상관없이, 도 1d는 어시스턴트 디바이스들(110C 및 110D)이 그룹(101D) 내에 포함되는 것에 응답하여 어시스턴트 디바이스들(110C 및 110D)에 행해질 수 있는 적응들의 하나의 예를 보여준다.
도 1d에서, 어시스턴트 디바이스(110C)의 깨우기 신호(들) 엔진(121C1) 및 깨우기 신호(들) 모델(들)(131C1)은 깨우기 신호(들) 엔진(121C2) 및 깨우기 신호(들) 모델(들)(131C2)로 대체된다. 더욱이, 인증 엔진(126D1) 및 인증 모델(들)(136D1), 그리고 VAD 엔진(128D1) 및 VAD 모델(들)(138D2)은 어시스턴트 디바이스(110D)로부터 소거된다. 또한 더욱이, 어시스턴트 디바이스(110D)의 깨우기 신호(들) 엔진(121D1) 및 깨우기 신호(들) 모델(들)(131D1)은 깨우기 신호(들) 엔진(121D2) 및 깨우기 신호(들) 모델(들)(131D2)로 대체되고, 그리고 워밍 신호(들) 엔진(127D1) 및 워밍 신호(들) 모델(들)(137D1)은 워밍 신호(들) 엔진(127D2) 및 워밍 신호(들) 모델(들)(137D2)로 대체된다.
이전의 깨우기 신호(들) 엔진(121C1) 및 깨우기 신호(들) 모델(들)(131C1)은 "헤이 어시스턴트" 및 "오케이 어시스턴트"와 같은 하나 이상의 깨우기 워드들의 제 1 세트를 검출하기 위해서만 이용될 수 있다. 반면, 깨우기 신호(들) 엔진(121C2) 및 깨우기 신호(들) 모델(들)(131C2)은 "헤이 컴퓨터" 및 "오케이 컴퓨터"와 같은 하나 이상의 깨우기 워드들의 대안적인 제 2 세트만을 검출할 수 있다. 이전의 깨우기 신호(들) 엔진(121D1) 및 깨우기 신호(들) 모델(들)(131D1)은 또한, 하나 이상의 깨우기 워드들의 제 1 세트를 검출하기 위해서만 이용될 수 있고, 그리고 깨우기 신호(들) 엔진(121D2) 및 깨우기 신호(들) 모델(들)(131D2)은 또한, 하나 이상의 깨우기 워드들의 제 1 세트를 검출하기 위해서만 이용될 수 있다. 하지만, 깨우기 신호(들) 엔진(121D2) 및 깨우기 신호(들) 모델(들)(131D2)은 이들의 대체된 대응물들보다 더 크고, 그리고 또한, 더 강인하고(예컨대, 배경 잡음에 대해 더 강인하고), 그리고/또는 더 정확하다. 어시스턴트 디바이스(110D)로부터 엔진들 및 모델들을 소거하는 것은 더 큰 크기의 깨우기 신호(들) 엔진(121D2) 및 깨우기 신호(들) 모델(들)(131D2)로 하여금 이용될 수 있게 할 수 있다. 더욱이, 집합적으로, 깨우기 신호(들) 엔진(121C2) 및 깨우기 신호(들) 모델(들)(131C2)과 깨우기 신호(들) 엔진(121D2) 및 깨우기 신호(들) 모델(들)(131D2)은, 깨우기 워드들의 두 개의 세트들을 검출하는 것을 가능하게 하는데, 반면 어시스턴트 클라이언트(120C 및 120D) 각각은 적응 전에는 제 1 세트만을 검출할 수 있다.
어시스턴트 디바이스(110D)의 워밍 신호(들) 엔진(127D2) 및 워밍 신호(들) 모델(137D2)은 대체된 깨우기 신호(들) 엔진(127D1) 및 깨우기 신호(들) 모델(들)(137D1)보다 더 많은 컴퓨팅연산 능력들을 요구할 수 있다. 하지만, 이러한 능력들은 어시스턴트 디바이스(110D)로부터 엔진들 및 모델들을 소거하는 소거를 통해 이용가능하다. 더욱이, 워밍 신호(들) 엔진(127D2) 및 워밍 신호(들) 모델(137D1)에 의해 모니터링되는 워밍 신호(들)는 워밍 신호(들) 엔진(127C1) 및 워밍 신호(들) 모델(137D1)에 의해 모니터링되는 것들에 추가하여 존재할 수 있다. 적응-전에는, 깨우기 신호(들) 엔진(127D1) 및 깨우기 신호(들) 모델(들)(137D1)에 의해 모니터링되는 깨우기 신호(들)는 워밍 신호(들) 엔진(127C1) 및 워밍 신호(들) 모델(137D1)에 의해 모니터링되는 것들과 동일했다. 따라서, 협력적 프로세싱을 통해, 어시스턴트 클라이언트(120C)와 어시스턴트 클라이언트(120D)는 더 큰 분량의 깨우기 신호(들)에 대해 모니터링할 수 있다.
도 1d의 예에서, 어시스턴트 클라이언트(120C 및 120D)에 의해 협력하여 디바이스-상에서 완전히 프로세싱될 수 없는 많은 어시스턴트 요청들이 존재한다는 것에 유의해야 한다. 예를 들어, 어시스턴트 클라이언트(120C 및 120D)는 임의의 ASR 엔진을 갖지 않고, 임의의 NLU 엔진을 갖지 않고, 그리고 임의의 이행 엔진을 갖지 않는다. 이것은 어시스턴트 디바이스들(110C 및 110D)의 프로세싱 능력들이 임의의 이러한 엔진들 또는 모델들을 지원하지 않기 때문일 수 있다. 따라서, 어시스턴트 클라이언트들(120C 및 120D)에 의해 지원되는 워밍 신호가 아닌 발성된 발언들에 대해, 클라우드 기반 어시스턴트 컴포넌트(들)(140)는 많은 어시스턴트 요청들을 완전히 프로세싱할 때 이용될 필요가 여전히 있을 것이다. 하지만, 도 1d의 적응 및 이러한 적응들에 근거하는 협력적 프로세싱은 적응-전에 디바이스들에서 개별적으로 일어난 임의의 프로세싱보다 여전히 더 강인할 수 있고 그리고/또는 더 정확할 수 있다. 예를 들어, 적응은 추가적인 깨우기 신호(들)의 검출 및 추가적인 워밍 신호(들)의 검출을 가능하게 한다.
일어날 수 있는 협력적 프로세싱의 하나의 예로서, "오케이 컴퓨터, 아무 음악이나 재생시켜"의 발언된 발성을 가정한다. 이러한 예에서, 깨우기 신호(들) 엔진(121D2)은 깨우기 신호 "오케이 컴퓨터"를 검출할 수 있다. 이에 응답하여, 깨우기 신호(들) 엔진(121D2)은 깨우기 신호에 대응하는 오디오 데이터로 하여금 어시스턴트 클라이언트(120C)에게 전송되도록 할 수 있다. 어시스턴트 클라이언트(120C)의 인증 엔진(126C1)은 오디오 데이터를 이용하여 깨우기 신호의 발성이, 등록된 사용자인 것으로 인증될 수 있는지 여부를 결정할 수 있다. 깨우기 신호(들) 엔진(121D2)은 또한, 발성된 발언에 후속하는 오디오 데이터로 하여금 추가 프로세싱을 위해 클라우드 기반 어시스턴트 컴포넌트(들)(140)에게 스트리밍되도록 할 수 있다. 오디오 데이터는 어시스턴트 디바이스(110D)에서 캡처될 수 있거나, 또는 어시스턴트 디바이스(110C)에서 캡처될 수 있다(예컨대, 어시스턴트 클라이언트(120)는, 깨우기 신호(들) 엔진(121D2)이 깨우기 신호를 검출함에 응답하여, 커맨드를 어시스턴트 클라이언트(120C)에게 전송하여 어시스턴트 클라이언트(120C)로 하여금 오디오 데이터를 캡처하도록 할 수 있음). 더욱이, 인증 엔진(126C1)의 결과에 근거하는 인증 데이터가 또한, 오디오 데이터와 함께 전송될 수 있다. 예를 들어, 만약 인증 엔진(126C1)이 깨우기 신호의 발성을 등록된 사용자인 것으로 인증한다면, 인증 데이터는 등록된 사용자의 식별자를 포함할 수 있다. 또 하나의 다른 예로서, 만약 인증 엔진(126C1)이 깨우기 신호의 발성을 임의의 등록된 사용자인 것으로 인증하지 않는다면, 인증 데이터는 발성이 게스트 사용자에 의해 제공된 것임을 반영하는 식별자를 포함할 수 있다.
다양한 특정 예들이 도 1ba, 도 1bb, 도 1bc, 도 1c, 및 도 1d를 참조하여 설명되었다. 하지만, 다양한 추가적인 또는 대안적인 그룹들이 발생될 수 있다는 것, 그리고/또는 다양한 추가적인 또는 대안적인 적응들이 그룹의 발생에 응답하여 수행될 수 있다는 것에 유의해야 한다.
도 2는 그룹 내의 어시스턴트 디바이스들의 디바이스-상 모델(들) 및/또는 프로세싱 역할(들)을 적응시키는 예시적 방법(200)을 예시하는 흐름도이다. 편의상, 흐름도의 동작들은 이러한 동작들을 수행하는 시스템을 참조하여 설명된다. 이러한 시스템은 도 1의 어시스턴트 클라이언트들(120A 내지 120D) 중 하나 이상과 같은, 그리고/또는 도 1의 클라우드 기반 어시스턴트 컴포넌트(들)(140)의 컴포넌트(들)와 같은, 다양한 컴퓨터 시스템들의 다양한 컴포넌트들을 포함할 수 있다. 더욱이, 방법(200)의 동작들이 특정 순서로 보여지고 있지만, 이것은 한정의 의미를 갖도록 의도된 것이 아니다. 하나 이상의 동작들이 재정렬될 수 있거나, 생략될 수 있거나, 또는 추가될 수 있다.
블록(252)에서, 시스템은 어시스턴트 디바이스들의 그룹을 발생시킨다. 예를 들어, 시스템은 어시스턴트 디바이스들의 그룹을 발생시키려는 욕구를 명시적으로 표시하는 사용자 인터페이스 입력에 응답하여 어시스턴트 디바이스들의 그룹을 발생시킬 수 있다. 또 하나의 다른 예로서, 시스템은 하나 이상의 조건들이 만족된다고 결정함에 응답하여 그룹을 자동적으로 발생시킬 수 있다. 또 다른 예로서, 시스템은 조건(들)이 만족된다고 결정함에 응답하여 그룹이 발생돼야 한다고 자동적으로 결정할 수 있고, 그룹의 발생을 제안하는 사용자 인터페이스 출력을 제공할 수 있고, 그 다음에 이러한 사용자 인터페이스 출력에 응답하여 긍정적인 사용자 인터페이스가 수신되는 것에 응답하여 그룹을 발생시킬 수 있다.
블록(254)에서, 시스템은 그룹의 어시스턴트 디바이스들 각각에 대한 프로세싱 능력들을 획득한다. 예를 들어, 시스템은 그룹의 어시스턴트 디바이스들 중 하나일 수 있다. 이러한 예에서, 어시스턴트 디바이스는 자기 자신의 프로세싱 능력들을 획득할 수 있고, 그룹의 다른 어시스턴트 디바이스들은 자신들의 프로세싱 능력들을 어시스턴트 디바이스에게 전송할 수 있다. 또 하나의 다른 예로서, 어시스턴트 디바이스들의 프로세싱 능력들은 디바이스 토폴로지 내에 저장될 수 있고, 그리고 시스템은 디바이스 토폴로지로부터 이들을 검색할 수 있다. 또 다른 예로서, 시스템은 클라우드 기반 컴포넌트일 수 있고, 그리고 그룹의 어시스턴트 디바이스들은 각각 자신들의 프로세싱 능력들을 시스템에게 전송할 수 있다.
어시스턴트 디바이스에 대한 프로세싱 능력들은, 하나 이상의 디바이스-상 프로세서들의 능력들에 근거하는 대응하는 프로세서 값, 디바이스-상 메모리의 크기에 근거하는 대응하는 메모리 값, 그리고/또는 이용가능한 디스크 공간에 근거하는 대응하는 디스크 공간 값을 포함할 수 있다. 예를 들어, 프로세서 값은, 프로세서(들)의 동작 주파수/주파수들에 관한 세부사항들, 프로세서(들)의 캐시(들)의 크기에 관한 세부사항들, 프로세서(들) 각각이 GPU인지, CPU인지, 혹은 DSP인지 여부, 그리고/또는 다른 세부사항(들)을 포함할 수 있다. 또 하나의 다른 예로서, 프로세서 값은, 추가적으로 또는 대안적으로, 프로세서(들)의 능력들의 상위-레벨 범주화(higher-level categorization)를 포함할 수 있는데, 예컨대, 높음, 중간, 혹은 낮음, 또는 GPU+CPU+DSP, 높은-파워 CPU + DSP, 중간-파워 CPU + DSP, 또는 낮은-파워 CPU + DSP와 같은 것을 포함할 수 있다. 또 하나의 다른 예로서, 메모리 값은 메모리의 특정 크기와 같은 메모리의 세부사항들을 포함할 수 있고, 또는 높음, 중간, 혹은 낮음과 같은 메모리의 상위-레벨 범주화를 포함할 수 있다. 또 다른 예로서, 디스크 공간 값은 디스크 공간의 특정 크기와 같은 이용가능한 디스크 공간에 관한 세부사항들을 포함할 수 있고, 또는 높음, 중간, 혹은 낮음과 같은 이용가능한 디스크 공간의 상위-레벨 범주화를 포함할 수 있다.
블록(256)에서, 시스템은 그룹에 대한 디바이스-상 모델들의 집합 세트를 결정할 때 블록(254)의 프로세싱 능력들을 이용한다. 예를 들어, 시스템은 집합적 프로세싱 능력들의 사용을 최대화하려고 추구하는 디바이스-상 모델들의 세트를 결정할 수 있는데, 이것은 이러한 세트의 디바이스-상 모델들이 각각 그 디바이스-상 모델을 저장 및 이용할 수 있는 디바이스 상에서 로컬로 저장 및 이용될 수 있도록 보장하면서 이루어질 수 있다. 시스템은 또한, 만약 가능하다면, 선택된 세트가 디바이스-상 모델(들)의 완전한 파이프라인(또는 다른 후보 세트들보다는 더 완전한 파이프라인)을 포함하도록 보장하려고 추구할 수 있다. 예를 들어, 시스템은, ASR 모델을 포함하지만 덜 강인한 NLU 모델을 포함하는 세트를, 더 강인한 NLU 모델을 포함하지만 ASR 모델은 포함하지 않는 세트에 우선하여, 선택할 수 있다.
일부 구현예들에서, 블록(256)은 하위-블록(256A)을 포함하고, 여기서 시스템은 그룹에 대한 디바이스-상 모델들의 집합 세트를 선택할 때 사용 데이터를 이용한다. 과거 사용 데이터는, 그룹의 어시스턴트 디바이스들 중 하나 이상의 어시스턴트 디바이스에서의 과거 어시스턴트 상호작용들에 관한 데이터일 수 있고, 그리고/또는 생태계의 하나 이상의 추가적인 어시스턴트 디바이스들에서의 과거 어시스턴트 상호작용들에 관한 데이터일 수 있다. 일부 구현예들에서는, 하위-블록(256A)에서, 시스템은 세트 내에 포함할 디바이스-상 모델(들)을 선택할 때, 앞서 언급된 고려(들)와 함께, 사용 데이터를 고려한다. 예를 들어, 만약 프로세싱 능력들이 (덜 정확한 ASR 모델 대신) 더 정확한 ASR 모델이 세트 내에 포함되는 것을 허용하거나, 또는 (덜 강인한 NLU 모델 대신) 더 강인한 NLU 모델이 세트 내에 포함되는 것을 허용하지만, 양쪽 모두는 허용하지 않는다면, 어떤 것을 선택할지를 결정하기 위해 사용 데이터가 사용될 수 있다. 예컨대, 만약 사용 데이터가, 과거 어시스턴트 상호작용들이 주로(혹은 오로지), 더 정확한 ASR 모델을 갖는 세트 내에 포함될 수 있는 덜 강인한 NLU 모델에 의해 커버되는 의도(들)에 관한 것이었음을 반영한다면, 더 정확한 ASR 모델이 세트 내에 포함되도록 선택될 수 있다. 반면, 만약 사용 데이터가, 과거 어시스턴트 상호작용들이, 더 강인한 NLU 모델에 의해서는 커버되지만 덜 강인한 NLU 모델에 의해서는 커버되지 않는 의도(들)에 관한 많은 것들을 포함했음을 반영한다면, 더 강인한 NLU 모델이 세트 내에 포함되도록 선택될 수 있다. 일부 구현예들에서, 후보 세트(들)가 사용 데이터의 고려 없이 프로세싱 능력들에 근거하여 먼저 결정되고, 그 다음에 만약 다수의 유효 후보 세트(들)가 존재한다면, 다른 것(들)에 우선하여 하나를 선택하기 위해 사용 데이터가 이용될 수 있다.
블록(258)에서, 시스템은 어시스턴트 디바이스들 각각으로 하여금 디바이스-상 모델들의 집합 세트의 대응하는 서브세트를 로컬로 저장하도록 한다. 예를 들어, 시스템은 어떤 디바이스-상 모델(들)이 다운로드돼야 하는지의 대응하는 표시를 그룹의 어시스턴트 디바이스들 각각에게 전달할 수 있다. 수신된 표시에 근거하여, 이 경우, 어시스턴트 디바이스들 각각은 원격 데이터베이스(들)로부터 대응하는 모델(들)을 다운로드할 수 있다. 또 하나의 다른 예로서, 시스템은 디바이스-상 모델들을 검색할 수 있고, 대응하는 디바이스-상 모델(들)을 그룹의 어시스턴트 디바이스들 각각에게 푸시(push)할 수 있다. 또 다른 예로서, 적응-전에는 그룹의 어시스턴트 디바이스들 중 대응하는 하나의 어시스턴트 디바이스에서 저장되고, 적응에서는 그룹의 어시스턴트 디바이스들 중 대응하는 또 하나의 다른 어시스턴트 디바이스에서 저장되게 되는, 임의의 디바이스-상 모델(들)에 대해, 이러한 모델(들)은 각각의 디바이스들 간에 직접적으로 전달될 수 있다. 예컨대, 적응-전에 제 1 어시스턴트 디바이스가 ASR 모델을 저장하고, 그 동일한 ASR 모델이, 적응에서는, 제 2 어시스턴트 디바이스 상에 저장되게 되며 제 1 어시스턴트 디바이스로부터 소거되게 된다고 가정한다. 이러한 경우에, 시스템은 제 1 어시스턴트 디바이스에게, ASR 모델을 제 2 어시스턴트 디바이스에서의 로컬 저장을 위해 제 2 어시스턴트 디바이스에게 전송하도록 지시할 수 있고(그리고/또는 제 2 어시스턴트 디바이스에게, 제 1 어시스턴트로부터 ASR 모델을 다운로드하도록 지시할 수 있고), 그리고 제 1 어시스턴트 디바이스는 후속적으로 ASR 모델을 소거할 수 있다. WAN 트래픽(WAN traffic)을 방지하는 것에 추가하여, 적응-전 모델(들)을 로컬로 전송하는 것은, 전송에서 이전에 일어났던 그러한 디바이스-상 모델(들)의 임의의 개인화를 유지시킬 수 있다. 개인화된 모델(들)은, 생태계의 사용자(들)에 대해, 원격 저장소에서의 이들의 비-개인화된 대응물(들)보다 더 정확할 수 있다. 또 하나의 추가적인 예로서, 적응-전에 임의의 어시스턴트 디바이스(들) 상에서 디바이스-상 모델(들)을 개인화하기 위한 저장된 훈련 인스턴스(들)를 포함하는 그러한 임의의 어시스턴트 디바이스(들)에 대해, 이러한 훈련 인스턴스(들)는, 적응-후에 원격 데이터베이스(들)로부터 다운로드되는 대응하는 모델(들)을 가질 어시스턴트 디바이스(들)에게 전달될 수 있다. 이 경우, 적응-후에 디바이스-상 모델(들)을 갖는 어시스턴트 디바이스(들)는 이러한 훈련 인스턴스(들)를 이용하여 원격 데이터베이스(들)로부터 다운로드되는 대응하는 모델(들)을 개인화할 수 있다. 원격 데이터베이스(들)로부터 다운로드되는 대응하는 모델(들)은, 적응-전에 훈련 인스턴스(들)가 이용된 대응물(들)과는 다를 수 있는데(예컨대, 대응물(들)보다 더 작거나 더 클 수 있는데), 하지만 이렇게 상이한 다운로드된 디바이스-상 모델(들)을 개인화할 때 훈련 인스턴스(들)는 여전히 이용될 수 있다.
블록(260)에서, 시스템은 어시스턴트 디바이스들 각각에게 대응하는 역할(들)을 할당한다. 일부 구현예들에서, 대응하는 역할(들)을 할당하는 것은, 어시스턴트 디바이스(들) 각각으로 하여금, 어시스턴트 디바이스에서 로컬로 저장되는 디바이스-상 모델(들)에 대응하는 엔진(들)을 다운로드 및/또는 구현하도록 하는 것을 포함한다. 엔진(들) 각각은, 모든 혹은 일부 ASR을 수행하는 것, 적어도 일부 깨우기 워드들에 대해 깨우기 워드 인식을 수행하는 것, 특정 워밍 워드들에 대해 워밍 워드 인식을 수행하는 것, 그리고/또는 인증을 수행하는 것과 같은, 대응하는 프로세싱 역할을 수행할 때, 대응하는 디바이스-상 모델(들)을 이용할 수 있다. 일부 구현예들에서, 프로세싱 역할(들) 중 하나 이상은 어시스턴트 디바이스들의 그룹의 선도 디바이스의 지시(direction)에서만 수행된다. 예를 들어, 디바이스-상 NLU 모델(들)을 이용하여 주어진 디바이스에 의해 수행되는 NLU 프로세싱 역할은, 선도 디바이스가 NLU 프로세싱을 위한 대응하는 텍스트 및/또는 NLU 프로세싱으로 하여금 일어나도록 하기 위한 특정 커맨드를 주어진 디바이스에게 전송하는 것에 응답하여서만, 수행될 수 있다. 또 하나의 다른 예로서, 디바이스-상 워밍 신호(들) 엔진 및 디바이스-상 워밍 신호(들) 모델(들)을 이용하여 주어진 디바이스에 의해 수행되는 워밍 워드(들) 모니터링 프로세싱 역할은, 선도 디바이스가 워밍 워드들 프로세싱으로 하여금 일어나도록 하기 위한 커맨드를 주어진 디바이스에게 전송하는 것에 응답하여서만, 수행될 수 있다. 예를 들어, 선도 디바이스는 주어진 디바이스로 하여금 선도 디바이스 또는 그룹의 또 하나의 다른 디바이스에서 소리나는 알람에 응답하여 "정지" 워밍 워드의 발성된 일어남에 대해 모니터링하도록 할 수 있다. 일부 구현예들에서, 하나 이상의 프로세싱 역할(들)은, 선도 어시스턴트 디바이스로부터의 임의의 지시와는 독립되어, 적어도 선택적으로 수행될 수 있다. 예를 들어, 디바이스-상 깨우기 신호(들) 엔진 및 디바이스-상 깨우기 신호(들) 모델(들)을 이용하여 주어진 디바이스에 의해 수행되는 깨우기 신호(들) 모니터링 역할은, 사용자에 의해 명시적으로 비활성화되지 않는다면, 계속해서 수행될 수 있다. 또 하나의 다른 예로서, 디바이스-상 워밍 신호(들) 엔진 및 디바이스-상 워밍 신호(들) 모델(들)을 이용하여 주어진 디바이스에 의해 수행되는 워밍 신호(들) 모니터링 역할은, 계속해서 수행될 수 있거나, 또는 모니터링에 대한 조건이, 주어진 디바이스에서 로컬로 검출되는 것에 근거하여 수행될 수 있다.
블록(262)에서, 시스템은, 그룹의 디바이스(들) 중 하나 이상에서 검출된 후속하는 발성된 발언들로 하여금 그룹의 어시스턴트 디바이스들에서 이들의 역할들에 따라 협력하여 로컬로 프로세싱되도록 한다. 이러한 협력적 프로세싱의 다양한 비-한정적 예들이 본 명세서에서 설명된다. 예를 들어, 도 1ba, 도 1bb, 도 1bc, 도 1c, 및 도 1d를 참조하여 예들이 설명된다.
블록(264)에서, 시스템은, 그룹에 디바이스를 추가하는 것, 그룹으로부터 디바이스를 제거하는 것, 또는 그룹을 해체(disbanding)하는 것과 같은, 그룹에 대한 임의의 변경이 존재했는지 여부를 결정한다. 만약 그렇지 않다면, 시스템은 블록(262)을 계속 수행한다. 만약 그렇다면, 시스템은 블록(266)으로 진행한다.
블록(266)에서, 시스템은, 그룹에 대한 변경으로 인해 그룹 내에 있던 하나 이상의 어시스턴트 디바이스들이 이제 단독 상태(solo)가 된 것인지(즉, 이제 더 이상 그룹에 할당된 것이 아닌지)를 결정한다. 만약 그렇다면, 시스템은 블록(268)으로 진행하고, 그리고 단독 디바이스들 각각으로 하여금 그룹화-전 디바이스-상 모델(들)을 로컬로 저장하도록 하고 자신의 그룹화-전 디바이스-상 프로세싱 역할들을 떠맡도록 한다. 바꿔 말하면, 만약 디바이스가 그룹 내에 이제 더 이상 존재하지 않는다면, 디바이스는, 디바이스가 그룹 내에 포함되는 것에 응답하여 수행되는 적응(들) 전에 자신이 존재했던 상태로 다시 복귀(revert)하게 될 수 있다. 이러한 방식들 및 다른 방식들에서, 해당 상태로 다시 복귀한 이후, 단독 디바이스는 단독 용량에서 동작하는 다양한 어시스턴트 요청들을 기능적으로 프로세싱할 수 있다. 해당 상태로 다시 복귀하기 전에, 단독 디바이스는 어떠한 어시스턴트 요청들도 기능적으로 프로세싱할 수 없었을 수 있고, 또는 해당 상태로 다시 복귀하기 전에 가졌을 어시스턴트 요청들보다 적어도 더 적은 분량의 어시스턴트 요청들도 기능적으로 프로세싱할 수 없었을 수 있다.
블록(270)에서, 시스템은, 변경된 그룹 내에서 유지되고 있는 둘 이상의 디바이스들이 존재하는지 여부를 결정한다. 만약 그렇다면, 시스템은 블록(254)으로 다시 진행하고, 그리고 변경된 그룹에 근거하여 블록들(254, 256, 258, 260, 및 262)의 또 하나의 다른 반복을 수행한다. 예를 들어, 만약 변경된 그룹이 그룹의 이전의 어시스턴트 디바이스들 중 어느 것도 잃어버림 없이 추가적인 어시스턴트 디바이스를 포함한다면, 적응들은 추가적인 어시스턴트 디바이스의 추가적인 프로세싱 능력들을 고려하여 행해질 수 있다. 만약 블록(270)에서의 결정이 아니오라면, 그룹은 해체되었고, 그리고 시스템은 블록(272)으로 진행하고, 여기서 방법(200)은 (또 하나의 다른 그룹이 발생될 때까지) 끝난다.
도 3은 그룹 내의 어시스턴트 디바이스들의 디바이스-상 모델(들) 및/또는 프로세싱 역할(들)을 적응시킬 때, 그룹 내의 다수의 어시스턴트 디바이스들 각각에 의해 구현될 수 있는 예시적 방법(300)을 예시하는 흐름도이다. 방법(300)의 동작들이 특정 순서로 보여지고 있지만, 이것은 한정의 의미를 갖도록 의도된 것이 아니다. 하나 이상의 동작들이 재정렬될 수 있거나, 생략될 수 있거나, 또는 추가될 수 있다.
방법(300)의 동작들은 그룹 내의 어시스턴트 디바이스들 각각에 의해 수행될 수 있는 방법(200)의 하나의 특정 예이다. 따라서, 동작들은 도 1의 어시스턴트 디바이스들(120A 내지 120D) 중 하나 이상과 같은, 동작들을 수행하는 어시스턴트 디바이스를 참조하여 설명된다. 그룹 내의 어시스턴트 디바이스들 각각은 자신이 그룹 내에 포함되었다고 표시하는 입력을 수신함에 응답하여 방법(300)을 수행할 수 있다.
블록(352)에서, 어시스턴트 디바이스는, 자신이 그룹 내에 포함되었다고 표시하는 그룹화 표시를 수신한다. 블록(352)에서, 어시스턴트 디바이스는 또한, 그룹 내에 존재하는 다른 어시스턴트 디바이스(들)의 식별자(들)를 수신한다. 각각의 식별자는, 예를 들어, MAC 어드레, IP 어드레스, 디바이스에 할당된 라벨(예컨대, 디바이스 토폴로지에서 할당된 사용), 일련 번호, 또는 다른 식별자일 수 있다.
선택적인 블록(354)에서, 어시스턴트 디바이스는 그룹의 다른 어시스턴트 디바이스(들)에게 데이터를 전송한다. 데이터는 블록(352)에서 수신된 식별자(들)를 사용하여 다른 디바이스들에게 전송된다. 바꿔 말하면, 식별자(들)는 네트워크 어드레스들일 수 있고, 또는 데이터를 전송할 네트워크 어드레스들을 찾기 위해 이용될 수 있다. 전송되는 데이터는, 본 명세서에서 설명되는 하나 이상의 프로세싱 값들, 또 하나의 다른 디바이스 식별자, 및/또는 다른 데이터를 포함할 수 있다.
선택적인 블록(356)에서, 어시스턴트 디바이스는 블록(354)에서 다른 디바이스(들)에 의해 전송된 데이터를 수신한다.
블록(358)에서, 어시스턴트 디바이스는, 선택에 따라서는 블록(356)에서 수신된 데이터에 근거하여, 또는 블록(352)에서 수신된 식별자(들)에 근거하여, 자신이 선도 디바이스인지 여부를 결정한다. 예를 들어, 디바이스는, 자기 자신의 식별자가, 블록(352)에서 수신된 다른 식별자(들)에 비교되는 바에 따라, 가장 낮은(또는 대안적으로 가장 높은) 값을 갖는다면, 자신을 선도자(leader)로서 선택할 수 있다. 또 하나의 다른 예로서, 디바이스는, 자신의 프로세싱 값(들)이, 선택적인 블록(356)에서 데이터 내에서 수신된 다른 모든 프로세싱 값(들)의 프로세싱 값들을 초과한다면, 자신을 선도자로서 선택할 수 있다. 다른 데이터가 블록(354)에서 전송될 수 있고, 블록(356)에서 수신될 수 있으며, 이러한 다른 데이터는 마찬가지로 어시스턴트 디바이스에서 어시스턴트 디바이스가 선도자이어야 하는지 여부의 객관적인 결정을 가능하게 할 수 있다. 더 일반적으로, 블록(358)에서, 어시스턴트 디바이스는 자신이 선도 디바이스이어야 하는지 여부를 결정할 때 하나 이상의 객관적인 기준들을 이용할 수 있다.
블록(360)에서, 어시스턴트 디바이스는 자신이 블록(358)에서 선도 디바이스인 것으로 결정되었는지 여부를 결정한다. 이 경우, 선도 디바이스인 것으로 결정되지 않은 어시스턴트 디바이스(들)는 블록(360)으로부터 "아니오" 분기 아래로 진행할 것이다. 선도 디바이스인 것으로 결정된 어시스턴트 디바이스는 블록(360)으로부터 "예" 분기 아래로 진행할 것이다.
"예" 분기에서, 어시스턴트 디바이스, 블록(360)에서, 어시스턴트 디바이스는, 그룹에 대한 디바이스-상 모델들의 집합 세트를 결정할 때, 그룹 내의 다른 어시스턴트 디바이스(들)로부터의 수신된 프로세싱 능력들을 이용하고, 뿐만 아니라 자기 자신의 프로세싱 능력들을 이용한다. 프로세싱 능력들은, 선택적인 블록(354)에서, 또는 선택적인 블록(354)이 수행되지 않거나 블록(354)의 데이터가 프로세싱 능력들을 포함하지 않은 경우 (아래에서 설명되는) 블록(370)에서, 다른 어시스턴트 디바이스(들)에 의해 선도 디바이스에게 전송될 수 있다. 일부 구현예들에서, 블록(362)은 도 2의 방법(200)의 블록(256)과 공통으로 하나 이상의 실시형태들을 공유할 수 있다. 예를 들어, 일부 구현예들에서, 블록(362)은 또한, 디바이스-상 모델들의 집합 세트를 결정할 때 과거 사용 데이터를 고려하는 것을 포함할 수 있다.
블록(364)에서, 어시스턴트 디바이스는, 다른 어시스턴트 디바이스가 다운로드하게 되는 집합 세트의 디바이스-상 모델(들)의 각각의 표시를 그룹의 다른 어시스턴트 디바이스(들) 각각에게 전송한다. 어시스턴트 디바이스는 또한 선택에 따라서는, 블록(364)에서, 디바이스-상 모델(들)을 사용하여 어시스턴트 디바이스에 의해 수행될 프로세싱 역할(들)의 각각의 표시를 그룹의 다른 어시스턴트 디바이스(들) 각각에게 전송할 수 있다.
블록(366)에서, 어시스턴트 디바이스는 어시스턴트 디바이스에게 할당된 세트의 디바이스-상 모델(들)을 다운로드하고 저장한다. 일부 구현예들에서, 블록들(364 및 366)은 도 2의 방법(200)의 블록(258)과 공통으로 하나 이상의 실시형태들을 공유할 수 있다.
블록(368)에서, 어시스턴트 디바이스는 어시스턴트 요청들의 협력적 프로세싱을 조정하는데, 여기에는 협력적 프로세싱의 부분(들)을 수행할 때 자기 자신의 디바이스-상 모델(들)을 이용하는 것이 포함된다. 일부 구현예들에서, 블록(368)은 도 2의 방법(200)의 블록(262)과 공통으로 하나 이상의 실시형태들을 공유할 수 있다.
이제 "아니오" 분기를 참조하면, 선택적인 블록(370)에서, 어시스턴트 디바이스는 자신의 프로세싱 능력들을 선도 디바이스에게 전송한다. 예를 들어, 블록(354)이 수행되고 프로세싱 능력들이 블록(354)에서 전송된 데이터 내에 포함되는 경우, 블록(370)은 생략될 수 있다.
블록(372)에서, 어시스턴트 디바이스는, 다운로드할 디바이스-상 모델(들)의 표시 및 선택에 따라서는 프로세싱 역할(들)의 표시를, 선도 디바이스로부터 수신한다.
블록(374)에서, 어시스턴트 디바이스는 블록(372)에서 수신된 디바이스-상 모델(들)의 표시에서 반영된 디바이스-상 모델(들)을 다운로드하고 저장한다. 일부 구현예들에서, 블록들(372 및 374)은 도 2의 방법(200)의 블록(258)과 공통으로 하나 이상의 실시형태들을 공유할 수 있다.
블록(376)에서, 어시스턴트 디바이스는 어시스턴트 요청들의 협력적 프로세싱의 부분(들)을 수행할 때 자신의 디바이스-상 모델들을 이용한다. 일부 구현예들에서, 블록(376)은 도 2의 방법(200)의 블록(262)과 공통으로 하나 이상의 실시형태들을 공유할 수 있다.
도 4는 본 명세서에서 설명되는 기법들의 하나 이상의 실시형태들을 수행하기 위해 선택에 따라 이용될 수 있는 예시적 컴퓨팅 디바이스(410)의 블록도이다. 일부 구현예들에서, 어시스턴트 디바이스, 및/또는 다른 컴포넌트(들) 중 하나 이상은 예시적 컴퓨팅 디바이스(410)의 하나 이상의 컴포넌트들을 포함할 수 있다.
컴퓨팅 디바이스(410)는 전형적으로 버스 서브시스템(bus subsystem)(412)을 통해 다수의 주변 디바이스(peripheral device)들과 통신하는 적어도 하나의 프로세서(414)를 포함한다. 이러한 주변 디바이스들은, (예컨대, 메모리 서브시스템(memory subsystem)(425) 및 파일 저장 서브시스템(426)을 포함하는) 저장 서브시스템(storage subsystem)(425), 사용자 인터페이스 출력 디바이스(user interface output device)들(420), 사용자 인터페이스 입력 디바이스(user interface input device)들(422), 그리고 네트워크 인터페이스 서브시스템(network interface subsystem)(416)을 포함할 수 있다. 입력 및 출력 디바이스들은 컴퓨팅 디바이스(410)와의 사용자 상호작용을 가능하게 한다. 네트워크 인터페이스 서브시스템(416)은 외부 네트워크들에 대한 인터페이스를 제공하고, 그리고 다른 컴퓨팅 디바이스들 내의 대응하는 인터페이스 디바이스들에 결합된다.
사용자 인터페이스 입력 디바이스들(422)은, 키보드(keyboard), 마우스(mouse)와 같은 포인팅 디바이스(pointing device)들, 트랙볼(trackball), 터치패드(touchpad), 또는 그래픽 태블릿(graphics tablet), 스캐너(scanner), 디스플레이에 통합된 터치스크린(touchscreen), 목소리 인식 시스템들과 같은 오디오 입력 디바이스(audio input device)들, 마이크로폰들, 그리고/또는 입력 디바이스들의 다른 타입들을 포함할 수 있다. 일반적으로, 용어 "입력 디바이스"의 사용은 컴퓨팅 디바이스(410)에 혹은 통신 네트워크에 정보를 입력하기 위한 디바이스들 및 방식들의 모든 가능한 타입들을 포함하도록 의도된 것이다.
사용자 인터페이스 출력 디바이스들(420)은, 디스플레이 서브시스템(display subsystem), 프린터(printer), 팩스 머신(fax machine), 또는 오디오 출력 디바이스들과 같은 비-시각적 디스플레이(non-visual display)들을 포함할 수 있다. 디스플레이 서브시스템은, 음극선관(Cathode Ray Tube)("CRT"), 액정 디스플레이(Liquid Crystal Display)("LCD")와 같은 평면-패널 디바이스(flat-panel device), 프로젝션 디바이스(projection device), 또는 시각적 이미지를 생성하기 위한 어떤 다른 메커니즘을 포함할 수 있다. 디스플레이 서브시스템은 또한 예를 들어, 오디오 출력 디바이스들을 통해 비-시각적 디스플레이를 제공할 수 있다. 일반적으로, 용어 "출력 디바이스"의 사용은 컴퓨팅 디바이스(410)로부터의 정보를 사용자에게 혹은 또 하나의 다른 머신 또는 컴퓨팅 디바이스에게 출력하기 위한 디바이스들 및 방식들의 모든 가능한 타입들을 포함하도록 의도된 것이다.
저장 서브시스템(425)은 본 명세서에서 설명되는 모듈들 중 일부 혹은 모두의 기능을 제공하는 프로그래밍 및 데이터 구조들을 저장한다. 예를 들어, 저장 서브시스템(425)은 본 명세서에서 설명되는 방법들 중 하나 이상의 방법의 선택된 실시형태들을 수행하는 것, 및/또는 본 명세서에서 서술된 다양한 컴포넌트들을 구현하는 것을 행하기 위한 로직(logic)을 포함할 수 있다.
이러한 소프트웨어 모듈들은 일반적으로 프로세서(414)에 의해 단독으로 혹은 다른 프로세서들과 결합되어 실행된다. 저장 서브시스템(424)에서 사용되는 메모리(425)는, 프로그램 실행 동안 명령들 및 데이터를 저장하기 위한 메인 랜덤 액세스 메모리(Random Access Memory)("RAM")(430)와 그리고 고정된 명령들이 저장된 판독 전용 메모리(Read Only Memory)("ROM")(432)를 포함하는 다수의 메모리들을 포함할 수 있다. 파일 저장 서브시스템(426)은 프로그램 및 데이터 파일들을 위한 지속적인 저장을 제공할 수 있고, 그리고 하드 디스크 드라이브(hard disk drive), (관련된 탈착가능 매체들(removable media)과 함께) 플로피 디스크 드라이브(floppy disk drive), CD-ROM 드라이브, 광학 드라이브(optical drive), 또는 탈착가능 매체 카트리지(removable media cartridge)들을 포함할 수 있다. 특정 구현예들의 기능을 구현하는 모듈들은 저장 서브시스템(425) 내에 파일 저장 서브시스템(426)에 의해 저장될 수 있고, 또는 프로세서(들)(414)에 의해 액세스가능한 다른 머신들 내에 저장될 수 있다.
버스 서브시스템(412)은 컴퓨팅 디바이스(410)의 다양한 컴포넌트들 및 서브시스템들이 의도된 대로 서로 통신하도록 하기 위한 메커니즘을 제공한다. 비록 버스 서브시스템(412)이 단일 버스로서 도식적으로 보여지지만, 버스 서브시스템의 대안적 구현예들은 다수의 버스들을 사용할 수 있다.
컴퓨팅 디바이스(410)는, 워크스테이션(workstation), 서버(server), 컴퓨팅 클러스터(computing cluster), 블레이드 서버(blade server), 서버 팜(server farm), 또는 임의의 다른 데이터 프로세싱 시스템 혹은 컴퓨팅 디바이스를 포함하는 다양한 타입들을 가질 수 있다. 컴퓨터들 및 네트워크들의 항상-변하는 특성으로 인해, 도 4에 도시된 컴퓨팅 디바이스(410)의 설명은 단지 일부 구현예들을 예시할 목적들을 위해 특정 예로서만 의도된 것이다. 도 4에 도시된 컴퓨팅 디바이스보다 더 많거나 더 적은 컴포넌트들을 갖는 컴퓨팅 디바이스(410)의 다수의 다른 구성들이 가능하다.
본 명세서에서 설명되는 시스템들이 사용자들(또는 본 명세서에서 종종 지칭되는 것으로서 "참여자들")에 대한 개인 정보를 수집하거나 개인 정보를 이용할 수 있는 상황들에서, 사용자들은, 프로그램들 혹은 특징들이 사용자 정보(예를 들어, 사용자의 소셜 네트워크(social network), 소셜 액션들 혹은 활동들, 직업(profession), 사용자의 선호도(preference)들, 또는 사용자의 현재 지리적 위치에 대한 정보)를 수집할지 여부를 제어할 기회를 제공받을 수 있고, 또는 사용자와 더 관련이 있을 수 있는 콘텐츠를 콘텐츠 서버로부터 수신할지 여부 및/또는 그 수신 방법을 제어할 기회를 제공받을 수 있다. 또한, 특정 데이터는 저장 혹은 사용되기 전에 하나 이상의 방식들로 처리될 수 있고, 이에 따라 개인적 식별가능 정보는 제거되게 된다. 예를 들어, 사용자의 신원(identity)은 사용자에 대한 어떠한 개인적 식별가능 정보도 결정될 수 없도록 처리될 수 있고, 또는 지리적 위치 정보가 획득되는 사용자의 지리적 위치는 (예를 들어, 도시 수준으로, ZIP 코드 수준으로, 또는 주(stat) 수준으로) 일반화될 수 있고, 이에 따라 사용자의 특정 지리적 위치는 결정될 수 없게 된다. 따라서, 사용자는 사용자에 대한 정보가 어떻게 수집되고 그리고/또는 사용되는지에 관한 제어를 가질 수 있다.
일부 구현예들에서, 이종의 어시스턴트 디바이스들(disparate assistant devices)의 어시스턴트 디바이스 그룹(assistant device group)을 발생시키는 것을 포함하는 방법이 제공된다. 이종의 어시스턴트 디바이스들은 적어도 제 1 어시스턴트 디바이스 및 제 2 어시스턴트 디바이스를 포함한다. 그룹을 발생시킬 때, 제 1 어시스턴트 디바이스는 제 1 어시스턴트 디바이스로 지향된 어시스턴트 요청(assistant request)들을 로컬로 프로세싱(locally processing)할 때 이용되는 로컬로 저장된 디바이스-상 모델(locally stored on-device model)들의 제 1 세트를 포함한다. 더욱이, 그룹을 발생시킬 때, 제 2 어시스턴트 디바이스는 제 2 어시스턴트 디바이스로 지향된 어시스턴트 요청들을 로컬로 프로세싱할 때 이용되는 로컬로 저장된 디바이스-상 모델들의 제 2 세트를 포함한다. 방법은 또한, 어시스턴트 디바이스 그룹의 이종의 어시스턴트 디바이스들 각각에 대한 대응하는 프로세싱 능력들에 근거하여, 어시스턴트 디바이스 그룹의 이종의 어시스턴트 디바이스들 중 임의의 어시스턴트 디바이스로 지향된 어시스턴트 요청들을 협력하여 로컬로 프로세싱할 때의 이용을 위한 로컬로 저장된 디바이스-상 모델들의 집합 세트(collective set)를 결정하는 것을 포함한다. 방법은 또한, 어시스턴트 디바이스 그룹을 발생시키는 것에 응답하여, 이종의 어시스턴트 디바이스들 각각으로 하여금 로컬로 저장된 디바이스-상 모델들의 집합 세트의 대응하는 서브세트(subset)를 로컬로 저장하도록 하는 것과, 그리고 어시스턴트 디바이스 그룹의 이종의 어시스턴트 디바이스들 각각에게 하나 이상의 대응하는 프로세싱 역할들을 할당하는 것을 포함한다. 프로세싱 역할들 각각은 로컬로 저장된 디바이스-상 모델들 중 하나 이상의 대응하는 것을 이용한다. 더욱이, 이종의 어시스턴트 디바이스들 각각으로 하여금 대응하는 서브세트를 로컬로 저장하도록 하는 것은, 제 1 어시스턴트 디바이스로 하여금 제 1 세트의 하나 이상의 제 1 디바이스-상 모델들을 소거(purge)하도록 하여 제 1 어시스턴트 디바이스 상에 로컬로 저장되는 대응하는 서브세트를 위한 저장 공간을 제공하게 하는 것과, 그리고 제 2 어시스턴트 디바이스로 하여금 제 2 세트의 하나 이상의 제 2 디바이스-상 모델들을 소거하도록 하여 제 2 어시스턴트 디바이스 상에 로컬로 저장되는 대응하는 서브세트를 위한 저장 공간을 제공하게 하는 것을 포함한다. 방법은 또한, 어시스턴트 디바이스 그룹의 이종의 어시스턴트 디바이스들 각각에게 대응하는 프로세싱 역할들을 할당하는 것에 후속하여, 어시스턴트 디바이스 그룹의 이종의 어시스턴트 디바이스들 중 적어도 하나의 어시스턴트 디바이스의 마이크로폰(microphone)들을 통해, 발성된 발언(spoken utterance)을 검출하는 것과, 그리고 어시스턴트 디바이스 그룹의 마이크로폰들을 통해 발성된 발언이 검출되는 것에 응답하여, 발성된 발언이, 어시스턴트 디바이스 그룹의 이종의 어시스턴트 디바이스들에 의해, 그리고 이종의 어시스턴트 디바이스들의 대응하는 프로세싱 역할들을 이용하여, 협력하여 로컬로 프로세싱되게 하는 것을 포함한다.
본 명세서에서 개시되는 기술의 이러한 구현예들 및 다른 구현예들은 선택에 따라서는 다음의 특징들 중 하나 이상의 특징을 포함할 수 있다.
일부 구현예들에서, 제 1 어시스턴트 디바이스로 하여금 제 1 세트의 하나 이상의 제 1 디바이스-상 모델들을 소거하도록 하는 것은, 제 1 어시스턴트 디바이스로 하여금 제 1 깨우기 워드(wake word)를 검출할 때 이용되는 제 1 세트의 제 1 디바이스 깨우기 워드 검출 모델을 소거하도록 하는 것을 포함한다. 이러한 구현예들에서, 제 2 어시스턴트 디바이스 상에 로컬로 저장되는 대응하는 서브세트는 제 1 깨우기 워드를 검출할 때 이용되는 제 2 디바이스 깨우기 워드 검출 모델을 포함하고, 그리고 대응하는 프로세싱 역할들을 할당하는 것은, 제 1 깨우기 워드의 일어남에 대해 모니터링(monitoring)할 때 제 2 디바이스 깨우기 워드 검출 모델을 이용하는 제 1 깨우기 워드 검출 역할을 제 2 어시스턴트 디바이스에게 할당하는 것을 포함한다. 이러한 구현예들 중 일부에서, 발성된 발언은 제 1 깨우기 워드 및 후속하는 어시스턴트 커맨드(assistant command)를 포함하고, 그리고 제 1 깨우기 워드 검출 역할에서, 제 2 어시스턴트 디바이스는, 제 1 깨우기 워드의 일어남을 검출하고, 그리고 제 1 깨우기 워드의 일어남을 검출함에 응답하여 대응하는 프로세싱 역할들 중 추가적인 것의 수행을 일으킨다. 이러한 구현예들의 일부 버전들에서, 대응하는 프로세싱 역할들 중 추가적인 것은 제 1 어시스턴트 디바이스에 의해 수행되고, 그리고 제 2 어시스턴트 디바이스는 제 1 깨우기 워드의 검출의 표시를 제 1 어시스턴트 디바이스에게 전송함으로써 대응하는 프로세싱 역할들 중 추가적인 것의 수행을 일으킨다.
일부 구현예들에서, 제 1 어시스턴트 디바이스 상에 로컬로 저장되는 대응하는 서브세트는, 하나 이상의 제 1 깨우기 워드들을 검출할 때 이용되는 제 1 디바이스 제 1 깨우기 워드 검출 모델을 포함하고, 그리고 하나 이상의 제 2 깨우기 워드들을 검출할 때 이용되는 임의의 깨우기 워드 검출 모델을 배제(exclude)한다. 이러한 구현예들 중 일부에서, 제 2 어시스턴트 디바이스 상에 로컬로 저장되는 대응하는 서브세트는, 하나 이상의 제 2 핫 워드(hot word)들을 검출할 때 이용되는 제 2 디바이스 제 2 깨우기 워드 검출 모델을 포함하고, 그리고 하나 이상의 제 1 깨우기 워드들을 검출할 때 이용되는 임의의 깨우기 워드 검출 모델을 배제한다. 이러한 구현예들 중 일부 버전들에서, 대응하는 프로세싱 역할들을 할당하는 것은, 하나 이상의 제 1 깨우기 워드의 일어남에 대해 모니터링할 때 제 1 디바이스 깨우기 워드 검출 모델을 이용하는 제 1 깨우기 워드 검출 역할을 제 1 어시스턴트 디바이스에게 할당하는 것과, 그리고 하나 이상의 제 2 깨우기 워드들의 일어남에 대해 모니터링할 때 제 2 디바이스 깨우기 워드 검출 모델을 이용하는 제 2 깨우기 워드 검출 역할을 제 2 어시스턴트 디바이스에게 할당하는 것을 포함한다.
일부 구현예들에서, 제 1 어시스턴트 디바이스 상에 로컬로 저장되는 대응하는 서브세트는, 제 1 언어에서 음성의 인식을 수행할 때 이용되는 제 1 언어 음성 인식 모델을 포함하고, 그리고 제 2 언어에서 음성을 인식할 때 이용되는 임의의 음성 인식 모델을 배제한다. 이러한 구현예들 중 일부에서, 제 2 어시스턴트 디바이스 상에 로컬로 저장되는 대응하는 서브세트는, 제 2 언어에서 음성의 인식을 수행할 때 이용되는 제 2 언어 음성 인식 모델을 포함하고, 그리고 제 2 언어에서 음성을 인식할 때 이용되는 임의의 음성 인식 모델을 배제한다. 이러한 구현예들 중 일부 버전들에서, 대응하는 프로세싱 역할들을 할당하는 것은, 제 1 언어에서 음성의 인식을 수행할 때 제 1 언어 음성 인식 모델을 이용하는 제 1 언어 음성 인식 역할을 제 1 어시스턴트 디바이스에게 할당하는 것과, 그리고 제 2 언어에서 음성의 인식을 수행할 때 제 2 언어 음성 인식 모델을 이용하는 제 2 언어 음성 인식 역할을 제 2 어시스턴트 디바이스에게 할당하는 것을 포함한다.
일부 구현예들에서, 제 1 어시스턴트 디바이스 상에 로컬로 저장되는 대응하는 서브세트는, 음성의 인식의 제 1 부분을 수행할 때 이용되는 음성 인식 모델의 제 1 부분을 포함하고, 그리고 음성 인식 모델의 제 2 부분을 배제한다. 이러한 구현예들 중 일부에서, 제 2 어시스턴트 디바이스 상에 로컬로 저장되는 대응하는 서브세트는, 음성의 인식의 제 2 부분을 수행할 때 이용되는 음성 인식 모델의 제 2 부분을 포함하고, 그리고 음성 인식 모델의 제 1 부분을 배제한다. 이러한 구현예들 중 일부 버전들에서, 대응하는 프로세싱 역할들을 할당하는 것은, 대응하는 음성의 대응하는 임베딩(embedding)을 발생시킬 때 음성 인식 모델의 제 1 부분을 이용하는 언어 음성 인식 역할의 제 1 부분을 제 1 어시스턴트 디바이스에게 할당하는 것과, 그리고 대응하는 임베딩을 제 2 어시스턴트 디바이스에게 전송하는 것과, 그리고 대응하는 음성의 대응하는 인식을 발생시킬 때 제 2 언어 음성 인식 모델 이용함과 아울러 제 1 어시스턴트 디바이스로부터의 대응하는 임베딩을 이용하는 제 2 언어 음성 인식 역할을 제 2 어시스턴트 디바이스에게 할당하는 것을 포함한다.
일부 구현예들에서, 제 1 어시스턴트 디바이스 상에 로컬로 저장되는 대응하는 서브세트는, 음성의 인식의 제 1 부분을 수행할 때 이용되는 음성 인식 모델을 포함한다. 이러한 구현예들 중 일부에서, 대응하는 프로세싱 역할들을 할당하는 것은, 출력을 발생시킬 때 음성 인식 모델을 이용하는 언어 음성 인식 역할의 제 1 부분을 제 1 어시스턴트 디바이스에게 할당하는 것과, 그리고 대응하는 출력을 제 2 어시스턴트 디바이스에게 전송하는 것과, 그리고 대응하는 음성의 대응하는 인식을 발생시킬 때 제 1 어시스턴트 디바이스로부터의 대응하는 출력에 관해 빔 검색(beam search)을 수행하는 제 2 언어 음성 인식 역할을 제 2 어시스턴트 디바이스에게 할당하는 것을 포함한다.
일부 구현예들에서, 제 1 어시스턴트 디바이스 상에 로컬로 저장되는 대응하는 서브세트는, 자연 언어 입력의 의미 분석(semantic analysis)을 수행할 때 사용되는 하나 이상의 적응-전 자연 언어 이해 모델(pre-adaptation natural language understanding model)들을 포함하고, 그리고 하나 이상의 초기 자연 언어 이해 모델들은 제 1 어시스턴트 디바이스에서 로컬 디스크 공간(local disk space)의 제 1 분량(quantity)을 점유한다. 이러한 구현예들 중 일부에서, 제 1 어시스턴트 디바이스 상에 로컬로 저장되는 대응하는 서브세트는 하나 이상의 적응-후 자연 언어 이해 모델(post-adaptation natural language understanding model)들을 포함하고, 여기서 하나 이상의 적응-후 자연 언어 이해 모델들은, 하나 이상의 초기 자연 언어 이해 모델들에 추가하여 존재하는 적어도 하나의 추가적인 자연 언어 이해 모델을 포함하고, 그리고 제 1 어시스턴트 디바이스에서 로컬 디스크 공간의 제 2 분량을 점유하고, 그리고 제 2 분량은 제 1 분량보다 더 크다.
일부 구현예들에서, 제 1 어시스턴트 디바이스 상에 로컬로 저장되는 대응하는 서브세트는, 하나 이상의 제 1 분류(classification)들에 대한 의미 분석에서 이용되는 제 1 디바이스 자연 언어 이해 모델을 포함하고, 그리고 제 2 분류에 대한 이해 분석에서 이용되는 임의의 자연 언어 이해 모델을 배제한다. 이러한 구현예들 중 일부에서, 제 2 어시스턴트 디바이스 상에 로컬로 저장되는 대응하는 서브세트는, 적어도 제 2 분류에 대한 의미 분석에서 이용되는 제 2 디바이스 자연 언어 이해 모델을 포함한다.
일부 구현예들에서, 어시스턴트 디바이스 그룹의 이종의 어시스턴트 디바이스들 각각에 대한 대응하는 프로세싱 능력들은, 하나 이상의 디바이스-상 프로세서들의 능력들에 근거하는 대응하는 프로세서 값, 디바이스-상 메모리의 크기에 근거하는 대응하는 메모리 값, 및/또는 이용가능한 디스크 공간에 근거하는 대응하는 디스크 공간 값을 포함한다.
일부 구현예들에서, 이종의 어시스턴트 디바이스들의 어시스턴트 디바이스 그룹을 발생시키는 것은, 이종의 어시스턴트 디바이스들을 그룹화하려는 욕구(desire)를 명시적으로 표시하는 사용자 인터페이스 입력에 응답하여 일어난다.
일부 구현예들에서, 이종의 어시스턴트 디바이스들의 어시스턴트 디바이스 그룹을 발생시키는 것은, 이종의 어시스턴트 디바이스들이 서로에 대해 하나 이상의 근접 조건(proximity condition)들을 만족시킨다는 결정에 응답하여 자동적으로 수행된다.
일부 구현예들에서, 이종의 어시스턴트 디바이스들의 어시스턴트 디바이스 그룹을 발생시키는 것은, 어시스턴트 디바이스 그룹을 생성하도록 추천(recommendation)하는 것에 응답하여 수신된 긍정적인 사용자 인터페이스 입력에 응답하여 수행되고, 그리고 이러한 추천하는 것은 이종의 어시스턴트 디바이스들이 서로에 대해 하나 이상의 근접 조건들을 만족시킨다고 결정함에 응답하여 자동적으로 발생된다.
일부 구현예들에서, 방법은 또한, 어시스턴트 디바이스 그룹의 이종의 어시스턴트 디바이스들 각각에게 대응하는 프로세싱 역할들을 할당하는 것에 후속하여, 제 1 어시스턴트 디바이스가 그룹 내에 이제 더 이상 존재하지 않음을 결정하는 것과, 그리고 제 1 어시스턴트 디바이스가 그룹 내에 이제 더 이상 존재하지 않음을 결정하는 것에 응답하여, 제 1 어시스턴트 디바이스로 하여금 제 1 어시스턴트 디바이스 상에 로컬로 저장된 대응하는 서브세트를 제 1 세트의 제 1 디바이스-상 모델들로 대체(supplant)하도록 하는 것을 포함한다.
일부 구현예들에서, 집합 세트를 결정하는 것은 또한, 그룹의 어시스턴트 디바이스들 중 하나 이상의 어시스턴트 디바이스에서의 과거 사용을 반영하는 사용 데이터에 근거한다.
이러한 구현예들 중 일부에서, 집합 세트를 결정하는 것은, 어시스턴트 디바이스 그룹의 이종의 어시스턴트 디바이스들 각각에 대한 대응하는 프로세싱 능력들에 근거하여, 각각이 그룹의 어시스턴트 디바이스들에 의해 집합적으로 로컬로 이용될 수 있음과 아울러 집합적으로 로컬로 저장될 수 있는 복수의 후보 세트들을 결정하는 것과, 그리고 사용 데이터에 근거하여, 후보 세트들로부터 집합 세트를 선택하는 것을 포함한다.
일부 구현예들에서, 어시스턴트 디바이스의 하나 이상의 프로세서들에 의해 구현되는 방법이 제공된다. 방법은, 어시스턴트 디바이스가 어시스턴트 디바이스 및 하나 이상의 추가적인 어시스턴트 디바이스들을 포함하는 어시스턴트 디바이스들의 그룹 내에 포함됨을 결정하는 것에 응답하여, 어시스턴트 디바이스가 그룹에 대한 선도 디바이스(lead device)임을 결정하는 것을 포함한다. 방법은 또한, 어시스턴트 디바이스가 그룹에 대한 선도 디바이스임을 결정하는 것에 응답하여, 어시스턴트 디바이스의 프로세싱 능력들에 근거하여, 그리고 하나 이상의 추가적인 어시스턴트 디바이스들 각각에 대한 수신된 프로세싱 능력들에 근거하여, 어시스턴트 디바이스 그룹의 이종의 어시스턴트 디바이스들 중 임의의 어시스턴트 디바이스로 지향된 어시스턴트 요청들을 협력하여 로컬로 프로세싱할 때의 이용을 위한 디바이스-상 모델들의 집합 세트를 결정하고, 그리고 디바이스-상 모델들 각각에 대해, 그룹의 어시스턴트 디바이스들 중 어떤 어시스턴트 디바이스가 디바이스-상 모델을 로컬로 저장할 것인지의 대응하는 지정(designation)을 결정하는 것을 포함한다. 방법은 또한, 어시스턴트 디바이스가 그룹에 대한 선도 디바이스임을 결정하는 것에 응답하여, 하나 이상의 추가적인 어시스턴트 디바이스들과 통신하여 하나 이상의 추가적인 어시스턴트 디바이스들로 하여금 각각이 추가적인 어시스턴트 디바이스에 대한 대응하는 지정을 갖는 디바이스-상 모델들 중 임의의 디바이스-상 모델을 로컬로 저장하도록 하는 것과; 어시스턴트 디바이스에서, 어시스턴트 디바이스에 대한 대응하는 지정을 갖는 디바이스-상 모델들을 로컬로 저장하는 것과; 그리고 그룹으로 지향된 어시스턴트 요청들의 협력적 로컬 프로세싱을 위해, 그룹의 어시스턴트 디바이스들 각각에게 하나 이상의 대응하는 프로세싱 역할들을 할당하는 것을 포함한다.
본 명세서에서 개시되는 기술의 이러한 구현예들 및 다른 구현예들은 선택에 따라서는 다음의 특징들 중 하나 이상의 특징을 포함할 수 있다.
일부 구현예들에서, 어시스턴트 디바이스가 그룹에 대한 선도 디바이스임을 결정하는 것은, 하나 이상의 추가적인 어시스턴트 디바이스들 각각에 대한 수신된 프로세싱 능력들과 어시스턴트 디바이스의 프로세싱 능력들을 비교하는 것과, 그리고 비교에 근거하여 어시스턴트 디바이스가 그룹에 대한 선도 디바이스임을 결정하는 것을 포함한다.
일부 구현예들에서, 어시스턴트 디바이스들의 그룹은, 어시스턴트 디바이스들을 그룹화하려는 욕구를 명시적으로 표시하는 사용자 인터페이스 입력에 응답하여 생성된다.
일부 구현예들에서, 방법은 또한, 어시스턴트 디바이스가 그룹에 대한 선도 디바이스임을 결정하는 것에 응답하여, 그리고 그룹의 어시스턴트 디바이스들 중 하나 이상의 어시스턴트 디바이스에서 어시스턴트 요청을 수신하는 것에 응답하여, 어시스턴트 디바이스들에게 할당된 대응하는 프로세싱 역할들을 사용하여 어시스턴트 요청의 협력적 로컬 프로세싱을 조정(coordinating)하는 것을 포함한다.
일부 구현예들에서, 어시스턴트 디바이스의 하나 이상의 프로세서들에 의해 구현되는 방법이 제공되고, 이러한 방법은, 어시스턴트 디바이스가 이종의 어시스턴트 디바이스들의 그룹으로부터 제거되었음을 결정하는 것을 포함한다. 그룹은 어시스턴트 디바이스 및 적어도 하나의 추가적인 어시스턴트 디바이스를 포함했던 그룹이다. 어시스턴트 디바이스가 그룹으로부터 제거되는 때, 어시스턴트 디바이스는 디바이스-상 모델들의 세트를 로컬로 저장했고, 디바이스-상 모델들의 세트는 자동화된 어시스턴트로 지향된 발성된 발언을 어시스턴트 디바이스에서 로컬로 완전히 프로세싱하기에 불충분한 것이다. 방법은 또한, 어시스턴트 디바이스가 어시스턴트 디바이스들의 그룹으로부터 제거되었음을 결정하는 것에 응답하여, 어시스턴트 디바이스로 하여금 세트의 디바이스-상 모델들 중 하나 이상을 소거하도록 하고 그리고 하나 이상의 추가적인 디바이스-상 모델들을 검색하고 로컬로 저장하도록 하는 것을 포함한다. 하나 이상의 추가적인 디바이스-상 모델들을 검색하고 로컬로 저장하는 것에 후속하여, 어시스턴트 디바이스, 하나 이상의 추가적인 디바이스-상 모델들 및 세트의 디바이스-상 모델들 중 임의의 나머지는 자동화된 어시스턴트로 지향된 발성된 발언을 어시스턴트 디바이스에서 로컬로 완전히 프로세싱할 때 이용될 수 있다.

Claims (20)

  1. 하나 이상의 프로세서들에 의해 구현되는 방법으로서, 상기 방법은,
    이종의 어시스턴트 디바이스들(disparate assistant devices)의 어시스턴트 디바이스 그룹(assistant device group)을 발생시키는 것과, 여기서
    상기 이종의 어시스턴트 디바이스들은 적어도 제 1 어시스턴트 디바이스 및 제 2 어시스턴트 디바이스를 포함하고,
    상기 그룹을 발생시킬 때,
    상기 제 1 어시스턴트 디바이스는 상기 제 1 어시스턴트 디바이스로 지향된 어시스턴트 요청(assistant request)들을 로컬로 프로세싱(locally processing)할 때 이용되는 로컬로 저장된 디바이스-상 모델(locally stored on-device model)들의 제 1 세트를 포함하고,
    상기 제 2 어시스턴트 디바이스는 상기 제 2 어시스턴트 디바이스로 지향된 어시스턴트 요청들을 로컬로 프로세싱할 때 이용되는 로컬로 저장된 디바이스-상 모델들의 제 2 세트를 포함하고;
    상기 어시스턴트 디바이스 그룹의 상기 이종의 어시스턴트 디바이스들 각각에 대한 대응하는 프로세싱 능력들에 근거하여, 상기 어시스턴트 디바이스 그룹의 상기 이종의 어시스턴트 디바이스들 중 임의의 어시스턴트 디바이스로 지향된 어시스턴트 요청들을 협력하여 로컬로 프로세싱할 때의 이용을 위한 로컬로 저장된 디바이스-상 모델들의 집합 세트(collective set)를 결정하는 것과;
    상기 어시스턴트 디바이스 그룹을 발생시키는 것에 응답하여,
    상기 이종의 어시스턴트 디바이스들 각각으로 하여금 로컬로 저장된 디바이스-상 모델들의 상기 집합 세트의 대응하는 서브세트(subset)를 로컬로 저장하도록 하는 것과, 여기서 상기 이종의 어시스턴트 디바이스들 각각으로 하여금 상기 대응하는 서브세트를 로컬로 저장하도록 하는 것은,
    상기 제 1 어시스턴트 디바이스로 하여금 상기 제 1 세트의 하나 이상의 제 1 디바이스-상 모델들을 소거(purge)하도록 하여 상기 제 1 어시스턴트 디바이스 상에 로컬로 저장되는 상기 대응하는 서브세트를 위한 저장 공간을 제공하게 하는 것과, 그리고
    상기 제 2 어시스턴트 디바이스로 하여금 상기 제 2 세트의 하나 이상의 제 2 디바이스-상 모델들을 소거하도록 하여 상기 제 2 어시스턴트 디바이스 상에 로컬로 저장되는 상기 대응하는 서브세트를 위한 저장 공간을 제공하게 하는 것을 포함하고, 그리고
    상기 어시스턴트 디바이스 그룹의 상기 이종의 어시스턴트 디바이스들 각각에게 하나 이상의 대응하는 프로세싱 역할들을 할당하는 것과, 여기서
    상기 프로세싱 역할들 각각은 상기 로컬로 저장된 디바이스-상 모델들 중 하나 이상의 대응하는 것을 이용하고; 그리고
    상기 어시스턴트 디바이스 그룹의 상기 이종의 어시스턴트 디바이스들 각각에게 상기 대응하는 프로세싱 역할들을 할당하는 것에 후속하여,
    상기 어시스턴트 디바이스 그룹의 상기 이종의 어시스턴트 디바이스들 중 적어도 하나의 어시스턴트 디바이스의 마이크로폰(microphone)들을 통해, 발성된 발언(spoken utterance)을 검출하는 것과, 그리고
    상기 어시스턴트 디바이스 그룹의 상기 마이크로폰들을 통해 상기 발성된 발언이 검출되는 것에 응답하여, 상기 발성된 발언이, 상기 어시스턴트 디바이스 그룹의 상기 이종의 어시스턴트 디바이스들에 의해, 그리고 상기 이종의 어시스턴트 디바이스들의 대응하는 프로세싱 역할들을 이용하여, 협력하여 로컬로 프로세싱되게 하는 것을 포함하는 것을 특징으로 하는 방법.
  2. 제1항에 있어서,
    상기 제 1 어시스턴트 디바이스로 하여금 상기 제 1 세트의 하나 이상의 제 1 디바이스-상 모델들을 소거하도록 하는 것은, 상기 제 1 어시스턴트 디바이스로 하여금 제 1 깨우기 워드(wake word)를 검출할 때 이용되는 상기 제 1 세트의 제 1 디바이스 깨우기 워드 검출 모델을 소거하도록 하는 것을 포함하고,
    상기 제 2 어시스턴트 디바이스 상에 로컬로 저장되는 상기 대응하는 서브세트는 상기 제 1 깨우기 워드를 검출할 때 이용되는 제 2 디바이스 깨우기 워드 검출 모델을 포함하고,
    상기 대응하는 프로세싱 역할들을 할당하는 것은, 상기 제 1 깨우기 워드의 일어남에 대해 모니터링(monitoring)할 때 상기 제 2 디바이스 깨우기 워드 검출 모델을 이용하는 제 1 깨우기 워드 검출 역할을 상기 제 2 어시스턴트 디바이스에게 할당하는 것을 포함하고,
    상기 발성된 발언은 제 1 깨우기 워드 및 후속하는 어시스턴트 커맨드(assistant command)를 포함하고,
    상기 제 1 깨우기 워드 검출 역할에서, 상기 제 2 어시스턴트 디바이스는, 상기 제 1 깨우기 워드의 일어남을 검출하고, 그리고 상기 제 1 깨우기 워드의 일어남을 검출함에 응답하여 상기 대응하는 프로세싱 역할들 중 추가적인 것의 수행을 일으키는 것을 특징으로 하는 방법.
  3. 제2항에 있어서,
    상기 대응하는 프로세싱 역할들 중 상기 추가적인 것은 상기 제 1 어시스턴트 디바이스에 의해 수행되고,
    상기 제 2 어시스턴트 디바이스는 상기 제 1 깨우기 워드의 검출의 표시를 상기 제 1 어시스턴트 디바이스에게 전송함으로써 상기 대응하는 프로세싱 역할들 중 상기 추가적인 것의 수행을 일으키는 것을 특징으로 하는 방법.
  4. 제1항에 있어서,
    상기 제 1 어시스턴트 디바이스 상에 로컬로 저장되는 상기 대응하는 서브세트는,
    하나 이상의 제 1 깨우기 워드들을 검출할 때 이용되는 제 1 디바이스 제 1 깨우기 워드 검출 모델을 포함하고, 그리고
    하나 이상의 제 2 깨우기 워드들을 검출할 때 이용되는 임의의 깨우기 워드 검출 모델을 배제(exclude)하며,
    상기 제 2 어시스턴트 디바이스 상에 로컬로 저장되는 상기 대응하는 서브세트는,
    하나 이상의 제 2 핫 워드(hot word)들을 검출할 때 이용되는 제 2 디바이스 제 2 깨우기 워드 검출 모델을 포함하고, 그리고
    상기 하나 이상의 제 1 깨우기 워드들을 검출할 때 이용되는 임의의 깨우기 워드 검출 모델을 배제하며,
    상기 대응하는 프로세싱 역할들을 할당하는 것은, 상기 하나 이상의 제 1 깨우기 워드의 일어남에 대해 모니터링할 때 상기 제 1 디바이스 깨우기 워드 검출 모델을 이용하는 제 1 깨우기 워드 검출 역할을 상기 제 1 어시스턴트 디바이스에게 할당하는 것을 포함하고,
    상기 대응하는 프로세싱 역할들을 할당하는 것은, 상기 하나 이상의 제 2 깨우기 워드들의 일어남에 대해 모니터링할 때 상기 제 2 디바이스 깨우기 워드 검출 모델을 이용하는 제 2 깨우기 워드 검출 역할을 상기 제 2 어시스턴트 디바이스에게 할당하는 것을 포함하는 것을 특징으로 하는 방법.
  5. 임의의 앞선 항에 있어서,
    상기 제 1 어시스턴트 디바이스 상에 로컬로 저장되는 상기 대응하는 서브세트는,
    제 1 언어에서 음성의 인식을 수행할 때 이용되는 제 1 언어 음성 인식 모델을 포함하고, 그리고
    제 2 언어에서 음성을 인식할 때 이용되는 임의의 음성 인식 모델을 배제하고,
    상기 제 2 어시스턴트 디바이스 상에 로컬로 저장되는 상기 대응하는 서브세트는,
    제 2 언어에서 음성의 인식을 수행할 때 이용되는 제 2 언어 음성 인식 모델을 포함하고, 그리고
    상기 제 2 언어에서 음성을 인식할 때 이용되는 임의의 음성 인식 모델을 배제하며,
    상기 대응하는 프로세싱 역할들을 할당하는 것은, 상기 제 1 언어에서 음성의 인식을 수행할 때 상기 제 1 언어 음성 인식 모델을 이용하는 제 1 언어 음성 인식 역할을 상기 제 1 어시스턴트 디바이스에게 할당하는 것을 포함하고,
    상기 대응하는 프로세싱 역할들을 할당하는 것은, 상기 제 2 언어에서 음성의 인식을 수행할 때 상기 제 2 언어 음성 인식 모델을 이용하는 제 2 언어 음성 인식 역할을 상기 제 2 어시스턴트 디바이스에게 할당하는 것을 포함하는 것을 특징으로 하는 방법.
  6. 제1항 내지 제4항 중 임의의 항에 있어서,
    상기 제 1 어시스턴트 디바이스 상에 로컬로 저장되는 상기 대응하는 서브세트는,
    음성의 인식의 제 1 부분을 수행할 때 이용되는 음성 인식 모델의 제 1 부분을 포함하고, 그리고
    상기 음성 인식 모델의 제 2 부분을 배제하며,
    상기 제 2 어시스턴트 디바이스 상에 로컬로 저장되는 상기 대응하는 서브세트는,
    음성의 인식의 상기 제 2 부분을 수행할 때 이용되는 상기 음성 인식 모델의 상기 제 2 부분을 포함하고, 그리고
    상기 음성 인식 모델의 상기 제 1 부분을 배제하며,
    상기 대응하는 프로세싱 역할들을 할당하는 것은,
    대응하는 음성의 대응하는 임베딩(embedding)을 발생시킬 때 상기 음성 인식 모델의 상기 제 1 부분을 이용하는 언어 음성 인식 역할의 제 1 부분을 상기 제 1 어시스턴트 디바이스에게 할당하는 것과, 그리고
    상기 대응하는 임베딩을 상기 제 2 어시스턴트 디바이스에게 전송하는 것을 포함하고,
    상기 대응하는 프로세싱 역할들을 할당하는 것은, 상기 대응하는 음성의 대응하는 인식을 발생시킬 때 상기 제 2 언어 음성 인식 모델 이용함과 아울러 상기 제 1 어시스턴트 디바이스로부터의 상기 대응하는 임베딩을 이용하는 제 2 언어 음성 인식 역할을 상기 제 2 어시스턴트 디바이스에게 할당하는 것을 포함하는 것을 특징으로 하는 방법.
  7. 제1항 내지 제4항 중 임의의 항에 있어서,
    상기 제 1 어시스턴트 디바이스 상에 로컬로 저장되는 상기 대응하는 서브세트는, 음성의 인식의 제 1 부분을 수행할 때 이용되는 음성 인식 모델을 포함하고,
    상기 대응하는 프로세싱 역할들을 할당하는 것은,
    출력을 발생시킬 때 상기 음성 인식 모델을 이용하는 언어 음성 인식 역할의 제 1 부분을 상기 제 1 어시스턴트 디바이스에게 할당하는 것과, 그리고
    상기 대응하는 출력을 상기 제 2 어시스턴트 디바이스에게 전송하는 것을 포함하고,
    상기 대응하는 프로세싱 역할들을 할당하는 것은, 상기 대응하는 음성의 대응하는 인식을 발생시킬 때 상기 제 1 어시스턴트 디바이스로부터의 상기 대응하는 출력에 관해 빔 검색(beam search)을 수행하는 제 2 언어 음성 인식 역할을 상기 제 2 어시스턴트 디바이스에게 할당하는 것을 포함하는 것을 특징으로 하는 방법.
  8. 임의의 앞선 항에 있어서,
    상기 제 1 어시스턴트 디바이스 상에 로컬로 저장되는 상기 대응하는 서브세트는, 자연 언어 입력의 의미 분석(semantic analysis)을 수행할 때 사용되는 하나 이상의 적응-전 자연 언어 이해 모델(pre-adaptation natural language understanding model)들을 포함하고,
    상기 하나 이상의 초기 자연 언어 이해 모델들은 상기 제 1 어시스턴트 디바이스에서 로컬 디스크 공간(local disk space)의 제 1 분량(quantity)을 점유하고,
    상기 제 1 어시스턴트 디바이스 상에 로컬로 저장되는 상기 대응하는 서브세트는, 상기 하나 이상의 초기 자연 언어 이해 모델들에 추가하여 존재하는 적어도 하나의 추가적인 자연 언어 이해 모델을 포함하는 하나 이상의 적응-후 자연 언어 이해 모델(post-adaptation natural language understanding model)들을 포함하고,
    상기 하나 이상의 적응-후 자연 언어 이해 모델들은 상기 제 1 어시스턴트 디바이스에서 상기 로컬 디스크 공간의 제 2 분량을 점유하고, 상기 제 2 분량은 상기 제 1 분량보다 더 큰 것을 특징으로 하는 방법.
  9. 제1항 내지 제7항 중 임의의 항에 있어서,
    상기 제 1 어시스턴트 디바이스 상에 로컬로 저장되는 상기 대응하는 서브세트는,
    하나 이상의 제 1 분류(classification)들에 대한 의미 분석에서 이용되는 제 1 디바이스 자연 언어 이해 모델을 포함하고, 그리고
    제 2 분류에 대한 이해 분석에서 이용되는 임의의 자연 언어 이해 모델을 배제하며,
    상기 제 2 어시스턴트 디바이스 상에 로컬로 저장되는 상기 대응하는 서브세트는, 적어도 상기 제 2 분류에 대한 의미 분석에서 이용되는 제 2 디바이스 자연 언어 이해 모델을 포함하는 것을 특징으로 하는 방법.
  10. 임의의 앞선 항에 있어서,
    상기 어시스턴트 디바이스 그룹의 상기 이종의 어시스턴트 디바이스들 각각에 대한 상기 대응하는 프로세싱 능력들은,
    하나 이상의 디바이스-상 프로세서들의 능력들에 근거하는 대응하는 프로세서 값,
    디바이스-상 메모리의 크기에 근거하는 대응하는 메모리 값, 및
    이용가능한 디스크 공간에 근거하는 대응하는 디스크 공간 값을
    포함하는 것을 특징으로 하는 방법.
  11. 임의의 앞선 항에 있어서,
    이종의 어시스턴트 디바이스들의 상기 어시스턴트 디바이스 그룹을 발생시키는 것은, 상기 이종의 어시스턴트 디바이스들을 그룹화하려는 욕구(desire)를 명시적으로 표시하는 사용자 인터페이스 입력에 응답하여 일어나는 것을 특징으로 하는 방법.
  12. 제1항 내지 제10항 중 임의의 항에 있어서,
    이종의 어시스턴트 디바이스들의 상기 어시스턴트 디바이스 그룹을 발생시키는 것은, 상기 이종의 어시스턴트 디바이스들이 서로에 대해 하나 이상의 근접 조건(proximity condition)들을 만족시킨다는 결정에 응답하여 자동적으로 수행되는 것을 특징으로 하는 방법.
  13. 제1항 내지 제10항 중 임의의 항에 있어서,
    상기 방법은 또한, 상기 어시스턴트 디바이스 그룹의 상기 이종의 어시스턴트 디바이스들 각각에게 상기 대응하는 프로세싱 역할들을 할당하는 것에 후속하여,
    상기 제 1 어시스턴트 디바이스가 상기 그룹 내에 이제 더 이상 존재하지 않음을 결정하는 것과, 그리고
    상기 제 1 어시스턴트 디바이스가 상기 그룹 내에 이제 더 이상 존재하지 않음을 결정하는 것에 응답하여,
    상기 제 1 어시스턴트 디바이스로 하여금 상기 제 1 어시스턴트 디바이스 상에 로컬로 저장된 상기 대응하는 서브세트를 상기 제 1 세트의 상기 제 1 디바이스-상 모델들로 대체(supplant)하도록 하는 것을 포함하는 것을 특징으로 하는 방법.
  14. 임의의 앞선 항에 있어서,
    상기 집합 세트를 결정하는 것은 또한, 상기 그룹의 상기 어시스턴트 디바이스들 중 하나 이상의 어시스턴트 디바이스에서의 과거 사용을 반영하는 사용 데이터에 근거하는 것을 특징으로 하는 방법.
  15. 제14항에 있어서,
    상기 집합 세트를 결정하는 것은,
    상기 어시스턴트 디바이스 그룹의 상기 이종의 어시스턴트 디바이스들 각각에 대한 상기 대응하는 프로세싱 능력들에 근거하여, 각각이 상기 그룹의 상기 어시스턴트 디바이스들에 의해 집합적으로 로컬로 이용될 수 있음과 아울러 집합적으로 로컬로 저장될 수 있는 복수의 후보 세트들을 결정하는 것과, 그리고
    상기 사용 데이터에 근거하여, 상기 후보 세트들로부터 상기 집합 세트를 선택하는 것을 포함하는 것을 특징으로 하는 방법.
  16. 어시스턴트 디바이스의 하나 이상의 프로세서들에 의해 구현되는 방법으로서, 상기 방법은,
    상기 어시스턴트 디바이스가 상기 어시스턴트 디바이스 및 하나 이상의 추가적인 어시스턴트 디바이스들을 포함하는 어시스턴트 디바이스들의 그룹 내에 포함됨을 결정하는 것에 응답하여,
    상기 어시스턴트 디바이스가 상기 그룹에 대한 선도 디바이스(lead device)임을 결정하는 것과;
    상기 어시스턴트 디바이스가 상기 그룹에 대한 상기 선도 디바이스임을 결정하는 것에 응답하여,
    상기 어시스턴트 디바이스의 프로세싱 능력들에 근거하여, 그리고 상기 하나 이상의 추가적인 어시스턴트 디바이스들 각각에 대한 수신된 프로세싱 능력들에 근거하여,
    상기 어시스턴트 디바이스 그룹의 상기 이종의 어시스턴트 디바이스들 중 임의의 어시스턴트 디바이스로 지향된 어시스턴트 요청들을 협력하여 로컬로 프로세싱할 때의 이용을 위한 디바이스-상 모델들의 집합 세트를 결정하고, 그리고
    상기 디바이스-상 모델들 각각에 대해, 상기 그룹의 상기 어시스턴트 디바이스들 중 어떤 어시스턴트 디바이스가 상기 디바이스-상 모델을 로컬로 저장할 것인지의 대응하는 지정(designation)을 결정하는 것과;
    상기 하나 이상의 추가적인 어시스턴트 디바이스들과 통신하여 상기 하나 이상의 추가적인 어시스턴트 디바이스들로 하여금 각각이 상기 추가적인 어시스턴트 디바이스에 대한 상기 대응하는 지정을 갖는 상기 디바이스-상 모델들 중 임의의 디바이스-상 모델을 로컬로 저장하도록 하는 것과;
    상기 어시스턴트 디바이스에서, 상기 어시스턴트 디바이스에 대한 상기 대응하는 지정을 갖는 상기 디바이스-상 모델들을 로컬로 저장하는 것과; 그리고
    상기 그룹으로 지향된 어시스턴트 요청들의 협력적 로컬 프로세싱을 위해, 상기 그룹의 상기 어시스턴트 디바이스들 각각에게 하나 이상의 대응하는 프로세싱 역할들을 할당하는 것을 포함하는 것을 특징으로 하는 방법.
  17. 제16항에 있어서,
    상기 어시스턴트 디바이스가 상기 그룹에 대한 상기 선도 디바이스임을 결정하는 것은,
    상기 하나 이상의 추가적인 어시스턴트 디바이스들 각각에 대한 상기 수신된 프로세싱 능력들과 상기 어시스턴트 디바이스의 상기 프로세싱 능력들을 비교하는 것과, 그리고
    상기 비교에 근거하여 상기 어시스턴트 디바이스가 상기 그룹에 대한 상기 선도 디바이스임을 결정하는 것을 포함하는 것을 특징으로 하는 방법.
  18. 제16항 또는 제17항에 있어서,
    어시스턴트 디바이스들의 상기 그룹은, 상기 어시스턴트 디바이스들을 그룹화하려는 욕구를 명시적으로 표시하는 사용자 인터페이스 입력에 응답하여 생성되는 것을 특징으로 하는 방법.
  19. 제16항 내지 제18항 중 임의의 항에 있어서,
    상기 방법은 또한, 상기 어시스턴트 디바이스가 상기 그룹에 대한 상기 선도 디바이스임을 결정하는 것에 응답하여, 그리고 상기 그룹의 상기 어시스턴트 디바이스들 중 하나 이상의 어시스턴트 디바이스에서 어시스턴트 요청을 수신하는 것에 응답하여,
    상기 어시스턴트 디바이스들에게 할당된 상기 대응하는 프로세싱 역할들을 사용하여 상기 어시스턴트 요청의 협력적 로컬 프로세싱을 조정(coordinating)하는 것을 포함하는 것을 특징으로 하는 방법.
  20. 어시스턴트 디바이스의 하나 이상의 프로세서들에 의해 구현되는 방법으로서, 상기 방법은,
    어시스턴트 디바이스가 이종의 어시스턴트 디바이스들의 그룹으로부터 제거되었음을 결정하는 것과, 여기서
    상기 그룹은 상기 어시스턴트 디바이스 및 적어도 하나의 추가적인 어시스턴트 디바이스를 포함했었고,
    상기 어시스턴트 디바이스가 상기 그룹으로부터 제거되는 때, 상기 어시스턴트 디바이스는 디바이스-상 모델들의 세트를 로컬로 저장했고, 디바이스-상 모델들의 상기 세트는 자동화된 어시스턴트로 지향된 발성된 발언을 상기 어시스턴트 디바이스에서 로컬로 완전히 프로세싱하기에 불충분한 것이며; 그리고
    상기 어시스턴트 디바이스가 어시스턴트 디바이스들의 상기 그룹으로부터 제거되었음을 결정하는 것에 응답하여, 상기 어시스턴트 디바이스로 하여금 상기 세트의 상기 디바이스-상 모델들 중 하나 이상을 소거하도록 하고 그리고 하나 이상의 추가적인 디바이스-상 모델들을 검색하고 로컬로 저장하도록 하는 것을 포함하고,
    상기 하나 이상의 추가적인 디바이스-상 모델들을 검색하고 로컬로 저장하는 것에 후속하여, 상기 어시스턴트 디바이스, 상기 하나 이상의 추가적인 디바이스-상 모델들 및 상기 세트의 상기 디바이스-상 모델들 중 임의의 나머지는 상기 자동화된 어시스턴트로 지향된 상기 발성된 발언을 상기 어시스턴트 디바이스에서 로컬로 완전히 프로세싱할 때 이용될 수 있는 것을 특징으로 하는 방법.
KR1020237001778A 2020-11-13 2020-12-11 어시스턴트 요청들의 협력적 프로세싱을 위한 그룹화된 어시스턴트 디바이스들의 디바이스-상 모델들의 동적 적응 KR20230025457A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/098,013 2020-11-13
US17/098,013 US11749284B2 (en) 2020-11-13 2020-11-13 Dynamically adapting on-device models, of grouped assistant devices, for cooperative processing of assistant requests
PCT/US2020/064626 WO2022103413A1 (en) 2020-11-13 2020-12-11 Dynamically adapting on-device models, of grouped assistant devices, for cooperative processing of assistant requests

Publications (1)

Publication Number Publication Date
KR20230025457A true KR20230025457A (ko) 2023-02-21

Family

ID=74184871

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020237001778A KR20230025457A (ko) 2020-11-13 2020-12-11 어시스턴트 요청들의 협력적 프로세싱을 위한 그룹화된 어시스턴트 디바이스들의 디바이스-상 모델들의 동적 적응

Country Status (6)

Country Link
US (2) US11749284B2 (ko)
EP (1) EP4133362A1 (ko)
JP (1) JP2023535859A (ko)
KR (1) KR20230025457A (ko)
CN (1) CN115668124A (ko)
WO (1) WO2022103413A1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11676594B2 (en) * 2020-12-03 2023-06-13 Google Llc Decaying automated speech recognition processing results
US11948565B2 (en) * 2020-12-11 2024-04-02 Google Llc Combining device or assistant-specific hotwords in a single utterance

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7031915B2 (en) * 2003-01-23 2006-04-18 Aurilab Llc Assisted speech recognition by dual search acceleration technique
EP1654727A4 (en) * 2003-07-23 2007-12-26 Nexidia Inc INTERROGATIONS FOR THE DETECTION OF WORDS
US9753712B2 (en) * 2008-03-20 2017-09-05 Microsoft Technology Licensing, Llc Application management within deployable object hierarchy
US9305548B2 (en) * 2008-05-27 2016-04-05 Voicebox Technologies Corporation System and method for an integrated, multi-modal, multi-device natural language voice services environment
WO2012011630A1 (en) * 2010-07-20 2012-01-26 Lg Electronics Inc. Selective interaction between networked smart devices
US9285944B1 (en) * 2011-04-22 2016-03-15 Angel A. Penilla Methods and systems for defining custom vehicle user interface configurations and cloud services for managing applications for the user interface and learned setting functions
US10419907B2 (en) * 2012-02-22 2019-09-17 Qualcomm Incorporated Proximity application discovery and provisioning
WO2015026366A1 (en) * 2013-08-23 2015-02-26 Nuance Communications, Inc. Multiple pass automatic speech recognition methods and apparatus
US9729592B2 (en) * 2013-08-27 2017-08-08 Persais, Llc System and method for distributed virtual assistant platforms
US10152987B2 (en) * 2014-06-23 2018-12-11 Google Llc Remote invocation of mobile device actions
US9467795B2 (en) * 2014-09-11 2016-10-11 Motorola Solutions, Inc. Method and apparatus for application optimization and collaboration of wearable devices
EP3201770B1 (en) * 2014-09-30 2020-06-03 Nuance Communications, Inc. Methods and apparatus for module arbitration
US9812126B2 (en) * 2014-11-28 2017-11-07 Microsoft Technology Licensing, Llc Device arbitration for listening devices
US20160378455A1 (en) * 2015-06-29 2016-12-29 Facebook, Inc. Methods and Systems for Installing an Application Version via Close-Range Communications
US10261830B2 (en) * 2016-06-14 2019-04-16 Microsoft Technology Licensing, Llc Cross-device task execution
US10217453B2 (en) * 2016-10-14 2019-02-26 Soundhound, Inc. Virtual assistant configured by selection of wake-up phrase
KR102573383B1 (ko) * 2016-11-01 2023-09-01 삼성전자주식회사 전자 장치 및 전자 장치 제어 방법
US10559309B2 (en) * 2016-12-22 2020-02-11 Google Llc Collaborative voice controlled devices
KR20180083587A (ko) * 2017-01-13 2018-07-23 삼성전자주식회사 전자 장치 및 그의 동작 방법
US11164570B2 (en) * 2017-01-17 2021-11-02 Ford Global Technologies, Llc Voice assistant tracking and activation
US10255917B2 (en) * 2017-03-31 2019-04-09 International Business Machines Corporation Coordinating the execution of a voice command across multiple connected devices
DK179745B1 (en) * 2017-05-12 2019-05-01 Apple Inc. SYNCHRONIZATION AND TASK DELEGATION OF A DIGITAL ASSISTANT
EP3806092B1 (en) 2017-05-12 2022-07-20 Apple Inc. Task delegation of a digital assistant
US10665232B2 (en) 2017-05-24 2020-05-26 Harman International Industries, Inc. Coordination among multiple voice recognition devices
WO2019112624A1 (en) * 2017-12-08 2019-06-13 Google Llc Distributed identification in networked system
US10536286B1 (en) * 2017-12-13 2020-01-14 Amazon Technologies, Inc. Network conference management and arbitration via voice-capturing devices
US10762900B2 (en) * 2018-03-07 2020-09-01 Microsoft Technology Licensing, Llc Identification and processing of commands by digital assistants in group device environments
US10963273B2 (en) * 2018-04-20 2021-03-30 Facebook, Inc. Generating personalized content summaries for users
US11481186B2 (en) * 2018-10-25 2022-10-25 At&T Intellectual Property I, L.P. Automated assistant context and protocol
US11361767B2 (en) * 2018-10-31 2022-06-14 Samsung Electronics Co., Ltd Method and apparatus for capability-based processing of voice queries in a multi-assistant environment
US11929079B2 (en) * 2020-10-27 2024-03-12 Samsung Electronics Co., Ltd Electronic device for managing user model and operating method thereof

Also Published As

Publication number Publication date
US20230377580A1 (en) 2023-11-23
CN115668124A (zh) 2023-01-31
WO2022103413A1 (en) 2022-05-19
US20220157318A1 (en) 2022-05-19
EP4133362A1 (en) 2023-02-15
JP2023535859A (ja) 2023-08-22
US11749284B2 (en) 2023-09-05

Similar Documents

Publication Publication Date Title
US10699702B2 (en) System and method for personalization of acoustic models for automatic speech recognition
EP3767622B1 (en) Automatically determining language for speech recognition of spoken utterance received via an automated assistant interface
US20160293157A1 (en) Contextual Voice Action History
KR20210008520A (ko) 화자 임베딩(들)과 트레이닝된 생성 모델을 이용한 화자 분리
US20230377580A1 (en) Dynamically adapting on-device models, of grouped assistant devices, for cooperative processing of assistant requests
JP7371135B2 (ja) 特定話者スピーチモデルを使用した話者認識
US11568878B2 (en) Voice shortcut detection with speaker verification
CN115088033A (zh) 代表对话中的人参与者生成的合成语音音频数据
US20240046935A1 (en) Generating and/or utilizing voice authentication biasing parameters for assistant devices
KR20230116886A (ko) 페이크 오디오 검출을 위한 자기 지도형 음성 표현
JP2023549015A (ja) 自動アシスタントに関する自然な会話を可能にすること
US20230031461A1 (en) Providing certain reasoning with respect to fulfillment of an assistant command
KR20230147157A (ko) 어시스턴트 명령(들)의 컨텍스트적 억제
US11646035B1 (en) Dialog management system
JP2023553994A (ja) ホットワード特性に基づいた自動音声認識パラメータの適応
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
US20230197072A1 (en) Warm word arbitration between automated assistant devices
US20230186909A1 (en) Selecting between multiple automated assistants based on invocation properties
KR20230153450A (ko) 자동 스피치 인식의 로컬 실행을 위한 디바이스 중재
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
KR20230025907A (ko) 생성된 능숙도 측정치에 기초하여 자동화된 어시스턴트 기능 조정
WO2023114087A1 (en) Warm word arbitration between automated assistant devices
CN117121100A (zh) 为自动化助理启用具有软端点的自然对话
WO2023113877A1 (en) Selecting between multiple automated assistants based on invocation properties
CN116711283A (zh) 提供关于履行助理命令的确定性推理