KR102581347B1 - 스마트 장치의 효율적이고 낮은 대기시간 자동 어시스턴트 제어 - Google Patents

스마트 장치의 효율적이고 낮은 대기시간 자동 어시스턴트 제어 Download PDF

Info

Publication number
KR102581347B1
KR102581347B1 KR1020227024821A KR20227024821A KR102581347B1 KR 102581347 B1 KR102581347 B1 KR 102581347B1 KR 1020227024821 A KR1020227024821 A KR 1020227024821A KR 20227024821 A KR20227024821 A KR 20227024821A KR 102581347 B1 KR102581347 B1 KR 102581347B1
Authority
KR
South Korea
Prior art keywords
client device
text
assistant
smart
semantic representation
Prior art date
Application number
KR1020227024821A
Other languages
English (en)
Other versions
KR20220104303A (ko
Inventor
데이비드 로이 샤이어르
디 린
루카스 파머
Original Assignee
구글 엘엘씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 구글 엘엘씨 filed Critical 구글 엘엘씨
Priority to KR1020237031861A priority Critical patent/KR102639230B1/ko
Publication of KR20220104303A publication Critical patent/KR20220104303A/ko
Application granted granted Critical
Publication of KR102581347B1 publication Critical patent/KR102581347B1/ko

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/16Sound input; Sound output
    • G06F3/167Audio in a user interface, e.g. using voice commands for navigating, audio feedback
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • G06F40/211Syntactic parsing, e.g. based on context-free grammar [CFG] or unification grammars
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • 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/02Feature extraction for speech recognition; Selection of recognition unit
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/18Speech classification or search using natural language modelling
    • G10L15/1815Semantic context, e.g. disambiguation of the recognition hypotheses based on word meaning
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/26Speech to text 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/28Constructional details of speech recognition systems
    • G10L15/30Distributed recognition, e.g. in client-server systems, for mobile phones or network applications
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/18Speech classification or search using natural language modelling
    • G10L15/1822Parsing for meaning understanding
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • G10L2015/223Execution procedure of a spoken command
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • G10L2015/226Procedures used during a speech recognition process, e.g. man-machine dialogue using non-speech characteristics

Landscapes

  • Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Human Computer Interaction (AREA)
  • Multimedia (AREA)
  • Acoustics & Sound (AREA)
  • Theoretical Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Telephonic Communication Services (AREA)
  • Selective Calling Equipment (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • User Interface Of Digital Computer (AREA)
  • Information Transfer Between Computers (AREA)
  • Measuring Pulse, Heart Rate, Blood Pressure Or Blood Flow (AREA)
  • Vehicle Body Suspensions (AREA)
  • Lock And Its Accessories (AREA)

Abstract

다양한 구현은 스마트 장치를 제어하기 위한 낮은 대기시간 및/또는 계산 효율성(클라이언트 및/또는 서버) 및/또는 네트워크 효율성을 제공하는 기술과 관련된다. 이러한 구현은 다양한 스마트 장치(예: 스마트 조명, 스마트 온도 조절기, 스마트 플러그, 스마트 기기, 스마트 라우터 등)를 제어하는 어시스턴트 클라이언트 장치에 로컬적으로 저장된 캐시의 캐시 엔트리를 생성 및/또는 활용하는 것과 관련된다. 각 캐시 엔트리에는 하나 이상의 해당 의미론적 표현에 대한 텍스트의 매핑이 포함된다.

Description

스마트 장치의 효율적이고 낮은 대기시간 자동 어시스턴트 제어{EFFICIENT AND LOW LATENCY AUTOMATED ASSISTANT CONTROL OF SMART DEVICES}
본 명세서는 스마트 장치의 효율적이고 낮은 대기시간 자동 어시스턴트 제어에 관한 것이다.
인간은 "자동 어시스턴트"라고하는 대화형 소프트웨어 애플리케이션을 사용하여 인간 대 컴퓨터 상호 작용에 참여할 수 있다. 예를 들면, 인간(자동 어시스턴트와 상호 작용할 때 "사용자"라고 함)은 자동화된(자동) 어시스턴트가 반응형 출력을 생성 및 제공하고, 하나 이상의 스마트 장치를 제어하고 및/또는 하나 이상의 다른 기능을 수행하도록 할 수 있는 입력을 자동화 어시스턴트에 제공할 수 있다. 사용자에 의해 제공되는 입력은 예를 들어 터치 입력(예를 들어, 터치 스크린을 통해), 제스처(예를 들어, 카메라를 통해 감지됨) 및/또는 음성 자연어 입력(즉, 마이크로폰을 통해 감지된 발화)일 수 있으며, 일부 경우 텍스트(또는 다른 의미론적 표현)로 변환된 다음 추가로 처리될 수 있다.
많은 경우에, 자동 어시스턴트에는 어시스턴트 클라이언트 장치에 의해 로컬적으로 실행되고 사용자가 직접 참여하는 자동 어시스턴트 클라이언트뿐만 아니라 자동 어시스턴트 클라이언트가 사용자의 입력에 응답할 수 있도록 클라우드의 보다 강력한 리소스를 활용하는 클라우드 카운터파트가 포함된다. 예를 들어, 자동 어시스턴트 클라이언트는 클라우드 카운터파트(들)에게 사용자의 음성 발화(또는 텍스트 변환)의 오디오 녹음 및 선택적으로 사용자의 신원을 나타내는 데이터(예: 크리덴셜(credentials))를 제공할 수 있다. 클라우드 카운터파트는 결과(들)를 자동 어시스턴트 클라이언트에 리턴하기 위해 쿼리에 대해 다양한 처리를 수행할 수 있으며, 그 후 사용자에게 해당 출력을 제공할 수 있다.
많은 사용자가 여러 클라이언트 장치를 사용하여 자동 어시스턴트를 사용할 수 있다. 예를 들면, 일부 사용자는 스마트 폰(들), 태블릿 컴퓨터(들), 차량 컴퓨팅 시스템(들), 웨어러블 컴퓨팅 장치(들), 스마트 텔레비전(TV)(들), 독립형 어시스턴트-중심 대화형 스피커(들), 스피커(들)를 갖는 독립형 어시스턴트 중심 대화형 디스플레이 등과 같은 클라이언트 장치의 조정된 "에코시스템"를 소유하고 있다. 사용자는 이러한 클라이언트 장치 중 하나를 사용하여 자동 어시스턴트와 인간 대 컴퓨터 대화에 참여할 수 있다(자동 어시스턴트 클라이언트가 설치되어 있다고 가정). 경우에 따라 이러한 클라이언트 장치는 사용자의 기본 거주지, 보조 거주지, 직장 및/또는 기타 구조물 주변에 흩어져있을 수 있다. 예를 들면, 스마트 폰, 태블릿, 스마트 시계 등과 같은 모바일 클라이언트 장치는 사용자의 사람 및/또는 사용자가 마지막으로 배치한 위치에 있을 수 있다. 기존 데스크톱 컴퓨터, 스마트 TV, 독립형 어시스턴트 중심 장치와 같은 다른 클라이언트 장치는 더 고정되어있을 수 있지만 그럼에도 불구하고 사용자의 집이나 직장 내의 다양한 장소(예: 방)에있을 수 있다.
사용자(예: 단일 사용자, 가족의 여러 사용자, 동료, 공동 거주자 등)가 자동 어시스턴트 클라이언트와 연관된 복수의 스마트 장치 중 어느 하나를 제어하기 위해 클라이언트 장치의 조정된 에코시스템 중 하나의 자동 어시스턴트 클라이언트를 사용하여 제어할 수 있도록 하는 기술이 존재한다. 예를 들면, 사용자는 클라이언트 장치의 자동 어시스턴트 클라이언트에 "거실 조명 끄기"라는 음성 명령을 내어 해당 스마트 장치(즉, 자동 어시스턴트 클라이언트에 연결되고 "거실" 조명으로 레이블이 지정된 조명)를 턴-오프할 수 있다.
클라이언트 장치에서 수신된 사용자 입력에 응답하여 스마트 장치를 제어할 때, 기존의 많은 기술은 사용자 입력에 해당하는 데이터를 인터넷을 통해 원격 자동 어시스턴트 서버(들)로 전송한다. 원격 자동 어시스턴트 서버(들)은: 요청에 기초하여 제어될 스마트 장치(들)를 결정하기 위해 데이터를 처리하고; 요청에 기초하여 스마트 장치(들)에 대한 제어 요청(들)을 생성하고; 그리고 인터넷을 통해 스마트 장치(들)(예: 스마트 장치 제조업체)와 관련된 파티(party)/파티들의 서버로 제어 요청을 전송한다. 제어 요청을 생성할 때, 원격 자동 어시스턴트 서버(들)는 데이터의 의미론적 표현을 생성하기 위해(예: 자연어 이해 컴포넌트(들)를 사용하여) 데이터를 처리할 수 있다. 그 다음 의미론적 표현을 기반으로 제어 요청을 생성한다. 별도의 파티의 서버(들)가 제어 요청을 수신하고, 그런 다음 스마트 장치(예: BLE, Z-Wave, ZigBee 등의 경우)와 함께 제공되는 허브를 통해 또는(예: 허브가 필요없는 Wi-Fi 및 기타 스마트 장치의 경우) IP 연결을 통해 직접 스마트 장치로 인터넷을 통해 해당 제어 명령(들)을 스마트 장치로 전송한다.
반면, 이러한 기술은 높은 대기시간(latency), 클라이언트 및/또는 서버 리소스의 과도한 사용, 및/또는 네트워크 리소스의 과도한 사용과 같은 단점(들)을 제공한다. 예를 들면, 서버 리소스의 높은 대기시간 및/또는 과도한 사용은 원격 어시스턴트 서버가 수신된 오디오 데이터 및/또는 텍스트를 처리하여 해당 발화의 의미론적 표현을 생성한 다음 생성된 의미론적 표현에 기초하여 제어 요청을 생성해야하는 결과일 수 있다. 높은 대기시간은 추가적으로 또는 대안적으로 원격 어시스턴트 서버(들)에서 별도의 파티 서버(들)로의 요청 전송의 결과일 수 있으며, 이는 원격 어시스턴트 서버(들)와 서로 지리적으로 근접하지 않은 별도의 파티 서버(들)에 의해 종종 악화(exacerbated)된다. 또한 예를 들어, 네트워크 리소스의 과도한 사용은 고 대역폭 오디오 데이터 및/또는 텍스트를 클라이언트 장치에서 원격 어시스턴트 서버(들)로 전송한 결과 및/또는 고 대역폭 응답 텍스트, 음성 및/또는 그래픽(예: 스마트 장치에 대해 요청된 변경 사항 확인)을 원격 어시스턴트 서버(들)에서 클라이언트 장치로 전송한 결과일 수 있다.
최근에는 클라우드 자동 어시스턴트 컴포넌트에서 자동 어시스턴트 클라이언트 장치(즉, 자동 어시스턴트 인터페이스(들)을 제공하는 클라이언트 장치)로 다양한 자동 어시스턴트 기능의 성능을 전환하려는 노력이있었다. 예를 들면, 최근에는 다양한 클라이언트 장치의 하드웨어 자원(리소스)(예: 메모리 자원, 프로세서 자원 등)의 제약내에서 활용될 수 있는 음성 인식 모델을 생성하면서 여전히 좋은 결과를 달성하기 위한 노력이 이루어졌다. 마찬가지로, 자연어 이해(NLU: natural language understanding) 및/또는 이행(fulfillment)(예: 사용자 입력에 응답하는 액션 수행)을 장치에서 전환하려는 노력이있었다. 장치에서 이러한 기능을 수행하면 대기시간 감소(예: 클라이언트-서버 왕복(roundtrip) 없음), 네트워크 사용량 감소(예: 클라이언트-서버 왕복 없음) 및/또는 연결성이 낮거나 연결이없는 상황에서의 운용성과 같은 다양한 기술적 이점을 얻을 수 있다.
반면, 온-디바이스(on-device) NLU 및/또는 온-디바이스 이행은 많은 요청에 대해 실패할 수 있다. 하나의 비-제한적인 예로서, 사용자의 거실에 있는 어시스턴트 클라이언트 장치에 제공되고 "make these lights a bit brighter and make them warmer(조명을 조금 더 밝게 하고 더 따뜻하게 해)"를 포함하는 음성 발화를 고려한다. 음성 발화의 적절한 의미론적 표현을 생성하려면 "these lights(이 조명)", "a bit brighter(조금 더 밝음)"및 "따뜻하게warmer)"가 의미하는 바를 해결해야한다. 어시스턴트 클라이언트 장치의 제한된 하드웨어 자원은 의미를 해결(분석)(resolve)하는 데 필요한 기계 학습 모델(들), 규칙(들) 및/또는 장치 토폴로지의 로컬 저장 및/또는 사용량을 방지할 수 있다. 반면, 어시스턴트 클라이언트 장치보다 더 강력한 리소스를 가진 원격 어시스턴트 시스템은 의미를 해결(분석)할 수 있다. 예를 들면, 원격 어시스턴트 시스템은 원격으로 저장된 장치 토폴로지를 활용하여 거실 클라이언트 장치에서 수신된(예: 가장 크게 그리고/또는 명확하게 들린) 음성 발화에 대해 거실 조명 A, B 및 C를 참조하는 "these lights"을 결정할 수 있다. 더욱이, 원격 어시스턴트 시스템은 원격 기계 학습 모델(들) 및/또는 규칙(들)을 활용하여 "a bit brighter"가 "거실 조명 A, B, C의 현재 밝기 강도 수준보다 30%(또는 기타 백분율 또는 값) 더 밝다"는 의미를 결정할 수 있다. 또한, 원격 어시스턴트 시스템은 원격 기계 학습 모델 및/또는 규칙을 활용하여 "warmer"이 "현재 색온도보다 20 %(또는 다른 퍼센트 또는 값) 낮은 색온도"라는 의미를 결정할 수 있다.
그러므로, 하드웨어 및/또는 어시스턴트 클라이언트 장치의 기타 제약으로 인해 원격 어시스턴트 시스템은 스마트 장치를 제어하기 위한 특정 요청과 같은 다양한 사용자 요청을 해결(분석)하는 데 여전히 활용되어야한다. 반면, 풀 처리를 위해 항상 확인할 수 없는 오디오 데이터 및/또는 음성 발화 텍스트를 원격 어시스턴트 시스템에 제공하면 원격 어시스턴트 시스템에서 리소스를 과도하게 사용하거나 해당 작업(액션)(예: 스마트 장치 제어)을 수행하는 데 과도한 지연이 발생할 수 있다.
따라서, 본 명세서에 설명된 구현은 낮은 레이턴시(대기시간) 및/또는 계산 효율성(클라이언트 및/또는 서버) 및/또는 네트워크 효율성을 제공하는 스마트 장치를 제어하기 위한 특정 기술에 관한 것이다. 이러한 구현은 다양한 스마트 장치(예: 스마트 조명, 스마트 온도 조절기, 스마트 플러그, 스마트 기기, 스마트 라우터 등)를 제어하는 어시스턴트 클라이언트 장치에 로컬적으로 저장된 캐시의 캐시 엔트리를 생성 및/또는 활용하는 것과 관련된다. 각 캐시 엔트리에는 하나 이상의 해당 의미론적 표현에 대한 텍스트 매핑(mapping)이 포함된다.
캐시 엔트리의 의미론적 표현(들)은 어시스턴트 클라이언트 장치에서 원격 어시스턴트 시스템으로의 텍스트 및/또는 해당 오디오 데이터의 이전 전송에 응답하여 하나 이상의 원격 자동 어시스턴트 서버에 의해 이전에 생성된 의미론적 표현(들)일 수 있다. 캐시 엔트리는 이전 전송에 응답하여 원격 어시스턴트 시스템에 의해 클라이언트 장치로 전송되는 캐시 요청에 응답하여 어시스턴트 클라이언트 장치에 의해 캐시에 저장될 수 있다. 캐시 엔트리의 의미론적 표현에 매핑된 캐시 엔트리의 텍스트는 캐시 엔트리에서 텍스트 자체로서 및/또는 Word2Vec 임베딩 및/또는 중지 단어 자유 변형과 같은 표현으로 표현될 수 있다.
여기에 자세히 설명된 바와 같이, 캐시 엔트리의 의미론적 표현(들)은 클라우드 의미론적 표현(들) 및/또는 로컬적으로 해석 가능한 의미론적 표현을 포함할 수 있다. 로컬적으로 해석 가능한 의미론적 표현은 클라이언트 장치에 의해 해석되어 클라이언트 장치에 의해 하나 이상의 로컬 채널을 통해 스마트 장치의 해당 로컬 제어를 유발하도록 로컬 스마트 장치 및/또는 스마트 장치 컨트롤러(제어기)로 전송될 수 있는 해당 제어 명령(들)을 생성할 수 있다. 제어 명령(들)은 로컬 스마트 장치(들) 및/또는 스마트 장치 컨트롤러(들)에 대한 프로토콜 제품군(suite)을 준수하도록 생성될 수 있다. 반면에 클라우드 의미론적 표현은 클라이언트 장치에 의해 원격 어시스턴트 시스템으로 전송되고, 그리고 스마트 장치(들)의 해당 제어를 유발하기 위해 해당 스마트 장치 제어 시스템(들)에 전송할 헤당 제어 요청(들)을 생성하기 위해 원격 어시스턴트 시스템에 의해 해석될 수 있다.
클라우드 의미론적 표현을 생성하고 활용하는 비-제한적인 예가 제공된다. 어시스턴트 클라이언트 장치의 하나 이상의 마이크를 통해 감지된 오디오 데이터에서 "dim the lights a touch"라는 음성이 캡처된다고 가정한다. 어시스턴트 클라이언트 장치는 로컬 음성-텍스트(STT)(speech-to-text) 모델을 사용하여 오디오 데이터를 처리하여 "dim the lights a touch"라는 인식된 텍스트를 생성할 수 있다. 어시스턴트 클라이언트 장치는 로컬 캐시를 확인하여 인식된 텍스트와 일치(매칭)하는 캐시 엔트리가 있는지 확인할 수 있다. 어시스턴트 클라이언트 장치는 일치하는 캐시 엔트리가 없음을 확인할 수 있으며, 이는 어시스턴트 클라이언트 장치에서 음성 발화의 초기 인스턴스인 결과이거나 이전 일치 캐시 엔트리가 최근 캐시에서 삭제된(cleared) 결과일 수 있다(예: 장치 토폴로지 및/또는 기타 조건에 대한 변경 결정으로 인해). 어시스턴트 클라이언트 장치는 선택적으로 인식된 텍스트가 온-디바이스 NLU 컴포넌트(들)를 사용하여 로컬적으로 해석 가능하지 않다는 것을 추가로 결정할 수 있다. 예를 들면, 어시스턴트 클라이언트 장치는 특정 조명에 대한 "the lights" 분해를 가능하게 하는 강력한 로컬 장치 토폴로지가 결여될 수 있고 및/또는 특정 수준으로 "터치"를 분석(해결)할 수 있는 강력한 모델(들) 및/또는 규칙(들)이 부족할 수 있다.
클라이언트 장치는 인식된 텍스트 및/또는 오디오 데이터를 원격 어시스턴트 시스템에 추가로 전송할 수 있다. 선택적으로, 원격 어시스턴트 시스템으로의 텍스트 및/또는 오디오 데이터의 전송은 일치하는 캐시 엔트리가 없고 및/또는 인식된 텍스트가 로컬적으로 해석 가능하지 않다는 결정에 응답한다.
인식된 텍스트 및/또는 오디오 데이터(원격 어시스턴트 시스템이 인식된 텍스트를 생성할 수 있음)를 수신하면, 원격 어시스턴트 시스템은 인식된 텍스트를 처리(프로세싱)하여 인식된 텍스트의 클라우드 의미론적(semantic) 표현을 생성할 수 있다. 예를 들어, 원격 어시스턴트 시스템은 계정 식별자에 대한 해당 원격으로 저장된 장치 토폴로지를 식별하기 위해 텍스트 전송과 함께 수신된 계정 식별자를 활용할 수 있다. 해당 장치 토폴로지는 어시스턴트 클라이언트 장치의 기본 조명으로(예: 사용자 지정 매핑을 통해 또는 동일한 룸에 할당된 결과로서), 장치 토폴로지에서 매핑되는 조명 A 및 B(lights A 및 B)를 기반으로 조명 A 및 B에 대한 "the lights(조명)"을 분석(resolve)하는 데 활용될 수 있다. 또한 예를 들어, 원격 어시스턴트 시스템은 하나 이상의 원격 모델(들) 및/또는 규칙(들)을 사용하여 "dim … a touch"가 "현재 밝기 강도 레벨(들)보다 20%(또는 기타 백분율 또는 값) 어두움"을 의미한다고 결정할 수 있다. 의미론적 표현은 이러한 분해(resolutions)를 기반으로 생성될 수 있으며, 예를 들어 [device(s)=A 및 B; dimmer(더 어두워짐), intensity relative(상대적 강도) 20%]일 수 있으며, 여기서 "A 및 B"는 해당 조명의 고유 식별자이며, 여기서 "dimmer, intensity relative 20%"는 조명이 현재 강도에 비해 20 % 적은 정도로 어두워짐을 나타낸다.
클라우드 의미론적 표현이 생성되면, 원격 어시스턴트 시스템은 의미론적 표현을 실행하기 위한 제어 요청(들)을 생성할 수 있다. 예를 들면, 원격 어시스턴트 시스템은 가장 최근에 보고된 조명 상태를 기반으로 및/또는 "조명 A&B"를 제어하는 스마트 장치 원격 시스템(예: "조명 A 및 B"의 제조업체가 제어하는 스마트 장치 원격 시스템)에서 해당 조명의 현재 상태를 요청(및 수신)하여 "조명 A 및 B"의 "현재 밝기 강도 수준(레벨)"을 식별할 수 있다. 더욱이, 원격 어시스턴트 시스템은("dim a touch"가 "현재 밝기 강도 레벨보다 20% 어두움"을 의미한다는 결정에 기초하여) "현재 밝기 강도 레벨"에 0.80을 곱하여 "목표 밝기 강도 레벨"을 생성할 수 있다. 그 다음 "조명 A 및 B"를 식별하고 생성된 "목표 밝기 강도 레벨(들)"로 조명을 설정하라는 요청을 포함하는 제어 요청이 생성될 수 있다. 그 다음 제어 요청을 스마트 장치 원격 시스템으로 전송할 수 있다. 제어 요청 수신에 대한 응답으로,(예: BLE, Z-Wave, ZigBee 등의 경우) "조명 A 및 B"와 함께 제공되는 허브를 통해 또는(예: 허브가 필요없는 Wi-Fi 및 기타 스마트 장치의 경우) IP 연결을 통해 직접 스마트 장치로 인터넷을 통해 해당 제어 명령을 "조명 A 및 B"로 전송한다. 제어 명령(들)은 제어 요청(들)과 일치하거나 제어 요청(들)과 다를 수 있지만 제어 요청(들)을 기반으로 생성된다. 선택적으로, 원격 어시스턴트 시스템은 또한 "조명 A 및 B" 상태의 변경을 확인하기 위해 렌더링될 텍스트, 오디오 데이터 및/또는 그래픽(들)을 클라이언트 장치로 전송한다. 예를 들면, "OK, lights A & B dimmed 20%(OK, 조명 A 및 B가 20 % 어두워짐)"이라는 텍스트가 클라이언트 장치로 전송되어 클라이언트 장치가 텍스트를 그래픽으로 렌더링하거나 로컬 텍스트-음성(TTS)(text-to-speech)(텍스트를 음성으로 변환하는 모델)모델을 사용하여 해당 합성 음성을 렌더링할 수 있다.
또한, 원격 어시스턴트 시스템은 클라우드 의미론적 표현 및 선택적으로 텍스트(또는 그 표현) 및 텍스트(또는 표현)와 클라우드 의미론적 표현 간의 매핑을 포함하는 캐시 요청을 클라이언트 장치로 전송할 수 있다. 캐시 요청 수신에 대한 응답으로, 클라이언트 장치는 로컬 캐시에서 클라우드 의미론적 표현에 대한 텍스트 매핑을 정의하는 캐시 엔트리을 생성할 수 있다. 예를 들면, 캐시 엔트리는 클라우드 의미론적 표현에 대한 텍스트 자체의 매핑 및/또는 클라우드 의미론적 표현에 대한 텍스트 표현(예를 들어, Word2Vec 표현 또는 다른 표현)의 매핑을 포함할 수 있다. 캐시 요청 자체에 텍스트(또는 그 표현)가 포함되지 않은 상황에서, 클라이언트 장치는 텍스트(또는 대응하는 오디오 데이터)의 전송에 응답하여 수신되는 캐시 요청에 기초한 매핑을 포함할 수 있다. 일부 구현에서, 원격 어시스턴트 시스템은 또한 캐시 요청에 "조명 A 및 B"의 상태 변화를 확인하는 텍스트, 오디오 데이터 및/또는 그래픽(들)을 포함할 수 있다.
또한 클라이언트 장치에서 캐시 엔트리을 생성한 후, "dim the lights a touch"라는 음성 발화의 또 다른 인스턴스는 어시스턴트 클라이언트 장치의 하나 이상의 마이크를 통해 감지된 오디오 데이터에서 캡처된다. 어시스턴트 클라이언트 장치는 로컬 음성-텍스트 모델을 사용하여 오디오 데이터를 처리하여 "dim the lights a touch"라는 인식된 텍스트를 생성할 수 있다. 어시스턴트 클라이언트 장치는 로컬 캐시를 확인하고 생성된 캐시 엔트리가 인식된 텍스트와 일치(매칭)하는 텍스트(또는 그 표현)를 포함하는지 결정할 수 있다. 본 명세서에서 사용되는 "매칭(일치)"은 정확한 매칭 및/또는 소프트 매칭을 포함할 수 있다. 예를 들면, 소프트 매칭을 통해 텍스트 "dim lights by a touch"은 편집 거리(edit distance), 스탑 워드(stop words)만 존재/부재, 및/또는 다른 기술(들)을 활용하여 "dim the lights a touch"와 매칭하도록 결정할 수 있다. 매칭(일치)을 결정하는 것에 응답하여, 어시스턴트 클라이언트 장치는 캐시 엔트리의 텍스트에 매핑된 클라우드 의미론적 표현을 원격 어시스턴트 시스템으로 전송할 수 있다. 선택적으로, 어시스턴트 클라이언트 장치는 오디오 데이터 및/또는 인식된 텍스트를 원격 어시스턴트 시스템으로 전송하지 않고 클라우드 의미론적 표현을 전송할 수 있다.
클라우드 의미론적 표현의 수신에 대한 응답으로, 원격 어시스턴트 시스템은 클라우드 의미론적 표현을 실행하기 위한 제어 요청(들)을 생성할 수 있다. "dim the lights a touch"의 예에서, 제어 요청(들)은 "dim the lights a tough"와 매칭하는 사용자 입력시 "조명 A 및 B"의 "현재 밝기 수준"에 따라 달라질 수 있다. 예를 들면, 제어 요청이 "조명 A 및 B"에 대해 "목표 밝기 수준"을 지정하는 경우 해당 목표 밝기 수준은 "현재 밝기 수준"에 따라 달라진다. 그 다음 제어 요청(들)을 스마트 장치 원격 시스템으로 전송하여 "조명 A 및 B"를 제어할 수 있다. 따라서, 의미론적 표현을 원격 어시스턴트 시스템에 전송함으로써, 원격 어시스턴트 시스템은 텍스트 처리를 바이패스하여 의미론적 표현을 다시 생성하고 대신 수신된 클라우드 의미론적 표현을 활용할 수 있다.
이러한 방식과 다른 방식으로, 원격 어시스턴트 시스템에서 더 적은 처리(프로세싱)가 발생하여 원격 어시스턴트 시스템에서 전력, 메모리 및/또는 프로세서 자원의 사용이 감소할 수 있다. 이러한 감소는 원격 어시스턴트 시스템에서 매일 수신하고 처리할 수 있는 대량(예: 수천, 수십만)의 스마트 장치 제어 요청을 고려할 때 특히 중요한다. 또한 이러한 방식과 다른 방식으로, 제어 요청이 더 빠르게 생성되고 전송될 수 있으므로 스마트 장치의 상태를 더 빨리 변경할 수 있다. 예를 들면, 텍스트에서 의미론적 표현의 생성을 바이패스하면 제어 요청을 생성할 때 최소 200ms, 500ms, 700ms 또는 기타 기간을 절약할 수 있으며, 이는 다양한 스마트 장치를 제어(예: 어두운 방에서 조명 켜기)하는 데 특히 중요할 수 있다.
캐시 엔트리가 "조명 A 및 B"의 상태에 대한 변경(alteration)을 확인하는 텍스트, 오디오 데이터 및/또는 그래픽(들)도 포함하는 구현에서, 어시스턴트 클라이언트 장치는 또한 캐시 엔트리가 입력과 매칭(일치)하는지 결정하는 것에 응답하여 그러한 콘텐츠를 렌더링할 수 있다. 콘텐츠는 즉시, 또는 선택적으로 캐시 엔트리에 선택적으로 지정될 수 있는 지연(delay)(예를 들어, 입력을 수신하고 해당 상태 변화를 실행하는 사이의 대기시간에 기초한 지연) 후에 렌더링될 수 있다.
앞의 예에서, 스마트 장치 제어 요청은 상태-상대 상태 변화 요청(state-relative state change reques)이라는 점에 유의한다. 즉, 이는 스마트 장치(들)의 현재 상태(들)에 의존하는 방식으로 스마트 장치(들)의 상태(들)에 대한 변경을 요청한다. 특히, 조명 A 및 B의 현재 밝기 상태에 상대적인 방식으로 조명 A 및 B의 밝기 상태 변화를 요청한다. 일부 구현에서, 원격 어시스턴트 시스템은 의미론적 표현(들)이 상대 상태 변화 표현(들)이라고 결정하는 것에 응답하여 제어 요청(들) 대신에 의미론적 표현(들)을 포함하는 캐시 요청을 제공하도록 결정할 수 있다. 그러한 결정은 스마트 장치의 현재 상태(들)를 참조하는 의미론적 표현(들)에 기초하여 결정될 수 있다.
이러한 구현 중 일부에서, 원격 어시스턴트 시스템은 의미론적 표현(들)이 상대 상태 변화 표현이 아니라는 결정에 응답하여, 의미론적 표현(들) 대신에 제어 요청(들)을 포함하는 캐시 요청을 제공할 수 있다. 예를 들어, 대신 "set the lights to 500 lumens(조명을 500 루멘으로 설정)"이라는 음성 발화를 가정한다. 이러한 예에서, "조명 A 및 B"를 식별하고 두 조명 모두에 대해 "500 lumens"의 "목표 밝기 강도 수준(레벨)"을 식별하는 클라우드 의미론적 표현을 생성할 수 있다. 또한 해당 제어 요청도 생성할 수 있다. 클라우드 의미론적 표현은 상대적이지 않기 때문에 원격 어시스턴트 시스템은 제어 요청을 포함하는 캐시 요청을 선택적으로 전송할 수 있다. 이에 응답하여, 클라이언트 장치는 "set the lights to 500 lumens"(또는 그 표현) 텍스트를 제어 요청에 매핑하는 캐시 엔트리을 생성할 수 있다. 그 후, 수신된 입력이 캐시 엔트리의 텍스트와 일치(매칭)하는 것으로 결정되면, 클라이언트 장치는 원격 어시스턴트 시스템에 제어 요청을 전송할 수 있다. 그런 다음 원격 어시스턴트 시스템은 제어 요청을 스마트 장치 원격 시스템(들)에 전송할 수 있으며, 이에 따라 원격 어시스턴트 시스템이 제어 요청을 직접 활용할 수 있게 하여 의미론적 표현의 생성과 제어 요청의 생성을 모두 바이패스할 수 있다. 이는 마찬가지로 원격 어시스턴트 시스템의 리소스 사용 및/또는 대기시간에 긍정적인 영향을 미칠 수 있다.
또한 사용자/계정 에코시스템의 어시스턴트 클라이언트 장치 사이에서 특정 캐시 엔트리는 다른 의미론적 표현(또는 제어 요청)에 대한 동일한 텍스트의 매핑을 포함할 수 있다. 예를 들면, 다른 어시스턴트 클라이언트 장치에서 "dim the lights a touch"가 다른 어시스턴트 클라이언트 장치에서 수신되고, 장치 토폴로지에서 "조명 C 및 D"가 다른 어시스턴트 클라이언트 장치에 대한 기본 조명으로 매핑되었다고 가정한다. 이러한 예에서, "조명 A 및 B" 대신 "조명 C & D"를 식별하는 의미론적 표현이 생성된다. 따라서, "조명 C & D"를 식별하는 의미론적 표현에 "dim the lights a touch"의 매핑을 포함하는 캐시 엔트리가 다른 클라이언트 장치에 대해 생성될 수 있다.
또한 여러 클라이언트 장치에서 음성 발화가 감지되면 하나 이상의 장치 중재(arbitration) 기술을 사용하는 클라이언트 장치 중 하나에서만 수신되도록 결정될 수 있다. 이러한 기술은 클라이언트 장치가 사용자에게 가장 가깝고 및/또는 그렇지 않으면(가장 가깝지는 않지만) 사용자와 상호 작용하도록 의도된 것을 결정하는 것에 기초하여 클라이언트 장치가 수신 장치이어야한다고 결정하는 데 다양한 특징을 고려할 수 있다. 이러한 특징(들)은 클라이언트 장치에서 음성 오디오 데이터의 음량, 클라이언트 장치에서 오디오 데이터를 감지하는 시간, 클라이언트 장치와의 최근 상호 작용, 클라이언트 장치에 대한 사용자 근접성, 및/또는 다른 특징(들)을 포함할 수 있다.
로컬에서 해석 가능한 의미론적 표현을 생성하고 활용하는 비-제한적인 예가 제공된다. 어시스턴트 클라이언트 장치의 하나 이상의 마이크로폰을 통해 감지된 오디오 데이터에서 "dim the light a touch"라는 음성이 캡처된다고 다시 가정한다. 어시스턴트 클라이언트 장치는 로컬 음성-텍스트 모델을 사용하여 오디오 데이터를 처리하여 인식된 "dim the light a touch" 텍스트를 생성할 수 있다. 어시스턴트 클라이언트 장치는 로컬 캐시를 확인하여 인식된 텍스트와 일치하는 캐시 엔트리가 있는지 확인할 수 있다. 어시스턴트 클라이언트 장치는 일치하는 캐시 엔트리가 없음을 확인할 수 있으며, 이는 어시스턴트 클라이언트 장치에서 음성 발화의 초기 인스턴스인 결과이거나 이전 일치 캐시 엔트리가 최근 캐시에서 지워진 결과 일 수 있다. 어시스턴트 클라이언트 장치는 선택적으로 인식된 텍스트가 온-디바이스 NLU 컴포넌트(들)를 사용하여 로컬적으로 해석될 수 없음을 추가로 결정할 수 있다.
클라이언트 장치는 인식된 텍스트 및/또는 오디오 데이터를 원격 어시스턴트 시스템에 추가로 전송할 수 있다. 선택적으로, 원격 어시스턴트 시스템으로의 텍스트 및/또는 오디오 데이터의 전송은 일치(매칭)하는 캐시 엔트리가 없음 및/또는 인식된 텍스트가 로컬적으로 해석 가능하지 않다는 결정에 응답한다.
인식된 텍스트 및/또는 오디오 데이터(원격 어시스턴트 시스템이 인식된 텍스트를 생성할 수 있음)를 수신하면, 원격 어시스턴트 시스템은 인식된 텍스트를 처리하여 인식된 텍스트의 로컬 해석 가능한 의미론적 표현을 생성할 수 있다. 예를 들면, 원격 어시스턴트 시스템은 계정 식별자에 대한 해당 원격 저장 장치 토폴로지를 식별하기 위해 텍스트 전송과 함께 수신된 계정 식별자를 사용할 수 있다. 해당 장치 토폴로지는 장치 토폴로지에서 매핑되는 조명 C를 기반으로 "the light(조명)"을 "조명 C"로 분석하는 데 활용될 수 있으며, 어시스턴트 클라이언트 장치의 기본 조명으로 사용된다.
또한 예를 들어, 원격 어시스턴트 시스템은 하나 이상의 원격 모델(들) 및/또는 규칙(들)을 사용하여 "dim … a touch"가 "현재 밝기 강도 레벨(들)보다 20 %(또는 기타 백분율 또는 값) 어두움"을 의미한다고 결정할 수 있다. 원격 어시스턴트 시스템은 "조명 C"의 식별자뿐만 아니라 "dim a touch"에 대한 목표 강도 레벨을 로컬적으로 분석(resolve)하는 방법을 지시하는 상대 스테이지 변경 표현인 상태 변화 표현을 포함하여 로컬적으로 해석 가능한 의미론적 표현을 생성할 수 있다. 예를 들면, "조명 C"의 식별자는 "조명 C"의 로컬 주소가 될 수 있다. 또한 예를 들어, 상태 변화 표현은 "set intensity =(current intensity * 0.8)"일 수 있으며, 이는 "조명 C"의 강도가 "조명 C"의 현재 강도 값(예: 가장 최근에 보고된 강도 또는 로컬적으로 요청되고 로컬적으로 수신된 강도 값)을 80 %로 식별하여 결정된 값으로 설정되어야 함을 나타낸다. 따라서 일부 구현에서, 로컬적으로 해석 가능한 의미론적 표현은 클라우드 기반 카운터파트보다 더 세부적으로 상태 변경 표현을 정의하여(예: 여기에 설명된 로컬 어댑터를 사용하여) 로컬 제어 명령을 생성하는 데 사용할 수 있는 상대 값의 로컬 분석을 가능하게 한다. 상태 변화 표현은 선택적으로, 해당 로컬 제어 명령(들)을 생성하는데 사용될 어댑터의 표시(예를 들어, 스마트 장치의 제조업체에 특정한 어댑터); 로컬 제어 명령(들)을 전송하는 데 사용될 채널(예: Bluetooth 또는 Wi-Fi)의 표시; 및/또는 로컬적으로 해석 가능한 의미론적 표현에 기초하여 제어 명령(들)을 생성하는 데 사용될 프로토콜 제품군(suite)의 표시를 더 포함 할 수 있다. 로컬적으로 해석 가능한 의미론적 표현은 예를 들어 [device(s) = C; 설정 강도(set intensity)=(현재 강도(current intensity) * 0.8)]이다.
일부 구현에서, 시스템은, 클라이언트 장치(또는 클라이언트 장치에 로컬적으로 연결된 추가 클라이언트 장치)가 인식된 텍스트에서 참조된 스마트 장치(들)를 로컬적으로 제어할 수 있는지 결정하는 것; 인식된 텍스트에서 참조된 스마트 장치(들)가 로컬에서 제어될 수 있는지 결정하는 것; 및/또는 인식된 텍스트에서 요청된 상태 변화가 로컬 제어를 위해 적용될 수 있는지 결정(예: 일부 상태는 로컬 제어를 통해 변경될 수 있는 반면 다른 상태는 클라우드를 통해서만 변경될 수 있는 상황에서)하는 것에 대한 응답으로 로컬적으로 해석 가능한 의미론적 표현을 생성하도록 결정할 수 있다.
로컬적으로 해석 가능한 의미론적 표현이 생성되면 원격 어시스턴트 시스템은 즉각적인 구현을 위해 로컬적으로 해석 가능한 의미론적 표현을 클라이언트 장치에 선택적으로 전송할 수 있다. 다른 말로하면, 원격 어시스턴트 시스템은 로컬적으로 해석 가능한 의미론적 표현을 전송하여 클라이언트 장치가 음성 발화에 응답하여 로컬적으로 해석 가능한 의미론적 표현을 분석(해석)하게 할 수 있고, 해당 로컬 제어 명령을 생성하여 로컬 제어 명령(들)을 로컬적으로 전송하여 상태 변화를 "조명 C"로 실행(effectuate)한다. 즉각적인 구현을 위해 로컬적으로 해석 가능한 의미론적 표현을 클라이언트 장치로 전송하는 것은 캐시 요청 자체의 전송(아래에서 설명)이거나 별도의 전송일 수 있다. 또는, 원격 어시스턴트 시스템은 "조명 C"에 대해 해당 클라우드 제어 요청을 생성하여 스마트 장치 제어 시스템에 전송하여 스마트 장치 제어 시스템이 해당 제어 명령을 생성하여 "조명 C"에 전송하여 상태 변화를 초래한다.
즉각적인 요청에 응답하여 상태 변화를 구현하는 방식에 관계없이, 원격 어시스턴트 시스템은 로컬적으로 해석 가능한 의미론적 표현 및 선택적으로 텍스트(또는 그 표현) 및 텍스트(또는 표현)와 로컬적으로 해석 가능한 의미론적 표현 간의 매핑을 포함하는 캐시 요청을 클라이언트 장치로 전송할 수 있다. 캐시 요청 수신에 대한 응답으로, 클라이언트 장치는 로컬 캐시에서 로컬적으로 해석 가능한 의미론적 표현에 대한 텍스트 매핑을 정의하는 캐시 엔트리을 생성할 수 있다. 예를 들면, 캐시 엔트리는 텍스트 자체의 로컬 해석 가능한 의미론적 표현에 대한 매핑 및/또는 텍스트 표현의 로컬 해석 가능한 의미론적 표현에 대한 매핑을 포함할 수 있다. 캐시 요청 자체에 텍스트(또는 그 표현)가 포함되지 않은 상황에서, 클라이언트 장치는 텍스트(또는 해당 오디오 데이터)의 전송에 응답하여 수신되는 캐시 요청에 기초한 매핑을 포함할 수 있다. 일부 구현에서, 원격 어시스턴트 시스템은 또한 캐시 요청에 "조명 C"상태로의 변경을 확인하는 텍스트, 오디오 데이터 및/또는 그래픽(들)을 포함할 수 있다.
또한, 클라이언트 장치에서 캐시 엔트리를 생성한 후, "dim the light a touch"라는 음성 발화의 또 다른 인스턴스가 어시스턴트 클라이언트 장치의 하나 이상의 마이크로폰을 통해 검출된 오디오 데이터에서 캡처된다고 가정한다. 어시스턴트 클라이언트 장치는 로컬 음성-텍스트 모델을 사용하여 오디오 데이터를 처리하여 인식된 "dim the light a touch" 텍스트를 생성할 수 있다. 어시스턴트 클라이언트 장치는 로컬 캐시를 확인하고 생성된 캐시 엔트리가 인식된 텍스트와 매칭(일치)하는 텍스트(또는 그 표현)를 포함하는지 결정할 수 있다. 정확한 매칭 및/또는 소프트 매칭을 활용할 수 있다. 이에 응답으로, 어시스턴트 클라이언트 장치는 "조명 C"로 로컬적으로 송신하기 위한 해당 로컬 제어 요청(들)을 생성하기 위해 캐시 엔트리의 로컬적으로 해석 가능한 의미론적 표현을 처리(프로세싱)할 수 있다. 예를 들면, "설정 강도 =(설정 강도 * 0.8)"를 포함하는 로컬적으로 해석 가능한 의미론적 표현을 기반으로, 어시스턴트 클라이언트 장치는 "조명 C"의 "현재 강도"를 로컬적으로 식별한 다음 현재 강도에 0.8을 곱하여 "설정 강도" 값을 결정할 수 있다. 따라서 결정된 값에 대한 "설정 강도"는 로컬적으로 해석 가능한 의미론적 표현의 상대적 상태 변화를 기반으로 생성되는 특정 상태 변화일 수 있다.
더욱이, 어시스턴트 클라이언트 장치는 "설정 강도"에 대한 값에 기초하여 제어 명령(들)을 생성하고 선택적으로 하나 이상의 로컬 어댑터(들)를 사용할 수 있다. 제어 명령은 BLE, Z-Wave, Zigbee, Wi-Fi 또는 기타 프로토콜 제품군과 같은, "조명 C"를 준수하는 프로토콜 제품군을 준수하도록 생성될 수 있다. 제어 명령(들)을 생성하는 데 사용할 프로토콜 제품군은 로컬적으로 해석 가능한 의미론적 표현에 포함된 스마트 장치의 식별자 및/또는 로컬적으로 해석 가능한 의미론적 표현에 포함될 수 있는 어댑터의 표시를 기반으로 선택될 수 있다.
또한, 생성된 제어 명령(들)은 로컬적으로 "조명 C"(또는 "조명 C"를 제어하는 해당 로컬 장치)로 전송될 수 있다. 제어 명령(들)은 "조명 C"를 식별하는 로컬적으로 해석 가능한 의미론적 표현(예를 들어, "조명 C"의 주소 식별)에 기초하여 "조명 C"(또는 대응하는 로컬 장치)로 전송될 수 있으며, 선택적으로 로컬 해석 가능한 의미론적 표현을 통해 식별되는 로컬 채널을 통해 전송될 수 있다. 예를 들어 로컬 채널은 Wi-Fi 라디오 채널, 블루투스 라디오 채널 또는 기타 채널일 수 있다. 따라서, 원격 어시스턴트 시스템에 데이터를 다시 전송할 필요없이 및/또는 원격 어시스턴트 시스템이 의미론적 표현을 다시 생성할 필요없이 "조명 C"에서 상태 변화가 실행(effectuated)될 수 있다. 이렇게하면 오디오 데이터 및/또는 인식된 텍스트를 원격 어시스턴트 시스템에 보낼 필요가 없으므로 네트워크 리소스를 절약 할 수 있다. 원격 시스템에서 의미론적 표현을 다시 생성할 필요성을 제거함으로써 원격 어시스턴트 시스템에서 처리 리소스를 절약할 수 있다. 더욱이, 원격 어시스턴트 시스템으로의 전송과 원격 어시스턴트 시스템에서의 처리를 바이패스하면 스마트 장치에서 요청된 상태 변화를 구현할 때 대기시간을 크게 줄일 수 있다.
앞에서 설명한 바와 같이, 다양한 구현은 어댑터를 사용하여 로컬적으로 해석 가능한 의미론적 표현 또는 그에 대해 생성된 특정 상태 변화를 해당 제어 명령(들)에 로컬적으로 해석(interpret)한다. 이러한 구현에서, 클라이언트 장치는 하나 이상의 어댑터를 포함할 수 있으며, 각 어댑터는 특정 스마트 장치(들), 특정 스마트 장치 제조업체(들) 및/또는 특정 프로토콜 제품군에 맞게 조정될 수 있다. 어시스턴트 클라이언트 장치에 의해 실행될 때 어댑터는 로컬로 해석 가능한 의미론적 표현(및/또는 로컬적으로 해석 가능한 의미론적 표현을 기반으로 생성된 특정 상태 변경)을 처리하여 적어도 하나의 해당 스마트 장치(또는 스마트 장치에 연결된 허브/브리지 또는 기타 컴포넌트)에 로컬로 전송될 때 해당 스마트 장치에서 상태 변경을 수행하기 위해 해당 스마트 장치(또는 스마트 장치에 연결된 다른 컴포넌트)에 의해 직접 해석될 수 있도록 각각 맞춤화된(tailored) 특정 제어 명령을 생성 할 수 있다. 예를 들면, 어댑터는 자바스크립트(JavaScript)(또는 기타 해석된 프로그래밍 언어)로 구현될 수 있으며, 로컬적으로 해석 가능한 의미론적 표현을 기반으로 생성된 일반 스마트 장치 제어 명령을 스마트 장치의 프로토콜 제품군을 준수하는 특정 제어 명령으로 변환할 수 있다. 어댑터는 선택적으로 자동 어시스턴트 클라이언트 내의 컨테이너에서 실행할 수 있다. 어시스턴트 클라이언트 장치에서 여러 어댑터를 사용할 수 있는 구현에서, 의미론적 표현에 포함된 스마트 장치의 식별자 및/또는 의미론적 표현에 포함될 수 있는 어댑터의 표시에 기초하여 로컬적으로 해석 가능한 의미론적 표현을 위해 특정 어댑터가 선택될 수 있다.
캐시 엔트리가 "조명 A 및 B"의 상태에 대한 변경을 확인하는 텍스트, 오디오 데이터 및/또는 그래픽(들)도 포함하는 구현에서, 어시스턴트 클라이언트 장치는 또한 캐시 엔트리가 입력과 매칭한다는 결정에 응답하여 그러한 콘텐츠를 렌더링할 수 있다. 콘텐츠는 즉시 또는 선택적으로 지연 후에 렌더링될 수 있다.
앞의 예에서, 스마트 장치 제어 요청은 상태-상대 상태 변화 요청이라는 점에 유의한다. 즉, 이는 스마트 장치(들)의 현재 상태(들)에 의존하는 방식으로 스마트 장치(들)의 상태(들)에 대한 변경을 요청한다. 특히, 이는 조명 C의 현재 밝기 상태에 상대적인 방식으로 조명 C의 밝기 상태에 대한 변경을 요청한다. 일부 구현에서, 원격 어시스턴트 시스템은 의미론적 표현(들)이 상대적 상태 변화 표현(들)이라고 결정하는 것에 응답하여, 로컬 제어 명령(들) 대신에, 로컬적으로 해석 가능한 의미론적 표현(들)을 포함하는 캐시 요청을 제공하도록 결정할 수 있다. 그러한 결정은 스마트 장치(들)의 현재 상태(들)를 참조하는 의미론적 표현(들)에 기초하여 결정될 수 있다.
이러한 구현 중 일부에서, 원격 어시스턴트 시스템은 의미론적 표현(들)이 상대 상태 변화 표현이 아니라는 결정에 응답하여 의미론적 표현(들) 대신에 로컬 제어 명령(들)을 포함하는 캐시 요청을 제공할 수 있다. 예를 들면, "set the light to 500 lumens"이라는 음성 발화를 가정한다. 이러한 예에서, "조명 C"를 식별하고 해당 조명에 대한 "500 lumens"의 "목표 밝기 강도 레벨"을 식별하는 로컬 해석 가능한 의미론적 표현이 생성될 수 있다. 또한 해당 제어 요청도 생성할 수 있다. 의미론적 표현은 상대적이지 않기 때문에, 원격 어시스턴트 시스템은 로컬적으로 해석 가능한 의미론적 표현에 기초하여 생성된 로컬 제어 명령(들)을 포함하는 캐시 요청을 선택적으로 전송할 수 있다. 이에 응답으로, 클라이언트 장치는 "set the light to 500 lumens"(또는 그 표현) 텍스트를 제어 명령(들)에 매핑하는 캐시 엔트리을 생성할 수 있다. 그 후, 수신된 입력이 캐시 엔트리의 텍스트와 매칭하는 것으로 결정되면, 클라이언트 장치는 캐시 엔트리의 제어 명령을 로컬로 전송할 수 있다. 이에 의해 로컬적으로 해석 가능한 의미론적 표현에 기초한 제어 명령(들)의 생성을 바이패스한다.
사용자/계정 에코시스템의 어시스턴트 클라이언트 장치들 사이에서 클라우드 의미론적 표현과 유사하게, 특정(소정의) 캐시 엔트리는 다른 로컬 해석 가능한 의미론적(시맨틱) 표현(또는 로컬 제어 명령)에 대한 동일한 텍스트의 매핑을 포함할 수 있다.
클라우드 의미론적 표현과 로컬적으로 해석 가능한 의미론적 표현에 대한 별도의 예제가 위에 제공된다. 그러나 일부 구현에서, 단일 캐시 엔트리에는 로컬적으로 해석 가능한 의미론적 표현과 클라우드 의미론적 표현 모두에 대한 텍스트 매핑이 포함될 수 있다. 예를 들면, 조명 "A"와 "B"는 모두 요청에 대해 식별될 수 있으며, 조명 "A"는 로컬적으로 제어될 수 있지만 조명 "B"는 클라우드 제어를 통해서만 제어될 수 있다. 결과적으로 원격 어시스턴트 시스템은 요청에 대한 텍스트가(a) "조명 A"에서 상태 변화를 실행하기 위해 로컬적으로 처리될 수 있는 로컬적으로 해석 가능한 의미론적 표현; 그리고(b) "조명 B"에서 상태 변화를 실행하기 위해 원격 어시스턴트 시스템으로 전송되는 클라우드 의미론적 표현 둘 모두에 매핑되도록 하는 캐시 요청을 생성 및 제공할 수 있다
다양한 구현에서, 원격 어시스턴트 시스템 및/또는 클라이언트 장치는 계정 및/또는 다른 조건(들)의 발생에 대한 장치 토폴로지의 변경(들)을 결정할 수 있으며, 그 결과 에코시스템의 클라이언트 장치(들)의 캐시(들)에 대한 하나 이상의 캐시 엔트리가 삭제(cleared)(예: 완전히 삭제되었거나 오래된 것으로 표시됨)되도록 한다. 장치 토폴로지에 대한 변경은, 장치 토폴로지에서 스마트 장치(들) 추가 또는 제거, 장치 토폴로지에서 스마트 장치 및/또는 어시스턴트 클라이언트 장치의 이름 변경, 새로운 룸(들)에 장치 할당 및/또는 장치 토폴로지에 그룹(들) 할당, 및/또는 장치 토폴로지에 대한 기타 변경(들)을 포함할 수 있다. 그러한 변경은 캐시의 일부 또는 모든 의미론적 표현에 영향을 미칠 수 있으며, 결과적으로 적어도 영향을 받는 캐시 엔트리(및 선택적으로 모든 캐시 엔트리)은 변경 감지에 응답하여 캐시에서 지워질 수 있다. 일례로, 추가 조명이 장치 토폴로지에 추가되고 "주방" 레이블이 있는 룸에 할당되었다고 가정한다.
추가가 이루어지면 이전에 "주방 조명(kitchen lights)"에 할당된 조명과 관련된 모든 의미론적 캐시 엔트리는 새로 추가된 추가 조명을 반영하지 않기 때문에 오래(stale)된 것일 수 있다. 따라서, 변화를 감지하는 것에 응답하여, 적어도 "주방 조명"과 관련된 캐시 엔트리는 캐시에서 지워(삭제)질 수 있다. 예를 들면, 원격 어시스턴트 시스템은 그러한 변경을 결정할 수 있고, 결과적으로 모든 어시스턴트 클라이언트 장치의 로컬 캐시가 지워지도록 에코시스템의 모든 어시스턴트 장치에 캐시 지우기 요청을 보낼 수 있다. 그 후 음성 발화, 입력된 입력 또는 기타 입력이 수신되면 새로운 캐시 엔트리가 어시스턴트 클라이언트 장치에서 생성된다. 예를 들어 "주방 조명 어둡게"라는 텍스트에 대한 캐시 엔트리가 지워지면 이후 사용자가 "dim the kitchen lights(주방 조명 어둡게)"라는 음성 발화를 제공하면 새로운 캐시 엔트리가 생성된다.
일부 구현에서, 어시스턴트 클라이언트 장치는 어시스턴트 클라이언트 장치에서 명시적인 자동 어시스턴트 호출을 감지하지 않고 온-디바이스 음성-텍스트 모델을 사용하여 오디오 데이터를 적어도 선택적으로 처리할 수 있다. 명시적 호출 큐(cue)는 격리된 상태에서 감지(검출)될 때 항상 적어도 온-디바이스 음성 인식이 활성화되도록하는 큐이다. 명시적 호출 큐의 일부 비-제한적인 예는 신뢰도가 임계치 이상인 음성 핫-워드, 명시적 어시스턴트 인터페이스 요소(예: 하드웨어 버튼 또는 터치 스크린 디스플레이의 그래픽 버튼)의 작동,(예: 휴대폰 베젤의 센서에서 감지되는) 임계 강도 이상의 "전화 스퀴즈(phone squeeze)" 및/또는 기타 명시적 호출 큐를 검출하는 것을 포함한다.
일례로, 어시스턴트 클라이언트 장치는(예: 음성 활동 감지기를 사용하여) 임의의 음성 활동을 감지하는 것에 대한 응답으로, 장치 근처에서 적어도 임계 수준의 소음을 감지하는 것에 응답하여, 특정 날짜 및/또는 시간 동안 및/또는 다른 조건(들)에 대한 응답으로,(예: 수동 적외선 센서 및/또는 기타 센서에 기반하여) 장치 근처에서 사람의 존재가 감지될 때 명시적인 자동 어시스턴트 호출을 감지하지 않고 오디오 데이터를 처리 할 수 있다. 어시스턴트 클라이언트 장치가 명시적인 자동 어시스턴트 호출을 감지하지 않고 온-디바이스 음성-텍스트 모델을 활용하여 오디오 데이터를 처리하는 구현에서, 어시스턴트 클라이언트 장치는 인식된 텍스트가 어시스턴트 클라이언트 장치에 로컬로 표시된 "hot phrase(핫 문구)"와 일치(매칭)하는지 여부를 결정할 수 있다. 각각의 "핫 문구"는 하나 이상의 단어 시퀀스를 포함한다. 인식된 텍스트에서 오디오 데이터의 온-디바이스 음성 인식이 핫 문구와 일치하지 않는 것으로 결정되면 어시스턴트 클라이언트 장치는 인식된 텍스트 및 오디오 데이터를 폐기할 수 있다. 인식된 텍스트, 오디오 데이터의 장치 음성 인식에서 핫 문구와 일치하는 것으로 확인되면, 어시스턴트 클라이언트 장치는 텍스트에 기반하여 하나 이상의 대응하는 동작(액션)(들)을 자동으로 시작할 수 있다. 사용자는 핫 문구로 표시되는 문구를 제어할 수 있으며, 선택적으로 문구가 핫 문구로 표시되기 전에 명시적인 사용자 승인이 필요할 수 있다.
일부 구현에서, 핫 문구는 여기에 설명된 대응하는 캐시 엔트리의 텍스트와 일치하는 문구일 수 있다. 이러한 구현에서, 핫 문구에 기초하여 어시스턴트 클라이언트 장치에 의해 자동으로 시작되는 액션(들)은 대응하는 클라우드 의미론적 표현의 전송 또는 대응하는 로컬 해석 가능한 의미론적 표현의 로컬 해석을 포함할 수 있다. 이러한 구현 중 일부에서, 캐시 엔트리의 텍스트는 어시스턴트 클라이언트 장치에서 하나 이상의 기준이 충족되었는지를 결정하는 것에 기초하여 그 어시스턴트 클라이언트 장치에 대한 핫 문구로 지정될 수 있다. 기준은 예를 들어, 텍스트 및/또는 매칭 텍스트가 어시스턴트 클라이언트 장치에서 수신된 사용자 입력(예: 타이핑된 및/또는 음성)에(전체 또는 최근 임시 기간 이내) 적어도 임계 횟수 및/또는 적어도(전체 또는 최근 임시 기간 이내) 임계 빈도로 존재하는 것으로 결정되었음을 포함할 수 있다. 이러한 구현의 일부 버전에서, 캐시 엔트리의 텍스트는 사용자 인터페이스 입력을 통해 제공되는 지정 확인(예: X를 핫 문구로 지정했고, 설정에서 쉽게 변경할 수 있습니다")과 함께 자동으로 핫 문구로 지정될 수 있다. 다른 버전에서, 텍스트는 프롬프트에 대한 사용자의 확인 입력(예를 들면, "조명을 자주 켜라고 물어 보고, 더 이상 'OK Assistant'라고 말하지 않아도 되도록 핫 문구로 지정하시겠습니까?"라는 프롬프트에 대한 "예"의 확인 입력) 후에만 핫 문구로 지정될 수 있다. 또 다른 구현에서, 어시스턴트 클라이언트 장치의 캐시에 있는 로컬 캐시 엔트리의 텍스트는 자동으로 어시스턴트 클라이언트 장치에 대한 핫 문구로 지정될 수 있다. 캐시 엔트리의 텍스트를 핫 문구로 지정하는 구현에서, 어시스턴트 클라이언트 장치와의 사용자 상호 작용은 사용자가 호출 핫 워드(예: "OK 어시스턴트")와 같은 명시적 호출을 먼저 제공할 필요성을 제거함으로써 지속 시간을 단축할 수 있다. 어시스턴트 클라이언트 장치와의 상호 작용 시간 단축을 통해, 인간-어시스턴트 클라이언트 장치 상호작용이 개선되어 더 많은 양의 스마트 장치 상태 변경이 더 짧은 시간에 수행될 수 있다.
상기 설명은 본 발명의 일부 구현의 개요로서 제공된다. 이들 구현 및 다른 구현에 대한 추가 설명은 본 명세서에서 더 상세히 설명된다.
또한, 일부 구현은 하나 이상의 컴퓨팅 장치의 하나 이상의 프로세서를 포함하고, 하나 이상의 프로세서가 관련 메모리에 저장된 명령어를 실행하도록 작동할 수 있는 경우 명령어는 여기에 설명된 방법의 성능을 유발하도록 구성된다. 일부 구현은 여기에 설명된 방법 중 하나 이상을 수행하기 위해 로컬적으로 저장된 명령어를 실행하고 로컬적으로 저장된 데이터와 인터페이스하는 하나 이상의 프로세서를 가진 클라이언트 장치를 포함한다. 일부 구현은 또한 여기에 설명된 방법 중 임의의 것을 수행하기 위해 하나 이상의 프로세서에 의해 실행 가능한 컴퓨터 명령어를 저장하는 하나 이상의 컴퓨터 판독 가능 저장 매체(일시적 또는 비-일시적)를 포함한다.
전술한 개념 및 본 명세서에서 보다 상세히 설명된 추가 개념의 모든 조합은 본 명세서에 개시된 요지의 일부인 것으로 고려된다는 것을 이해해야한다. 예를 들어, 본 개시의 끝에 나타나는 청구된 요지의 모든 조합은 여기에 개시된 요지의 일부인 것으로 고려된다.
도 1은 본 명세서에 개시된 구현이 구현될 수 있는 예시적인 환경의 블록도이다.
도 2는 복수의 서로 다른 파티로부터의 복수의 스마트 장치를 포함하고 복수의 어시스턴트 클라이언트 장치를 포함하는 예시적인 환경을 도시한다.
도 3a는 어시스턴트 클라이언트 장치에 음성 발화의 텍스트와 일치하는 캐시 엔트리가 없을 때 도 2의 어시스턴트 클라이언트 장치에서 수신된 음성 발화가 처리될 수 있는 방법의 예를 도시한다.
도 3b는 클라우드 의미론적 표현을 갖는 캐시 엔트리가 도 3a의 어시스턴트 클라이언트 장치에 저장된 후에 도 3a의 동일한 클라이언트 장치에서 수신된 동일한 음성 발화가 어떻게 다르게 처리될 수 있는지의 예를 예시한다.
도 4a는 대안적인 어시스턴트 클라이언트 장치에 음성 발화의 텍스트와 일치하는 캐시 엔트리가 없을 때 도 2의 대안적인 어시스턴트 클라이언트 장치에서 수신된 도3a 및 도 3b의 동일한 음성 발화가 처리될 수 있는 방법의 예를 예시한다.
도 4b는 도 4a의 대체 클라이언트 장치에서 수신된 도 4a의 동일한 음성 발화가 클라우드 의미론적 표현을 갖는 캐시 엔트리가 도 4a의 대체 클라이언트 장치에 저장된 후에 어떻게 다르게 처리될 수 있는지의 예를 예시한다.
도 5a는 도3a 및 도 3b의 동일한 어시스턴트 클라이언트 장치에서 수신된 또 다른 음성 발화가 어시스턴트 클라이언트 장치에 음성 발화의 텍스트와 일치하는 캐시 엔트리가 없을 때 처리될 수 있는 방법의 예를 예시한다.
도 5b는 도 5a의 클라이언트 장치에서 수신된 도 5a의 동일한 음성 발화가 로컬적으로 해석 가능한 의미론적 표현을 가진 캐시 엔트리가 클라이언트 장치에 저장된 후에 처리될 수 있는 방법의 예를 예시한다.
도 6은 본 명세서에 개시된 다양한 구현에 따른 어시스턴트 클라이언트 장치에 의해 구현될 수 있는 예시적인 방법을 예시하는 흐름도이다.
도 7은 본 명세서에 개시된 다양한 구현에 따라, 어시스턴트 클라이언트 장치에 의해 구현될 수 있는 다른 예시적인 방법을 예시하는 흐름도이다.
도 8은 본 명세서에 개시된 다양한 구현에 따른 원격 어시스턴트 시스템에 의해 구현될 수 있는 예시적인 방법을 예시하는 흐름도이다.
도 9는 컴퓨팅 장치의 예시적인 아키텍처를 도시한다.
스마트 홈 알람, 스마트 도어 잠금 장치, 스마트 카메라, 스마트 조명, 스마트 온도 조절기, 스마트 체중계, 스마트 침대, 스마트 관개 시스템, 스마트 차고 도어 오프너, 스마트 플러그, 스마트 장치, 스마트 베이비 모니터, 스마트 텔레비전(TV) 등 , 스마트 화재 경보기, 스마트 수분 감지기, 스마트 라우터 등과 같은 스마트 네트워크 연결 장치(여기서는 스마트 장치 또는 사물 인터넷(IoT) 장치라고도 함)가 급증하고 있다. 종종 여러 스마트 장치가 집과 같은 구조의 경계 내에 위치하거나 사용자의 주 거주지 및 사용자의 보조 거주지 및/또는 직장 위치와 같은 여러 관련 구조 내에 위치한다.
더욱이, 자동 어시스턴트의 논리적 인스턴스를 형성하기 위해 하나 이상의 원격 자동 어시스턴트 컴포넌트와 선택적으로 상호 작용할 수 있는 어시스턴트 클라이언트를 각각 포함할 수 있는 어시스턴트 클라이언트 장치의 확산이 있다. 어시스턴트 클라이언트 장치는 어시스턴트 기능(예: 어시스턴트 클라이언트 및 관련 인터페이스만 포함하고 어시스턴트 기능에만 전념하는 독립형 스피커 및/또는 독립형 오디오/비주얼 장치)에만 전념하거나 다른 기능 외에도 어시스턴트 기능(예: 여러 애플리케이션 중 하나로서 어시스턴트 클라이언트를 포함하는 휴대 전화 또는 태블릿)을 수행할 수 있다. 게다가, 일부 스마트 장치는 어시스턴트 클라이언트 장치가 될 수도 있다. 예를 들면, 일부 스마트 장치는 어시스턴트 클라이언트 및 어시스턴트 클라이언트의 어시스턴트 인터페이스를 위한 사용자 인터페이스 출력 및/또는 입력 장치로서(적어도 부분적으로) 기능하는 적어도 스피커(들) 및/또는 마이크로폰(들)을 포함할 수 있다.
스마트 장치를 자동 어시스턴트의 논리적 인스턴스(및 선택적으로 개별 어시스턴트 클라이언트 장치)와 연관시키기 위한 다양한 기술이 제안되었다. 예를 들면, 사용자, 사용자 그룹, 어시스턴트 클라이언트 장치 및/또는 어시스턴트 클라이언트 장치 그룹(예: 구조 내 모두)은 자동 어시스턴트를 통해 스마트 장치(예: 스마트 장치의 제어)와 상호 작용할 수 있도록 복수의 이종 스마트 장치와(예: 하나 이상의 데이터베이스에서) 연결될 수 있다. 예를 들어, 가정의 다수의 어시스턴트 클라이언트 장치 각각은 가정의 다수의 이종의 스마트 장치 각각에 연결되어 임의의 사용자(또는 제한된 사용자 그룹)가 어시스턴트 클라이언트 장치 중 어느 하나와 인터페이스하여 다수의 이종인 스마트 장치 중 어느 하나와 상호 작용할 수 있도록 할 수 있다.
스마트 장치와 어시스턴트 클라이언트 장치의 이러한 연결(linkings)은 본 명세서에서 장치 토폴로지라고하며 다양한 데이터 구조로 표현될 수 있다. 장치 토폴로지는 사용자가 생성 및/또는 자동으로 생성될 수 있으며, 다양한 어시스턴트 클라이언트 장치, 다양한 스마트 장치, 각각에 대한 식별자(들) 및/또는 각각에 대한 속성(들)을 정의할 수 있다. 예를 들면, 장치의 식별자(들)는 장치가 위치한 구조(예: 거실, 주방)의 룸(방)(및/또는 기타 영역)을 지정할 수 있고 및/또는 장치의 닉네임(들) 및/또는 별칭(들)(예: 소파 램프, 현관 문 잠금 장치, 침실 스피커, 주방 어시스턴트 등)을 지정할 수 있다. 이런 방법으로, 장치의 식별자는 사용자가 각 장치와 연관시킬 가능성이 있는 각 장치의 이름, 별칭 및/또는 위치일 수 있다.
장치 토폴로지 표현은 각 장치와 관련된 하나 이상의 장치 속성을 추가로 지정할 수 있다. 어시스턴트 클라이언트 장치에 대한 장치 속성은 예를 들어 어시스턴트 클라이언트 장치에 의해 지원되는 하나 이상의 입력 및/또는 출력 양식(modalities) 및/또는 어시스턴트 클라이언트 장치(들)에 의해 제어되는 선호되는 스마트 장치(들)를 포함할 수있다(예를 들어, 어시스턴트 클라이언트 장치 1에서 수신된 모호한 스마트 TV 명령은 스마트 TV 1로 향하는 것으로 가정해야하지만, 어시스턴트 클라이언트 장치 2의 경우 스마트 TV 2로 향하는 것으로 가정할 수 있다). 예를 들어, 독립형 스피커 전용 어시스턴트 클라이언트 장치의 장치 속성은 가청 출력을 제공할 수 있지만 시각적 출력을 제공할 수 없음을 나타낼 수 있다. 또한 예를 들어, 동일한 독립형 스피커 전용 어시스턴트 클라이언트 장치에 대한 장치 속성은 특정 조명을 지정하지 않는 조명 제어 요청이 해당 어시스턴트 클라이언트 장치와 동일한 룸(방)에 할당된 조명과 관련된 것으로 해석되어야 함을 나타낼 수 있다. 예를 들어, 스마트 장치의 장치 속성은, 제어될 수 있는 스마트 장치의 하나 이상의 상태를 식별하고; 스마트 장치용 펌웨어를 제조, 배포 및/또는 생성하는 파티(예: 3P)를 식별하고 및/또는 스마트 장치의 주소 및/또는 1P 또는 3P 제공 고정 식별자와 같은 스마트 장치에 대한 고유 식별자를 식별한다. 여기에 개시된 다양한 구현에 따르면, 장치 토폴로지 표현은 선택적으로, 어떤 스마트 장치가 어떤 어시스턴트 클라이언트 장치에 의해 로컬적으로 제어될 수 있는지; 로컬적으로 제어 가능한 스마트 장치의 로컬 주소(또는 해당 스마트 장치를 직접 로컬적으로 제어할 수 있는 허브의 로컬 주소); 로컬 신호 강도 및/또는 어시스턴트 클라이언트 장치와 스마트 장치 간의 기타 선호도 표시기(indicators)를 추가로 지정할 수 있다. 또한, 여기에 개시된 다양한 구현에 따르면, 장치 토폴로지 표현(또는 그 변형)은 원격 어시스턴트 시스템에 원격으로 저장될 수 있고 및/또는 스마트 장치를 로컬적으로 제어하는데 활용하기 위해 복수의 어시스턴트 클라이언트 장치 각각에 로컬적으로 저장될 수 있다. 선택적으로, 로컬적으로 저장된 각 장치 토폴로지는 예를 들어 어시스턴트 클라이언트 장치 하드웨어 제약으로 인해 원격으로 저장된 장치 토폴로지보다 덜 견고(예: 적은 수의 장치, 속성 및/또는 식별자 정의)할 수 있다.
도 1에는 본 명세서에 개시된 기술이 구현될 수 있는 예시적인 환경이 예시되어있다. 예시적인 환경은 복수의 어시스턴트 클라이언트 장치(1101-N)(여기서 간단히 "클라이언트 장치"라고도 함), 클라우드 자동 어시스턴트 컴포넌트(들)(120), 스마트 장치 시스템(140A-N), 스마트 장치(145A-N), 및 클라이언트 장치(1101-N)에 대한 장치 토폴로지(152)를 포함한다. 클라이언트 장치(1101-N) 및 도 1의 스마트 장치(1451-N)는(예를 들어, 장치 토폴로지(152)를 통해) 서로 적어도 선택적으로 연관되는 클라이언트 장치 및 스마트 장치를 나타낸다. 예를 들어, 스마트 장치(1451-N)는 모두 집(예: 집의 내부 및/또는 외부)에 있을 수 있고, 클라이언트 장치(1101-N)는 적어도 때때로 같은 집에 있을 수 있으며, 스마트 장치(1451-N) 및 클라이언트 장치(1101-N)는 본 명세서에 설명된 것과 같은 하나 이상의 기술을 이용하여 서로 연결될 수 있다. 이러한 연결을 통해, 클라이언트 장치(1101-N)는 여기에 설명된 구현에 따라 스마트 장치(1451-N)를 제어하기 위해 이용될 수 있다.
클라이언트 장치(1101-N) 중 하나 이상(예를 들어, 모두)은 자동 어시스턴트 클라이언트의 개별 인스턴스(instance)를 실행할 수 있다. 그러나 일부 구현에서, 클라이언트 장치(1101-N) 중 하나 이상은 선택적으로 자동 어시스턴트 클라이언트의 인스턴스가 결여될 수 있으며, 하나 이상의 스마트 장치를 제어하기 위한 엔진(들) 및 하드웨어 컴포넌트를 여전히 포함할 수 있다. 자동 어시스턴트 클라이언트의 인스턴스는 해당 클라이언트 장치(1101-N)의 운영 체제와 분리된 애플리케이션(예: 운영 체제의 "on top"에 설치됨)일 수 있고 또는, 대안적으로 대응하는 클라이언트 장치(1101-N)의 운영 체제에 의해 직접 구현될 수 있다. 자동 어시스턴트 클라이언트의 각각의 인스턴스는 클라이언트 장치(1101-N) 중 임의의 하나의 I/O 컴포넌트(111)를 통해 사용자에 의해 제공되는 다양한 요청에 응답할 때 클라우드 자동 어시스턴트 컴포넌트(들)(120)와 선택적으로 상호 작용할 수 있다. 또한, 클라이언트 장치(1101-N)의 다른 엔진(들)은 클라우드 자동 어시스턴트 컴포넌트(들)(120)와 선택적으로 상호 작용할 수 있다.
클라이언트 장치(1101-N) 중 하나 이상(예를 들어, 모두)은 음성 발화를 캡처하는 오디오 데이터를 처리하기 위해 각각의 로컬에 저장된 STT 모델(1521-N)을 이용하는 각각의 음성-텍스트(STT) 엔진(1121-N)을 포함할 수 있으며, 음성 발화에 해당하는 인식된 텍스트를 생성한다. 오디오 데이터의 각 인스턴스는 각 클라이언트 장치의 I/O 컴포넌트(들)(1111-N)의 마이크로폰(들)을 통해 감지될 수 있다. 일부 구현에서, STT 엔진(1121-N)은 대응하는 클라이언트 장치(1101-N)에서 검출된 명시적 자동 어시스턴트 호출 후에 오디오 데이터만 처리한다. 일부 구현에서, STT 엔진(1121-N)은 명시적인 자동 어시스턴트 호출이 없더라도 오디오 데이터를 적어도 선택적으로 처리할 수 있지만, 본 명세서에 설명된 바와 같이 임의의 "핫 문구"를 포함하지 않는 것으로 결정된 임의의 오디오 데이터 및/또는 인식된 텍스트를 폐기(추가 처리없이)할 수 있다. "핫 문구"가 감지된 상황에서는 "핫 문구"를 기반으로 하나 이상의 반응형 액션(들)을 수행할 수 있다. 예를 들면, "핫 문구"가 해당 로컬 캐시(1581-N)의 캐시 엔트리의 텍스트와 일치(매칭)하는 경우, 캐시 엔트리의 의미론적 표현(들)은 본 명세서에 설명된 바와 같이 추가로 처리될 수 있다.
클라이언트 장치(1101-N) 중 하나 이상(예를 들어, 모두)은 또한 텍스트의 로컬 의미론적 표현을 로컬에서 생성하려고 시도하기 위해, 텍스트를 처리하도록 각각 로컬적으로 저장된 NLU 모델(1531-N)을 이용하는 각각의 자연어 이해(NLU: natural language understanding) 엔진 (1131-N)을 선택적으로 포함할 수 있다. 텍스트는 STT 엔진(112)으로부터 인식된 텍스트일 수 있거나, 타이핑된 텍스트(예: 터치 스크린의 가상 키보드를 통한 입력)일 수 있거나, 선택된 가상 및/또는 하드웨어 버튼과 연관된 텍스트(예: 터치 스크린에 표시되는 특정 가상 버튼의 선택에 매핑되는 텍스트)일 수 있다. NLU 엔진(1131-N)은 다양한 텍스트 문구에 대한 유효한 의미론적 표현을 생성할 수 있다. 그러나 여기에 설명된대로, NLU 엔진(1131-N)은 또한 예를 들어 스마트 장치(들)의 제어(예를 들어, 스마트 장치(들)의 상대적 제어)와 관련된 다양한 텍스트 구문과 같은 다양한 다른 텍스트 구문에 대한 유효한 의미론적 표현을 생성하지 못할 수 있다.
클라이언트 장치(1101-N) 중 하나 이상(예를 들어, 모두)은 또한 각각의 이행(fulfillment) 엔진(1141-N)을 포함할 수 있다. 각각의 이행 엔진(1141-N)은 각각의 클라우드 모듈(1151-N), 각각의 로컬 모듈(1161-N), 및/또는 각각의 TTS(text-to-speech) 엔진(111-N7)을 포함할 수 있다.
클라우드 모듈(1151-N)은 클라우드 자동 어시스턴트 컴포넌트(들)(120)와의 상호 작용을 통해 다양한 요청을 이행할 수 있다. 예를 들면, 클라우드 모듈(1151)은 수신된 입력의 텍스트(예를 들어, 인식된 텍스트 STT 엔진 (1121-N))가 로컬 캐시(1581)의 캐시 엔트리의 텍스트와 매칭한다는 결정에 응답하여, 캐시 엔트리의 텍스트에 매핑된 클라우드 의미론적 표현(들)을 본 명세서에 설명된 클라우드 자동 어시스턴트 컴포넌트(들)(120)로 전송한다. 클라우드 모듈(1151)은 또한 NLU 엔진(1131)에 의해 생성된 클라우드 의미론적 표현을 클라우드 자동 어시스턴트 컴포넌트(들)(120)로 선택적으로 전송할 수 있다. 클라우드 자동 어시스턴트 컴포넌트(들)(120)의 클라우드 이행 엔진(127)은 수신된 입력을 이행하는데 수신된 클라우드 의미론적 표현(들)을 이용할 수 있다. 예를 들어 스마트 장치 제어 입력의 경우, 클라우드 이행 엔진(127)은 클라우드 의미론적 표현을 이용하여 대응하는 제어 요청(들)을 생성하고, 대응하는 스마트 장치 시스템(들)(140A-N)으로 전송하고, 그 후 대응하는 제어 명령(들)을 생성하고 대응하는 스마트 장치(들)(145A-N)로 전송한다.
클라우드 모듈(1151-N)은 또한 각각의 NLU 엔진(1131-N)으로 분석할 수 없고 및/또는 각각의 로컬 캐시(1581-N)의 캐시 엔트리와 매칭(일치)하지 않는 수신된 입력에 대해, 수신된 입력(들)을 나타내는 데이터를 클라우드 기반 자동 어시스턴트 컴포넌트(들)(120)로 전송한다. 예를 들면, 수신된 입력이 오디오 데이터에 캡처된 음성인 경우, 오디오 데이터 및/또는 이에 대한 로컬 인식 텍스트(예를 들어, 각각의 STT 엔진(1121-N)로부터)는 클라우드 기반 자동 어시스턴트 컴포넌트(들)(120)로 전송될 수 있다. 이러한 전송 중 적어도 일부의 경우, 클라우드 기반 컴포넌트(들)(120)는 각각의 캐시 엔진(1181-N)에 대한 응답으로 캐시 요청(들)을 제공하여 입력(들)의 미래 발생이보다 효율적으로 및/또는 감소된 지연으로 충족될 수 있도록 할 수 있다. 더욱이, 클라우드 기반 컴포넌트(들)(120)는 추가적으로 또는 대안적으로, 수신된 입력(들)에 응답하여, 대응하는 클라우드 이행을 수행하고 및/또는 로컬 이행을 수행할 때 각각의 클라이언트 장치(1101-N)에 의한 이용을 위해 로컬로적으로 해석 가능한 의미론적 표현 및/또는 로컬 명령(들)을 각각의 클라이언트 장치(1101-N)에 제공한다.
로컬 모듈(1161-N)은 클라우드 자동 어시스턴트 컴포넌트(들)(120)와의 상호 작용없이 로컬에서 다양한 요청을 이행할 수 있다. 예를 들면, 로컬 모듈(1161)은 수신된 입력의 텍스트(예를 들어, STT 엔진(1121-N)로부터 인식된 텍스트)가 로컬 캐시(1581)의 캐시 엔트리의 텍스트와 매칭한다는 결정에 응답하여 로컬에서 요청을 수행할 때 캐시 엔트리의 텍스트에 매핑된 로컬적으로 해석 가능한 의미론적 표현(들)을 활용한다. 예를 들어, 로컬 모듈(1161)은 로컬 제어 명령(들)을 생성할 때 로컬적으로 해석 가능한 의미론적 표현(들)을 활용하여 라디오(radio)(들)(1191)의 각각을 통해 하나 이상의 대응하는 스마트 장치(145A-N)에 로컬로 전송할 수 있다. 선택적으로, 여기에 설명된대로, 로컬적으로 해석 가능한 의미론적 표현이 스마트 장치 제어를 위한 것일 때, 로컬 모듈(1161-N)은 로컬 제어 명령(들)을 생성할 때 하나 이상의 각각의 어댑터(들)(1561-N)를 이용할 수 있다. 로컬 모듈(1161)은 또한 선택적으로 NLU 엔진(1131)에 의해 생성된 임의의 로컬적으로 해석 가능한 의미론적 표현을 로컬로 해석할 수 있다.
TTS(text-to-speech) 엔진(1171-N)은 요청에 대한 응답을 제공하기 위해 합성된 음성을 생성하도록 선택적으로 활용될 수 있다. 예를 들면, TTS 엔진(1171)은 수신된 입력의 텍스트(예를 들어, STT 엔진(1121-N)로부터 인식된 텍스트)가 로컬 캐시(1581)의 캐시 엔트리의 텍스트와 매칭한다는 결정에 응답하여 대응하는 합성 음성을 생성하고 합성된 음성이 수신된 입력에 대한 응답으로 렌더링되도록 캐시 엔트리의 텍스트에 매핑된 응답성 텍스트를 이용할 수 있다. 합성된 음성은 캐시 엔트리의 텍스트에 매핑된 의미론적 표현(클라우드 및/또는 로컬 해석 가능)을 기반으로 수행되는 다른 액션에 추가하여 렌더링될 수 있다. 또한, 응답성 텍스트는 추가적으로 또는 대안적으로 시각적으로 렌더링될 수 있고 및/또는 캐시 엔트리의 텍스트에 매핑되는 것에 응답하여 이행 엔진에 의해 추가적으로 또는 대안적으로 렌더링 수있는 대체 콘텐츠일 수 있다.
클라이언트 장치(1101-N) 중 하나 이상(예를 들어, 모두)은 또한 위에서 언급된 각각의 캐시 엔진(1181-N) 및 각각의 로컬 캐시(1581-N)를 선택적으로 포함할 수 있다. 캐시 엔진(1181-N)은 클라우드 자동 어시스턴트 컴포넌트(들)(120)의 캐시 생성 엔진(125)으로부터 각각의 캐시 요청을 각각 수신하고, 각각의 로컬 캐시(1581-N)에 각각의 캐시 엔트리를 저장할 수 있다. 로컬 캐시(1581-N)는 예를 들어 각각의 클라이언트 장치(1101-N)의 RAM 및/또는 ROM에 저장될 수 있다. 여기에 설명된 바와 같이, 일부 구현에서 캐시 생성 엔진(125)으로부터 수신된 캐시 요청은 각각의 로컬 캐시(1581-N)에 저장될 캐시 엔트리 전체를 포함한다. 다른 구현에서, 캐시 요청에는 캐시 엔트리에 포함할 텍스트가 부족하고 캐시 엔트리의 의미론적 표현에 매핑될 수 있다. 이러한 구현에서, 각각의 캐시 엔진(1181-N)은 클라우드 자동 어시스턴트 컴포넌트(들)(120)에 가장 최근에 제공된 텍스트(또는 클라우드 자동 어시스턴트 컴포넌트(들)(120)에 가장 최근에 제공된 오디오 데이터에 대한 인식된 텍스트)인 것에 기초하여 텍스트를 결정할 수 있다.
클라우드 자동 어시스턴트 컴포넌트(들)(120)는 일반적으로 도 1의 1051로 표시된 하나 이상의 광역 네트워크 (예: 인터넷)를 통해 클라이언트 장치(1101-N)에 통신 가능하게 결합된 하나 이상의 컴퓨팅 시스템(통칭 "클라우드" 또는 "원격" 어시턴트 시스템이라고 함)상에서 구현될 수 있다. 예를 들면, 클라우드 자동 어시스턴트 컴포넌트(들)(120)는 고성능 서버의 하나 이상의 클러스터에 의해 구현될 수 있다. 클라이언트 장치(1101-N)는 광역 네트워크(1051)에 액세스하고 및/또는 서로 로컬적으로 통신할 때 하나 이상의 근거리 통신망을 이용할 수 있다는 점에 유의한다. 이러한 근거리 통신망은 클라이언트 장치(1101-N) 사이의 Wi-Fi 네트워크 및/또는 메시 네트워크를 포함할 수 있다.
클라우드 자동 어시스턴트 컴포넌트(120)는 또한 하나 이상의 광역 네트워크를 통해 스마트 장치 시스템(140A-N)과 통신 가능하게 결합될 수 있다. 클라우드 자동 어시스턴트 컴포넌트(120)와 스마트 장치 시스템(140)의 통신 결합은 일반적으로 도 1의 1052로 표시된다. 또한, 스마트 장치 시스템(140)은 일반적으로 도 1의 1104에 의해 표시된 하나 이상의 광역 네트워크를 통해 하나 이상의 스마트 장치(145A-N)의 대응하는 그룹에 각각 통신 가능하게 결합될 수 있다. 스마트 장치(145A-N)는 광역 네트워크(1053)에 액세스할 때 하나 이상의 근거리 통신망을 이용할 수 있다는 점에 유의한다.
각각의 스마트 장치 시스템(140A-N)은 제1 파티(1P - 즉, 자동 어시스턴트를 제어하는 동일한 파티에 의해 제조 및/또는 배포된) 또는 제3 파티(3P - 즉, 다른 파티에서 제조 및/또는 배포된) 시스템일 수 있고, 각각은 하나 이상의 대응하는 스마트 장치(145A-N)와 통신적으로 결합될 수있다. 예를 들면, 제1 스마트 장치 시스템(140A-N)은 제1 3P에 의해 제어될 수 있고 제1 스마트 장치(145A1)와 통신 가능하게 결합될 수 있으며, 제2 스마트 장치 시스템(140)은 제2 3P에 의해 제어될 수 있고 제2 스마트 장치(145B1) 및 제 3 스마트 장치(145B2) 등과 통신 가능하게 결합될 수 있다.
스마트 장치(145A-N)는 광역 네트워크(1053)를 통해 장치(145A-N)와 통신하여 각각의 스마트 장치(145A-N) 등의 상태를 확인하기 위해 각각의 스마트 장치(145A-N)에 펌웨어 업데이트를 전달하도록 각각의 스마트 장치(145A-N)를 제어할 수 있다. 예를 들면, 스마트 장치 시스템(140) 중 소정의 하나는 스마트 장치의 제어를 가능하게하는 스마트 장치 시스템에 대해, 모바일 애플리케이션을 통해 수신되는 사용자 입력에 응답하여 스마트 장치를 제어하도록 스마트 장치(145A-N) 중 하나와 통신할 수 있다.
또한 예를 들어, 스마트 장치 시스템(140) 중 소정의 하나는 클라우드 자동 어시스턴트 컴포넌트(들)(120)로부터의 요청에 응답하여 스마트 장치를 제어하기 위해 스마트 장치(145A-N) 중 하나와 통신할 수 있다. 예를 들면, 몇 가지 기술에 따르면, 사용자는 클라이언트 장치(1101)의 하나 이상의 I/O 컴포넌트(1111)를 통해 I/O의 마이크로폰(들)을 통해 제공된 "turn off the couch light"의 음성 입력과 같은 스마트 장치를 제어하기 위한 요청을 제공할 수 있다. 요청(예를 들어, 음성 입력을 캡처하는 오디오 데이터 또는 로컬로 생성된 텍스트)은 클라이언트 장치(1101)에 의해 광역 네트워크(1051)를 통해 클라우드 자동 어시스턴트 컴포넌트(들)(120)로 전송될 수 있다. 클라우드 자동 어시스턴트 컴포넌트(들)(120)는 요청을 기반으로 제어될 스마트 장치를 결정하기 위한 요청을 처리할 수 있으며, 광역 네트워크(1052)를 통해 제어 요청을 스마트 장치 시스템(140A-N) 각각에 전송하고, 이는 광역 네트워크(1053)를 통해 스마트 장치에 대응하는 명령(들)을 차례로 전송한다. 그러나, 본 명세서에 설명된 바와 같이, 이러한 기술은 높은 대기시간(레이턴시) 및/또는 네트워크 리소스의 과도한 소비와 같은 결점을 제시한다.
일부 구현에서, 복수의 클라이언트 컴퓨팅 장치(1101-N) 및 스마트 장치(145A-N)는 여기에 설명된 기술의 성능을 용이하게 하기 위해 다양한 방식으로 서로 연관될 수 있다. 예를 들어, 일부 구현에서, 복수의 클라이언트 장치(1101-N) 및 스마트 장치(145A-N)는 하나 이상의 랜(LAN)을 통해 및/또는 하나 이상의 피어-투-피어 네트워크를 통해 통신적으로 결합됨으로써 서로 연관될 수 있다. 예를 들어, 복수의 클라이언트 컴퓨팅 장치(1101-N)가 가정, 건물 등과 같은 특정 영역 또는 환경에 걸쳐 배치되는 경우일 수 있다. 추가적으로 또는 대안적으로, 일부 구현에서, 복수의 클라이언트 장치(1101-N) 및 스마트 장치(145A-N)는 클라이언트 장치(1101-N) 및 하나 이상의 사용자(예: 개인, 가족, 조직의 직원, 기타 사전 정의된 그룹 등)에 의해 적어도 선택적으로 액세스 가능한 스마트 장치(145A-N)의 조정된 에코시스템의 멤버이기 때문에 서로 연관될 수 있다. 이러한 구현 중 일부에서, 클라이언트 장치(1101-N) 및 스마트 장치(1451-N)의 에코시스템은 장치 토폴로지(152)에서 서로 수동 및/또는 자동으로 연관될 수 있다.
클라이언트 장치(1101-N)의 자동 어시스턴트 클라이언트의 인스턴스는 하나 이상의 클라우드 자동 어시스턴트 컴포넌트(120)와의 상호 작용을 통해, 사용자의 관점에서 볼 때 사용자가 인간 대 컴퓨터 대화에 참여할 수 있는 자동 어시스턴트의 논리적 인스턴스를 형성할 수 있다. 예를 들면, 사용자는 클라이언트 장치(1101) 및 자동 어시스턴트 클라이언트(1171) 또는 클라이언트 장치(110N) 및 자동 어시스턴트 클라이언트(117N)를 사용하여 자동 어시스턴트의 동일한 논리적 인스턴스에 참여할 수 있다. 자동 어시스턴트 클라이언트(1171 및 117N)의 특정 인스턴스는 다양할 수 있고(예: 동일한 명령에 대해 서로 다른 스마트 장치 제어 제공) 및/또는 상이한 I/O 컴포넌트(1111 및 111N)를 통해 사용자 인터페이스 출력을 제공하고(예를 들어, I/O 컴포넌트(1111)는 터치 스크린을 포함할 수 있지만 I/O 컴포넌트(111N)는 포함하지 않음) 및/또는 상이한 I/O 컴포넌트(1111 및 111N)를 통해 상이한 사용자 인터페이스 입력을 수용할 수 있지만, 사용자는 여전히 자동 어시스턴트의 동일한 논리적 인스턴스에 효과적으로 참여할 수 있다. 간결함과 단순함을 위해, 본 명세서에서 사용되는 "자동 어시스턴트"라는 용어는 클라이언트 장치(110)에서 실행되는 자동 어시스턴트 클라이언트를 지칭할 것이며, 선택적으로 하나 이상의 클라우드 자동 어시스턴트 컴포넌트(120)(이는 다수의 자동 어시스턴트 클라이언트 사이에서 공유될 수 있음)를 지칭할 것이다. 조정된 에코시스템의 2개의 클라이언트 장치(1101 및 110N)가 도 1에 도시되어 있지만, 많은 추가 클라이언트 장치가 에코시스템에 포함될 수 있다. 더욱이, 서로 다른 사용자(들)(예: 계정(들)) 및/또는 환경과 관련된 클라이언트 장치의 개별 조정된 에코시스템도 제공될 것이며, 그러한 개별 조정된 에코시스템은 또한 클라우드 자동 어시스턴트 컴포넌트(들)(120)와 상호 작용(그러나 이러한 개별 에코시스템의 계정에 맞게 조정된 상호 작용)할 수 있다.
클라이언트 장치(1101-N)는, 예를 들어 데스크톱 컴퓨팅 장치, 랩톱 컴퓨팅 장치, 태블릿 컴퓨팅 장치, 휴대폰 컴퓨팅 장치, 사용자 차량의 컴퓨팅 장치(예: 차량 내 통신 시스템, 차량용 엔터테인먼트 시스템, 차량용 내비게이션 시스템), 독립형 어시스턴트 중심 대화형 스피커, 스피커가 있는 독립형 어시스턴트 중심 대화형 디스플레이, 스마트 TV와 같은 스마트 장치 및/또는 컴퓨팅 장치(예를 들어, 컴퓨팅 장치를 갖는 사용자의 시계, 컴퓨팅 장치를 갖는 사용자의 안경, 가상 또는 증강 현실 컴퓨팅 장치)를 포함하는 사용자의 웨어러블 장치 중 하나 이상을 포함할 수 있다. 추가 및/또는 대체 클라이언트 컴퓨팅 장치가 제공될 수 있다.
상기에서 설명한 바와 같이, 클라이언트 장치(1101-N) 중 하나 이상은 입력을 처리하고 및/또는 입력을 기반으로 한 출력을 생성할 때 및/또는 입력을 기반으로 스마트 장치 제어 명령을 생성할 때 클라우드 자동 어시스턴트 컴포넌트(들)(120)와 적어도 선택적으로 인터페이스할 수 있다. 클라우드 자동 어시스턴트 컴포넌트(들)(120)는 STT 엔진(121), NLU 엔진(122), TTS 엔진(123), 캐시 생성 엔진(125), 및/또는 클라우드 이행 엔진(127)을 포함할 수 있다.
위에서 설명한 것처럼 수신된 요청에 대해, 클라이언트 장치(1101-N)에서, 각각의 NLU 엔진(1131-N)에 의해 해결될 수 없고 및/또는 각각의 로컬 캐시(1581-N)에서 매칭하는 캐시 엔트리가 없는 경우, 요청에 대응하는 텍스트 및/또는 오디오 데이터는 클라우드 자동 어시스턴트 컴포넌트(들)(120)로 전송될 수 있다. 클라우드 자동 어시스턴트 컴포넌트(들)(120)는 요청에 대한 처리 텍스트에 기초하여 의미론적 표현(들)을 생성하기 위해 더 강력한 NLU 엔진(122)을 이용할 수 있다. 처리된 텍스트는 클라이언트 장치에 의해 전송될 수 있거나, 클라이언트 장치에 의해 전송된 오디오 데이터를 이용하여 STT 엔진(121)에 의해 생성된 인식된 텍스트일 수 있다. 생성된 의미론적 표현(들)은 본 명세서에 설명된 바와 같이 클라우드 의미론적 표현(들) 및/또는 로컬적으로 해석 가능한 의미론적 표현(들)을 포함할 수 있다. 또한 여기에 설명된 바와 같이, 의미론적 표현(들)을 생성할 때 NLU 엔진(122)은 클라이언트 장치(1101-N) 및 스마트 장치(145A-N)에 대한 장치 토폴로지(152)를 활용할 수 있다.
캐시 생성 엔진(125)은 클라이언트 장치(1101-N) 중 하나로부터의 전송에 응답하여, 생성된 의미론적 표현(들)을 포함하는 캐시 엔트리를 포함하는 캐시 요청을 생성할 수 있으며, 선택적으로 텍스트(또는 그 표현) 및 의미론적 표현(들)에 대한 텍스트의 매핑을 포함한다. 생성된 캐시 요청의 캐시 엔트리는 렌더링될 응답 콘텐츠, 프로토콜 스위트, 어댑터 및/또는 로컬적으로 해석 가능한 의미론적 표현(들) 및/또는 기타 콘텐츠와 함께 이용될 라디오(들)와 같은 추가 및/또는 대안 콘텐츠를 포함할 수 있다. 렌더링될 반응형(응답형) 콘텐츠는 텍스트, 오디오 데이터(예를 들어, TTS 엔진(123)을 사용하여 생성된 반응 형 텍스트를 위한 합성 음성) 및/또는 그래픽을 포함할 수 있다. 캐시 생성 엔진(125)은 대응하는 캐시 요청을 각각의 클라이언트 장치(1101-N)의 각각의 캐시 엔진(1181-N)으로 전송하여 각각의 로컬 캐시(1581-N)에 캐시 엔트리를 저장한다.
생성된 의미론적 표현이 클라우드 의미론적 표현을 포함하는 경우, 클라우드 이행 엔진(127)은 대응하는 제어 요청(들)을 생성하기 위해 클라우드 의미론적 표현(들)을 처리할 수 있고, 그 후 대응하는 스마트 장치 시스템(들)(140A-N)으로 전송(들)을 할 수 있다. 스마트 장치 시스템(140A-N)은 제어 요청(들)에 응답하여 대응하는 제어 명령을 생성하고 대응하는 스마트 장치(145A-N)로 전송할 수 있다.
생성된 의미론적 표현이 로컬적으로 해석 가능한 의미론적 표현을 포함하는 경우, 각각의 클라이언트 장치(110A-N)는 대응하는 로컬 제어 명령을 생성하고 그 로컬 제어 명령을 로컬로 전송함에 있어(예를 들어, 각각의 로컬 모듈(116A-N)을 사용하여) 캐시 요청의 로컬적으로 해석 가능한 의미 표현(들)을 이용할 수 있다. 또는 클라우드 자동 어시스턴트 컴포넌트(들)(120)는 별도의 전송에서 로컬적으로 해석 가능한 의미론적 표현(들)을 제공할 수 있고, 각각의 클라이언트 장치(110A-N)는 대응하는 로컬 제어 명령을 생성하고 로컬 제어 명령을 로컬로 전송(예를 들어, 각각의 로컬 모듈(116A-N)을 사용하여)할 때 개별 전송의 로컬적으로 해석 가능한 의미론적 표현(들)을 이용할 수 있다. 또 다른 대안으로, 클라우드 자동 어시스턴트 컴포넌트(들)(120)는 자체적으로 로컬 제어 명령(들)을 생성할 수 있고, 로컬 제어 명령(들)을 로컬로 전송하기 위해 각각의 클라이언트 장치(110A-N)에 전송한다.
위에서 설명한 것처럼, 클라이언트 장치(1101-N)에서, 클라우드 의미론적 표현을 포함하고, 각각의 로컬 캐시(1581-N)에서 캐시 엔트리와 매칭하는 수신된 요청에 대해, 클라우드 의미론적 표현은(예를 들어, 대응하는 텍스트 및/또는 오디오 데이터 대신에) 클라우드 자동 어시스턴트 컴포넌트(들)(120)로 전송될 수 있다. 클라우드 이행 엔진(127)은 수신된 클라우드 의미론적 표현(들)을 처리하여 대응하는 제어 요청(들)을 생성할 수 있고, 그 후 대응하는 스마트 장치 시스템(들)(140A-N)으로 전송을 할 수 있다. 스마트 장치 시스템(140A-N)은 제어 요청(들)에 응답하여 대응하는 제어 명령을 생성하고 대응하는 스마트 장치(145A-N)로 전송할 수 있다.
도 1의 다양한 컴포넌트에 대한 추가 설명은 추가 도면을 참조하여 제공된다. 도 2는 복수의 룸(방)(250, 252, 254, 256, 258, 260 및 262)을 포함하는 집 평면도를 묘사한다. 복수의 클라이언트 장치(1101-3)는 적어도 일부 방(룸)에 걸쳐 배치된다. 클라이언트 장치(1101-3) 각각은 선택적으로 본 개시 내용의 선택된 양태들로 구성된 자동 어시스턴트 클라이언트의 인스턴스를 구현할 수 있고, 마이크로폰, 터치 스크린 등과 같은 하나 이상의 입력 장치 및/또는 스피커, 디스플레이 등과 같은 하나 이상의 출력 장치를 선택적으로 포함할 수 있다. 예를 들면, 대화형 독립형 스피커의 형태를 취하는 제1 클라이언트 장치(1101)는 이 예에서 침실인 방(254)에 배치된다. 독립형 대화형 스피커 및 디스플레이 장치(예를 들어, 디스플레이 스크린, 프로젝터 등)의 형태를 취하는 제2 클라이언트 장치(1102)는 이 예에서 거실인 방(252)에 배치된다. 대화형 독립형 스피커의 형태를 취하는 제3 클라이언트 장치(1103)는 룸(256)에 배치된다.
복수의 클라이언트 장치(1101-3)는 룸(252)에 도시된 무선 라우터(101) 및/또는 로컬 메시 네트워크를 통해 서로 및/또는 다른 리소스(예를 들어, 스마트 장치 및 인터넷)와 통신 가능하게 결합될 수 있다. 또한 다른 클라이언트 장치(특히 스마트 폰, 태블릿, 랩톱, 웨어러블 장치 등과 같은 모바일 장치)는 집에 있는 한 명 이상의 사람(예를 들어, 사용자(103))이 휴대할 수 있으며 동일한 LAN에 연결되거나 연결되지 않을 수도 있다. 도 2에 도시된 클라이언트 장치의 구성은 하나의 예일뿐이며; 더 많거나 더 적은 및/또는 다른 클라이언트 장치가 집이 아닌 다른 방 및/또는 영역에 임의의 수에 걸쳐 배치될 수 있다.
추가로 도 2는 복수의 스마트 장치이다. 스마트 장치는 스마트 조명(라이트)(145A1)을 포함한다. 스마트 조명(145A1)는 제1 원격 스마트 장치 시스템(140A)에 의해 제어 가능하다. 스마트 장치는 제2 원격 스마트 장치 시스템(140B)에 의해 제어 가능한 스마트 조명(145B1 및 145B2)을 더 포함한다. 제2 원격 스마트 장치 시스템(140B)은 제1 원격 스마트 장치 시스템(140A)을 제어하는 파티와 분리된 부분에 의해 제어될 수 있다. 스마트 장치는 적어도 제2 클라이언트 장치(1102)에 의해 로컬적으로 제어 가능한 스마트 온도 조절기(서모스탯)(145C1)을 더 포함한다. 예를 들면, 스마트 온도 조절기(145C1)은 스마트 온도 조절기(145C1)의 프로토콜 제품군을 준수하고 스마트 온도 조절기(145C1)와 제2 클라이언트 장치(1103) 사이의 블루투스 연결을 통해 제2 클라이언트 장치(1102)에 의해 제공되는 제어 명령을 통해 제어될 수 있다. 도 1에 도시된 스마트 장치(145)의 구성은 하나의 예일뿐이며; 더 많거나 더 적은 및/또는 다른 스마트 장치가 집 이외의 다른 방 및/또는 영역에 걸쳐 배치 될 수 있다.
도 2 및 도 2의 설명은 도 3a, 3b, 4a, 4b, 5a 및 5b의 다양한 양태를 설명하는데 이용될 것이다.
도 3a는, 제2 어시스턴트 클라이언트 장치(1102)가 음성 발화(352)의 인식된 텍스트(352A)와 매칭하는 캐시 엔트리가 없을 때 및 선택적으로 제2 어시스턴트 클라이언트 장치(1102)의 로컬 NLU 엔진이 인식된 텍스트(352A)를 유효하게 처리할 수 없을 때, 도 2의 제2 어시스턴트 클라이언트 장치(1102)에서 수신된 "brighten lights a bit"의 음성 발화(352)가 처리 될 수 있는 방법의 예를 예시한다. 도 3a에 도시된 바와 같이, 제2 어시스턴트 클라이언트 장치(1102)는 인식된 텍스트(352A)를 클라우드 자동 어시스턴트 컴포넌트(들)(120)로 전송한다. 인식된 텍스트(352A)의 전송은 음성 발화(352)의 인식된 텍스트(352A)와 매칭하는 로컬적으로 저장된 캐시 엔트리가 없다고 결정하는 제2 어시스턴트 클라이언트 장치(1102)에 응답할 수 있으며, 선택적으로 인식된 텍스트(352A)를 유효하게 처리하지 못하는 제2 어시스턴트 클라이언트 장치(1102)의 로컬 NLU 엔진에 응답할 수 있다.
인식된 텍스트(352A)를 수신하면, 클라우드 자동 어시스턴트 컴포넌트(들)(120)는 인식된 텍스트(352A)의 클라우드 의미론적 표현(354)을 생성한다. 클라우드 의미론적 표현(354)은 제2 어시스턴트 클라이언트 장치(1102)로부터 수신되는 인식된 텍스트에 기초하고 원격 저장된 장치 토폴로지에 대한 참조에 기초하여 생성될 수 있다. 클라우드 의미론적 표현을 생성할 때 클라우드 자동 어시스턴트 컴포넌트(들)(120)는 인식된 텍스트(352A)의 "the lights(조명)"을 특정 조명으로 분석(resolve)할 수 있다. 예를 들면, 클라우드 자동 어시스턴트 컴포넌트(들)(120)는 계정 식별자에 대한 대응하는 원격 저장된 장치 토폴로지를 식별하기 위해 텍스트(352A)의 전송과 함께 수신된 계정 식별자를 이용할 수 있다. 더욱이, 클라우드 자동 어시스턴트 컴포넌트(들)(120)는 텍스트(352A)와 함께 수신된 제2 어시스턴트 클라이언트 장치(1102)의 식별자를 이용하여 장치 토폴로지에서 제2 어시스턴트 클라이언트 장치(1102)를 식별할 수 있다. 또한, 클라우드 자동 어시스턴트 컴포넌트(들)(120)는 제2 어시스턴트 클라이언트 장치(1102)에 대한 기본 조명(디폴트 라이트)으로서, 장치 토폴로지에서 매핑되는 조명에 기초하여 텍스트(352A)의 "조명"을 조명(145B1 및 145B2)으로 분석할 수 있다. 조명(145B1 및 145B2)은 이전 사용자 인터페이스 입력 및/또는 장치 토폴로지에서 룸(252)의 식별자에 할당된 이들 모두에 기초하여 제2 어시스턴트 클라이언트 장치(1102)에 대한 기본값으로 매핑될 수 있다.
클라우드 의미론적 표현을 생성할 때, 클라우드 자동 어시스턴트 컴포넌트(들)(120)는 또한 현재 밝기 강도 레벨(들)보다 "2/5"(예를 들어, 40%) 더 밝음을 의미하도록 "brighten ... a bit(조금 밝게)"을 분석할 수 있다. 이는 클라우드 자동 어시스턴트 컴포넌트(들)(120)에 액세스 가능한 하나 이상의 원격 저장된 모델(들) 및/또는 규칙(들)에 대한 참조에 기초할 수 있다. 클라우드 의미론적 표현(354)은 이러한 분해(resolutions)에 기초하여 생성될 수 있으며, 예를 들어 캐시 요청(356)에 예시된 바와 같이 [device(s)=145B1 and 145B2; brighter(더밝게), intensity relative(상대적인 강도) 2 of 5]일 수 있으며, 여기서 "145B1 및 145B2"는 해당 조명에 대한 고유 식별자이며 "brighter, intensity relative 2 of 5brighter, intensity relative 2 of 5"는 조명이 현재 강도에 비해 2/5 정도 더 밝아짐을 나타낸다.
클라우드 자동 어시스턴트 컴포넌트(들)(120)는 생성된 클라우드 의미론적 표현(354)을 이용하여 대응하는 제어 요청을 생성한다. 클라우드 자동 어시스턴트 컴포넌트(들)(120)는 조명(145B1 및 145B2)에 대응하는 스마트 장치 시스템(140B)에 제어 요청을 전송한다. 이에 응답하여, 스마트 장치 시스템(140B)은 대응하는 제어 명령을 생성할 수 있으며, 조명(145B1 및 145B2)에 이러한 제어 명령을 제공하여 "brighten a bit"(즉, 클라우드 의미론적 표현에 표시된대로 상대 밝기를 40% 증가)를 수행할 수 있다.
또한, 클라우드 자동 어시스턴트 컴포넌트(들)(120)는 클라우드 의미론적 표현(354)을 포함하고 그리고 인식된 텍스트(352A) 및/또는 인식된 텍스트를 클라우드 시맨틱 표현(354)에 매핑하는 것을 선택적으로 포함하는 캐시 요청을 생성하여 클라이언트 장치(1102)로 전송한다. 캐시 요청(356)을 수신하는 것에 응답하여, 클라이언트 장치(1102)는 캐시 요청(356)에 포함된 클라우드 의미론적 표현(354)에 대한 인식된 텍스트(352A)의 매핑을 포함하는 해당 캐시 엔트리를 저장한다.
도 3b는, 클라우드 의미론적 표현(354)(도 3a)을 갖는 캐시 엔트리가 도 3a의 제2 어시스턴트 클라이언트 장치(1102)에 저장된 후에 제2 어시스턴트 클라이언트 장치(1102)에서 수신된 도 3a의 동일한 음성 발화(352)의 또 다른 인스턴스가 어떻게 다르게 처리될 수 있는지의 예를 예시한다.
도 3b에 도시된 바와 같이, 제2 어시스턴트 클라이언트 장치(1102)는 인식된 텍스트를 생성하기 위해 음성 발화(352)를 캡처하는 오디오 데이터를 처리한다. 더욱이, 제2 어시스턴트 클라이언트 장치(1102)는 인식된 텍스트가 도 3a의 제2 어시스턴트 클라이언트 장치(1102)의 로컬 캐시에 저장된 캐시 엔트리의 텍스트와 매칭한다고 결정한다. 이에 응답하여, 제2 어시스턴트 클라이언트 장치(1102)는 매칭하는 캐시 엔트리의 클라우드 의미론적 표현을 클라우드 자동 어시스턴트 컴포넌트(들)(120)로 전송한다. 클라우드 자동 어시스턴트 컴포넌트(들)(120)는 클라우드 의미론적 표현(354)을 직접 처리하여 대응하는 제어 요청을 생성하고 제어 요청을 스마트 장치 시스템(140B)으로 전송할 수 있다. 이에 응답하여, 스마트 장치 시스템(140B)은 대응하는 제어 명령을 생성할 수 있고, 조명(145B1 및 145B2)에 이러한 제어 명령을 제공하여 조명(145B1 및 145B2)을 조금 밝게 "brighten a bit"할 수 있다. 이러한 방식과 다른 방식으로 클라우드 자동 어시스턴트 컴포넌트(들)의 리소스는 클라우드 의미론적 표현을 생성하는 또 다른 발생을 방지하여 보존될 수 있다. 또한, 제어 요청이 보다 신속하게 생성되고 전송될 수 있으며, 조명(145B1 및 145B2)에 대한 해당 변경에 영향을 미치는 대기시간을 줄인다. 도 3b의 제어 요청(결과적으로 제어 명령)은 동일한 의미론적 표현을 기반으로 생성되었음에도 불구하고 도 3a의 요청과 다를 수 있음에 유의한다. 이는 제어 요청을 생성할 때 상대적 상태 변화인 클라우드 의미론적 표현의 클라우드 상태 변화 및 조명(145B1 및 145B2)의 "현재" 상태를 기반으로 할 수 있으며, 잠재적으로 도 3a 및 도 3b 사이에서 변할 수 있다.
도 4a는, 제1 어시스턴트 클라이언트 장치(1102)가 음성 발화의 텍스트와 매칭(일치)하는 캐시 엔트리가 없을 때, 도 2의 제1 어시스턴트 클라이언트 장치(1102)에서 수신된 도 3a 및 3b의 동일한 음성 발화("brighten the lights a bit(조명을 조금 더 밝게)")가 처리 될 수 있는 방법의 예를 예시한다. 도 4a에서, 사용자(103)는 "brighten the lights a bit(조명을 조금 더 밝게)"의 음성 발화(452)를 제공한다. 음성 발화(452)가 도 3a 및 3b의 음성 발화(352)와 동일한 음성 발화이지만, 이는 번호의 일관성을 위해 도 4a 및 도 4b 에서 452로 표시된다.
도 4a에서, 제1 어시스턴트 클라이언트 장치(1101)는 음성 발화(452)를 캡처하는 오디오 데이터를 로컬 STT 엔진을 사용하여 처리함으로써 생성된 인식된 텍스트(452A)를 클라우드 자동 어시스턴트 컴포넌트(들)(120)로 전송한다. 인식된 텍스트(452A)의 전송은 음성 발화(452)의 인식된 텍스트(452A)와 매칭하는 로컬적으로 저장된 캐시 엔트리가 없다고 결정하는 제1 어시스턴트 클라이언트 장치(1101)에 응답될 수 있고, 그리고 선택적으로 인식된 텍스트(452A)를 유효하게 처리하지 못하는 제1 어시스턴트 클라이언트 장치(1101)의 로컬 NLU 엔진에 응답될 수 있다.
인식된 텍스트(452A)의 수신에 응답하여, 클라우드 자동 어시스턴트 컴포넌트(들)(120)는 인식된 텍스트(452A)의 클라우드 의미론적 표현(454)을 생성한다. 클라우드 의미론적 표현(454)은 예를 들어 캐시 요청(456)에 예시된 바와 같이 " [device(s) = 145A1; brighter, intensity relative 2 of 5]"이며, 여기서“145A1”은 해당 조명의 고유 식별자이며, "brighter, intensity relative 2 of 5"는 조명이 현재 강도에 비해 2/5 정도 더 밝아짐을 나타낸다. 클라우드 의미론적 표현(454)은 조명(145B1 및 145B2)의 식별자 대신에 조명(145A1)의 식별자를 포함한다는 점에서 도 3a의 클라우드 의미론적 표현(354)과 다르다. 이는 텍스트(452A)로 수신된 제1 어시스턴트 클라이언트 장치(1101)의 식별자를 사용하고, 제1 어시스턴트 클라이언트 장치(1101)에 대한 기본(기준) 조명으로서, 장치 토폴로지에서 매핑되는 조명에 기초하여 텍스트(452A)에서 "lights(조명)"을 조명(145A1)으로 분석하는 클라우드 자동 어시스턴트 컴포넌트(들)(120)에 기초할 수 있다. 따라서, 동일한 음성 발화가 도 3a 및 도 4a에서 수신됨에도 불구하고, 상이한 어시스턴트 클라이언트 장치로부터 수신되는 음성 발화에 적어도 부분적으로 기초하여 상이한 클라우드 의미론적 표현이 생성될 수 있다.
클라우드 자동 어시스턴트 컴포넌트(들)(120)는 생성된 클라우드 의미론적 표현(454)을 이용하여 대응하는 제어 요청을 생성한다. 클라우드 자동 어시스턴트 컴포넌트(들)(120)는 의미론적 표현(454)의 조명(145A1)에 대응하는 스마트 장치 시스템(140A)에 제어 요청을 전송한다. 이에 응답하여, 스마트 장치 시스템(140A)은 대응하는 제어 명령(들)을 생성할 수 있고, 그 제어 명령(들)을 조명(145A1)에 제공하여 조금 더 밝게("brighten a bit")를 수행할 수 있다.
더욱이, 클라우드 자동 어시스턴트 컴포넌트(들)(120)는 클라우드 의미론적 표현(454)을 포함하고, 인식된 텍스트(452A) 및/또는 클라우드 의미론적 표현(454)에 대한 인식된 텍스트의 매핑을 선택적으로 포함하는 캐시 요청(456)을 생성하고 제1 클라이언트 장치(1101)로 전송한다. 캐시 요청(456)의 수신에 응답하여, 제1 클라이언트 장치(1101)는 캐시 요청(456)에 포함된 클라우드 의미론적 표현(454)에 대한 인식된 텍스트(452A)의 매핑을 포함하는 해당 캐시 엔트리를 저장한다.
도 4b는 클라우드 의미론적 표현(454)(도 4a)을 갖는 캐시 엔트리가 도 4a의 제1 어시스턴트 클라이언트 장치(1101)에 저장된 후에 제1 어시스턴트 클라이언트 장치(1101)에서 수신된 도 4a의 동일한 음성 발화(452)의 또 다른 인스턴스의 예가 어떻게 다르게 처리될 수 있는지의 예를 예시한다.
도 4b에 도시된 바와 같이, 제1 어시스턴트 클라이언트 장치(1101)는 음성 발화(452)를 캡처하는 오디오 데이터를 처리하여 인식된 텍스트를 생성한다. 또한, 제1 어시스턴트 클라이언트 장치(1101)는 인식된 텍스트가 도 4a의 제1 어시스턴트 클라이언트 장치(1101)의 로컬 캐시에 저장된 캐시 엔트리의 텍스트와 매칭하는 것으로 결정한다. 이에 응답하여, 제1 어시스턴트 클라이언트 장치(1101)는 매칭하는 캐시 엔트리의 클라우드 의미론적 표현(454)을 클라우드 자동 어시스턴트 컴포넌트(들)(120)로 전송한다. 클라우드 자동 어시스턴트 컴포넌트(들)(120)는 클라우드 의미론적 표현(454)을 직접 처리하여 대응하는 제어 요청을 생성하고 제어 요청을 스마트 장치 시스템(140A)으로 전송할 수 있다. 이에 응답하여, 스마트 장치 시스템(140A)은 대응하는 제어 명령(들)을 생성하고 그 제어 명령을 조명(145A1)에 제공하여 조금 밝게 "brighten a bit" 할 수 있다.
도 5a는 제2 어시스턴트 클라이언트 장치(1102)에 음성 발화(552)의 (온-디바이스 STT 엔진을 사용하여 생성된) 인식된 텍스트(552A)와 매칭하는 캐시 엔트리가 없는 경우 및 선택적으로 제2 어시스턴트 클라이언트 장치(1102)의 로컬 NLU 엔진이 인식된 텍스트(452A)를 유효하게 처리할 수 없을 때 도 2의 제2 어시스턴트 클라이언트 장치(1102)에서 수신된 "decrease temp a bit(온도를 조금 낮게)"의 또 다른 음성 발화(552)가 어떻게 처리되는지의 예를 예시한다.
도 5a에 도시된 바와 같이, 제2 어시스턴트 클라이언트 장치(1102)는 인식된 텍스트(552A)를 클라우드 자동 어시스턴트 컴포넌트(들)(120)로 전송한다. 인식된 텍스트(552A)의 전송은 음성 발화(552)의 인식된 텍스트(552A)와 매칭하는 로컬적으로 저장된 캐시 엔트리가 없다고 결정하는 제2 어시스턴트 클라이언트 장치(1102)에 응답할 수 있으며, 및 선택적으로 인식된 텍스트(552A)를 유효하게 처리하는 데 실패한 제2 어시스턴트 클라이언트 장치(1102)의 로컬 NLU 엔진에 응답할 수 있다.
인식된 텍스트(552A)를 수신하면, 클라우드 자동 어시스턴트 컴포넌트(들)(120)는 인식된 텍스트(552A)의 로컬적으로 해석 가능한 의미론적 표현(554)을 생성한다. 일부 구현에서, 클라우드 자동 어시스턴트 컴포넌트(들)(120)는 인식된 텍스트(552A)(온도조절기(145C1))에 의해 추론적으로 참조된 스마트 장치가 제2 어시스턴트 클라이언트 장치(1102) 및/또는 제2 어시스턴트 클라이언트 장치(1102)와 네트워크 통신하는 다른 클라이언트 장치에 의해 로컬적으로 제어 가능하다는 결정에 응답하여, 로컬적으로 해석 가능한 의미론적 표현(554)을 생성한다.
로컬적으로 해석 가능한 의미론적 표현(554)은 "decrease temperature(온도 감소)" 요청이 온도 조절기(145C1)에 대한 요청임을 결정하기 위해(예: 장치 토폴로지에서 지원되는 상태 변경으로 "온도 감소"가 있는 유일한 스마트 장치일 수 있음) 원격으로 저장된 장치 토폴로지에 대한 참조에 기초하여 생성될 수 있다. 따라서, 텍스트(552A)는 온도 조절기(145C1)를 목표 스마트 장치로 추론적으로 참조하도록 분석(resolve)될 수 있다. 클라우드 의미론적 표현을 생성할 때, 클라우드 자동 어시스턴트 컴포넌트(들)(120)는 또한 "decrease ... a bit"를 "현재 설정 포인트보다 2도 낮은"을 의미하도록 분석할 수 있다. 이는 클라우드 자동 어시스턴트 컴포넌트(들)(120)에 액세스 가능한 하나 이상의 원격 저장된 모델(들) 및/또는 규칙(들)에 대한 참조에 기초할 수 있다. 로컬적으로 해석 가능한 의미론적 표현(554)은 이러한 분석(resolutions)을 기반으로 생성될 수 있으며, 클라이언트 장치가 "현재 설정 포인트보다 2도 낮은"에 대한 목표 설정 포인트를 로컬로 본석(해결)하는 방법을 지시하는 상대 상태 변경 표현을 포함할 수 있도록 생성될 수 있다. 예를 들어, 상대 상태 변화 표현은 "temp set(온도 설정)=current temp - 2 degrees(현재 온도 - 2도)"일 수 있다.
로컬적으로 해석 가능한 의미론적 표현(556)은 선택적으로 대응하는 로컬 제어 명령(들)을 생성하는데 사용될 어댑터의 표시(예를 들어, 스마트 장치의 제조업체에 특정한 어댑터); 로컬 제어 명령(들)을 전송하는 데 사용될 채널(예: Bluetooth 또는 Wi-Fi)의 표시; 및/또는 로컬적으로 해석 가능한 의미론적 표현(556)에 기초하여 제어 명령(들)을 생성하는 데 이용될 프로토콜 제품군(protocol suite)의 표시를 추가로 포함할 수 있다. 예를 들어, 캐시 요청(556)에 설명된 바와 같이, 로컬적으로 해석 가능한 의미론적 표현은 [device(s)=145C1; temp set= (current temp - 2 degrees); adapter(어댑터)/channel(채널) = C]"이며, 여기서 "145C1"은 온도 조절기(145C1)의 고유 식별자(예: 온도 조절기(145C1)의 로컬 주소)이며; "temp set= (current temp - 2 degrees)"는 현재 상태 변화를 분석(resolve)하기 위해 로컬로 해석할 수 있는 현재-상태 종속 상태 변화 표현이며; "adapter/channel=C"는 (예: 현재 상태 변화 결정 후) 로컬 제어 명령(들) 및/또는 로컬 제어 명령(들)을 전송하는 데 사용될 채널을 생성하는 데 사용될 어댑터 및/또는 프로토콜 제품군을 나타낸다.
클라우드 자동 어시스턴트 컴포넌트(들)(120)는, 클라우드 의미론적 표현(554)을 포함하고 그리고 인식된 텍스트 (552A) 및/또는 클라우드 의미론적 표현(554)에 대한 인식된 텍스트의 매핑을 선택적으로 포함하는 캐시 요청(556)을 생성하여 제2 클라이언트 장치(1102)에 전송한다. 캐시 요청(556)의 수신에 응답하여, 제2 클라이언트 장치(1102)는 캐시 요청(556)에 포함된 클라우드 의미론적 표현(554)에 대한 인식된 텍스트(552A)의 매핑을 포함하는 해당 캐시 엔트리를 저장한다.
일부 구현에서, 그리고 제2 클라이언트 장치(1102)와 온도 조절기(145C1) 사이에 점선으로 표시된 바와 같이, 제2 클라이언트 장치(1102)는 캐시 요청(또는 클라우드 자동 어시스턴트 컴포넌트(들)120으로부터의 별도의 전송으로부터)의 로컬적으로 해석 가능한 의미론적 표현을 이용하여 온도 조절기(145C1)에 대한 로컬 제어 명령을 로컬적으로 생성하고 그리고 로컬 제어 명령을 도 5a의 음성 발화에 응답하여 온도 조절기(145C1)에 로컬적으로 전송할 수 있다.
일부 대체 구현에서, 클라우드 자동 어시스턴트 컴포넌트(들)(120)는 인식된 텍스트(552A)에 기초하여 대응하는 클라우드 의미론적 표현을 생성한다. 또한, 클라우드 자동 어시스턴트 컴포넌트(들)(120)는 대응하는 제어 요청을 생성하기 위해 별도의 클라우드 의미론적 표현을 활용할 수 있다. 클라우드 자동 어시스턴트 컴포넌트(들)(120)는 온도 조절기(145C1)에 대응하는 스마트 장치 시스템(140C)에 제어 요청을 전송한다. 이에 응답하여, 스마트 장치 시스템(140C)은 대응하는 제어 명령(들)을 생성하고, 그 제어 명령(들)을 온도 조절기(145C1)에 제공하여 설정 포인트가 "decrease a bit(조금 감소)(즉, 클라우드 의미론적 표현으로 표시된 대로 2도 감소)"가 되도록 할 수 있다.
도 5b는, 로컬적으로 해석 가능한 의미론적 표현(554)(도 5a)을 갖는 캐시 엔트리가 도 5a의 제2 어시스턴트 클라이언트 장치(1102)에 저장된 후에 제2 어시스턴트 클라이언트 장치(1102)에서 수신된 도 5a의 동일한 음성 발화(552)의 또 다른 인스턴스가 어떻게 다르게 처리될 수 있는지에 대한 예를 예시한다.
도 5b에 도시된 바와 같이, 제2 어시스턴트 클라이언트 장치(1102)는 인식된 텍스트를 생성하기 위해 음성 발화(552)를 캡처하는 오디오 데이터를 처리한다. 또한, 제2 어시스턴트 클라이언트 장치(1102)는 인식된 텍스트가 도 4a의 제2 어시스턴트 클라이언트 장치(1102)의 로컬 캐시에 저장된 캐시 엔트리의 텍스트와 매칭한다고 결정한다. 이에 응답하여, 제2 어시스턴트 클라이언트 장치(1102)는 캐시 엔트리의 로컬적으로 해석 가능한 의미론적 표현(554)을 식별하고, 대응하는 제어 명령을 생성하기 위해 로컬적으로 해석 가능한 의미론적 표현(554)을 사용한다.
로컬적으로 해석 가능한 의미론적 표현(554)의 상태 표현이 현재-상태 의존 상태 표현이고 그리고 온도 조절기(145C1)의 "현재" 온도 설정 포인트는 도 5a 및 도 5b 사이에서 변할 수 있기 때문에 도 5b의 생성된 제어 명령이 도 5a의 것과 다를 수 있다. 예를 들어, 도 5b에서, 제2 어시스턴트 클라이언트 장치(1102)는 로컬적으로 해석 가능한 의미론적 표현(554)의 상대적 상태 변화에 의해 지시된 바와 같이 현재 설정 포인트에서 2도를 감산함으로써 목표 설정 포인트를 분석(resolve)할 수 있다. 제2 어시스턴트 클라이언트 장치(1102)는 제어 명령을 생성하기 위해 대응하는 어댑터를 이용하여 목표 설정 포인트를 처리할 수 있고, 제어 명령을 온도 조절기(145C1)의 주소로 전송할 수 있으며, 이는 로컬적으로 해석 가능한 의미론적 표현(554)에 선택적으로 포함된다. 제어 명령의 수신에 응답하여, 온도 조절기(145C1)는 설정 포인트를 2도까지 낮출 수 있다.
도 6은 본 명세서의 다양한 구현에 따른, 어시스턴트 클라이언트 장치의 하나 이상의 프로세서에 의해 구현될 수 있는 예시적인 방법(600)을 예시하는 흐름도이다.
블록 602에서, 어시스턴트 클라이언트 장치는 음성 발화에 대해 인식된 텍스트를 생성하기 위해 음성 발화를 캡처하는 오디오 데이터를 처리한다. 다른 구현에서는 인식된 텍스트를 생성하기 위해 오디오 데이터를 처리하는 대신, 어시스턴트 클라이언트 장치는 직접 타이핑(예: 가상 키보드 사용)하거나 하드웨어 또는 소프트웨어 버튼 누름에 따라(예: "dim the lights"라는 텍스트가 "dim"이라고 표시된 그래픽 소프트웨어 버튼에 매핑됨) 제공되는 텍스트를 기반으로 텍스트를 식별할 수 있다.
블록 604에서, 어시스턴트 클라이언트 장치는 텍스트가 로컬 캐시 엔트리와 일치(매칭)하는지 여부를 결정한다. 만약 그렇다면, 클라이언트 장치는 블록 606으로 진행하고, 매칭하는 로컬 캐시 엔트리로부터의 의미론적 표현(들)을 선택한다. 블록 608에서, 시스템은 의미론적 표현(들)을 사용한다. 블록 608은 서브블록(608A 및/또는 608B)를 포함할 수 있다. 서브블록(608A)에서, 클라이언트 장치는 로컬 제어1 명령(들)을 생성하기 위해, 로컬적으로 해석 가능한 의미론적 표현인 상기 선택된 의미론적 표현 중 임의의 것을 로컬적으로 처리하고, 로컬 제어 명령(들)을 생성하여 그 제어 명령(들)을 로컬 채널(들)을 통해 전송한다. 서브블록(608B)에서, 클라이언트 장치는 클라우드 의미론적 표현인 상기 선택된 의미론적 표현 중 임의의 것을 원격 시스템으로 전송한다. 예를 들어, 이는 방법(800)(아래에 설명되는 도 8)의 블록(812 및 814)을 수행할 수 있는 원격 시스템으로 전송될 수 있다. 일부 구현들에서 블록(606)은 어시스턴트 클라이언트 장치가 로컬 캐시 엔트리에 포함된 임의의 응답 콘텐츠를 렌더링하는 서브블록과 같은 추가 서브블록(들)을 포함할 수 있다. 예를 들어, 로컬 캐시 엔트리는 응답 텍스트를 포함할 수 있으며, 어시스턴트 클라이언트 장치는 응답 텍스트에 대해 로컬 TTS 처리를 수행하고 결과적으로 합성된 음성을 청각적으로 렌더링할 수 있다. 다른 예로서, 로컬 캐시 엔트리는 추가로 또는 대안적으로 응답 그래픽(들)을 포함할 수 있고, 그래픽(들)은 어시스턴트 클라이언트 장치의 디스플레이에서 시각적으로 렌더링될 수 있다.
블록 604에서의 결정이 아니오인 경우, 어시스턴트 클라이언트 장치는 선택적 블록(610)으로 진행하고 텍스트가 로컬 NLU(예를 들어, 로컬 NLU 엔진 및 로컬 모델(들)을 사용하여)로 분석가능한지(resolvable) 여부를 결정한다. 그렇다면, 시스템은 블록(612)으로 진행하여 의미론적 표현(들)(로컬적으로 해석 가능한 및/또는 클라우드)을 생성한 다음 블록(608)으로 진행하여 생성된 의미론적 표현(들)을 사용한다.
블록(610)에서의 결정이 아니오인 경우(또는 604에서의 결정이 아니오이고 610이 생략되면), 클라이언트 장치는 블록 614로 진행하여 오디오 데이터 및/또는 텍스트를 원격 어시스턴트 시스템으로 전송한다. 선택적으로, 블록(614)은 블록(604 및/또는 610)의 수행 전 및/또는 수행 중에 발생할 수 있으며, 원격 시스템에서의 추가 처리(프로세싱)는 블록(604 및 610) 중 하나에서 "예" 결정에 응답하여 선택적으로 중지된다(예: 클라이언트 장치에서 전송 중지에 응답). 예를 들면, 블록(614)가 블록(604 및/또는 610)의 수행 전 및/또는 수행 중에 발생하고 어시스턴트 클라이언트 장치가 블록(604 및/또는 610)에서 "예" 결정을 내리면, 원격 어시스턴트 시스템에 전송된 오디오 데이터 및/또는 텍스트와 관련된 추가 처리를 중지하도록 원격 어시스턴트 시스템에 중지 요청을 전송할 수 있다. 이러한 방식 및 다른 방식으로, 블록(604 및/또는 610)에서의 결정이 "아니오"이면 대기시간을 줄이기 위해 원격 어시스턴트 시스템에서의 처리가 더 빨리 시작될 수 있으며, 또한 결정이 "예"인 경우 이러한 처리를 중지하여 원격 어시스턴트 시스템 리소스를 절약할 수 있다.
블록(616)에서, 클라이언트 장치는 원격 어시스턴트 시스템으로부터 텍스트에 대한 의미론적 표현(들) 및 선택적으로 텍스트 자체(및/또는 그 표현)를 포함하는 캐시 요청을 수신한다. 블록(616)은 선택적으로 서브블록(616A)을 포함하며, 여기서 어시스턴트 클라이언트 장치는 캐시 요청(또는 별도의 전송)의 하나 이상의 로컬적으로 해석 가능한 의미론적 표현(들)을 처리하기 위해 선택적으로 블록(608A)으로 진행한다. 달리 말하면, 블록(616)에서 어시스턴트 클라이언트 장치는 캐시 요청의 임의의 로컬 해석 가능한 의미론적 표현(들)에 즉시 작용하여 현재 음성 또는 다른 현재 사용자 입력에 응답하는 임의의 로컬 스마트 장치 동작(들)을 실행할 수 있다.
블록(618)에서, 클라이언트 장치는 캐시 요청 수신에 응답하여 캐시 요청의 의미론적 표현(들)에 대한 텍스트의 매핑을 포함하는 캐시 엔트리를 로컬 캐시에 저장한다.
블록(618)은 선택적으로 블록(618) 근처에서 또는 나중에 발생할 수 있는 서브블록(618A)을 포함한다. 서브블록(618A)에서, 클라이언트 장치는 선택적으로 호출-프리 액션(invocation-free action)을 위해 캐시 엔트리의 텍스트를 할당한다. 예를 들어, 클라이언트 장치는 여기에 설명된 바와 같이 텍스트를 "핫 문구(hot phrase)"로 할당 할 수 있다. 텍스트를 "핫 문구"로 지정하는 것은 선택적으로 하나 이상의 기준이 충족되는지 결정하는 것을 기반으로 할 수 있다. 인식된 텍스트가 명시적인 자동 어시스턴트 호출과 독립적으로 발생하는 오디오 데이터의 온-디바이스(on-device) 음성 인식에서 핫 문구와 매칭하는 것으로 결정되면, 어시스턴트 클라이언트 장치는 텍스트(예를 들어, 대응하는 캐시 엔트리의 의미론적 표현(들)에 기초한 액션(들))에 기초하여 하나 이상의 대응하는 액션(동작)(들)을 자동으로 시작할 수 있다.
도 7은 본 명세서에 개시된 다양한 구현에 따른, 어시스턴트 클라이언트 장치의 하나 이상의 프로세서에 의해 구현될 수 있는 다른 예시적인 방법(700)을 예시하는 흐름도이다. 방법(700)은 텍스트가 캐시 엔트리의 텍스트와 매칭하고(즉, 도 6의 블록 604에서 "예") 그리고 캐시 엔트리의 의미론적 표현(들)이 로컬적으로 해석 가능한 의미론적 표현(들)을 포함하는, 도 6의 방법(600)의 특정 구현을 예시한다.
블록(702)에서, 어시스턴트 클라이언트 장치는 음성 발화에 대해 인식된 텍스트를 생성하기 위해 음성 발화를 캡처하는 오디오 데이터를 처리한다. 다른 구현에서, 인식된 텍스트를 생성하기 위해 오디오 데이터를 처리하는 대신, 어시스턴트 클라이언트 장치는 직접 타이핑한 텍스트(예: 가상 키보드 사용) 또는 하드웨어 또는 소프트웨어 버튼(예 : "dim the lights"라는 텍스트가 "dim"이라고 표시된 그래픽 소프트웨어 버튼에 매핑됨) 누름에 따라 제공되는 텍스트를 식별할 수 있다.
블록(704)에서, 어시스턴트 클라이언트 장치는 텍스트가 캐시 엔트리의 텍스트와 매칭한다고 결정한다. 블록(704)는 선택적으로 서브블록(704A)을 포함하고, 클라이언트 장치는 텍스트가 호출-프리 액션에 (예 : 어시스턴트 클라이언트 장치에서) 할당되었는지 선택적으로 결정한다. 예를 들어, 블록(702)의 처리(프로세싱)가 명시적인 자동 어시스턴트 호출없이 발생하는 경우, 블록(704A)가 선택적으로 수행될 수 있다. 또한 이러한 예에서, 방법(700)의 하나 이상의 후속 블록은 텍스트가 호출-프리 액션에 할당(예를 들어, 클라이언트 장치에서 로컬로)된 것으로 결정되는 경우에만 수행될 수 있다. 달리 말하면, 블록(702)의 처리가 명시적인 자동 어시스턴트 호출없이 발생하고 텍스트가 호출-프리 액션에 할당되지 않는 것으로 결정될 때 블록(704A)가 수행될 수 있다. 텍스트에 기초하여 방법(700)의 추가 블록을 수행하지 않고 폐기될 수 있는 반면, 텍스트가 호출-프리액션에 할당되는 것으로 결정되면 방법(700)의 추가 블록이 텍스트에 기초하여 수행될 것이다.
블록(706)에서, 클라이언트 장치는 캐시 엔트리에서, 캐시 엔트리의 텍스트에 매핑되는 것에 기초하여 로컬적으로 해석 가능한 의미론적 표현을 선택한다.
블록(708)에서, 클라이언트 장치는 로컬적으로 해석 가능한 의미론적 표현의 상태 변화가 현재-상태 종속 상태 변화인지 여부를 결정한다. 그렇지 않은 경우, 클라이언트 장치는 블록(712)로 진행하여 로컬적으로 해석 가능한 의미론적 표현의 상태 변화를 사용한다. 예를 들어, 상태 변화가 고정 값을 나타내면 그 고정 값을 상태 변화로 활용할 수 있다. 블록(708)에서의 결정이 "예"이면, 클라이언트 장치는 블록(710)으로 진행하고 현재 상태 값(들)에 기초하여 상태 변화를 분석(resolve)한다. 예를 들어, 상태 변화가 현재 상태에 따라 달라지는 경우, 하나 이상의 스마트 장치의 현재 상태를 식별한 다음 식별된 현재 상태(들)에 따라 상태 변화를 결정하여 분석(resolve)할 수 있다. 예를 들어, 상태 변화가 "set point(설정 포인트) = (current temperature + 3 degrees)(현재 온도 + 3도)"이면, "현재 온도"를 식별하여 분석(해결)(resolve)될 수 있다.
블록(712)에서, 클라이언트 장치는 상태 변화를 사용하고 선택적으로 캐시 엔트리에 기반하여 식별된 어댑터를 사용하여 로컬 제어 명령(들)을 생성한다.
블록(714)에서, 클라이언트 장치는 캐시 엔트리를 기반으로 선택적으로 선택되는(예: 캐시 엔트리에서 명시적으로 식별되거나 프로토콜 제품군, 스마트 장치 및/또는 캐시 엔트리에서 식별된 라디오/채널을 기반으로 선택됨) 로컬 채널을 통해 로컬 명령(들)을 전송한다. 전송된 로컬 명령(들)은 로컬적으로 해석 가능한 의미론적 표현에서 식별되거나 그로부터 분석가능한(resolvable) 주소에 기초하여 스마트 장치(들)로 어드레싱될 수 있다.
블록(718)에서, 클라이언트 장치는 캐시 엔트리에 처리되지 않은 추가 의미론적 표현이 있는지 결정한다. 그렇지 않은 경우, 클라이언트 장치는 블록(720)으로 진행하고 방법(700)이 종료된다. 그렇다면, 클라이언트 장치는 블록(722)로 진행하여 다음 처리되지 않은 의미론적 표현이 로컬적으로 해석 가능한지 여부를 결정한다. 그렇다면, 클라이언트 장치는 블록(708)로 되돌아간다. 그렇지 않은 경우(즉, 클라우드 의미론적 표현이면), 클라이언트 장치는 도 6의 방법(600)의 블록(608B)로 진행한 후, 블록(608B)을 수행한 후 블록(718)으로 되돌아 간다.
도 8은 본 명세서에 개시된 다양한 구현에 따른 원격 어시스턴트 시스템의 하나 이상의 프로세서에 의해 구현될 수 있는 예시적인 방법(800)을 예시하는 흐름도이다.
블록(802)에서, 시스템은 어시스턴트 클라이언트 장치로부터 요청을 수신한다. 블록(804)에서, 시스템은 요청이 의미론적 클라우드 표현인지를 결정한다. 그렇다면, 시스템은 방법(800)의 다른 블록을 수행하지 않고 방법(800)의 블록(812 및 814)(후술됨)을 수행한다.
그렇지 않다면, 시스템은 블록(808)으로 진행하고 요청에서 음성 발화의 표현에 기초하여 발화의 의미론적 표현(들)을 생성한다. 다른 구현에서, 표현(들)은 타이핑된 발화 또는 하드웨어 요소 또는 소프트웨어 그래픽 요소의 눌림(프레스)에 매핑된 텍스트일 수 있다.
선택적 블록(810)에서, 시스템은 요청에 응답하여 어시스턴트 클라이언트 장치에서 렌더링하기 위한 확인 콘텐츠를 생성한다.
선택적 블록(812)에서, 시스템은 요청에 기초하여 생성된 클라우드 의미론적 표현에 기초하여 제어 요청(들)을 생성한다. 선택적 블록(812)은 선택적 블록(812A)을 포함할 수 있으며, 여기서 시스템은 의미론적 표현의 상태 표현이 상대적/현재 상태-의존적 상태 표현인 경우 스마트 장치(들)의 현재 상태(들)에 기반하여 제어 요청(들)을 생성한다.
선택적 블록(814)에서, 시스템은 생성된 제어 요청(들)을 스마트 장치 원격 시스템(들)으로 전송한다.
블록(816)에서, 시스템은 의미론적 표현(로컬적으로 해석 가능한 및/또는 클라우드)을 포함하고 선택적으로 의미론적 표현(들)에 대한 텍스트의 매핑을 포함하는 캐시 요청을 생성한다.
블록(818)에서, 시스템은 어시스턴트 클라이언트 장치로 캐시 요청을 전송한다. 블록(818)은 선택적으로 서브블록(818A)을 포함하며, 여기서 시스템은 캐시 요청의 의미론적 표현이 로컬적으로 해석 가능한 의미론적 표현인 경우, 선택적으로 현재 요청에 응답하여 로컬적으로 해석 가능한 의미론적 표현의 구현을 위한 별도의 요청을 생성한다.
도 9는 본 명세서에 설명된 기술의 하나 이상의 양태를 수행하기 위해 선택적으로 이용될 수 있는 예시적인 컴퓨팅 장치(910)의 블록도이다. 컴퓨팅 장치(910)는 일반적으로 버스 서브시스템(912)을 통해 다수의 주변 장치와 통신하는 적어도 하나의 프로세서(914)를 포함한다. 이러한 주변 장치는 예를 들어 메모리 서브시스템(925) 및 파일 저장 서브시스템(926), 사용자 인터페이스 출력 장치(920), 사용자 인터페이스 입력 장치(922) 및 네트워크 인터페이스 서브시스템(916)을 포함하는 저장 서브시스템(924)을 포함할 수 있다. 입력 및 출력 장치는 컴퓨팅 장치(910)와 사용자 상호 작용을 허용한다. 네트워크 인터페이스 서브시스템(916)은 외부 네트워크에 대한 인터페이스를 제공하고 다른 컴퓨팅 장치의 대응하는 인터페이스 장치에 연결된다.
사용자 인터페이스 입력 장치(922)는 키보드; 마우스, 트랙볼, 터치패드 또는 그래픽 태블릿과 같은 포인팅 장치; 스캐너; 디스플레이에 통합된 터치 스크린; 음성 인식 시스템, 마이크로폰과 같은 오디오 입력 장치 및/또는 다른 유형의 입력 장치를 포함할 수 있다. 일반적으로, "입력 장치"라는 용어의 사용은 모든 가능한 유형의 장치 및 컴퓨팅 장치(910) 또는 통신 네트워크에 정보를 입력하는 방법을 포함하도록 의도된다.
사용자 인터페이스 출력 장치(920)는 디스플레이 서브시스템, 프린터, 팩스 기계, 또는 오디오 출력 장치와 같은 비-시각적 디스플레이를 포함할 수 있다. 디스플레이 서브시스템은 음극선 관(CRT), 액정 디스플레이(LCD)와 같은 평판 장치, 프로젝션 장치, 또는 가시적 이미지를 생성하기 위한 다른 메커니즘을 포함할 수 있다. 디스플레이 서브시스템은 또한 오디오 출력 장치를 통해 비-시각적 디스플레이를 제공할 수 있다. 일반적으로, 용어 "출력 장치"의 사용은 모든 가능한 유형의 장치 및 컴퓨팅 장치(910)로부터 사용자 또는 다른 기계 또는 컴퓨팅 장치로 정보를 출력하는 방법을 포함하도록 의도된다.
저장 서브시스템(924)은 여기에 설명된 모듈의 일부 또는 전부의 기능을 제공하는 프로그래밍 및 데이터 구조를 저장한다. 예를 들면, 저장(스토리지) 서브시스템(924)은 여기에 설명된 하나 이상의 방법의 선택된 양태를 수행하기 위한 로직을 포함할 수 있다.
이러한 소프트웨어 모듈은 일반적으로 프로세서(914)에 의해 단독으로 또는 다른 프로세서와 결합하여 실행된다. 저장 서브시스템(924)에서 사용되는 메모리(925)는 프로그램 실행 동안 명령어 및 데이터를 저장하기 위한 주 랜덤 액세스 메모리(RAM)(930) 및 고정 명령어가 저장되는 읽기 전용 메모리(ROM)(932)를 포함하는 다수의 메모리를 포함할 수 있다. 파일 저장 서브시스템(926)은 프로그램 및 데이터 파일을 위한 영구 저장소를 제공할 수 있으며, 하드 디스크 드라이브, 플로피 디스크 드라이브와 관련된 이동식 미디어, CD-ROM 드라이브, 광학 드라이브 또는 이동식 미디어 카트리지를 포함할 수 있다. 특정 구현의 기능을 구현하는 모듈은 저장 서브시스템(924)의 파일 저장 서브시스템(926)에 의해 또는 프로세서(들)(914)에 의해 액세스 가능한 다른 기계에 저장될 수 있다.
버스 서브시스템(912)은 컴퓨팅 장치(910)의 다양한 컴포넌트 및 서브시스템이 의도 한대로 서로 통신하게 하는 메커니즘을 제공한다. 버스 서브시스템(912)이 단일 버스로 개략적으로 도시되어 있지만, 버스 서브시스템의 대안적인 구현은 다중 버스를 사용할 수 있다.
컴퓨팅 장치(910)는 워크 스테이션, 서버, 컴퓨팅 클러스터, 블레이드 서버, 서버 팜, 또는 임의의 다른 데이터 처리 시스템 또는 컴퓨팅 장치를 포함하는 다양한 유형일 수 있다. 컴퓨터 및 네트워크의 끊임없이 변화하는 특성으로 인해, 도 9에 도시된 컴퓨팅 장치(910)의 설명은 일부 구현을 설명하기 위한 특정 예로서만 의도된다. 컴퓨팅 장치(910)의 많은 다른 구성이 도 9에 도시된 컴퓨팅 장치보다 더 많거나 적은 컴포넌트를 가질 수 있다.
여기에서 설명된 특정 구현이 사용자에 대한 개인 정보(예: 다른 전자 통신에서 추출된 사용자 데이터, 사용자의 소셜 네트워크에 대한 정보, 사용자의 위치, 사용자의 시간, 사용자의 생체 정보, 사용자의 활동 및 인구 통계 정보, 사용자 간의 관계 등)를 수집하거나 사용할 수있는 상황에서, 사용자에게는 정보 수집 여부, 개인 정보 저장 여부, 개인 정보 사용 여부 및 사용자에 대한 정보 수집, 저장 및 사용 방법을 제어할 수 있는 하나 이상의 기회가 제공된다. 즉, 여기에 설명된 시스템 및 방법은 관련 사용자로부터 명시적인 승인을 받은 경우에만 사용자 개인 정보를 수집, 저장 및/또는 사용한다.
일부 구현에서, 원격 어시스턴트 시스템에서 및 어시스턴트 클라이언트 장치로부터 어시스턴트 클라이언트 장치에서 캡처된 음성 발화의 표현을 수신하는 단계를 포함하는 방법이 제공된다. 음성 발화는 어시스턴트 클라이언트 장치와 연결된 하나 이상의 스마트 장치의 하나 이상의 상태와 관련된 요청이다. 일례로, 요청은 스마트 장치(들)의 상태(들)를 변경하기 위한 요청일 수 있다(즉, 상태(들)가 현재 상태 값(들)에서 새로운 상태 값(들)로 전환되도록 함)). 음성 발화의 표현은 클라이언트 장치에 로컬적으로 저장된 STT(speech-to-text) 모델을 사용하여 클라이언트 장치에서 생성되는 음성 발화 및/또는 그 음성 발화의 텍스트를 캡처하는 오디오 데이터를 포함한다. 방법은, 원격 시스템에서, 음성 발화의 표현을 수신하는 것에 응답하여: 음성 발화의 표현에 기초하여, 발화의 의미론적 표현을 생성하는 단계; 음성 발화의 의미론적 표현에 기초하여, 하나 이상의 스마트 장치를 제어하는 하나 이상의 스마트 장치 원격 시스템으로 전송하기 위한 하나 이상의 제어 요청을 생성하는 단계 -적어도 하나의 제어 요청은 의미론적 표현과는 다르며-; 상기 적어도 하나의 스마트 장치 원격 시스템이 상기 하나 이상의 스마트 장치에 하나 이상의 대응하는 명령을 제공하도록 상기 적어도 하나의 스마트 장치 원격 시스템에 상기 적어도 하나의 제어 요청을 전송하는 단계; 그리고 의미론적 표현을 포함하는 캐시 요청을 어시스턴트 클라이언트 장치로 전송하는 단계를 더 포함한다. 캐시 요청을 어시스턴트 클라이언트 장치로 전송하면 어시스턴트 클라이언트 장치가 어시스턴트 클라이언트 장치의 캐시에 의미론적 표현에 대한 텍스트의 매핑을 포함하는 캐시 엔트리를 저장한다.
기술의 이들 및 다른 구현은 선택적으로 다음 기능 중 하나 이상을 포함할 수 있다.
일부 구현에서, 방법은, 캐시 요청을 어시스턴트 클라이언트 장치로 전송한 후: 어시스턴트 클라이언트 장치에서 추가 음성 발화를 캡처하는 추가 오디오 데이터를 캡처하는 단계; 어시스턴트 클라이언트 장치에 로컬적으로 저장된 STT 모델을 사용하여, 추가 음성 발화에 대응하는 현재 텍스트를 생성하도록 추가 오디오 데이터를 처리하는 단계; 현재 텍스트가 캐시 엔트리의 텍스트와 매칭하는지 결정하는 단계; 그리고 현재 텍스트가 캐시 엔트리의 텍스트와 매칭한다는 결정에 대한 응답하여 그리고 의미론적 표현에 대한 텍스트의 매핑을 포함하는 캐시 엔트리에 응답하여: 의미론적 표현을 원격 어시스턴트 시스템으로 전송하는 단계를 더 포함한다. 이러한 구현 중 일부에서, 현재 텍스트를 생성하기 위해 추가 오디오 데이터를 처리하는 것은 어시스턴트 클라이언트 장치에서 명시적인 자동 어시스턴트 호출의 검출없이 수행된다. 이러한 구현의 일부 버전에서, 의미론적 표현을 원격 어시스턴트 시스템으로 전송하는 것은 현재 텍스트가 어시스턴트 클라이언트 장치에서 명시적인 자동 어시스턴트 호출없이 작동되는 텍스트 매칭을 가능하게 하기 위한 하나 이상의 기준을 만족한다는 결정에 더 응답한다. 일부 추가 또는 대체 버전에서, 방법은, 원격 어시스턴트 시스템에서, 어시스턴트 클라이언트 장치로부터 전송된 의미론적 표현을 수신하는 단계; 의미론적 표현에 기초하여, 하나 이상의 스마트 장치를 제어하는 적어도 하나의 스마트 장치 원격 시스템으로 전송하기 위한 적어도 하나의 대체 제어 요청을 생성하는 단계 -상기 적어도 하나의 대체 제어 요청은 상기 적어도 하나의 제어 요청과 다름-; 그리고 적어도 하나의 스마트 장치 원격 시스템이 하나 이상의 스마트 장치의 하나 이상의 상태를 변경하게 하기 위해 적어도 하나의 대체 제어 요청을 적어도 하나의 스마트 장치 원격 시스템에 전송하는 단계를 더 포함한다. 선택적으로 이러한 대체 또는 추가 구현에서, 상기 적어도 하나의 제어 요청을 생성하는 것은 상기 적어도 하나의 제어 요청을 생성할 때 상기 하나 이상의 스마트 장치의 적어도 하나의 현재 상태에 더 기초하고; 상기 적어도 하나의 대체 제어 요청을 생성하는 것은 상기 적어도 하나의 대체 제어 요청을 생성하는 상이한 시간에 상기 하나 이상의 스마트 장치의 적어도 하나의 대체 현재 상태에 더 기초하고; 그리고 적어도 하나의 대체 제어 요청은 적어도 하나의 대체 현재 상태와는 다른 적어도 하나의 현재 상태에 기초하여 적어도 하나의 제어 요청과는 다르다.
일부 구현에서, 음성 발화의 의미론적 표현을 생성하는 것은 어시스턴트 클라이언트 장치의 계정에 대한 장치 토폴로지에 더 기초하고, 상기 장치 토폴로지는 어시스턴트 클라이언트 장치, 하나 이상의 스마트 장치, 추가 어시스턴트 클라이언트 장치 및 추가 스마트 장치를 정의(define)한다. 이러한 구현 중 일부에서, 장치 토폴로지에 더 기초하여 음성 발화의 의미론적 표현을 생성하는 것은, 장치 토폴로지를 기반으로, 음성 발화의 텍스트에서 모호한 용어가 하나 이상의 스마트 장치를 참조한다고 분석(resolving)하는 것을 포함한다.
일부 구현에서, 의미론적 표현은, 하나 이상의 상태 변화의 상태 변화 표현; 그리고 하나 이상의 스마트 장치 각각에 대한 해당 고유 식별자를 포함한다. 이러한 구현의 일부 버전에서, 상기 상태 변화 표현은 절대적인 방식이 아니라 상대적인 방식으로 하나 이상의 상태 변화를 정의하는 상대적 상태 변화 표현이다. 이러한 구현의 일부 추가 또는 대체 버전에서, 상기 방법은, 원격 어시스턴트 시스템 또는 어시스턴트 클라이언트 장치에서, 장치 토폴로지에 대한 변경을 결정하는 단계; 그리고 장치 토폴로지에 대한 변경을 결정하는 것에 응답하여: 캐시 엔트리가 어시스턴트 장치의 캐시에서 삭제되도록 하는 단계를 더 포함한다. 장치 토폴로지에 대한 변경을 결정하는 단계는, 상기 변경이, 어시스턴트 클라이언트 장치, 하나 이상의 스마트 장치, 및/또는 어시스턴트 클라이언트 장치 및/또는 하나 이상의 스마트 장치에 할당된 하나 이상의 룸에 대해, 장치 토폴로지에서 정의된 하나 이상의 속성에 대한 것이라고 결정하는 단계를 포함하며, 캐시 엔트리가 캐시로부터 제거되도록 하는 것은 캐시 엔트리가 하나 이상의 속성에 의해 영향을 받는다는 결정에 더 응답한다.
일부 구현에서, 상기 방법은 원격 어시스턴트 시스템에서, 추가 어시스턴트 클라이언트 장치로부터 음성 발화의 추가 표현을 수신하는 단계를 더 포함한다. 상기 음성 발화는 추가 어시스턴트 클라이언트 장치에서 캡처되고, 추가 어시스턴트 클라이언트 장치 및 어시스턴트 클라이언트 장치는 모두 공통 장치 토폴로지의 멤버이다. 일부 구현에서, 상기 방법은, 원격 시스템에서, 음성 발화의 추가 표현을 수신하는 것에 응답하여: 음성 발화의 표현에 기초하여 음성 발화의 대체 의미론적 표현을 생성하는 단계 -상기 음성 발화의 대체 의미론적 표현은 추가 어시스턴트 클라이언트 장치에서 캡처되는 추가 표현 및 어시스턴트 클라이언트 장치에서 캡처되는 표현에 기초한 의미론적 표현과는 상이함-; 그리고 대체 의미론적 표현을 포함하는 추가 캐시 요청을 추가 어시스턴트 클라이언트 장치로 전송하는 단계를 더 포함한다. 상기 추가 캐시 요청을 상기 추가 어시스턴트 클라이언트 장치로 전송하는 것은 상기 추가 어시스턴트 클라이언트 장치로 하여금 상기 추가 어시스턴트 클라이언트 장치상의 추가 캐시에, 대체 의미론적 표현에 대한 텍스트의 매핑을 포함하는 추가 캐시 엔트리를 저장하게 한다.
일부 구현에서, 원격 어시스턴트 시스템에서, 어시스턴트 클라이언트 장치로부터 어시스턴트 클라이언트 장치에서 캡처된 음성 발화의 표현을 수신하는 단계를 포함하는 방법이 제공된다. 상기 음성 발화는 어시스턴트 클라이언트 장치와 연결된 소정의 스마트 장치의 적어도 소정의 상태를 변경하기 위한 요청이다. 상기 음성 발화의 표현은 클라이언트 장치에 로컬적으로 저장된 STT(speech-to-text) 모델을 이용하여 클라이언트 장치에서 생성되는 음성 발화의 텍스트 및/또는 음성 발화를 캡처하는 오디오 데이터를 포함한다. 상기 방법은, 원격 시스템에서 음성 발화의 표현을 수신하는 것에 응답하여: 소정의 스마트 장치가 어시스턴트 클라이언트 장치 및/또는 어시스턴트 클라이언트 장치에 대한 로컬 연결을 갖는 추가 클라이언트 장치에 의해 로컬적으로(locally) 제어 가능하다고 결정하는 단계; 로컬적으로 해석 가능한 의미론적 표현을 포함하는 음성 발화의 의미론적 표현을 생성하는 단계; 그리고 시맨틱 표현을 포함하는 캐시 요청을 어시스턴트 클라이언트 장치로 전송하는 단계를 더 포함한다. 로컬적으로 해석 가능한 의미론적 표현은 어시스턴트 클라이언트 장치 및/또는 추가 클라이언트 장치에 의해 로컬적으로 해석 가능하여, 로컬 채널을 통해 전송 가능한 해당 제어 명령을 생성하여 적어도 소정의 스마트 장치의 소정의 상태를 변경하도록 한다. 상기 적어도 하나의 스마트 장치에 대한 로컬적으로 해석 가능한 의미론적 표현을 생성하는 단계는 소정의 스마트 장치가 로컬적으로 제어 가능하다는 결정에 응답하여 의미론적 표현에 로컬적으로 해석 가능한 의미론적 표현을 포함하는 단계를 포함한다. 상기 캐시 요청을 상기 어시스턴트 클라이언트 장치로 전송하는 것은 상기 어시스턴트 클라이언트 장치가 상기 어시스턴트 클라이언트 장치상의 캐시에, 상기 의미론적 표현에 대한 텍스트의 매핑을 포함하는 캐시 엔트리를 저장하게 한다.
기술의 이들 및 다른 구현은 선택적으로 다음 특징 중 하나 이상을 포함할 수 있다.
일부 구현에서, 상기 방법은, 캐시 요청을 어시스턴트 클라이언트 장치로 전송한 후: 어시스턴트 클라이언트 장치에서 추가 음성 발화를 캡처하는 추가 오디오 데이터를 캡처하는 단계; 어시스턴트 클라이언트 장치에 로컬적으로 저장된 VTT( voice-to-text) 모델을 사용하여 추가 음성 발화에 대응하는 현재 텍스트를 생성하기 위해 추가 오디오 데이터를 처리하는 단계; 현재 텍스트가 캐시 엔트리의 텍스트와 매칭한다고 결정하는 단계; 그리고 현재 텍스트가 캐시 엔트리의 텍스트와 매칭한다는 결정에 응답하여 그리고 의미론적 표현에 대한 텍스트의 매핑을 포함하는 캐시 엔트리에 응답하여: 어시스턴트 클라이언트 장치에서, 소정의 제어 명령을 생성하기 위해 로컬적으로 해석 가능한 의미론적 표현을 처리하는 단계; 그리고 로컬 채널을 통해 소정의 제어 명령을 전송하여 적어도 소정의 스마트 장치의 소정의 상태를 변경하도록 하는 단계를 더 포함한다. 이러한 구현의 일부 버전에서, 로컬적으로 해석 가능한 의미론적 표현은, 소정의 스마트 장치의 식별자; 그리고 소정의 스마트 장치의 소정의 상태에 대한 해당 현재 값에 대해, 적어도 소정의 스마트 장치의 소정의 상태의 변경을 정의하는 현재-상태 종속 상태 변화 표현을 포함한다. 일부 버전에서, 소정의 제어 명령을 생성하기 위해 로컬적으로 해석 가능한 의미론적 표현을 처리하는 단계는, 어시스턴트 클라이언트 장치에서, 소정의 스마트 장치의 소정의 상태에 대한 현재 값을 결정하는 단계; 현재 값을 현재-상태 종속 상태 변화 표현에 적용하는 것에 기초하여 소정의 제어 명령을 생성하는 단계를 포함한다. 선택적으로, 로컬적으로 해석 가능한 의미론적 표현은 스마트 장치의 제조업체의 표시를 더 포함하고; 소정의 제어 명령을 생성하는 단계는 스마트 장치의 제조업체의 표시에 할당되는 어댑터에 응답하여, 어시스턴트 클라이언트 장치에 로컬적으로 저장된 어댑터를 이용하는 단계를 더 포함한다. 선택적으로, 상기 방법은, 로컬적으로 해석 가능한 의미론적 표현에서 직접 또는 간접적으로 표시되는 로컬 채널에 기초하여 소정의 제어 명령을 전송하기 위한 로컬 채널을 선택하는 단계를 더 포함한다. 예를 들어, 로컬 채널이 로컬적으로 해석 가능한 의미론적 표현에 포함된 스마트 장치의 제조업체의 표시에 할당되거나 로컬적으로 해석 가능한 의미론적 표현에 포함된 프로토콜 제품군에 할당되는 것에 기초한다.
일부 구현에서, 현재 텍스트를 생성하기 위해 추가 오디오 데이터를 처리하는 것은 어시스턴트 클라이언트 장치에서 명시적인 자동 어시스턴트 호출의 검출없이 수행된다. 이러한 구현 중 일부에서, 상기 소정의 제어 명령을 전송하는 것은 현재 텍스트가 어시스턴트 클라이언트 장치에서 명시적인 자동 어시스턴트 호출없이 작동되는 텍스트 매칭을 가능하게 하기 위한 하나 이상의 기준을 만족한다는 결정에 더 응답한다.
일부 구현에서, 음성 발화의 의미론적 표현을 생성하는 것은 어시스턴트 클라이언트 장치의 계정에 대한 장치 토폴로지에 더 기초한다. 장치 토폴로지는 어시스턴트 클라이언트 장치, 소정의 스마트 장치, 추가 어시스턴트 클라이언트 장치 및 추가 스마트 장치를 정의한다. 이러한 구현 중 일부에서, 상기 음성 발화의 의미론적 표현을 생성하는 단계는, 음성 발화의 텍스트에서 모호한 용어가 소정의 스마트 장치를 참조한다고 분석(resolving)하는 것을 포함한다.
일부 구현에서, 상기 방법은, 원격 어시스턴트 시스템에서, 어시스턴트 클라이언트 장치로부터 장치 토폴로지에 대한 변경(alteration)을 결정하는 단계; 그리고 장치 토폴로지에 대한 변경을 결정하는 것에 응답하여: 어시스턴트 클라이언트 장치의 캐시에서 캐시 엔트리가 삭제되도록 하는 단계를 더 포함한다. 이러한 구현 중 일부에서, 장치 토폴로지에 대한 변경을 결정하는 단계는, 상기 변경이, 어시스턴트 클라이언트 장치, 소정의 스마트 장치 및/또는, 어시스턴트 클라이언트 장치 및/또는 소정의 스마트 장치에 할당된 하나 이상의 룸(room)에 대해, 장치 토폴로지에서 정의된 하나 이상의 속성에 대한 것이라고 결정하는 단계를 포함하며, 캐시 엔트리가 캐시로부터 제거되도록 하는 것은 캐시 엔트리가 하나 이상의 속성에 의해 영향을 받는다는 결정에 더 응답한다.
일부 구현에서, 클라이언트 장치의 캐시에, 의미론적 표현에 대한 텍스트 매핑을 포함하는 캐시 엔트리를 저장하는 단계를 포함하는 방법이 제공된다. 상기 의미론적 표현은 클라이언트 장치에 의해 로컬적으로 해석 가능한 의미론적 표현을 포함한다. 상기 방법은 클라이언트 장치에서, 음성 발화를 캡처하는 추가 오디오 데이터를 캡처하는 단계를 더 포함한다. 상기 방법은 클라이언트 장치에 로컬적으로 저장된 VTT(voice-to-text) 모델을 사용하여, 추가 오디오 데이터를 처리하여 음성 발화에 대응하는 현재 텍스트를 생성하는 단계를 더 포함한다. 상기 방법은 현재 텍스트가 캐시 엔트리의 텍스트와 매칭한다는 결정에 응답하여 그리고 의미론적 표현에 대한 텍스트의 매핑을 포함하는 캐시 엔트리에 응답하여: 클라이언트 장치에서, 소정의 제어 명령을 생성하기 위해 로컬적으로 해석 가능한 의미론적 표현을 처리하는 단계; 그리고 로컬 채널을 통해 소정의 제어 명령을 전송하여 적어도 소정의 스마트 장치의 소정의 상태를 변경하도록 하는 단계를 더 포함한다.

Claims (20)

  1. 클라이언트 장치의 하나 이상의 프로세서에 의해 구현되는 방법으로서,
    의미론적 표현에 대한 텍스트의 매핑을 포함하는 캐시 엔트리를 클라이언트 장치의 캐시에 저장하는 단계 -상기 의미론적 표현은 상기 클라이언트 장치에 의해 로컬적으로 해석 가능한, 로컬적으로 해석 가능한 의미론적 표현을 포함함-;
    상기 클라이언트 장치에서 음성 발화를 캡처하는 오디오 데이터를 캡처하는 단계 -상기 음성 발화는 클라이언트 장치와 연결된 소정의 스마트 장치의 하나 이상의 상태와 관련된 요청임-;
    상기 클라이언트 장치에 로컬적으로 저장된 VTT(voice-to-text) 모델을 사용하여, 상기 음성 발화에 대응하는 현재 텍스트를 생성하도록 상기 오디오 데이터를 처리하는 단계;
    상기 현재 텍스트가 상기 캐시 엔트리의 텍스트와 매칭한다고 결정하는 단계; 그리고
    상기 현재 텍스트가 상기 캐시 엔트리의 텍스트와 매칭한다고 결정한 것에 대한 응답으로, 그리고 상기 의미론적 표현에 대한 텍스트의 매핑을 포함하는 캐시 엔트리에 대한 응답으로:
    상기 클라이언트 장치에서, 소정의 제어 명령을 생성하도록 상기 로컬적으로 해석 가능한 의미론적 표현을 처리하는 단계 -상기 소정의 제어 명령은, 상기 로컬적으로 해석 가능한 의미론적 표현과는 다르고 그리고 상기 로컬적으로 해석 가능한 의미론적 표현이 상기 소정의 스마트 장치의 현재 상태에 의존하는 상대적 상태 변화 표현이라는 결정에 응답하여 생성됨-; 그리고
    소정의 스마트 장치의 적어도 소정의 상태의 변경을 야기하기 위해 상기 소정의 제어 명령을 로컬 채널을 통해 전송하는 단계를 포함하는 것을 특징으로 하는 클라이언트 장치의 하나 이상의 프로세서에 의해 구현되는 방법.
  2. 제1항에 있어서, 상기 로컬적으로 해석 가능한 의미론적 표현은,
    상기 소정의 스마트 장치의 식별자; 그리고
    상기 소정의 스마트 장치의 소정의 상태에 대한 해당 현재 값에 대해, 상기 소정의 스마트 장치의 적어도 상기 소정의 상태의 변경을 정의하는 현재-상태 종속 상태 변화 표현을 포함하는 것을 특징으로 하는 클라이언트 장치의 하나 이상의 프로세서에 의해 구현되는 방법.
  3. 제2항에 있어서, 상기 소정의 제어 명령을 생성하도록 상기 로컬적으로 해석 가능한 의미론적 표현을 처리하는 단계는,
    상기 클라이언트 장치에서, 소정의 스마트 장치의 소정의 상태에 대한 현재 값을 결정하는 단계;
    상기 현재-상태 종속 상태 변화 표현에 상기 현재 값을 적용하는 것에 기초하여 상기 소정의 제어 명령을 생성하는 단계를 포함하는 것을 특징으로 하는 클라이언트 장치의 하나 이상의 프로세서에 의해 구현되는 방법.
  4. 제3항에 있어서, 상기 소정의 스마트 장치는 스마트 라이트이고, 상기 소정의 상태는 밝기 강도 레벨이고, 상기 현재 값은 현재 밝기 강도 레벨을 반영하는 것을 특징으로 하는 클라이언트 장치의 하나 이상의 프로세서에 의해 구현되는 방법.
  5. 제3항에 있어서, 상기 소정의 스마트 장치는 스마트 온도 조절기이고, 상기 소정의 상태는 온도 설정 포인트이고, 상기 현재 값은 현재 온도 설정 포인트를 반영하는 것을 특징으로 하는 클라이언트 장치의 하나 이상의 프로세서에 의해 구현되는 방법.
  6. 제1항에 있어서, 상기 로컬적으로 해석 가능한 의미론적 표현은 상기 스마트 장치의 제조업체의 표시를 포함하는 것을 특징으로 하는 클라이언트 장치의 하나 이상의 프로세서에 의해 구현되는 방법.
  7. 제6항에 있어서, 상기 소정의 제어 명령을 생성하는 단계는
    상기 스마트 장치의 제조업체의 표시에 할당되는 어댑터에 응답하여, 어시스턴트 클라이언트 장치에 로컬적으로 저장된 어댑터를 이용하는 단계를 포함하는 것을 특징으로 하는 클라이언트 장치의 하나 이상의 프로세서에 의해 구현되는 방법.
  8. 제6항에 있어서, 상기 방법은,
    스마트 장치의 제조업체의 표시에 할당된 로컬 채널에 기초하여, 소정의 제어 명령을 전송하기 위한 로컬 채널을 선택하는 단계를 더 포함하는 것을 특징으로 하는 클라이언트 장치의 하나 이상의 프로세서에 의해 구현되는 방법.
  9. 제1항에 있어서, 현재 텍스트를 생성하도록 오디오 데이터를 처리하는 것은 클라이언트 장치에서 명시적인 자동 어시스턴트 호출의 검출 없이 수행되는 것을 특징으로 하는 클라이언트 장치의 하나 이상의 프로세서에 의해 구현되는 방법.
  10. 제9항에 있어서, 상기 소정의 제어 명령을 전송하는 것은 현재 텍스트가 어시스턴트 클라이언트 장치에서 명시적인 자동 어시스턴트 호출 없이 작동되는 텍스트 매칭을 가능하게 하기 위한 하나 이상의 기준을 만족한다는 결정에 더 응답하는 것을 특징으로 하는 클라이언트 장치의 하나 이상의 프로세서에 의해 구현되는 방법.
  11. 제1항에 있어서, 상기 로컬적으로 해석 가능한 의미론적 표현은 소정의 스마트 장치의 적어도 소정의 상태의 변경을 반영하는 콘텐츠를 포함하고, 상기 방법은,
    상기 현재 텍스트가 상기 캐시 엔트리의 텍스트와 매칭한다는 결정에 대한 응답으로:
    상기 클라이언트 장치에서 상기 콘텐츠를 렌더링하는 단계를 더 포함하는 것을 특징으로 하는 클라이언트 장치의 하나 이상의 프로세서에 의해 구현되는 방법.
  12. 제11항에 있어서, 상기 콘텐츠는 그래픽을 포함하고, 그리고 상기 콘텐츠를 렌더링하는 단계는 상기 클라이언트 장치의 디스플레이에서 상기 그래픽을 렌더링하는 단계를 포함하는 것을 특징으로 하는 클라이언트 장치의 하나 이상의 프로세서에 의해 구현되는 방법.
  13. 제11항에 있어서, 상기 콘텐츠는 텍스트를 포함하고, 상기 방법은,
    상기 클라이언트 장치의 로컬 TTS(text-to-speech) 엔진을 사용하여, 텍스트에 대응하는 합성된 음성을 생성하도록 상기 텍스트를 처리하는 단계를 더 포함하며,
    상기 콘텐츠를 렌더링하는 단계는 상기 클라이언트 장치의 하나 이상의 스피커를 통해 상기 합성된 음성을 렌더링하는 단계를 포함하는 것을 특징으로 하는 클라이언트 장치의 하나 이상의 프로세서에 의해 구현되는 방법.
  14. 제11항에 있어서, 상기 콘텐츠는 오디오 데이터를 포함하고,
    상기 콘텐츠를 렌더링하는 단계는 상기 클라이언트 장치의 하나 이상의 스피커를 통해 상기 오디오 데이터를 렌더링하는 단계를 포함하는 것을 특징으로 하는 클라이언트 장치의 하나 이상의 프로세서에 의해 구현되는 방법.
  15. 클라이언트 장치로서,
    하나 이상의 스피커;
    하나 이상의 마이크로폰;
    하나 이상의 프로세서;
    상기 하나 이상의 프로세서에 의해 실행될 때 상기 하나 이상의 프로세서로 하여금 방법을 수행하게 하는 컴퓨터 실행 가능 명령어를 저장한 메모리를 포함하며, 상기 방법은,
    의미론적 표현에 대한 텍스트의 매핑을 포함하는 캐시 엔트리를 클라이언트 장치의 캐시에 저장하는 단계 -상기 의미론적 표현은 상기 클라이언트 장치에 의해 로컬적으로 해석 가능한, 로컬적으로 해석 가능한 의미론적 표현을 포함함-;
    상기 하나 이상의 마이크로폰을 통해, 음성 발화를 캡처하는 오디오 데이터를 캡처하는 단계 -상기 음성 발화는 클라이언트 장치와 연결된 소정의 스마트 장치의 하나 이상의 상태와 관련된 요청임-;
    상기 클라이언트 장치에 로컬적으로 저장된 VTT(voice-to-text) 모델을 사용하여, 상기 음성 발화에 대응하는 현재 텍스트를 생성하도록 상기 오디오 데이터를 처리하는 단계;
    상기 현재 텍스트가 상기 캐시 엔트리의 텍스트와 매칭한다고 결정하는 단계; 그리고
    상기 현재 텍스트가 상기 캐시 엔트리의 텍스트와 매칭한다고 결정한 것에 대한 응답으로, 그리고 상기 의미론적 표현에 대한 텍스트의 매핑을 포함하는 캐시 엔트리에 대한 응답으로:
    상기 클라이언트 장치에서, 소정의 제어 명령을 생성하도록 상기 로컬적으로 해석 가능한 의미론적 표현을 처리하는 단계 -상기 소정의 제어 명령은, 상기 로컬적으로 해석 가능한 의미론적 표현과는 다르고 그리고 상기 로컬적으로 해석 가능한 의미론적 표현이 상기 소정의 스마트 장치의 현재 상태에 의존하는 상대적 상태 변화 표현이라는 결정에 응답하여 생성됨-; 그리고
    소정의 스마트 장치의 적어도 소정의 상태의 변경을 야기하기 위해 상기 소정의 제어 명령을 로컬 채널을 통해 전송하는 단계를 포함하는 것을 특징으로 하는 클라이언트 장치.
  16. 제15항에 있어서, 상기 로컬적으로 해석 가능한 의미론적 표현은,
    상기 소정의 스마트 장치의 식별자; 그리고
    상기 소정의 스마트 장치의 소정의 상태에 대한 해당 현재 값에 대해, 상기 소정의 스마트 장치의 적어도 상기 소정의 상태의 변경을 정의하는 현재-상태 종속 상태 변화 표현을 포함하는 것을 특징으로 하는 클라이언트 장치.
  17. 제15항에 있어서, 상기 로컬적으로 해석 가능한 의미론적 표현은 상기 스마트 장치의 제조업체의 표시를 포함하는 것을 특징으로 하는 클라이언트 장치.
  18. 제17항에 있어서, 소정의 제어 명령을 생성하는 단계는
    상기 스마트 장치의 제조업체의 표시에 할당되는 어댑터에 응답하여, 어시스턴트 클라이언트 장치에 로컬적으로 저장된 어댑터를 이용하는 단계를 포함하는 것을 특징으로 하는 클라이언트 장치.
  19. 제17항에 있어서, 상기 방법은,
    스마트 장치의 제조업체의 표시에 할당된 로컬 채널에 기초하여, 소정의 제어 명령을 전송하기 위한 로컬 채널을 선택하는 단계를 더 포함하는 것을 특징으로 하는 클라이언트 장치.
  20. 제15항에 있어서, 상기 로컬적으로 해석 가능한 의미론적 표현은 소정의 스마트 장치의 적어도 소정의 상태의 변경을 반영하는 콘텐츠를 포함하고, 상기 방법은,
    상기 현재 텍스트가 상기 캐시 엔트리의 텍스트와 매칭한다는 결정에 대한 응답으로:
    상기 클라이언트 장치에서 상기 콘텐츠를 렌더링하는 단계를 더 포함하는 것을 특징으로 하는 클라이언트 장치.
KR1020227024821A 2019-10-15 2019-12-11 스마트 장치의 효율적이고 낮은 대기시간 자동 어시스턴트 제어 KR102581347B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020237031861A KR102639230B1 (ko) 2019-10-15 2019-12-11 스마트 장치의 효율적이고 낮은 대기시간 자동 어시스턴트 제어

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201962915158P 2019-10-15 2019-10-15
US62/915,158 2019-10-15
PCT/US2019/065808 WO2021076165A1 (en) 2019-10-15 2019-12-11 Efficient and low latency automated assistant control of smart devices
KR1020207028007A KR102423711B1 (ko) 2019-10-15 2019-12-11 스마트 장치의 효율적이고 낮은 대기시간 자동 어시스턴트 제어

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020207028007A Division KR102423711B1 (ko) 2019-10-15 2019-12-11 스마트 장치의 효율적이고 낮은 대기시간 자동 어시스턴트 제어

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020237031861A Division KR102639230B1 (ko) 2019-10-15 2019-12-11 스마트 장치의 효율적이고 낮은 대기시간 자동 어시스턴트 제어

Publications (2)

Publication Number Publication Date
KR20220104303A KR20220104303A (ko) 2022-07-26
KR102581347B1 true KR102581347B1 (ko) 2023-09-22

Family

ID=69138025

Family Applications (3)

Application Number Title Priority Date Filing Date
KR1020227024821A KR102581347B1 (ko) 2019-10-15 2019-12-11 스마트 장치의 효율적이고 낮은 대기시간 자동 어시스턴트 제어
KR1020207028007A KR102423711B1 (ko) 2019-10-15 2019-12-11 스마트 장치의 효율적이고 낮은 대기시간 자동 어시스턴트 제어
KR1020237031861A KR102639230B1 (ko) 2019-10-15 2019-12-11 스마트 장치의 효율적이고 낮은 대기시간 자동 어시스턴트 제어

Family Applications After (2)

Application Number Title Priority Date Filing Date
KR1020207028007A KR102423711B1 (ko) 2019-10-15 2019-12-11 스마트 장치의 효율적이고 낮은 대기시간 자동 어시스턴트 제어
KR1020237031861A KR102639230B1 (ko) 2019-10-15 2019-12-11 스마트 장치의 효율적이고 낮은 대기시간 자동 어시스턴트 제어

Country Status (6)

Country Link
US (3) US11176928B2 (ko)
EP (2) EP4202920A1 (ko)
JP (2) JP7114722B2 (ko)
KR (3) KR102581347B1 (ko)
CN (1) CN113068410A (ko)
WO (1) WO2021076165A1 (ko)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7114722B2 (ja) * 2019-10-15 2022-08-08 グーグル エルエルシー スマートデバイスの、効率的で低レイテンシである自動アシスタント制御
US12026196B2 (en) * 2020-04-03 2024-07-02 Comcast Cable Communications, Llc Error detection and correction for audio cache
US11663415B2 (en) * 2020-08-31 2023-05-30 Walgreen Co. Systems and methods for voice assisted healthcare
US11886482B2 (en) * 2021-03-12 2024-01-30 Google Llc Methods and systems for providing a secure automated assistant
US11842738B1 (en) * 2021-03-22 2023-12-12 Amazon Technologies, Inc. Computing services using embeddings of a transformer-based encoder
US11567935B2 (en) * 2021-03-30 2023-01-31 Google Llc Conditional response fulfillment cache for locally responding to automated assistant inputs
US11880645B2 (en) 2022-06-15 2024-01-23 T-Mobile Usa, Inc. Generating encoded text based on spoken utterances using machine learning systems and methods
US20240046925A1 (en) * 2022-08-08 2024-02-08 Google Llc Dynamically determining whether to perform candidate automated assistant action determined from spoken utterance
CN117672226A (zh) * 2022-09-07 2024-03-08 哈曼国际工业有限公司 本地化语音辨识助理

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140122059A1 (en) * 2012-10-31 2014-05-01 Tivo Inc. Method and system for voice based media search

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002103677A1 (en) * 2001-06-19 2002-12-27 Intel Corporation Method of employing prefetch instructions in speech recognition
US6981098B2 (en) * 2002-04-30 2005-12-27 International Business Machines Corporation Methods and apparatus for coordinating a plurality of updates to a cache
CN102629246B (zh) * 2012-02-10 2017-06-27 百纳(武汉)信息技术有限公司 识别浏览器语音命令的服务器及浏览器语音命令识别方法
US8606568B1 (en) * 2012-10-10 2013-12-10 Google Inc. Evaluating pronouns in context
WO2014098477A1 (ko) * 2012-12-18 2014-06-26 삼성전자 주식회사 홈 네트워크 시스템에서 홈 디바이스를 원격으로 제어하는 방법 및 장치
US10127224B2 (en) * 2013-08-30 2018-11-13 Intel Corporation Extensible context-aware natural language interactions for virtual personal assistants
KR102084507B1 (ko) * 2013-09-05 2020-03-04 삼성전자주식회사 홈 네트워크 시스템에서 홈 디바이스를 원격으로 제어하는 방법 및 장치
US10811013B1 (en) * 2013-12-20 2020-10-20 Amazon Technologies, Inc. Intent-specific automatic speech recognition result generation
DK179415B1 (en) * 2016-06-11 2018-06-14 Apple Inc Intelligent device arbitration and control
EP3507798A1 (en) * 2016-10-03 2019-07-10 Google LLC Processing voice commands based on device topology
US10629207B2 (en) * 2017-07-13 2020-04-21 Comcast Cable Communications, Llc Caching scheme for voice recognition engines
US20190196779A1 (en) * 2017-12-21 2019-06-27 Harman International Industries, Incorporated Intelligent personal assistant interface system
US11170762B2 (en) * 2018-01-04 2021-11-09 Google Llc Learning offline voice commands based on usage of online voice commands
AU2019234822B2 (en) * 2018-03-14 2020-10-22 Google Llc Generating IoT-based notification(s) and provisioning of command(s) to cause automatic rendering of the IoT-based notification(s) by automated assistant client(s) of client device(s)
WO2019193378A1 (en) * 2018-04-06 2019-10-10 Flex Ltd. Device and system for accessing multiple virtual assistant services
US10607610B2 (en) * 2018-05-29 2020-03-31 Nortek Security & Control Llc Audio firewall
KR102676627B1 (ko) * 2018-10-08 2024-06-21 구글 엘엘씨 어시스턴트 클라이언트 장치에 의해 로컬로 스마트 장치 제어 및/또는 등록
JP7114722B2 (ja) * 2019-10-15 2022-08-08 グーグル エルエルシー スマートデバイスの、効率的で低レイテンシである自動アシスタント制御

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140122059A1 (en) * 2012-10-31 2014-05-01 Tivo Inc. Method and system for voice based media search

Also Published As

Publication number Publication date
EP3834199B1 (en) 2023-04-05
EP3834199A1 (en) 2021-06-16
US20240005916A1 (en) 2024-01-04
JP7114722B2 (ja) 2022-08-08
WO2021076165A1 (en) 2021-04-22
JP2022153537A (ja) 2022-10-12
EP4202920A1 (en) 2023-06-28
US11783814B2 (en) 2023-10-10
KR102423711B1 (ko) 2022-07-22
JP2022500682A (ja) 2022-01-04
CN113068410A (zh) 2021-07-02
KR102639230B1 (ko) 2024-02-21
KR20230137488A (ko) 2023-10-04
US11176928B2 (en) 2021-11-16
US20210248998A1 (en) 2021-08-12
JP7536834B2 (ja) 2024-08-20
KR20220104303A (ko) 2022-07-26
US20220044677A1 (en) 2022-02-10
KR20210046581A (ko) 2021-04-28

Similar Documents

Publication Publication Date Title
KR102581347B1 (ko) 스마트 장치의 효율적이고 낮은 대기시간 자동 어시스턴트 제어
JP7250887B2 (ja) IoTベースの通知の生成、およびクライアントデバイスの自動化アシスタントクライアントによるIoTベースの通知の自動レンダリングを引き起こすコマンドの提供
US11700141B2 (en) Control and/or registration of smart devices, locally by an assistant client device

Legal Events

Date Code Title Description
A107 Divisional application of patent
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
A107 Divisional application of patent
GRNT Written decision to grant