KR20230015980A - 여러 어시스턴트 디바이스들에서 동시 음향 이벤트 검출 - Google Patents

여러 어시스턴트 디바이스들에서 동시 음향 이벤트 검출 Download PDF

Info

Publication number
KR20230015980A
KR20230015980A KR1020227045231A KR20227045231A KR20230015980A KR 20230015980 A KR20230015980 A KR 20230015980A KR 1020227045231 A KR1020227045231 A KR 1020227045231A KR 20227045231 A KR20227045231 A KR 20227045231A KR 20230015980 A KR20230015980 A KR 20230015980A
Authority
KR
South Korea
Prior art keywords
additional
assistant
audio data
assistant device
acoustic event
Prior art date
Application number
KR1020227045231A
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 KR20230015980A publication Critical patent/KR20230015980A/ko

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S3/00Direction-finders for determining the direction from which infrasonic, sonic, ultrasonic, or electromagnetic waves, or particle emission, not having a directional significance, are being received
    • G01S3/80Direction-finders for determining the direction from which infrasonic, sonic, ultrasonic, or electromagnetic waves, or particle emission, not having a directional significance, are being received using ultrasonic, sonic or infrasonic waves
    • G01S3/8006Multi-channel systems specially adapted for direction-finding, i.e. having a single aerial system capable of giving simultaneous indications of the directions of different signals
    • 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/01Assessment or evaluation of speech recognition 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/08Speech classification or search
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04RLOUDSPEAKERS, MICROPHONES, GRAMOPHONE PICK-UPS OR LIKE ACOUSTIC ELECTROMECHANICAL TRANSDUCERS; DEAF-AID SETS; PUBLIC ADDRESS SYSTEMS
    • H04R29/00Monitoring arrangements; Testing arrangements
    • H04R29/004Monitoring arrangements; Testing arrangements for microphones
    • H04R29/005Microphone arrays
    • H04R29/006Microphone matching
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L2015/088Word spotting

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Acoustics & Sound (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Multimedia (AREA)
  • Computational Linguistics (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Theoretical Computer Science (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Otolaryngology (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

본 발명의 구현예들은 복수의 어시스턴트 디바이스를 포함하는 생태계의 여러 어시스턴트 디바이스에서 음향 이벤트를 캡처하는 각각의 오디오 데이터를 검출하고, 각각의 이벤트 검출 모델을 사용하여 음향 이벤트와 관련된 각각의 척도를 생성하기 위해 다수의 어시스턴트 디바이스 각각에서 로컬로 각각의 오디오 데이터를 프로세싱할 수 있으며, 검출된 음향 이벤트가 실제 음향 이벤트인지 여부를 결정하기 위해 각각의 측정을 프로세싱하고, 검출된 음향 이벤트가 실제 음향 이벤트라는 결정에 응답하여 행동 음향 이벤트와 관련된 행동이 수행되게 할 수 있다. 일부 구현예에서, 각자의 오디오 데이터를 검출한 복수의 어시스턴트 디바이스는 복수의 어시스턴트 디바이스 각각에서 검출되는 복수의 역사적인 음향 이벤트에 기초하여 실제 음향 이벤트를 캡처하는 각자의 오디오 데이터를 검출할 것으로 예상된다.

Description

여러 어시스턴트 디바이스들에서 동시 음향 이벤트 검출
본 발명은 여러 어시스턴트 디바이스들에서 음향 이벤트를 동시에 검출하기 위한 방법, 컴퓨팅 디바이스, 및 비일시적 컴퓨터 판독가능 저장매체에 관한 발명이다.
인간은 본 명세서에서 "자동 어시스턴트"("채팅 봇", "대화형 개인 어시스턴트", "지능형 개인 어시스턴트", "개인형 음성 어시스턴트", "대화형 에이전트" 등으로도 지칭됨)로 지칭되는 대화형 소프트웨어 어플리케이션과의 인간 대 컴퓨터 대화에 참여할 수 있다. 예를 들어, 인간(자동 어시스턴트와 상호 작용할 때 "사용자"로 지칭될 수 있음)은 자동 어시스턴트로 하여금 응답 출력을 생성 및 제공하게 하고, 하나 이상의 사물 인터넷(IoT) 디바이스를 제어하게 하고, 및/또는 하나 이상의 다른 기능들을 수행하게 하는 입력(예컨대, 명령, 질의, 및/또는 요청)을 자동 어시스턴트에 제공할 수 있다. 사용자가 제공하는 입력은 예를 들어, 일부 경우에 텍스트(또는 다른 의미론적 표현)로 변환된 다음 추가 프로세싱될 수 있는 음성 자연어 입력(즉, 음성 발화) 및/또는 타이핑된 자연어 입력이 될 수 있다.
일부 경우에, 자동 어시스턴트는 어시스턴트 디바이스에 의해 로컬로 실행되고 사용자에 의해 직접 참여되는 자동 어시스턴트 클라이언트 뿐만 아니라, 사용자 입력에 대한 자동 어시스턴트 클라이언트 응답에 도움을 주기 위해 클라우드의 거의 무제한의 리소스를 활용하는 클라우드-기반 카운터파트(들)을 포함할 수 있다. 예를 들어, 자동 어시스턴트 클라이언트는 클라우드-기반 카운터파트(들)에게, 사용자의 음성 발화의 오디오 녹음(또는 텍스트 변환본) 및 선택적으로는 사용자의 신원을 나타내는 데이터(예컨대, 자격 증명)를 제공할 수 있다. 클라우드-기반 카운터파트는 질의에 대해 다양한 프로세싱을 수행하여 결과(들)을 자동 어시스턴트 클라이언트에 반환할 수 있으며, 이후 자동 어시스턴트 클라이언트는 대응 출력을 사용자에게 제공할 수 있다.
많은 사용자들은 다수의 어시스턴트 디바이스들을 사용하여 자동 어시스턴트들과 상호작용할 수 있다. 예를 들어, 일부 사용자는 가령, 여러 다른 어시스턴트 디바이스들 중에서 하나 이상의 스마트폰, 하나 이상의 태블릿 컴퓨터, 하나 이상의 차량 컴퓨팅 시스템, 하나 이상의 웨어러블 컴퓨팅 디바이스, 하나 이상의 스마트 TV, 하나 이상의 대화형 독립형 스피커 및/또는 하나 이상의 IoT 디바이스들과 같은, 자동 어시스턴트로 향하는 사용자 입력을 수신할 수 있고 및/또는 자동 어시스턴트에 의해 제어될 수 있는 자동 어시스턴트들의 조화된 "생태계(echosystem)"를 소유할 수 있다. 사용자는 이러한 어시스턴트 디바이스들을 사용하여 자동 어시스턴트와의 인간 대 컴퓨터 대화에 참여할 수 있다(자동 어시스턴트 클라이언트가 설치되어 있고 어시스턴트 디바이스가 입력을 수신할 수 있다고 가정하자). 일부 경우, 이러한 어시스턴트 디바이스들은 사용자의 주요 거주지, 보조 거주지, 직장 및/또는 기타 구조물 주변에 흩어져 있을 수 있다. 예를 들어, 스마트폰, 태블릿, 스마트 워치 등과 같은 모바일 어시스턴트 디바이스는 사용자의 몸에 있을 수 있고 및/또는 사용자가 마지막으로 놓아둔 위치에 있을 수도 있다. 전통적인 데스크톱 컴퓨터, 스마트 TV, 대화형 독립형 스피커 및 IoT 디바이스와 같은 다른 어시스턴트 디바이스는 더 고정적일 수 있지만 그럼에도 불구하고 사용자의 집이나 직장 내의 다양한 장소들(예: 방들)에 위치할 수 있다.
어시스턴트 디바이스들의 생태계 내의 소정 어시스턴트 디바이스에서 음향 이벤트가 검출될 때 사용자(들)(예를 들어, 단일 사용자, 가족 내 다수의 사용자, 직장 동료, 공동 거주자 등)에게 경고하는 기술이 존재한다. 하지만, 이러한 기술들은 위양성 이벤트들(false positive events)을 검출하는데 도움을 줄 수 있다. 즉, 소정의 어시스턴트 디바이스는 사실, 음향 이벤트가 실제로 발생하지 않았는데도 음향 이벤트가 발생한 것으로 판단할 수 있다. 그 결과, 소정 어시스턴트 디바이스의 자동 어시스턴트 클라이언트는 자동 어시스턴트 클라이언트가 어떠한 액션도 수행하지 않아야 하는 경우에도, 하나 이상의 액션들이 수행되게 할 수 있다.
본 명세서에 설명된 구현예들은 복수의 어시스턴트 디바이스들을 포함하는 생태계에서 음향 이벤트를 캡처하는 오디오 데이터를 여러 어시스턴트 디바이스들에서 동시에 검출하는 것에 관한 것이다. 음향 이벤트를 캡처하는 복수의 어시스턴트 디바이스들 각각에서 검출된 각각의 오디오 데이터는 이벤트 검출 모델(들)을 사용하여 프로세싱되어, 음향 이벤트와 관련된 각각의 척도를 생성할 수 있다. 각각의 척도는 음향 이벤트가 실제 음향 이벤트인지 여부를 결정하기 위해 프로세싱될 수 있다. 음향 이벤트가 실제 음향 이벤트라는 결정에 응답하여 음향 이벤트와 관련된 액션이 수행될 수 있다. 각각의 오디오 데이터는 이벤트 검출 모델(들)을 사용하여 어시스턴트 디바이스에서 로컬로 프로세싱될 수 있고, 이벤트 검출 모델(들)을 사용하여 원격 시스템에서 원격으로 프로세싱될 수 있으며, 및/또는 이벤트 검출 모델(들)을 사용하여 생태계의 소정 어시스턴트 디바이스(예컨대, 음향 이벤트를 캡처하는 오디오 데이터를 검출했거나 검출하지 않았던 어시스턴트 디바이스)에서 프로세싱될 수 있다.
일부 구현예에서, 음향 이벤트는 핫워드 이벤트에 대응할 수 있다. 이러한 구현예에서, 음향 이벤트 검출 모델(들)은 핫워드 검출 모델(들)에 대응할 수 있으며, 상기 핫워드 검출 모델(들)은 검출될 때 자동 어시스턴트의 하나 이상의 컴포넌트들 및/또는 기능들을 생태계의 어시스턴트 디바이스들 중 하나 이상에서 활성화시키는 특정 단어 또는 문구를 검출하도록 트레이닝된다. 예를 들어, 마이크(들)를 갖는 소정 어시스턴트 디바이스가 생태계와 관련된 사용자의 기본 거주지에 위치한다고 가정하자. 또한, 소정 어시스턴트 디바이스가 마이크를 통해 음향 이벤트를 캡처하는 오디오 데이터를 검출한다고 가정하고, 그리고 오디오 데이터가 특정 단어 또는 문구를 포함하는지 여부를 나타내는 확률을 생성하기 위해 핫워드 검출 모델(들)을 사용하여 상기 오디오 데이터가 프로세싱된다고 또한 가정하자. 더욱이, 추가 마이크를 갖는 적어도 하나의 추가 어시스턴트 디바이스가 소정 어시스턴트 디바이스와 함께 생태계에서 위치상 근접하다고 가정하자. 또한, 적어도 하나의 추가 어시스턴트 디바이스가 추가 마이크(들)를 통해 음향 이벤트를 또한 캡처하는 추가 오디오 데이터를 검출한다고 가정하고 그리고 추가 오디오 데이터가 특정 단어 또는 문구를 포함하는지 여부를 나타내는 추가 확률을 생성하기 위해 상기 추가 오디오 데이터가 핫워드 검출 모델(들)을 사용하여 프로세싱된다고 가정하자. 이러한 일례에서, 음향 이벤트가 특정 단어 또는 문구의 발생에 실제로 대응하는지 여부를 결정하기 위해 상기 확률 및 추가 확률이 프로세싱될 수 있다.
예를 들어, 확률이 0.70의 값이고 추가 확률이 0.65의 값이라고 가정하자. 이 경우 확률과 추가 확률이 모두 임계값(예컨대, 0.60 값)을 충족하면, 핫워드 이벤트가 실제 핫워드 이벤트로 확인될 수 있으며, 확률이 상대적으로 높지 않더라도, 자동 어시스턴트의 하나 이상의 컴포넌트들 및/또는 기능들이 활성화될 수 있다. 또한, 예를 들어, 상기 확률이 0.90의 값이고 추가 확률이 0.55의 값이라고 가정하자. 이 경우, 추가 확률은 임계값을 만족하지 못할 수 있지만, 핫워드 이벤트는 여전히 실제 핫워드 이벤트로 검증될 수 있으며 자동 어시스턴트의 하나 이상의 컴포넌트 및/또는 기능이 활성화될 수 있는데, 왜냐하면 표시된 확률이 상대적으로 높기 때문이다(그리고 선택적으로는 추가 확률이 임계값의 임계 범위 이내(예를 들어, 0.10 이내)에 있기 때문이다).
일부 추가적인 또는 대안적인 구현예에서, 음향 이벤트는 사운드(또는 "소리"라 함) 이벤트에 대응할 수 있다. 이러한 구현예에서, 음향 이벤트 검출 모델(들)은 하나 이상의 특정 소리를 검출하도록 트레이닝된 소리 검출 모델(들)에 대응할 수 있으며, 하나 이상의 특정 소리는 검출될 때 생태계와 관련된 사용자의 클라이언트 디바이스에서 알림이 시각적 및/또는 청각적으로 렌더링되게 한다. 특정 소리는 예를 들어 유리 깨지는 소리, 개 짖는 소리, 고양이 야옹 소리, 초인종 소리, 연기 경보 소리, 일산화탄소 검출기 소리, 아기 울음소리, 문 두드리는 소리 및/또는 생태계에서 발생할 수 있는 기타 소리를 포함할 수 있다. 이러한 구현의 일부 버전에서는 여러 소리 검출 모델들 각각의 특정 소리를 검출하도록 트레이닝될 수 있는 반면에, 다른 구현예에서는 하나의 소리 검출 모델이 여러 소리들을 검출하도록 트레이닝될 수 있다. 오디오 데이터는 핫워드 이벤트에 대해 위에서 설명한 동일하거나 유사한 방식으로 프로세싱될 수 있지만, 추가적으로 또는 대안적으로 사운드 이벤트가 실제 사운드 이벤트인지 여부를 확인하기 위해 사운드 검출 모델(들)을 사용하여 오디오 데이터를 프로세싱하는 것을 포함한다.
다양한 구현예에서, 음향 이벤트를 캡처하는 오디오 데이터를 소정 어시스턴트 디바이스가 검출함에 응답하여 생태계 내의 적어도 하나의 추가 어시스턴트 디바이스가 식별될 수 있다. 소정 어시스턴트 디바이스에서 검출된 음향 이벤트가 실제로 실제 음향 이벤트인 경우, 생태계에서 식별된 적어도 하나의 추가 어시스턴트 디바이스는 음향 이벤트를 또한 캡처하는 시간적으로 대응하는 오디오 데이터를 검출했어야 한다. 어시스턴트 디바이스들에 의해 캡처된 오디오 데이터는 예를 들어, 어시스턴트 디바이스들에서 캡처된 오디오 데이터와 관련된 각각의 타임스탬프들에 기초하여, 시간적으로 대응하는 오디오 데이터로 간주될 수 있다. 예를 들어, 오디오 데이터는, 타임스탬프들이 매칭되거나 또는 서로의 임계 기간 내에 있을 때(예를 들어, 몇 밀리초 이내, 몇 초 이내 또는 임의의 다른 적합한 기간 내), 시간적으로 대응하는 오디오 데이터로 간주될 수 있다. 그러한 구현의 일부 버전에서, 예를 들어, 소정 어시스턴트 디바이스 및 적어도 하나의 추가 어시스턴트 디바이스가 동일한 음향 이벤트를 캡처하는 오디오 데이터를 역사적으로 검출하는 것에 기초하여, 적어도 하나의 추가 어시스턴트 디바이스가 식별될 수 있다. 이러한 구현예들의 일부 추가 또는 대안 버전에서, 예를 들어, 소정 어시스턴트 디바이스 및 적어도 하나의 추가 어시스턴트 디바이스가 생태계의 디바이스 토폴로지 표현에서 어시스턴트 디바이스들의 동일한 그룹에 속하는 것에 기초하여, 적어도 하나의 추가 어시스턴트 디바이스가 식별될 수 있다.
생태계 내의 다수의 어시스턴트 디바이스들을 사용하여 음향 이벤트의 발생을 검출 및 확인하기 위한 본 명세서에 서술된 기술을 사용함으로써, 음향 이벤트들의 위양성들의 분량(quantity of false positives)이 감소될 수 있다. 결과적으로 컴퓨팅 리소스와 네트워크 리소스 둘다를 절약할 수 있다. 예를 들어, 생태계에서 핫워드 이벤트들의 발생들을 검출하고 확인하는데 본 명세서에 설명된 기술을 사용함으로써, 자동 어시스턴트의 컴포넌트들 및/또는 기능들은 휴면(dormant)을 유지할 수 있는바, 본 발명의 기술이 없으면, 이들이 활성화되도록 의도되지 않았더라도 활성화되었을 수 있다. 또 다른 일례로서, 생태계에서 특정 소리의 발생을 검출하고 확인하는데 본 명세서에 설명된 기술을 사용함으로써, 생태계와 관련된 사용자에게 제시되는 통지들이 보류될 수 있는바, 본 발명의 기술이 없었으면, 음향 이벤트가 실제로 발생하지 않았더라도 이들 통지들이 제시되었을 수도 있다. 또한, 음향 이벤트를 캡처하는 시간적으로 대응하는 오디오 데이터를 생태계 내의 어떤 어시스턴트 디바이스들이 검출했어야 하는지를 예상하기 위해 본 명세서에 설명된 기술을 사용함으로써, 오디오 데이터를 프로세싱하는 어시스턴트 디바이스들의 수량이 감소될 수 있다. 또한, 결과적으로, 컴퓨팅 리소스와 네트워크 리소스 둘다를 절약할 수 있다. 예를 들어, 음향 이벤트를 검출했어야 하는 생태계 내의 어시스턴트 디바이스들을 예상하기 위해 본 명세서에 설명된 기술을 사용함으로써, 음향 이벤트에 대응하지 않을 가능성이 있는 시간적으로 대응하는 오디오 데이터를 캡처했을 수도 있는 다른 어시스턴트 디바이스들은, 음향 이벤트가 실제 음향 이벤트인지 여부를 결정함에 있어서 고려되지 않을 수 있다.
상기 설명은 본 발명의 일부 구현예들의 개요로서 제공된다. 이들 구현예들 및 기타 구현예들에 대한 추가 설명은 여기에서 더 자세히 설명된다. 하나의 비제한적 일례로서, 다양한 구현예들이 본 명세서에 포함된 청구범위에 더 자세히 설명되어 있다.
또한, 일부 구현예는 하나 이상의 컴퓨팅 디바이스의 하나 이상의 프로세서를 포함하며, 여기서 하나 이상의 프로세서는 관련 메모리에 저장된 명령을 실행하도록 작동가능하고 명령은 여기에 설명된 임의의 방법의 성능을 유발하도록 구성된다. 일부 구현은 또한 여기에 설명된 임의의 방법을 수행하기 위해 하나 이상의 프로세서에 의해 실행가능한 컴퓨터 명령을 저장하는 하나 이상의 비일시적 컴퓨터 판독가능 저장 매체를 포함한다.
전술한 개념 및 본 명세서에서 더 상세히 설명된 추가 개념의 모든 조합은 본 명세서에 개시된 주제의 일부인 것으로 고려된다는 것을 이해해야 한다. 예를 들어, 본 개시의 말미에 나타나는 청구된 주제의 모든 조합은 본 명세서에 개시된 주제의 일부인 것으로 간주된다.
도 1은 본 명세서에 개시된 구현이 구현될 수 있는 예시적인 환경의 블록도이다.
도 2a 및 도 2b는 다양한 구현에 따라 생태계의 복수의 어시스턴트 디바이스에서 핫워드 이벤트의 동시 음향 이벤트 검출과 관련된 일부 예를 도시한다.
도 3은 다양한 구현에 따라 생태계 내의 복수의 어시스턴트 디바이스에서 특정 사운드 이벤트의 동시 음향 이벤트 검출과 관련된 예를 도시한다.
도 4는 다양한 구현에 따라 생태계 내의 복수의 어시스턴트 디바이스에서 캡처된 오디오 데이터에 기초하여 음향 이벤트가 실제 음향 이벤트인지 여부를 결정하는 예시적인 방법을 예시하는 흐름도이다.
도 5는 다양한 구현들에 따라 음향 이벤트를 검출하는 소정 어시스턴트 디바이스에 기초하여 생태계에서 어떤 어시스턴트 디바이스(들)가 음향 이벤트를 검출했어야 하는지를 식별하는 예시적인 방법을 예시하는 흐름도이다.
도 6은 다양한 구현에 따른 컴퓨팅 디바이스의 예시적인 아키텍처를 도시한다.
스마트 폰, 태블릿 컴퓨터, 차량 컴퓨팅 시스템, 웨어러블 컴퓨팅 디바이스, 스마트 텔레비전, 대화형 독립형 스피커(예를 들어, 디스플레이가 있거나 또는 없음), 사운드 스피커, 가정용 경보기, 도어록, 카메라, 조명 시스템, 러닝머신, 온도 조절기, 체중계, 스마트 침대, 관개 시스템, 차고 문 개폐기, 가전 제품, 베이비 모니터, 화재 경보기, 습도 검출기 등과 같은 스마트하고, 다중 검출 네트워크 연결된 디바이스들(본 명세서에서는 어시스턴트 디바이스라 지칭됨)이 점차 확산되고 있다. 종종, 여러 어시스턴트 디바이스들은 집과 같은 구조물의 범위 내에 위치하거나 또는 사용자의 주요 거주지 및 사용자의 보조 거주지, 사용자의 차량 및/또는 사용자의 작업 위치와 같은 여러 관련 구조물 내에 위치한다.
또한, 자동 어시스턴트의 논리적 인스턴스를 형성할 수 있는 자동 어시스턴트 클라이언트(여기서는 어시스턴트 입력 디바이스라 지칭될 수도 있음)를 각각 포함하는 어시스턴트 디바이스가 확산되고 있다. 이러한 어시스턴트 입력 디바이스들은 어시스턴트 기능에만 전념할 수 있거나(예를 들어, 어시스턴트 클라이언트 및 관련 인터페이스만을 포함하고 어시스턴트 기능에만 전념하는 대화형 독립형 스피커 및/또는 독립형 오디오/비주얼 디바이스) 또는 다른 기능들 이외에도 어시스턴트 기능을 수행할 수 있다(예를 들어, 여러 어플리케이션들 중 하나로서 어시스턴트 클라이언트를 포함하는 휴대폰 또는 태블릿). 또한 일부 IoT 디바이스는 어시스턴트 입력 디바이스가 될 수도 있다. 예를 들어, 일부 IoT 디바이스는 자동 어시스턴트 클라이언트 및 자동 어시스턴트 클라이언트의 어시스턴트 인터페이스를 위한 사용자 인터페이스 출력 및/또는 입력 디바이스로 (적어도 부분적으로) 역할을 하는 적어도 스피커(들) 및/또는 마이크(들)를 포함할 수 있다. 비록, 일부 어시스턴트 디바이스는 자동 어시스턴트 클라이언트를 구현하지 않거나 또는 사용자와 인터페이스하기 위한 수단(예를 들어, 스피커(들) 및/또는 마이크(들))을 가질 수 없지만, 이들은 여전히 자동 어시스턴트에 의해 제어될 수 있다(본원에서 어시스턴트 비입력 디바이스로 지칭됨). 예를 들어, 스마트 전구는 자동 어시스턴트 클라이언트, 스피커 및/또는 마이크를 포함하지 않을 수 있지만, 자동 어시스턴트를 통해 명령 및/또는 요청이 스마트 전구로 전송되어 스마트 전구의 기능(예: 켜기/끄기, 어둡게 하기, 색상 변경 등)을 제어할 수 있다.
어시스턴트 디바이스의 생태계에 어시스턴트 디바이스들(어시스턴트 입력 디바이스 및 어시스턴트 비입력 디바이스 모두 포함)를 추가하고 및/또는 어시스턴트 디바이스들을 생태계 내에서 그룹화하기 위한 다양한 기술들이 제안되었다. 예를 들어, 새로운 어시스턴트 디바이스를 생태계에 추가하면, 생태계와 관련된 사용자는 생태계의 디바이스 토폴로지 표현에서, 소프트웨어 어플리케이션을 통해(예를 들어, 자동 어시스턴트 어플리케이션, 생태계와 관련된 소프트웨어 어플리케이션, 새로운 어시스턴트 디바이스와 관련된 소프트웨어 어플리케이션 등을 통해) 생태계의 어시스턴트 디바이스 그룹에 새로운 어시스턴트 디바이스를 수동으로 추가할 수 있다. 또한, 어시스턴트 디바이스가 생태계 내에서 이동하는 경우, 사용자는 소프트웨어 어플리케이션을 통해 어시스턴트 디바이스가 할당된 그룹을 수동으로 변경할 수 있다. 그렇지 않으면, 어시스턴트 디바이스가 할당된 그룹은 생태계 내에서 어시스턴트 디바이스의 위치를 정확하게 반영하지 못할 수 있다. 예를 들어, "거실 스피커"라고 라벨링된 스마트 스피커가 사용자의 주요 집의 거실에 위치하고 있으며 어시스턴트 디바이스들의 "거실" 그룹과 연관되어 있지만 상기 스마트 스피커가 그 집의 주방으로 이동한 경우, 사용자의 주요 집의 생태계에 대한 디바이스 토폴로지 표현에서 사용자가 라벨과 그룹을 수동으로 변경하지 않는 한, 상기 라벨과 그룹이 어시스턴트 디바이스의 위치를 나타내지 않는 경우에도 불구하고, 상기 스마트 스피커는 여전히 "거실 스피커"로 라벨링되고 그리고 어시스턴트 디바이스들의 "거실" 그룹에 포함될 수 있다.
디바이스 토폴로지 표현은 각각의 어시스턴트 디바이스와 관련된 라벨(또는 고유 식별자)을 포함할 수 있다. 또한, 디바이스 토폴로지 표현은 각각의 어시스턴트 디바이스와 관련된 라벨(또는 고유 식별자)을 지정할 수 있다. 소정 어시스턴트 디바이스에 대한 디바이스 속성들은 예를 들어, 각각의 어시스턴트 디바이스에 의해 지원되는 하나 이상의 입력 및/또는 출력 모드들을 나타낼 수 있다. 예를 들어, 독립형 스피커 전용 어시스턴트 클라이언트 디바이스에 대한 디바이스 속성들은, 청각적 출력을 제공할 수 있지만 시각적 출력을 제공할 수 없음을 나타낼 수 있다. 추가적으로 또는 대안적으로, 소정 어시스턴트 디바이스에 대한 디바이스 속성들은 예를 들어, 제어될 수 있는 소정 어시스턴트 디바이스의 하나 이상의 상태를 식별하고; 어시스턴트 디바이스용 펌웨어를 제조, 배포 및/또는 생성한 당사자(예를 들어, 제 1 당사자(1P) 또는 제 3 당사자(3P))를 식별하고; 및/또는 사용자에 의해 소정 어시스턴트 디바이스에 할당된 라벨 또는 1P 또는 3P가 제공한 고정 식별자와 같은 소정 어시스턴트 디바이스에 대한 고유 식별자를 식별할 수 있다. 본 명세서에 개시된 다양한 구현에 따르면, 디바이스 토폴로지 표현은 선택적으로 다음을 추가로 지정할 수 있다: 어떤 어시스턴트 디바이스들에 의해서 어떤 스마트 디바이스들이 로컬로 제어될 수 있는지; 로컬로 제어가능한 어시스턴트 디바이스의 로컬 주소(또는 이러한 어시스턴트 디바이스를 로컬로 직접 제어할 수 있는 허브의 로컬 주소); 로컬 신호 강도 및/또는 각 어시스턴트 디바이스들 사이의 기타 선호도 표시자. 또한, 본 명세서에 개시된 다양한 구현에 따르면, 디바이스 토폴로지 표현(또는 그 변형)은 로컬 제어 및/또는 어시스턴트 디바이스에 라벨을 로컬로 할당하는데 이용하기 위해 복수의 어시스턴트 디바이스들 각각에 로컬로 저장될 수 있다. 더욱이, 디바이스 토폴로지 표현은 다양한 입도 수준으로 정의될 수 있는 각각의 어시스턴트 디바이스와 관련된 그룹을 지정할 수 있다. 예를 들어, 사용자의 주요 집 거실에 있는 여러 개의 스마트 조명은 "거실 조명" 그룹에 속하는 것으로 간주될 수 있다. 또한, 주요 집의 거실이 스마트 스피커를 또한 포함하는 경우, 거실에 위치한 모든 어시스턴트 디바이스들은 "거실 어시스턴트 디바이스" 그룹에 속한다고 볼 수 있다.
자동 어시스턴트는 하나 이상의 어시스턴트 디바이스에 의해 생성된 하나 이상의 신호에 기초하여 생태계에서 발생하는 다양한 이벤트를 검출할 수 있다. 예를 들어, 자동 어시스턴트는 이벤트 검출 모델(들) 또는 규칙(들)을 사용하여, 이러한 이벤트를 검출하기 위해 하나 이상의 신호를 프로세싱할 수 있다. 또한, 자동 어시스턴트는 생태계에서 발생하는 이벤트에 대한 하나 이상의 신호를 기반으로 생성된 출력에 기초하여 하나 이상의 액션이 수행되게 할 수 있다. 일부 구현예에서, 검출된 이벤트는 하나 이상의 어시스턴트 디바이스의 각각의 마이크(들)를 통해 캡처된 음향 이벤트일 수 있다. 자동 어시스턴트는 음향 이벤트 모델을 사용하여 음향 이벤트를 캡처하는 오디오 데이터가 프로세싱되도록 할 수 있다. 음향 이벤트 모델(들)에 의해 검출된 음향 이벤트는 예를 들어, 핫워드 검출 모델(들)을 사용하여 음성 발화에 포함된 자동 어시스턴트를 호출하는 핫워드를 검출하는 것, 주변 잡음 검출 모델(들)을 사용하여 생태계에서 주변 잡음을 검출하는 것(및 선택적으로는 소정 어시스턴트 디바이스에서 음성 수신이 활성인 동안에), 소리 검출 모델(들)을 사용하여 생태계에서 특정 소리(예컨대, 유리 깨지는 소리, 개 짖는 소리, 고양이 울음소리, 도어벨 소리, 연기(smoke) 경보 사운드, 일산화탄소 검출기 소리, 아기 울음소리 또는 문 두드리는 소리 및/또는 기타 다른 음향 이벤트)를 검출하는 것, 및/또는 각각의 음향 이벤트 검출 모델(들)을 사용하여 검출될 수 있는 기타 음향 관련 이벤트들을 포함할 수 있다. 예를 들어, 적어도 하나의 어시스턴트 디바이스의 각각의 마이크(들)을 통해 오디오 데이터가 검출되었다고 가정하자. 이 예에서, 자동 어시스턴트는 자동 어시스턴트를 호출하는 핫워드를 오디오 데이터가 캡처하는지 여부를 결정하기 위해 어시스턴트 디바이스(들) 중 적어도 하나의 핫워드 검출 모델(들)에 의해 오디오 데이터가 프로세싱되게 할 수 있다. 또한, 추가적으로 또는 대안적으로, 자동 어시스턴트는 오디오 데이터에서 캡처된 임의의 주변(또는 배경) 잡음을 주변 잡음의 하나 이상의 서로 다른 의미론적 카테고리(예를 들어, 영화 또는 텔레비전 소리, 요리 소리, 및/또는 소리들의 다른 카테고리)로 분류하기 위해, 적어도 하나의 어시스턴트 디바이스의 주변 잡음 검출 모델(들)에 의해 오디오 데이터가 프로세싱되게 할 수 있다. 또한, 추가적으로 또는 대안적으로, 자동 어시스턴트는 임의의 특정 사운드가 오디오 데이터에서 캡처되는지 여부를 결정하기 위해 어시스턴트 디바이스(들) 중 적어도 하나의 사운드 검출 모델(들)에 의해 오디오 데이터가 프로세싱되게 할 수 있다.
본 명세서에 설명된 구현은 다수의 어시스턴트 디바이스들의 각각의 마이크(들)에 의해 캡처된 시간적으로 대응하는 오디오 데이터에 기초하여 생태계에서 실제로 발생한 음향 이벤트를 결정하는 것에 관한 것이다. 이러한 구현은 또한, 어시스턴트 디바이스에서 로컬로 오디오 데이터를 프로세싱하여 음향 이벤트가 실제로 발생했는지 여부를 나타내는 척도(measure)를 생성하는 것과 추가로 관련된다. 또한, 이러한 구현은 생태계에 대한 디바이스 토폴로지 표현에 기초하여 오디오 데이터에 시간적으로 대응하는 오디오 데이터를 생태계의 어떤 어시스턴트 디바이스가 검출했어야 하는지를 식별하는 것, 그리고 여러 어시스턴트 디바이스가 시간적으로 대응하는 오디오 데이터를 검출하는 경우, 상기 시간적으로 대응하는 오디오 데이터가 각각의 이벤트 검출 모델(들)에 의해 프로세싱되게 하는 것과 관련된다.
이제 도 1을 참조하면, 본 명세서에 개시된 기술이 구현될 수 있는 예시적인 환경이 도시되어 있다. 예시적인 환경은 복수의 어시스턴트 입력 디바이스들(1061-N)(본 명세서에서 간단히 "어시스턴트 입력 디바이스 106"라고도 함), 하나 이상의 클라우드 기반 자동 어시스턴트 컴포넌트(119), 하나 이상의 어시스턴트 비입력 시스템(180), 하나 이상의 어시스턴트 비입력 디바이스(1851-N)(본 명세서에서는 간단히 "어시스턴트 비입력 디바이스(185)"라고도 함), 디바이스 활동 데이터베이스(191), 머신 러닝("ML") 모델(들) 데이터베이스, 및 디바이스 토폴로지 데이터베이스(193)를 포함할 수 있다. 도 1의 어시스턴트 입력 디바이스(106) 및 어시스턴트 비입력 디바이스(185)는 또한 본 명세서에서 "어시스턴트 디바이스"로 집합적으로 지칭될 수 있다.
어시스턴트 입력 디바이스(106) 중 하나 이상(예를 들어, 모두)은 각각의 자동 어시스턴트 클라이언트(1181-N)의 각각의 인스턴스를 실행할 수 있다. 그러나 일부 구현예에서, 하나 이상의 어시스턴트 입력 디바이스(106)는 선택적으로는 각각의 자동 어시스턴트 클라이언트(1181-N)의 인스턴스가 없을 수도 있고, 여전히 자동 어시스턴트로 향하는 사용자 입력을 수신 및 프로세싱하기 위한 엔진(들) 및 하드웨어 컴포넌트를 포함할 수 있다(예컨대, 마이크(들), 스피커(들), 음성 인식 엔진(들), 자연어 프로세싱 엔진(들), 음성 합성 엔진(들) 등). 자동 어시스턴트 클라이언트(1181-N)의 인스턴스는 각각의 어시스턴트 입력 디바이스(106)의 운영 체제와 별개인 어플리케이션(예를 들어, 운영 체제의 "상단"에 설치된)일 수 있거나 또는 대안적으로 각각의 어시스턴트 입력 디바이스(106)의 운영 체제에 의해 직접 구현될 수 있다. 아래에서 추가로 설명되는 바와 같이, 자동 어시스턴트 클라이언트(1181-N)의 각각의 인스턴스는 선택적으로는 각각의 어시스턴트 입력 디바이스(106)의 각각의 사용자 인터페이스 컴포넌트(1071-N)에 의해 제공되는 다양한 요청에 응답하여 하나 이상의 클라우드 기반 자동 어시스턴트 컴포넌트(119)와 상호작용할 수 있다. 또한, 아래에서 설명되는 바와 같이, 어시스턴트 입력 디바이스(106)의 다른 엔진(들)은 선택적으로는 하나 이상의 클라우드 기반 자동 어시스턴트 컴포넌트(119)와 상호작용할 수 있다.
하나 이상의 클라우드 기반 자동 어시스턴트 컴포넌트들(119)은 하나 이상의 로컬 영역 네트워크(LAN, Wi-Fi LAN, 블루투스 네트워크, 근거리 통신 네트워크, 메시 네트워크 등) 및/또는 광역 네트워크("WAN", 인터넷 등)를 통해 각각의 어시스턴트 입력 디바이스(106)와 통신가능하게 연결된 하나 이상의 컴퓨팅 시스템들(예컨대, 총체적으로 "클라우드" 또는 "원격" 컴퓨팅 시스템으로 지칭되는 서버들) 상에 구현될 수 있다. 클라우드 기반 자동 어시스턴트 컴포넌트(119)와 어시스턴트 입력 디바이스(106)의 통신 연결은 일반적으로 도 1의 1101로 표시된다. 또한, 일부 실시예에서, 어시스턴트 입력 디바이스(106)는 도 1에서 일반적으로 1102로 표시되는 하나 이상의 네트워크(예를 들어, LAN 및/또는 WAN)를 통해 서로 통신가능하게 연결될 수 있다.
하나 이상의 클라우드 기반 자동 어시스턴트 컴포넌트(119)는 또한 하나 이상의 네트워크(예를 들어, LAN 및/또는 WAN)를 통해 하나 이상의 어시스턴트 비입력 시스템(180)과 통신가능하게 결합될 수 있다. 클라우드 기반 자동 어시스턴트 컴포넌트(119)와 어시스턴트 비입력 시스템(들)(180) 간의 통신 연결은 일반적으로 도 1의 1103으로 표시된다. 또한, 어시스턴트 비입력 시스템(180)은 각각 하나 이상의 네트워크(예를 들어, LAN 및/또는 WAN)를 통해 하나 이상의(예를 들어, 그룹) 어시스턴트 비입력 디바이스들(185)과 통신가능하게 연결될 수 있다. 예를 들어, 제 1 어시스턴트 비입력 시스템(180)은 하나 이상의 어시스턴트 비입력 디바이스들(185)의 제 1 그룹과 통신가능하게 연결되고 그로부터 데이터를 수신할 수 있으며, 제 2 어시스턴트 비입력 시스템(180)은 하나 이상의 어시스턴트 비입력 디바이스들(185)의 제 2 그룹과 통신가능하게 연결되고 그로부터 데이터를 수신할 수 있으며, 기타 등등이 가능하다. 어시스턴트 비입력 시스템(들)(180)과 어시스턴트 비입력 디바이스들(185) 간의 통신 연결은 일반적으로 도 1에서 1104로 표시된다.
자동 어시스턴트 클라이언트(118)의 인스턴스는 하나 이상의 클라우드 기반 자동 어시스턴트 컴포넌트들(119)과의 상호작용을 통해, 사용자 관점에서 볼때, 자동 어시스턴트(120)의 논리적 인스턴스인 것처럼 보이는 것을 형성할 수 있으며, 이를 통해 사용자는 인간 대 컴퓨터 대화에 참여할 수 있다. 이러한 자동 어시스턴트(120)의 2개의 인스턴스들이 도 1에 도시되어 있다. 점선으로 둘러싸인 제 1 자동 어시스턴트(120A)는 어시스턴트 입력 디바이스(1061)의 자동 어시스턴트 클라이언트(1181) 및 하나 이상의 클라우드 기반 자동 어시스턴트 컴포넌트들(119)을 포함한다. 쇄선으로 둘러싸인 제 2 자동 어시스턴트(120B)는 어시스턴트 입력 디바이스(106N)의 자동 어시스턴트 클라이언트(118N) 및 하나 이상의 클라우드 기반 자동 어시스턴트 컴포넌트들(119)을 포함한다. 따라서, 다음을 유의해야 하는바, 하나 이상의 어시스턴트 입력 디바이스(106) 상에서 실행되는 자동 어시스턴트 클라이언트(118)와 관여하는 각각의 사용자는 사실상, 자동 어시스턴트(120)의 그 자신의 논리적 인스턴스(또는 가족 또는 다른 사용자 그룹 간에 공유되는 자동 어시스턴트(120)의 논리적 인스턴스)와 관여한다. 간결함과 단순함을 위해, 본 명세서에서 사용되는 용어 "자동 어시스턴트"는 어시스턴트 입력 디바이스(106) 각각에서 실행되는 자동 어시스턴트 클라이언트(118)와 하나 이상의 클라우드 기반 자동 어시스턴트 컴포넌트(119)(이는 여러 자동 어시스턴트 클라이언트(118) 간에 공유될 수 있음)의 조합을 지칭할 것이다. 비록, 복수의 어시스턴트 입력 디바이스(106)만이 도 1에 도시되어 있지만, 클라우드 기반 자동 어시스턴트 컴포넌트(들)(119)은 많은 추가 그룹의 어시스턴트 입력 디바이스들을 서비스할 수 있다.
어시스턴트 입력 디바이스(106)는 예를 들어, 다음 중 하나 이상을 포함할 수 있다. 데스크탑 컴퓨팅 디바이스, 랩탑 컴퓨팅 디바이스, 태블릿 컴퓨팅 디바이스, 휴대폰 컴퓨팅 디바이스, 사용자 차량의 컴퓨팅 디바이스(예를 들어, 차량내 통신 시스템, 차량내 엔터테인먼트 시스템, 차량내 내비게이션 시스템), 대화형 독립형 스피커(예: 디스플레이가 있거나 없음), 스마트 TV와 같은 스마트 가전기기, 컴퓨팅 디바이스를 포함하는 사용자의 웨어러블 디바이스(예컨대, 컴퓨팅 디바이스를 갖는 사용자의 시계, 컴퓨팅 디바이스를 갖는 사용자의 안경, 가상 또는 증강 현실 컴퓨팅 디바이스), 및/또는 자동 어시스턴트(120)로 향하는 사용자 입력을 수신할 수 있는 임의의 IoT 디바이스. 추가적인 또는 대안적인 어시스턴트 입력 디바이스들이 또한 제공될 수 있다. 어시스턴트 비입력 디바이스(185)는 어시스턴트 입력 디바이스(106)와 동일한 많은 디바이스들을 포함할 수 있지만, 자동 어시스턴트(120)로 향하는 사용자 입력을 수신할 수는 없다(예컨대, 사용자 인터페이스 입력 컴포넌트를 포함하지 않음). 비록, 어시스턴트 비입력 디바이스(185)가 자동 어시스턴트(120)로 향하는 사용자 입력을 수신하지는 않지만, 어시스턴트 비입력 디바이스(185)는 여전히 자동 어시스턴트(120)에 의해 제어될 수 있다.
일부 구현예에서, 복수의 어시스턴트 입력 디바이스(106) 및 어시스턴트 비입력 디바이스(185)는 본 명세서에 설명된 기술의 수행을 용이하게 하기 위해 다양한 방식으로 서로 연관될 수 있다. 예를 들어, 일부 구현예에서, 복수의 어시스턴트 입력 디바이스(106) 및 어시스턴트 비입력 디바이스(185)는 하나 이상의 네트워크를 통해(예를 들어, 도 1의 네트워크(들)(110)를 통해) 통신가능하게 결합됨으로써 서로 연관될 수 있다. 이것은 예를 들어, 복수의 어시스턴트 입력 디바이스(106) 및 어시스턴트 비입력 디바이스(185)가 집, 건물 등과 같은 특정 영역 또는 환경에 걸쳐 배치되는 경우일 수 있다. 추가로 또는 대안적으로, 일부 구현예에서, 복수의 어시스턴트 입력 디바이스(106) 및 어시스턴트 비입력 디바이스(185)는 하나 이상의 사용자(예를 들어, 개인, 가족, 조직의 직원, 기타 미리 정의된 그룹 등)에 의해 적어도 선택적으로 액세스될 수 있는 조정된 생태계의 구성원이라는 점에 의해 서로 연관될 수 있다. 그러한 구현예들 중 일부에서, 복수의 어시스턴트 입력 디바이스(106) 및 어시스턴트 비입력 디바이스(185)의 생태계는 디바이스 토폴로지 데이터베이스(193)에 저장되는 생태계의 디바이스 토폴로지 표현에서 서로 수동 및/또는 자동으로 연관될 수 있다.
어시스턴트 비입력 시스템(들)(180)은 하나 이상의 제 1 당사자(1P) 시스템 및/또는 하나 이상의 제 3 당사자(3P) 시스템을 포함할 수 있다. 1P 시스템은 본 명세서에서 참조되는 자동 어시스턴트(120)를 제어하는 당사자와 동일한 당사자에 의해 제어되는 시스템을 지칭한다. 본 명세서에서 사용되는 3P 시스템은 본 명세서에서 참조되는 자동 어시스턴트(120)를 제어하는 당사자와는 별개의 당사자에 의해 제어되는 시스템을 지칭한다.
어시스턴트 비입력 시스템(들)(180)은 어시스턴트 비입력 디바이스(185) 및/또는 (예를 들어, 도 1의 네트워크(110)를 통해) 이에 통신가능하게 연결된 하나 이상의 클라우드 기반 자동 어시스턴트 컴포넌트(119)로부터 데이터를 수신할 수 있으며 그리고 어시스턴트 비입력 디바이스(185) 및/또는 하나 이상의 클라우드 기반 자동 어시스턴트 컴포넌트에 데이터(예를 들어, 상태(들), 상태 변경(들) 및/또는 기타 데이터)를 선택적으로 전송할 수 있다. 예를 들어, 어시스턴트 비입력 디바이스(1851)가 스마트 도어벨 IoT 디바이스라고 가정하자. 도어벨 IoT 디바이스의 버튼을 사람이 누르면, 도어벨 IoT 디바이스는 어시스턴트 비입력 시스템(들)(180) 중 하나(1P 시스템 또는 3P 시스템일 수 있는 도어벨종 제조사에서 관리하는 어시스턴트 비입력 시스템(들) 중 하나)로 해당 데이터를 전송할 수 있다. 어시스턴트 비입력 시스템(들)(180) 중 하나는 이러한 데이터를 기반으로 도어벨 IoT 디바이스의 상태 변화를 판단할 수 있다. 예를 들어, 어시스턴트 비입력 시스템(들)(180) 중 하나는 비활성 상태(예를 들어, 최근에 버튼을 누르지 않음)에서 활성 상태(최근에 버튼을 누름)로의 초인종의 변화를 결정할 수 있고, 초인종 상태의 이러한 변화는 (예를 들어, 도 1의 네트워크 110를 통해) 하나 이상의 클라우드 기반 자동 어시스턴트 컴포넌트(119) 및/또는 하나 이상의 어시스턴트 입력 디바이스(106)로 전송될 수 있다. 특히, 사용자 입력이 어시스턴트 비입력 디바이스(1851)에서 수신되더라도 (예를 들어, 초인종의 버튼을 누르는 것), 사용자 입력은 자동 어시스턴트(120)로 향하는 것이 아니다(따라서 "어시스턴트 비입력 디바이스"라는 용어). 또 다른 예 로서, 어시스턴트 비입력 디바이스(1851)가 마이크(들)가 있는 스마트 온도조절기 IoT 디바이스라고 가정하지만, 스마트 온도조절기는 자동 어시스턴트 클라이언트(118)를 포함하지 않는다. 개인은 터치 입력 또는 음성 입력을 사용하여 스마트 온도조절기와 상호작용하여, 온도를 변경하고 스마트 온도조절기를 통해 HVAC 시스템을 제어하기 위한 설정점으로 특정 값을 설정하는 등의 작업을 수행할 수 있다. 하지만, 스마트 온도조절기가 자동 어시스턴트 클라이언트(118)를 포함하지 않는 한, 개인은 스마트 온도조절기를 통해 자동 어시스턴트(120)와 직접 통신할 수 없다.
다양한 구현예에서, 하나 이상의 클라우드 기반 자동 어시스턴트 컴포넌트(119)는 또한 다양한 엔진을 포함할 수 있다. 예를 들어, 도 1에 도시된 바와 같이, 하나 이상의 클라우드 기반 자동 어시스턴트 컴포넌트(119)는 이벤트 검출 엔진(130), 디바이스 식별 엔진(140), 이벤트 프로세싱 엔진(150), 의미론적 라벨링 엔진(160) 및 질의/명령 프로세싱 엔진(170)을 더 포함할 수 있다. 이들 다양한 엔진들이 도 1에서 하나 이상의 클라우드 기반 자동 어시스턴트 컴포넌트(119)로 도시되어 있지만, 이는 예시를 위한 것이며 제한하려는 의도가 아님을 이해해야 한다. 예를 들어, 어시스턴트 입력 디바이스(106) 및/또는 어시스턴트 비입력 디바이스(185)는 이들 다양한 엔진 중 하나 이상을 포함할 수 있다. 다른 예로서, 이들 다양한 엔진들은 어시스턴트 입력 디바이스들(106)에 걸쳐 분산될 수 있고, 어시스턴트 비입력 디바이스(185)는 이들 다양한 엔진 중 하나 이상 및/ 또는 하나 이상의 클라우드 기반 자동 어시스턴트 컴포넌트(119)를 포함할 수 있다.
일부 구현예에서, 이벤트 검출 엔진(130)은 생태계에서 발생하는 다양한 이벤트를 검출할 수 있다. 이러한 구현의 일부 버전에서, 이벤트 검출 엔진(130)은 어시스턴트 입력 디바이스들(106) 중 주어진 하나 및/또는 어시스턴트 비입력 디바이스들(185) 중 주어진 하나(예를 들어, 어시스턴트 디바이스들 중 주어진 하나)가 언제 생태계에 새로 추가되거나 생태계 내에서 위치가 이동되는지를 결정할 수 있다. 예를 들어, 이벤트 검출 엔진(130)은 네트워크(들)(110) 및 디바이스 식별 엔진(140)을 통해 검출된 하나 이상의 무선 신호에 기초하여 어시스턴트 디바이스 중 주어진 하나가 생태계에 언제 새로 추가되는지를 결정할 수 있다. 예를 들어, 어시스턴트 디바이스 중 주어진 하나가 하나 이상의 네트워크(110)에 새로 연결되면, 상기 주어진 하나의 어시스턴트 디바이스는 자신이 네트워크(110)에 새로 추가되었음을 나타내는 신호를 브로드캐스트할 수 있다. 다른 일례로서, 이벤트 검출 엔진(130)은 네트워크(들)(110)를 통해 검출된 하나 이상의 무선 신호에 기초하여 어시스턴트 디바이스 중 주어진 하나가 생태계 내에서 위치를 이동한 때를 결정할 수 있다. 이러한 예에서, 디바이스 식별 엔진(140)은 상기 신호를 프로세싱하여, 어시스턴트 디바이스 중 주어진 하나가 네트워크(110)에 새로 추가되었다라고 결정하고 및/또는 어시스턴트 디바이스 중 주어진 하나가 생태계 내에서 위치를 이동했다고 결정한다. 디바이스 식별 엔진(140)에 의해 검출된 하나 이상의 무선 신호는 예를 들어, 인간이 지각할 수 없으며 어시스턴트 디바이스 중 주어진 하나에 대한 또는 어시스턴트 디바이스 중 주어진 하나에 위치적으로 근접한 다른 어시스턴트 디바이스에 대한 각각의 고유 식별자를 선택적으로 포함하는 네트워크 신호 및/또는 음향 신호일 수 있다. 예를 들어, 어시스턴트 디바이스 중 주어진 하나(또는 이하에서, 어시스턴트 디바이스 중 "소정 어시스턴트 디바이스"라 함)가 생태계 내에서 위치를 이동한 경우, 디바이스 식별 엔진(140)은 어시스턴트 디바이스 중 상기 주어진 하나에 위치적으로 근접한 다른 어시스턴트 디바이스에 의해 전송되는 하나 이상의 무선 신호를 검출할 수 있다. 이러한 신호는 어시스턴트 디바이스 중 소정 어시스턴트 디바이스에 위치적으로 근접한 하나 이상의 다른 어시스턴트 디바이스가, 상기 소정 어시스턴트 디바이스에 이전에 위치적으로 근접했던 하나 이상의 어시스턴트 디바이스와 다르다는 것을 결정하기 위해 프로세싱될 수 있다.
이러한 구현의 일부 추가 버전에서, 자동 어시스턴트(120)는 생태계에 새로 추가된 또는 생태계 내에서 위치가 이동된 상기 소정 어시스턴트 디바이스가 어시스턴트 디바이스들의 그룹에 할당되게 할 수 있다(예를 들어, 디바이스 토폴로지 데이터베이스 193에 저장된 생태계의 디바이스 토폴로지 표현에서). 예를 들어, 소정 어시스턴트 디바이스가 생태계에 새로 추가되는 구현예에서, 상기 소정 어시스턴트 디바이스는 어시스턴트 디바이스들의 기존 그룹에 추가되거나 또는 상기 소정 어시스턴트 디바이스를 포함하는 새로운 어시스턴트 디바이스 그룹이 생성될 수 있다. 예를 들어, 상기 소정 어시스턴트 디바이스가 "주방" 그룹에 속하는 복수의 어시스턴트 디바이스들(예를 들어, 스마트 오븐, 스마트 커피 메이커, 주방에 있음을 나타내는 고유 식별자 또는 라벨과 관련된 대화형 독립형 스피커, 및/또는 기타 다른 어시스턴트 디바이스)에 위치적으로 근접한 경우, 상기 소정 어시스턴트 디바이스는 "주방" 그룹에 추가되거나 또는 새로운 그룹이 생성될 수 있다. 또 다른 예로서, 소정 어시스턴트 디바이스가 생태계 내에서 위치가 이동되는 구현예에서, 상기 소정 어시스턴트 디바이스는 어시스턴트 디바이스들의 기존 그룹에 추가되거나 또는 상기 소정 어시스턴트 디바이스를 포함하는 새로운 어시스턴트 디바이스 그룹이 생성될 수 있다. 예를 들어, 소정 어시스턴트 디바이스가 전술한 "주방" 그룹에 속하는 복수의 어시스턴트 디바이스들에 위치적으로 근접했었지만, 현재는 "차고" 그룹에 속하는 복수의 어시스턴트 디바이스들(예를 들어, 스마트 차고 문, 스마트 도어록 및/또는 기타 어시스턴트 디바이스)에 위치적으로 근접한 경우, 상기 소정 어시스턴트 디바이스는 "주방" 그룹에서 제거되고 "차고" 그룹에 추가될 수 있다.
이러한 구현의 일부 추가 또는 대안 버전에서, 이벤트 검출 엔진(130)은 음향 이벤트의 발생을 검출할 수 있다. 음향 이벤트의 발생은 하나 이상의 어시스턴트 입력 디바이스(106) 및/또는 하나 이상의 어시스턴트 비입력 디바이스(185)(예컨대, 하나 이상의 어시스턴트 디바이스)에서 수신된 오디오 데이터에 기초하여 검출될 수 있다. 하나 이상의 어시스턴트 디바이스에서 수신되는 오디오 데이터는 ML 모델(들) 데이터베이스(192)에 저장된 이벤트 검출 모델(들)에 의해 프로세싱될 수 있다. 이러한 구현예에서, 음향 이벤트의 발생을 검출한 각각의 하나 이상의 어시스턴트 디바이스는 각각의 마이크를 포함한다.
이러한 구현의 일부 추가 버전에서, 음향 이벤트의 발생은 하나 이상의 어시스턴트 디바이스에서 캡처된 오디오 데이터에 있는 주변 잡음을 포함할 수 있다(선택적으로 하나 이상의 어시스턴트 디바이스에서 음성 수신이 활성화될 때 검출되는 주변 잡음의 발생만을 포함할 수 있다). 하나 이상의 어시스턴트 디바이스 각각에서 검출된 주변 잡음은 디바이스 활동 데이터베이스(191)에 저장될 수 있다. 이러한 구현예에서, 이벤트 프로세싱 엔진(150)은 주변 잡음 검출 모델(들)을 사용하여 주변 잡음을 프로세싱하는 과정에서 발생한 척도(들)에 기초하여 주변 잡음을 하나 이상의 서로 다른 의미론적 카테고리들로 분류하도록 트레이닝된 주변 잡음 검출 모델(들)을 사용하여, 하나 이상의 어시스턴트 디바이스에서 검출된 주변 잡음을 프로세싱할 수 있다. 이러한 복수의 서로 다른 카테고리들은 예를 들어, 영화 또는 텔레비전 사운드 카테고리, 요리 사운드 카테고리, 음악 사운드 카테고리, 차고 또는 작업장 사운드 카테고리, 파티오(patio) 사운드 카테고리, 및/또는 기타 의미론적으로 의미가 있는 상이한 사운드 카테고리를 포함할 수 있다. 예를 들어, 주변 잡음 검출 모델(들)을 사용하여 프로세싱된 주변 잡음이 전자레인지 소리, 프라이팬 위에서 음식이 지글지글 끓는 소리, 음식 조리기가 음식을 조리하는 소리 등에 대응하는 소리를 포함한다라고 이벤트 프로세싱 엔진(150)이 결정하면, 이벤트 프로세싱 엔진(150)은 주변 잡음을 요리 사운드 카테고리로 분류할 수 있다. 다른 예로서, 주변 잡음 검출 모델(들)을 사용하여 프로세싱된 주변 잡음이 톱 윙윙거림, 망치 두드리는 소리 등에 대응하는 소리를 포함한다라고 이벤트 프로세싱 엔진(150)이 결정하면, 이벤트 프로세싱 엔진(150)은 주변 잡음을 차고 또는 작업장 사운드 카테고리로 분류할 수 있다. 특정 디바이스들에서 검출된 주변 잡음에 대한 분류는 어시스턴트 디바이스들에 대한 의미론적 라벨을 추론하는데 사용되는 디바이스별 신호로도 활용될 수 있다(예컨대, 의미론적 라벨링 엔진(160)에 대해 설명됨).
이러한 추가 구현예들의 일부 추가 또는 대안 버전에서, 음향 이벤트의 발생은 하나 이상의 어시스턴트 디바이스에서 검출된 핫워드 또는 특정 사운드를 포함할 수 있다. 이러한 구현예에서, 이벤트 프로세싱 엔진(150)은 핫워드 검출 모델(들)을 사용하여 오디오 데이터를 프로세싱할 때 생성된 척도(들)에 기초하여 자동 어시스턴트(120)를 호출하는 특정 단어 또는 문구가 오디오 데이터가 포함되는지를 결정하도록 트레이닝된 핫워드 검출 모델(들)을 이용하여 하나 이상의 어시스턴트 디바이스에서 검출된 오디오 데이터를 프로세싱할 수 있다. 예를 들어, 이벤트 프로세싱 엔진(150)은 오디오 데이터를 프로세싱하여, "어시스턴트", "헤이 어시스턴트(Hey assistant)", "오케이 어시스턴트(Okay, assistant)" 및/또는 자동 어시스턴트를 호출하는 임의의 다른 단어 또는 문구를 포함하는 사용자의 음성 발화를 상기 오디오 데이터가 캡처하는지를 결정할 수 있다. 또한, 핫워드 검출 모델(들)을 사용하여 생성된 척도(들)은 자동 어시스턴트(120)를 호출하는 용어 또는 문구를 오디오 데이터가 포함하는지 여부를 나타내는 각각의 신뢰 레벨 또는 확률을 포함할 수 있다. 이러한 구현예의 일부 버전에서, 이벤트 프로세싱 엔진(150)은 척도(들)이 임계값을 만족하는 경우 오디오 데이터가 상기 단어 또는 문구를 캡처한다고 결정할 수 있다. 예를 들어, 이벤트 프로세싱 엔진(150)은 자동 어시스턴트(120)를 호출하는 용어 또는 문구를 캡처하는 오디오 데이터와 관련된 0.70의 척도를 생성하고 그리고 임계값이 0.65인 경우, 이벤트 프로세싱 엔진(150)은 오디오 데이터가 자동 어시스턴트(120)를 호출하는 용어 또는 문구를 캡처하는 것으로 결정할 수 있다. 핫워드 검출 모델(들)은 예를 들어, 감독된 러닝 기술(supervised learning techniques)을 사용하여 트레이닝될 수 있다. 예를 들어, 복수의 트레이닝 인스턴스들이 획득될 수 있다. 각각의 트레이닝 인스턴스는 오디오 데이터(또는 가령, mel-Cepstral 주파수 계수, 오디오 파형, mel-bank 피처, 및/또는 기타 음향 피처와 같은 오디오 데이터의 피처들)를 포함하는 트레이닝 인스턴스 입력 및 상기 트레이닝 인스턴스 입력이 자동 어시스턴트(120)를 호출하는 특정 단어 또는 문구를 포함하는지 여부의 나타내는 대응하는 트레이닝 인스턴스 출력을 포함할 수 있다. 예를 들어, 트레이닝 인스턴스 입력이 특정 단어 또는 구문을 캡처하는 오디오 데이터를 포함하는 경우, 트레이닝 인스턴스 입력이 특정 단어 또는 문구를 포함하고 있음을 나타내는 라벨(예컨대, "예") 또는 값(예: "1")이 대응하는 트레이닝 인스턴스 출력에 할당될 수 있다. 그리고 트레이닝 인스턴스 입력이 특정 단어나 문구를 포함하지 않는 경우, 대응하는 트레이닝 인스턴스 출력에는 다른 라벨(예: "아니요") 또는 값(예: "0")이 할당될 수 있다.
추가적으로 또는 대안적으로, 이러한 구현예에서 이벤트 프로세싱 엔진(150)은 사운드 검출 모델(들)을 사용하여 오디오 데이터를 프로세싱할 때 생성된 척도(들)에 기초하여 상기 오디오 데이터가 특정 사운드를 포함하는지 여부를 결정하도록 트레이닝된 사운드 검출 모델(들)을 사용하여 하나 이상의 어시스턴트 디바이스에서 검출된 오디오 데이터를 프로세싱할 수 있다. 특정 사운드는 예를 들어, 유리 깨지는 소리, 개 짖는 소리, 고양이 울음소리, 초인종 소리, 연기 경보 소리, 일산화탄소 검출기 소리, 아기 울음소리 또는 문 두드리는 소리 등을 포함할 수 있다. 예를 들어, 이벤트 프로세싱 엔진(150)은 오디오 데이터를 프로세싱하여, 오디오 데이터가 이들 특정 사운드 중 임의의 것을 캡처하는지 여부를 결정할 수 있다. 본 일례에서, 여러 특정 사운드가 오디오 데이터에 캡처되었는지 여부를 결정하기 위해 단일 사운드 검출 모델이 트레이닝될 수 있거나 또는, 소정 특정 사운드가 오디오 데이터에 캡처되었는지 여부를 결정하기 위하여 여러 사운드 검출 모델들이 트레이닝될 수 있다. 또한, 사운드 검출 모델(들)을 사용하여 생성된 척도(들)은 오디오 데이터가 특정 사운드를 포함하는지 여부를 나타내는 각각의 신뢰 레벨 또는 확률을 포함할 수 있다. 이러한 구현예들의 일부 버전에서, 이벤트 프로세싱 엔진(150)은 척도(들)이 임계값을 충족하는 경우, 오디오 데이터가 특정 사운드를 캡처한다고 결정할 수 있다. 예를 들어, 이벤트 프로세싱 엔진(150)이 유리 깨지는 소리를 캡처하는 오디오 데이터와 관련된 0.70의 척도를 생성하고 그리고 임계값이 0.65인 경우, 이벤트 프로세싱 엔진(150)은 오디오 데이터가 유리 깨지는 소리를 캡처한다고 결정할 수 있다.
다양한 구현예에서, 음향 이벤트의 발생은 생태계 내의 다수의 어시스턴트 디바이스들에 의해 캡처될 수 있다. 예를 들어, 환경 내의 다수의 어시스턴트 디바이스는 시간적으로 대응하는 오디오 데이터를 캡처할 수 있다(예를 들어, 각각의 오디오 데이터가 여러 어시스턴트 디바이스들에서 동시에 또는 임계 지속 기간 내에 검출된다는 점에서 시간적으로 대응함). 이러한 구현예에서, 그리고 생태계에서 소정 어시스턴트 디바이스가 오디오 데이터를 검출함에 응답하여, 디바이스 식별 엔진(140)은 음향 이벤트를 또한 캡처하는 시간적으로 대응하는 오디오 데이터를 또한 검출했어야 하는 하나 이상의 추가 어시스턴트 디바이스들을 식별할 수 있다. 예를 들어, 디바이스 식별 엔진(140)은 음향 이벤트를 또한 캡처하는 시간적으로 대응하는 오디오 데이터를 역사적으로(historically) 검출하는 하나 이상의 추가 어시스턴트 디바이스에 기초하여, 음향 이벤트를 또한 캡처하는 시간적으로 대응하는 오디오 데이터를 또한 검출했어야 하는 하나 이상의 추가 어시스턴트 디바이스를 식별할 수 있다. 즉, 달리 말하면, 디바이스 식별 엔진(140)은 하나 이상의 추가 어시스턴트 디바이스가 음향 이벤트를 포함하는 오디오 데이터를 캡처해야 한다고 예상할 수 있는데, 왜냐하면 소정 어시스턴트 디바이스 및 하나 이상의 추가 어시스턴트 디바이스가 동일한 음향 이벤트를 포함하는 시간적으로 대응하는 오디오 데이터를 역사적으로 캡처했기 때문이다(예를 들어, 도 2a, 2b 및 3과 관련하여 설명된 바와 같이).
다양한 구현예에서, 각각의 어시스턴트 디바이스에 의해 생성되거나 검출된 하나 이상의 디바이스별 특정 신호는 디바이스 활동 데이터베이스(191)에 저장될 수 있다. 일부 구현예에서, 디바이스 활동 데이터베이스(191)는 이러한 특정 어시스턴트 디바이스의 디바이스 활동에 전용되는 메모리의 일부분에 대응할 수 있다. 일부 추가적인 또는 대안적인 구현예에서, 디바이스 활동 데이터베이스(191)는 (예를 들어, 도 1의 네트워크 110를 통해) 어시스턴트 디바이스와 통신하는 원격 시스템의 메모리에 대응할 수 있다. 이러한 디바이스 활동은 소정의 어시스턴트 디바이스에 대한 후보 의미론적론적 라벨을 생성하는데 활용될 수 있다(예를 들어, 의미론적 라벨링 엔진(160)에 대해 설명됨). 디바이스 활동은 예를 들어, 각각의 어시스턴트 디바이스에서 수신된 질의들 또는 요청들(및/또는 복수의 질의 또는 요청 각각과 관련된 의미론적 카테고리), 각각의 어시스턴트 디바이스에서 실행되는 명령들(및/또는 복수의 명령 각각과 관련된 의미론적 카테고리), 각각의 어시스턴트 디바이스에서 검출된 주변 잡음(및/또는 주변 잡음의 다양한 인스턴스들과 관련된 의미론적 카테고리), 소정 어시스턴트 디바이스에 위치적으로 근접한 임의의 어시스턴트 디바이스들의 고유 식별자들 또는 라벨들(예를 들어, 이벤트 검출 엔진 140을 통해 식별됨), 및/또는 각각의 어시스턴트 디바이스에 의해 수신, 생성 및/또는 실행되는 임의의 다른 데이터를 포함할 수 있다.
일부 구현예에서, 의미론적 라벨링 엔진(160)은 하나 이상의 디바이스 특정 신호에 기초하여 어시스턴트 디바이스들 중 소정 어시스턴트 디바이스(예를 들어, 소정 어시스턴트 입력 디바이스 106 및/또는 소정 어시스턴트 비입력 디바이스 185)에 대한 후보 의미론적론적 라벨을 생성하기 위해 하나 이상의 디바이스 특정 신호를 프로세싱할 수 있다. 후보 의미론적론적 라벨은 하나 이상의 규칙(들)(선택적으로 경험적으로(heuristically) 정의됨) 또는 머신 러닝 모델(들)(예를 들어, ML 모델(들) 데이터베이스(192)에 저장됨)을 사용하여 생성될 수 있다. 예를 들어, 하나 이상의 경험적으로(heuristically) 정의된 규칙은 하나 이상의 디바이스 특정 신호가 생성되어야 하는 각각의 의미론적 카테고리와 관련된 후보 의미론적론적 라벨을 나타낼 수 있다. 예를 들어, 디바이스 특정 신호가 '주방' 카테고리, '요리' 카테고리, '침실' 카테고리, '거실' 카테고리로 분류된다고 가정하자. 이러한 예에서, 후보 의미론적론적 라벨은 "주방 어시스턴트 디바이스"라는 제 1 후보 의미론적론적 라벨, "요리 어시스턴트 디바이스"의 제 2 후보 의미론적론적 라벨, "침실 어시스턴트 디바이스"의 제 3 후보 의미론적론적 라벨, 및 "거실 어시스턴트 디바이스"의 제 4 후보 의미론적론적 라벨을 포함할 수 있다. 다른 예로서, 하나 이상의 디바이스 특정 신호(또는 이에 대응하는 하나 이상의 의미론적 카테고리)는 후보 의미론적론적 라벨을 생성하도록 트레이닝된 머신 러닝 모델을 사용하여 프로세싱될 수 있다. 예를 들어, 머신 러닝 모델은 복수의 트레이닝 인스턴스를 기반으로 트레이닝될 수 있다. 각각의 트레이닝 인스턴스는 트레이닝 인스턴스 입력과 대응 트레이닝 인스턴스 출력을 포함할 수 있다. 트레이닝 인스턴스 입력은 예를 들어, 하나 이상의 디바이스 특정 신호 및/또는 하나 이상의 의미론적 카테고리를 포함할 수 있으며, 대응 트레이닝 인스턴스 출력은 예를 들어, 트레이닝 인스턴스 입력에 기초하여 할당되어야 하는 의미론적 라벨에 대응하는 그라운드 트루 출력을 포함할 수 있다.
이러한 구현의 일부 버전에서, 후보 의미론적론적 라벨이 생성되는 소정 어시스턴트 디바이스는 상기 소정 어시스턴트 디바이스가 생태계에 새로 추가되거나 및/또는 생태계 내에서 위치가 이동된다는 결정에 응답하여 식별될 수 있다. 이러한 구현의 일부 추가 또는 대안 버전에서, 후보 의미론적론적 라벨이 생성되는 소정 어시스턴트 디바이스는 주기적으로(예를 들어, 한 달에 한 번, 6개월에 한 번, 1년에 한 번 등) 식별될 수 있다. 이러한 구현의 일부 추가 또는 대체 버전에서, 후보 의미론적론적 라벨이 생성되는 소정 어시스턴트 디바이스는 소정 어시스턴트 디바이스가 위치한 생태계의 일부분이 용도가 변경되었다는 결정에 응답하여 식별될 수 있다(예컨대, 생태계의 기본 거주지의 방은 서재(den)에서 침실로 용도가 변경되었다). 이들 구현예에서, 소정 어시스턴트 디바이스는 이벤트 검출 엔진(130)을 이용하여 식별될 수 있다 . 이러한 방식 및 다른 방식으로 소정 어시스턴트 디바이스를 식별하는 것은 도 2A 및 2B와 관련하여 설명된다.
일부 구현예에서, 의미론적 라벨링 엔진(160)은 하나 이상의 디바이스 특정 신호에 기초하여, 소정 어시스턴트 디바이스에 대해 후보 의미론적론적 라벨들 중에서 소정의 의미 라벨을 선택할 수 있다. 디바이스 활동 데이터베이스(191)에 저장된 질의, 요청 및/또는 명령(또는 이에 대응하는 텍스트)에 기초하여 소정 어시스턴트 디바이스에 대한 후보 의미론적론적 라벨이 생성되는 구현예에서, 질의, 요청 및/또는 명령은 의미론적 분류기(예를 들어, ML 모델(들) 데이터베이스(192)에 저장됨)를 사용하여 프로세싱되어, 소정 어시스턴트 디바이스에 대한 디바이스 활동을 하나 이상의 상이한 의미론적 카테고리들로 인덱싱할 수 있으며, 이러한 상이한 의미론적 카테고리들은 서로 구별되는 유형들의 질의, 요청 및/또는 명령에 대응한다. 질의, 요청 및/또는 명령이 분류된 의미 카테고리들에 기초하여 후보 의미론적 라벨들이 생성될 수 있고, 소정 어시스턴트 디바이스에 대해 선택되는 소정의 의미 라벨은, 소정의 의미 카테고리로 분류되는 복수의 질의, 요청 및/또는 명령의 수량에 기초하여 선택될 수 있다. 예를 들어, 소정 어시스턴트 디바이스가 요리 레시피 획득과 관련된 9개의 질의들과 생태계 내의 스마트 조명 제어와 관련된 2개의 명령을 이전에 수신했다고 가정하자. 이러한 예에서, 후보 의미론적 라벨은 예를 들어, "주방 디바이스"의 제 1 의미 라벨 및 "스마트 조명 디바이스 제어"의 제 2 의미 라벨을 포함할 수 있다. 또한, 의미 라벨링 엔진(160)은 "주방 디바이스"라는 제 1 의미 라벨을 소정 어시스턴트 디바이스에 대한 소정 의미 라벨로서 선택할 수 있는데, 왜냐하면 소정 어시스턴트 디바이스의 사용 이력이 요리 관련 활동에 주로 사용됨을 나타내기 때문이다.
일부 구현예에서, ML 모델(들) 데이터베이스(192)에 저장된 의미 분류기(들)는 자연어 이해 엔진(들)일 수 있다(예를 들어, 아래에서 설명되는 NLP 모듈 122에 의해 구현됨). 어시스턴트 디바이스에서 이전에 수신된 질의, 명령 및/또는 요청을 프로세싱함에 기초하여 결정되는 의도(들)는 하나 이상의 의미 카테고리에 매핑될 수 있다. 특히, 본 명세서에 기술된 복수의 서로 다른 의미 카테고리들은 다양한 입도 레벨들로 정의될 수 있다. 예를 들어, 의미론적 카테고리들은 스마트 조명 명령들의 카테고리, 스마트 온도조절기 명령들의 카테고리 및/또는 스마트 카메라 명령들의 카테고리와 같은 스마트 디바이스 명령들의 속(genus) 카테고리 및/또는 이러한 속 클래스의 종(species) 카테고리(들)에 연관될 수 있다. 다른 말로 하면, 카테고리의 일부 의도(들)은 추가 카테고리(들)과 연관될 수도 있지만, 각각의 카테고리는 의미론적 분류기(들)에 의해 결정되는 것들과 관련된 고유한 의도(들)의 세트를 가질 수 있다. 일부 추가적 또는 대안적 구현예에서, ML 모델(들) 데이터베이스(192)에 저장된 의미론적 분류기(들)이 활용되어, 질의, 명령 및/또는 요청의 텍스트에 대응하는 텍스트 임베딩(예컨대, word2vec 표현과 같은 저차원 표현)을 생성할 수 있다. 이러한 임베딩들은 의미론적으로 유사한 단어들 또는 문구들이 임베딩 공간의 동일하거나 유사한 부분들과 관련되는 임베딩 공간 내의 포인트들일 수 있다. 또한, 임베딩 공간의 이러한 부분들은 복수의 서로 다른 의미론적 카테고리들 중 하나 이상과 연관될 수 있고, 그리고 임베딩들 중 소정 임베딩은 의미론적 카테고리들 중 소정의 의미론적 카테고리로 분류될 수 있다(상기 소정 임베딩과 임베딩 공간의 하나 이상의 부분들 사이의 거리 메트릭이 거리 임계값을 충족하는 경우). 예를 들어, 요리 관련 단어들 또는 문구들은 "요리" 의미론적 라벨과 관련된 임베딩 공간의 제 1 부분과 연관될 수 있고, 날씨 관련 단어들 또는 문구들은 "날씨" 의미론적 라벨과 관련된 임베딩 공간의 제 2 부분과 연관될 수 있다(기타 등등).
하나 이상의 디바이스 특정 신호들이 추가로 또는 대안적으로 주변 잡음 활동을 포함하는 구현예에서, 주변 잡음의 인스턴스들은 주변 잡음 검출 모델(들)(예를 들어, ML 모델(들) 데이터베이스(192)에 저장됨)에 의해 프로세싱되어, 소정 어시스턴트 디바이스에 대한 디바이스 활동을, 서로 다른 유형들의 주변 잡음에 대응하는 하나 이상의 상이한 의미론적 카테고리들로 인덱싱할 수 있다. 주변 잡음의 인스턴스들이 분류된 의미론적 카테고리들에 기초하여 후보 의미론적 라벨들이 생성될 수 있으며, 그리고 소정 어시스턴트 디바이스에 대해 선택된 소정의 의미론적 라벨은 소정의 의미론적 카테고리로 분류된 주변 잡음의 인스턴스들의 수량에 기초하여 선택될 수 있다. 예를 들어, 소정 어시스턴트 디바이스에서 검출된 주변 잡음(및 선택적으로 음성 인식이 활성화된 경우에만)이 요리 사운드로 분류된 주변 잡음을 주로 포함한다고 가정하자. 이 예에서, 의미론적 라벨링 엔진(160)은 소정 어시스턴트 디바이스에 대한 소정의 의미론적 라벨로서 "주방 디바이스"라는 의미론적 라벨을 선택할 수 있는데, 왜냐하면 오디오 데이터에서 캡처된 주변 소음이 디바이스가 요리 관련 활동에 근접하게 위치함을 나타내기 때문이다.
일부 구현예에서, ML 모델(들) 데이터베이스(192)에 저장된 주변 잡음 검출 모델(들)은 특정 사운드를 검출하도록 트레이닝될 수 있고, 주변 잡음 검출 모델에 대해 생성된 출력(들)에 기초하여 주변 잡음의 인스턴스가 특정 사운드를 포함하는지 여부가 결정될 수 있다. 주변 잡음 검출 모델(들)은 예를 들어, 감독된 학습 기술을 사용하여 트레이닝될 수 있다. 예를 들어, 복수의 트레이닝 인스턴스들이 획득될 수 있다. 각각의 트레이닝 인스턴스는 주변 잡음을 포함하는 트레이닝 인스턴스 입력 및 주변 잡음 검출 모델(들)이 검출하도록 트레이닝되는 특정 사운드(들)을 트레이닝 인스턴스 입력이 포함하는지를 나타내는 표시를 포함하는 대응 트레이닝 인스턴스 출력을 포함할 수 있다. 예를 들어, 주변 잡음 검출 모델(들)이 유리 깨지는 소리를 검출하도록 트레이닝되는 경우, 유리 깨지는 소리를 포함하는 트레이닝 인스턴스들은 라벨(예컨대, "예") 또는 값(예컨대, " 1")을 할당받으며, 유리 깨지는 소리를 포함하지 않는 트레이닝 인스턴스들은 다른 라벨(예컨대, "아니요") 또는 값(예컨대, "0")을 할당받을 수 있다. 일부 추가적인 또는 대안적인 구현예에서, ML 모델(들) 데이터베이스(192)에 저장된 주변 잡음 검출 모델(들)은, 주변 잡음의 인스턴스들(또는 이들의 음향 피처들, 가령, mel-Cepstral 주파수 계수, 원시 오디오 파형 및/또는 기타 음향 피처들)에 기초하여 오디오 임베딩(예를 들어, 주변 잡음 인스턴스의 저차원 표현)을 생성하기 위해 이용될 수 있다. 이러한 임베딩들은 유사한 사운드들(또는 사운드를 캡처하는 음향 피처들)이 임베딩 공간의 동일하거나 유사한 부분들과 관련되는 임베딩 공간 내의 포인트들일 수 있다. 또한, 임베딩 공간의 이러한 부분들은 복수의 서로 다른 의미론적 카테고리들 중 하나 이상과 연관될 수 있고, 그리고 임베딩들 중 소정 임베딩은 의미론적 카테고리들 중 소정의 의미론적 카테고리로 분류될 수 있다(상기 소정 임베딩과 임베딩 공간의 하나 이상의 부분들 사이의 거리 메트릭이 거리 임계값을 충족하는 경우). 예를 들어, 요리 관련 단어들 또는 문구들은 "요리" 의미론적 라벨과 관련된 임베딩 공간의 제 1 부분과 연관될 수 있고, 날씨 관련 단어들 또는 문구들은 "날씨" 의미론적 라벨과 관련된 임베딩 공간의 제 2 부분과 연관될 수 있다(기타 등등). 예를 들어, 유리가 깨지는 인스턴스들은 "유리 깨지는" 사운드와 관련된 임베딩 공간의 제 1 부분과 관련될 수 있고, 도어벨 울림의 인스턴스들은 "도어벨" 사운드와 관련된 임베딩 공간의 제 2 부분과 관련될 수 있다(기타 등등).
하나 이상의 디바이스 특정 신호가 소정 어시스턴트 디바이스에 위치적으로 근접한 추가 어시스턴트 디바이스(들)의 고유 식별자들 또는 라벨들을 추가로 또는 대안적으로 포함하는 구현예에서, 후보 의미론적 라벨들은 이들 고유 식별자들 또는 라벨들에 기초하여 생성될 수 있으며 그리고 소정 어시스턴트 디바이스에 대해 선택되는 소정의 의미론적 라벨은 추가 어시스턴트 디바이스(들)의 고유 식별자들 또는 라벨들 중 하나 이상에 기초하여 선택될 수 있다. 예를 들어, "스마트 오븐"이라는 제 1 라벨은 소정 어시스턴트 디바이스에 위치적으로 근접한 제 1 어시스턴트 디바이스와 연관되고, "스마트 커피 메이커"라는 제 2 라벨은 소정 어시스턴트 디바이스에 위치적으로 근접한 제 2 어시스턴트 디바이스와 관련된다고 가정하자. 이러한 일례에서, 의미론적 라벨링 엔진(160)은 소정 어시스턴트 디바이스에 대한 소정의 의미론적 라벨로서 "주방 디바이스"라는 의미론적 라벨을 선택할 수 있는데, 왜냐하면 소정 어시스턴트 디바이스에 위치상 근접한 추가 어시스턴트 디바이스들과 관련된 라벨들이 요리와 관련되기 때문이다. 고유 식별자들 또는 라벨들은 질의, 명령 및/또는 요청을 프로세싱하는 것과 관련하여 위에서 설명한 것과 동일하거나 유사한 방식으로 ML 모델(들) 데이터베이스(192)에 저장된 의미론적 분류기(들)를 사용하여 프로세싱될 수 있다.
일부 구현예에서, 의미론적 라벨링 엔진(160)은 생태계의 디바이스 토폴로지 표현(예를 들어, 디바이스 토폴로지 데이터베이스(193)에 저장됨)에서 소정 어시스턴트 디바이스에 소정의 의미론적 라벨을 자동으로 할당할 수 있다. 일부 추가적인 또는 대안적인 구현예에서, 의미론적 라벨링 엔진(160)은 자동 어시스턴트(120)로 하여금 후보 의미론적 라벨들을 포함하는 프롬프트를 생성하게 할 수 있다. 프롬프트는 생태계와 관련된 사용자로부터, 후보 라벨들 중 하나를 소정의 의미론적 라벨로 선택하도록 요청할 수 있다. 또한, 프롬프트는 상기 소정 어시스턴트 디바이스(소정의 의미론적 라벨이 할당되는 소정 어시스턴트 디바이스일 수도 있고 아닐 수도 있음) 및/또는 사용자의 클라이언트 디바이스(예를 들어, 모바일 디바이스)에서 시각적으로 및/또는 청각적으로 렌더링될 수 있다. 소정 의미론적 라벨로서 후보 라벨들 중 하나의 선택을 수신하는 것에 응답하여, 선택된 소정 의미론적 라벨은 생태계의 디바이스 토폴로지 표현(예를 들어, 디바이스 토폴로지 데이터베이스 193에 저장됨)에서 소정 어시스턴트 디바이스에 할당될 수 있다. 이러한 구현의 일부 버전에서, 소정 어시스턴트 디바이스에 할당된 소정 의미론적 라벨은 소정 어시스턴트 디바이스에 대한 의미론적 라벨들의 목록에 추가될 수 있다. 즉, 여러 개의 의미론적 라벨들이 소정 어시스턴트 디바이스에 관련될 수 있다. 이러한 구현의 다른 버전에서, 소정 어시스턴트 디바이스에 할당된 소정 의미론적 라벨은 소정 어시스턴트 디바이스에 대한 임의의 다른 의미론적 라벨을 대체할 수 있다. 즉, 오직 하나의 의미론적 라벨만이 소정 어시스턴트 디바이스와 관련될 수 있다.
일부 구현예에서, 질의/명령 프로세싱 엔진(170)은 자동 어시스턴트(120)로 향하고 하나 이상의 어시스턴트 입력 디바이스(106)를 통해 수신되는 질의, 요청 또는 명령을 프로세싱할 수 있다. 질의/명령 프로세싱 엔진(170)은 질의 또는 명령을 만족시키기 위해 하나 이상의 어시스턴트 디바이스를 선택하도록, 질의, 요청 또는 명령을 프로세싱할 수 있다. 특히, 질의 또는 명령을 만족시키기 위해 선택된 하나 이상의 어시스턴트 디바이스는 질의 또는 명령을 수신한 하나 이상의 어시스턴트 입력 디바이스(106)와 다를 수 있다. 질의/명령 프로세싱 엔진(170)은 하나 이상의 기준에 기초하여 음성 발화를 만족시키기 위해 하나 이상의 어시스턴트 디바이스를 선택할 수 있다. 하나 이상의 기준은, 예를 들어, 음성 발화를 제공한 사용자에 대한 하나 이상의 디바이스들의 근접성(예를 들어, 아래에서 설명되는 존재 센서 105를 사용하여 결정됨), 생태계에 있는 하나 이상의 디바이스들의 디바이스 능력들, 하나 이상의 어시스턴트 디바이스에 할당된 의미론적 라벨(들), 및/또는 음성 발화를 만족시키기 위해 어시스턴트 디바이스를 선택하기 위한 다른 기준들을 포함할 수 있다.
예를 들어, 음성 발화를 만족시키기 위해 디스플레이 디바이스가 필요하다고 가정하자. 이 예에서, 음성 발화를 만족시키기 위해 소정 어시스턴트 디바이스를 선택하는데 고려되는 후보 어시스턴트 디바이스는 디스플레이 디바이스를 포함하는 것으로 제한될 수 있다. 생태계 내의 다수의 어시스턴트 디바이스들이 디스플레이 디바이스를 포함하는 경우, 이러한 디스플레이 디바이스를 포함하고 있으며 사용자에게 가장 근접한 소정 어시스턴트 디바이스가 음성 발화를 만족시키기 위해 선택될 수 있다. 대조적으로, 음성 발화를 만족시키기 위해 스피커(들)만이 필요한 구현예에서(예를 들어, 음성 발화를 만족시키기 위해 디스플레이 디바이스가 필요하지 않음), 음성 발화를 만족시키기 위해 소정 어시스턴트 디바이스를 선택하는데 고려되는 후보 어시스턴트 디바이스는 디스플레이 디바이스를 포함하는지 여부에 관계없이 스피커가 있는 것들을 포함할 수 있다.
또 다른 예로서, 음성 발화가 소정 어시스턴트 디바이스에 할당된 의미론적 라벨과 매칭되는 의미론적 속성을 포함한다고 가정하자. 질의/명령 프로세싱 엔진(170)은 음성 발화의 의미론적 속성이 소정 어시스턴트 디바이스에 할당된 의미론적 라벨과 매칭된다라고 결정할 수 있는바, 음성 발화(또는 이에 대응하는 텍스트)의 하나 이상의 용어들에 대응하는 제 1 임베딩 및 소정 어시스턴트 디바이스에 할당된 의미론적 라벨의 하나 이상의 용어들에 대응하는 제 2 임베딩을 생성하고 그리고 임베딩들 간의 거리 메트릭이 임베딩들이 매칭됨을 나타내는(예를 들어, 그것이 정확한 매치인지 또는 소프트 매치인지) 거리 임계값을 만족하는지 여부를 결정하기 위해 임베딩을 비교함으로써, 음성 발화의 의미론적 속성이 소정 어시스턴트 디바이스에 할당된 의미론적 라벨과 매칭된다라고 결정할 수 있다. 이 예에서, 질의/명령 프로세싱 엔진(170)은 의미론적 라벨과 매칭하는 음성 발화에 기초하여(그리고 선택적으로는 소정 어시스턴트 디바이스에 음성 발화를 제공한 사용자의 근접성 외에 또는 그 대신에) 음성 발화를 만족시키기 위해 소정 어시스턴트 디바이스를 선택할 수 있다. 이러한 방식으로, 음성 발화를 만족시키기 위한 어시스턴트 디바이스의 선택은 본 명세서에 기술된 바와 같이 어시스턴트 디바이스들에 할당된 의미론적 라벨들 쪽으로 바이어싱될 수 있다.
다양한 구현예에서, 하나 이상의 어시스턴트 입력 디바이스들(106)은 하나 이상의 각각의 존재 센서(1051-N)(여기서는 단순히 "존재 센서(105)"라고도 함)를 포함할 수 있으며, 이는 해당 사용자(들)로부터의 허가와 함께, 검출된 존재, 특히 인간의 존재를 나타내는 신호를 제공할 수 있다. 이러한 구현들 중 일부에서, 자동 어시스턴트(120)는 하나 이상의 어시스턴트 입력 디바이스(106)에서의 사용자의 존재에 적어도 부분적으로 기초하여 생태계와 관련된 사용자로부터의 음성 발화를 만족시키는 하나 이상의 어시스턴트 입력 디바이스(106)를 식별할 수 있다. 음성 발화는, 하나 이상의 어시스턴트 입력 디바이스(106)에서 응답 콘텐츠를 렌더링함으로써(예컨대, 청각적으로 및/또는 시각적으로), 하나 이상의 어시스턴트 입력 디바이스(106)가 음성 발화에 기초하여 제어되게 함으로써, 및/또는 하나 이상의 어시스턴트 입력 디바이스(106)가 음성 발화를 만족시키기 위해 임의의 다른 동작을 수행하게 함으로써, 만족될 수 있다. 본 명세서에 기술된 바와 같이, 자동 어시스턴트(120)는 사용자가 근처에 있거나 최근에 근처에 있었던 위치에 기초하여 이러한 어시스턴트 입력 디바이스(106)를 결정할 때 각각의 존재 센서(105)에 기초하여 결정된 데이터를 활용할 수 있고, 대응하는 명령을 그러한 어시스턴트 입력 디바이스(106)에만 제공할 수 있다. 일부 추가적인 또는 대안적인 구현예에서, 자동 어시스턴트(120)는 임의의 사용자(들)(임의의 사용자 또는 특정 사용자)이 어시스턴트 입력 디바이스들(106) 중 임의의 것에 현재 근접해 있는지를 결정함에 있어서 각각의 존재 센서(105)에 기초하여 결정된 데이터를 활용할 수 있고, 그리고 임의의 어시스턴트 입력 디바이스(106)에 근접한 사용자들(임의의 사용자 또는 특정 사용자)이 없다는 결정에 기초하여 명령의 제공을 선택적으로 억제할 수 있다.
각각의 존재 센서(105)는 다양한 형태를 가질 수 있다. 일부 어시스턴트 입력 디바이스(106)는 그들의 시야에서 검출된 움직임을 나타내는 신호(들)을 캡처 및 제공하도록 구성된 하나 이상의 디지털 카메라를 구비할 수 있다. 추가적으로 또는 대안적으로, 일부 어시스턴트 입력 디바이스(106)는 그들의 시야 내에 있는 물체들로부터 방출되는 적외선("IR") 광을 측정하는 수동 적외선("PIR") 센서와 같은 다른 유형의 광-기반 존재 센서(105)를 구비할 수 있다. 추가적으로 또는 대안적으로, 일부 어시스턴트 입력 디바이스(106)에는 하나 이상의 마이크와 같은 음향(또는 압력) 파동을 검출하는 존재 센서(105)가 장착될 수 있다. 더욱이, 어시스턴트 입력 디바이스(106) 이외에도, 하나 이상의 어시스턴트 비입력 디바이스(185)는 본 명세서에 기술된 각각의 존재 센서(105)를 추가로 또는 대안적으로 포함할 수 있고, 그러한 센서로부터의 신호들은 본 명세서에 기술된 구현예에 따라 음성 발화를 만족시키는지 여부 및/또는 어떻게 만족시키는지를 결정함에 있어서 자동 어시스턴트(120)에 의해 추가적으로 활용될 수 있다.
추가적으로 또는 대안적으로, 일부 구현예에서, 존재 센서(105)는 생태계 내의 인간 존재 또는 디바이스 존재와 관련된 다른 현상을 검출하도록 구성될 수 있다. 일부 실시예에서, 어시스턴트 디바이스들 중 소정 어시스턴트 디바이스는 예를 들어, 특정 사용자에 의해 휴대/작동되는 다른 어시스턴트 디바이스들(예컨대, 모바일 디바이스, 웨어러블 컴퓨팅 디바이스 등) 및/또는 생태계의 다른 어시스턴트 디바이스(예를 들어, 이벤트 검출 엔진 130에 대해 설명됨)로부터 방출되는 다양한 유형의 무선 신호들(가령, 라디오, 초음파, 전자기파 등과 같은 파형들)을 검출하는 존재 센서(105)를 구비할 수 있다. 예를 들어, 일부 어시스턴트 디바이스는 초음파 또는 적외선과 같이 인간이 인지할 수 없는 파동을 방출하도록 구성될 수 있으며, 이는 하나 이상의 어시스턴트 입력 디바이스(106)에 의해 검출될 수 있다(예컨대, 초음파 가능 마이크와 같은 초음파/적외선 수신기를 통해) .
부가적으로 또는 대안적으로, 다양한 어시스턴트 디바이스들은 라디오 웨이브와 같은 인간이 인지할 수 없는 다른 유형의 파동들(예를 들어, Wi-Fi, 블루투스, 셀룰러 등)을 방출할 수 있으며, 이는 특정 사용자에 의해 휴대/작동되는 다른 어시스턴트 디바이스(예를 들어, 모바일 디바이스, 웨어러블 컴퓨팅 디바이스 등)에 의해 검출될 수 있으며 그리고 운영 사용자의 특정 위치를 결정하는데 이용될 수 있다. 일부 구현예에서, Wi-Fi 삼각 측량은 예를 들어, 어시스턴트 디바이스로/로부터의 Wi-Fi 신호에 기초하여 사람의 위치를 검출하는데 사용될 수 있다. 다른 구현예에서, 비행 시간(time-of-flight), 신호 강도 등과 같은 다른 무선 신호 특성들이 다양한 어시스턴트 디바이스들에 의해 단독으로 또는 집합적으로 이용되어, 특정 사용자에 의해 휴대/작동되는 다른 어시스턴트 디바이스에 의해 방출된 신호에 기초하여 특정 사람의 위치를 결정할 수 있다.
추가로 또는 대안적으로, 일부 구현예에서, 하나 이상의 어시스턴트 입력 디바이스(106)는 음성 인식을 수행하여 음성으로부터 사용자를 인식할 수 있다. 예를 들어, 자동 어시스턴트(120)의 일부 인스턴스들은 예를 들어, 다양한 리소스에 대한 액세스를 제공/제한하기 위해 사용자의 프로필에 음성을 매칭시키도록 구성될 수 있다. 일부 구현예에서, 스피커의 움직임은 예를 들어, 어시스턴트 디바이스의 존재 센서(105)에 의해 결정될 수 있다. 일부 구현예에서, 그러한 검출된 움직임에 기초하여, 사용자의 위치가 예측될 수 있고, 사용자의 위치에 대한 이들 어시스턴트 디바이스들의 근접성에 적어도 일부 기초하여 어시스턴트 디바이스에서 임의의 콘텐츠가 렌더링되는 경우, 이러한 위치는 사용자의 위치로 가정될 수 있다. 일부 구현예에서, 사용자는 특히 마지막 참여 이후 많은 시간이 경과하지 않은 경우, 자동 어시스턴트(120)와 참여했던 마지막 위치에 있는 것으로 간단하게 가정될 수 있다.
각각의 어시스턴트 입력 디바이스(106)는 또한 각각의 사용자 인터페이스 컴포넌트들(1071-N)(본 명세서에서는 간단히 "사용자 인터페이스 컴포넌트들(107)"이라고도 함)를 포함하며, 이는 하나 이상의 사용자 인터페이스 입력 디바이스(예: 마이크, 터치스크린, 키보드) 및/또는 하나 이상의 사용자 인터페이스 출력 디바이스(예: 디스플레이, 스피커, 프로젝터)를 각각 포함할 수 있다. 일례로서, 어시스턴트 입력 디바이스(1061)의 사용자 인터페이스 컴포넌트(1071)는 스피커(들) 및 마이크(들)만을 포함할 수 있는 반면, 어시스턴트 입력 디바이스(106N)의 사용자 인터페이스 컴포넌트(107N)는 스피커(들), 터치스크린, 및 마이크를 포함할 수 있다. 추가적으로 또는 대안적으로, 일부 구현예에서, 어시스턴트 비입력 디바이스(185)는 사용자 인터페이스 컴포넌트(들)(107)의 하나 이상의 사용자 인터페이스 입력 디바이스 및/또는 하나 이상의 사용자 인터페이스 출력 디바이스를 포함할 수 있지만, 어시스턴트 비입력 디바이스(185)를 위한 사용자 입력 디바이스(있다면)는 사용자가 자동 어시스턴트(120)와 직접 상호작용하는 것을 허용하지 않을 수 있다.
각각의 어시스턴트 입력 디바이스들(106) 및/또는 하나 이상의 클라우드 기반 자동 어시스턴트 컴포넌트(119)를 작동하는 임의의 다른 컴퓨팅 디바이스(들)은, 데이터 및 소프트웨어 어플리케이션의 저장을 위한 하나 이상의 메모리, 데이터에 액세스하고 어플리케이션을 실행하기 위한 하나 이상의 프로세서, 및 네트워크를 통한 통신을 용이하게 하는 기타 컴포넌트를 포함한다. 하나 이상의 어시스턴트 입력 디바이스(106) 및/또는 자동 어시스턴트(120)에 의해 수행되는 동작들은 다수의 컴퓨터 시스템에 걸쳐 분산될 수 있다. 자동 어시스턴트(120)는 예를 들어, 네트워크(예를 들어, 도 1의 임의의 네트워크 110)를 통해 서로 연결된 하나 이상의 위치에 있는 하나 이상의 컴퓨터에서 실행되는 컴퓨터 프로그램으로 구현될 수 있다.
앞서 언급한 바와 같이, 다양한 구현예에서, 어시스턴트 입력 디바이스(106) 각각은 각각의 자동 어시스턴트 클라이언트(118)를 동작시킬 수 있다. 다양한 실시예에서, 각각의 자동 어시스턴트 클라이언트(118)는 각각의 음성 캡처/텍스트 음성 변환(TTS)/음성 텍스트 변환(STT) 모듈(1141-N)(본 명세서에서는 간단히 "음성 캡처/TTS/STT 모듈(114)"이라고도 함)을 포함할 수 있다. 다른 구현예에서, 각각의 음성 캡처/TTS/STT 모듈(114)의 하나 이상의 양태는 각각의 자동 어시스턴트 클라이언트(118)와 별도로 구현될 수 있다.
각각의 개별 음성 캡처/TTS/ STT 모듈(114)은 예를 들어 다음을 포함하는 하나 이상의 기능을 수행하도록 구성될 수 있다: 사용자의 음성을 캡처하는 것(예를 들어, 각각의 마이크(들)를 통한 음성 캡처(일부 경우 마이크는 존재 센서105를 포함할 수 있음); ML 모델(들) 데이터베이스(192)에 저장된 음성 인식 모델(들)을 사용하여 캡처된 오디오를 텍스트 및/또는 다른 STT(representation or embeddings)로 변환하는 것; 및/또는 ML 모델(들) 데이터베이스(192)에 저장된 음성 합성 모델(들)을 사용하여 텍스트를 음성으로 변환(TTS)하는 것. 이러한 모델(들)의 인스턴스(들)은 어시스턴트 입력 디바이스들(106) 각각에 로컬로 저장될 수 있거나 및/또는 어시스턴트 입력 디바이스에 의해 액세스될 수 있다(예를 들어, 도 1의 네트워크 110를 통해). 일부 구현예에서, 어시스턴트 입력 디바이스(106) 중 하나 이상이 컴퓨팅 리소스(예를 들어, 프로세서 사이클, 메모리, 배터리 등)의 관점에서 상대적으로 제한될 수 있기 때문에, 각각의 어시스턴트 입력 디바이스(106)에 로컬인 각각의 음성 캡처/TTS/STT 모듈(114)은 음성 인식 모델(들)을 사용하여 한정된 개수의 서로 다른 음성 문구들을 텍스트(또는 저차원 임베딩과 같은 다른 형식)로 변환하도록 구성될 수 있다. 다른 음성 입력이 하나 이상의 클라우드 기반 자동 어시스턴트 컴포넌트(119)로 전송될 수 있으며, 이는 클라우드 기반 TTS 모듈(116) 및/또는 클라우드 기반 STT 모듈(117)을 포함할 수 있다.
클라우드 기반 STT 모듈(117)은 ML 모델(들) 데이터베이스(192)에 저장된 음성 인식 모델(들)을 이용하여 음성 캡처/TTS/STT 모듈(114)에 의해 캡처된 오디오 데이터를 텍스트(이는 이후 자연어 프로세서(122)에 제공될 수 있음)로 변환하기 위해 클라우드의 거의 무한한 자원을 활용하도록 구성될 수 있다. 클라우드 기반 TTS 모듈(116)은 ML 모델(들) 데이터베이스(192)에 저장된 음성 합성 모델(들)을 이용하여 텍스트 데이터(예를 들어, 자동 어시스턴트(120)에 의해 공식화된 텍스트)를 컴퓨터 생성 음성 출력으로 변환하기 위해 클라우드의 거의 무한한 자원을 활용하도록 구성될 수 있다. 일부 구현예에서, 클라우드 기반 TTS 모듈(116)은 예를 들어, 각각의 어시스턴트 디바이스의 각각의 스피커(들)를 이용하여 직접 출력하도록 컴퓨터 생성 음성 출력을 하나 이상의 어시스턴트 디바이스에 제공할 수 있다. 다른 구현예에서, 클라우드 기반 TTS 모듈(116)을 사용하여 자동 어시스턴트(120)에 의해 생성된 텍스트 데이터(예를 들어, 명령에 포함된 클라이언트 디바이스 알림)는 각각의 어시스턴트 디바이스의 음성 캡처/TTS/STT 모듈(114)에 제공될 수 있으며, 그런 다음 어시스턴트 디바이스는 음성 합성 모델(들)을 사용하여 텍스트 데이터를 컴퓨터 생성 음성으로 로컬로 변환하고 컴퓨터 생성 음성이 각 어시스턴트 디바이스의 로컬 스피커(들)를 통해 렌더링되게 할 수 있다.
자동 어시스턴트(120)(및 특히, 하나 이상의 클라우드 기반 자동 어시스턴트 컴포넌트 119)는 자연어 프로세싱(NLP) 모듈(122), 전술한 클라우드 기반 TTS 모듈(116), 전술한 클라우드 기반 STT 모듈(117) 및 다른 컴포넌트들을 포함할 수 있으며, 이들 중 일부는 아래에서 더 자세히 설명된다. 일부 구현예에서, 자동 어시스턴트(120)의 엔진들 및/또는 모듈들 중 하나 이상이 생략, 결합 및/또는 자동 어시스턴트(120)와 별개의 컴포넌트로 구현될 수 있다. NLP 모듈(122)의 인스턴스는 추가로 또는 대안적으로 어시스턴트 입력 디바이스(106)에서 로컬로 구현될 수 있다.
일부 구현예에서, 자동 어시스턴트(120)는 자동 어시스턴트(120)와의 인간-컴퓨터 대화 세션 동안 어시스턴트 입력 디바이스(106) 중 하나의 사용자에 의해 생성된 다양한 입력에 응답하여 응답 콘텐츠를 생성한다. 자동 어시스턴트(120)는 어시스턴트 입력 디바이스(106) 및/또는 비-어시스턴트 어시스턴트를 통해 대화 세션의 일부로서 사용자에게 제시하기 위해 응답 콘텐츠를 제공할 수 있다(예를 들어, 어시스턴트 디바이스와 별개인 경우 도 1의 네트워크110 중 하나 이상을 통해). 예를 들어, 자동 어시스턴트(120)는 어시스턴트 입력 디바이스(106) 중 하나를 통해 제공되는 자유 형식 자연어 입력에 응답하여 응답 콘텐츠를 생성할 수 있다. 본 명세서에서 사용되는 바와 같이, 자유 형식 입력은 사용자에 의해 공식화되는 입력이며 사용자에 의한 선택을 위해 제시되는 옵션 그룹으로 제한되지 않는 입력이다.
자동 어시스턴트(120)의 NLP 모듈(122)은 어시스턴트 입력 디바이스(106)를 통해 사용자에 의해 생성된 자연어 입력을 프로세싱하고 그리고 자동 어시스턴트(120), 어시스턴트 입력 디바이스(106), 및/또는 어시스턴트 비입력 디바이스(185)의 하나 이상의 다른 컴포넌트에 의해 사용하기 위한 주석달린(annotated) 출력을 생성할 수 있다. 예를 들어, NLP 모듈(122)은 어시스턴트 입력 디바이스(106)의 하나 이상의 사용자 인터페이스 입력 디바이스 각각을 통해 사용자에 의해 생성된 자연어 자유 형식 입력을 프로세싱할 수 있다. 자연어 자유 형식 입력을 프로세싱함에 기초하여 생성된 주석달린 출력은 자연어 입력의 하나 이상의 주석들을 포함할 수 있으며, 선택적으로는 자연어 입력의 용어들 중 하나 이상(예를 들어, 모두)을 포함할 수 있다.
일부 구현예에서, NLP 모듈(122)은 자연어 입력에서 다양한 유형의 문법 정보를 식별하고 주석을 달도록 구성된다. 예를 들어, NLP 모듈(122)은 용어의 문법적 역할을 상기 용어에 주석을 달도록 구성된 스피치 태거의 일부를 포함할 수 있다. 일부 구현예에서, NLP 모듈(122)은 추가로 및/또는 대안적으로, 사람들(예를 들어 문학적 인물, 유명인사, 공인을 포함함), 조직들, 위치들(실제 위치 및 가상 위치), 기타 등등에 대한 참조와 같이, 하나 이상의 세그먼트들에서 엔티티 참조에 주석을 달도록 구성된 엔티티 태거(미도시)를 포함할 수 있다. 일부 구현예에서, 엔티티에 대한 데이터는 지식 그래프(미도시)와 같은 하나 이상의 데이터베이스에 저장될 수 있다. 일부 구현예에서, 지식 그래프는 알려진 엔티티(및 경우에 따라 엔티티 속성)를 나타내는 노드를 포함할 뿐만 아니라, 노드들을 연결하고 엔티티들 간의 관련성을 나타내는 에지들을 포함할 수 있다.
NLP 모듈(122)의 엔티티 태거는 높은 레벨의 입도(예를 들어, 사람과 같은 엔티티 클래스에 대한 모든 참조들을 식별가능함) 및/또는 낮은 레벨의 입도(예를 들어, 특정 개인과 같은 특정 엔티티에 대한 모든 참조들을 식별가능함)에서 엔티티에 참조들의 주석을 달수 있다. 엔티티 태거는 특정 엔티티를 해결하기 위해 자연어 입력의 내용에 의존할 수 있고 및/또는 선택적으로는 특정 엔티티를 해결하기 위해 지식 그래프 또는 다른 엔티티 데이터베이스와 통신할 수 있다.
일부 구현예에서, NLP 모듈(122)은 추가로 및/또는 대안적으로, 하나 이상의 상황적 단서(contextual cues)에 기초하여 동일한 엔티티에 대한 참조들을 그룹화하거나 "클러스터"하도록 구성된 공동참조 리졸버(coreference resolver)(미도시)를 포함할 수 있다. 예를 들어, 공동참조 리졸버는 자연어 입력 "lock it"을 수신하기 직전에 렌더링된 클라이언트 디바이스 알림에서 언급된 "front door lock"에 기초하여, 자연어 입력 "lock it"에서 용어 "it"를 "front door lock"으로 해석하는데 활용될 수 있다.
일부 구현예에서, NLP 모듈(122)의 하나 이상의 컴포넌트는 NLP 모듈(122)의 하나 이상의 다른 컴포넌트로부터의 주석에 의존할 수 있다. 예를 들어, 일부 구현예에서, 명명된(named) 엔티티 태거는 특정 엔티티에 대한 모든 언급들에 주석을 추가함에 있어서, 공동참조 리졸버 및/또는 종속성 파서(dependency parser)로부터의 주석들에 의존할 수 있다. 또한, 예를 들어, 일부 구현예에서, 공동참조 리졸버는 동일한 엔티티에 대한 참조들을 클러스터링함에 있어서, 종속성 파서로부터의 주석들에 의존할 수 있다. 일부 구현예에서, 특정 자연어 입력을 프로세싱할 때, NLP 모듈(122)의 하나 이상의 컴포넌트는 하나 이상의 주석들을 결정하기 위해 특정 자연어 입력 외부의 관련 데이터를 사용할 수 있다(가령, 어시스턴트 입력 디바이스 알림이 기반으로 하는 자연어 입력을 수신하기 직전에 렌더링되는 어시스턴트 입력 디바이스 알림).
비록, 도 1이 어시스턴트 디바이스들 및/또는 서버(들)에 의해 구현되는 컴포넌트들의 특정 구성을 갖는 것으로 도시되고, 그리고 특정 네트워크를 통해 통신하는 어시스턴트 디바이스들 및/또는 서버(들)을 갖는 것으로 도시되지만, 이는 예시를 위한 것이며 제한하려는 의도가 아님을 이해해야 한다. 예를 들어, 어시스턴트 입력 디바이스(106) 및 어시스턴트 비입력 디바이스는 하나 이상의 네트워크(미도시)를 통해 서로 직접 통신가능하게 결합될 수 있다. 다른 예로서, 하나 이상의 클라우드 기반 자동 어시스턴트 컴포넌트(119)의 동작은 하나 이상의 어시스턴트 입력 디바이스(106) 및/또는 하나 이상의 어시스턴트 비입력 디바이스에서 로컬로 구현될 수 있다. 또 다른 예로서, ML 모델(들) 데이터베이스(192)에 저장된 다양한 ML 모델들의 인스턴스(들)은 어시스턴트 디바이스들에 로컬로 저장될 수 있고, 및/또는 디바이스 토폴로지 데이터베이스(193)에 저장된 생태계의 디바이스 토폴로지 표현의 인스턴스(들)은 어시스턴트 입력 디바이스에 로컬로 저장될 수 있다. 또한, 데이터(예를 들어, 디바이스 활동, 오디오 데이터 또는 이에 대응하는 인식된 텍스트, 디바이스 토폴로지 표현, 및/또는 여기에 설명된 임의의 다른 데이터)가 도 1의 하나 이상의 네트워크(110) 중 임의의 것을 통해 전송되는 구현예에서, 데이터는 사용자의 프라이버시를 보장하기 위해 어떤 방식으로든 암호화, 필터링 또는 보호될 수 있다.
생태계 내의 여러 어시스턴트 디바이스들을 사용하여 음향 이벤트의 발생을 검출하고 확인하기 위해 본 명세서에 서술된 기술을 사용함으로써, 음향 이벤트의 위양성의 양이 감소될 수 있다. 결과적으로 컴퓨팅 리소스와 네트워크 리소스를 모두 절약할 수 있다. 예를 들어, 생태계에서 핫워드 이벤트의 발생을 검출하고 확인하는데 여기에 설명된 기술을 사용함으로써, 자동 어시스턴트의 컴포넌트 및/또는 기능은 휴면(dormant)을 유지할 수 있는바, 본 발명의 기술이 없으면, 이들이 활성화되도록 의도되지 않았더라도 활성화되었을 수 있다. 또 다른 예로서, 생태계에서 특정 소리의 발생을 검출하고 확인하는데 본 명세서에 서술된 기술을 사용함으로써, 생태계와 관련된 사용자에게 제시되는 알림들이 보류될 수 있는바, 본 발명의 기술이 없으면, 음향 이벤트가 실제로 발생하지 않았더라도 이러한 알림들이 제시되었을 수 있다. 더욱이, 음향 이벤트를 캡처하는 시간적으로 대응하는 오디오 데이터를 생태계 내의 어떤 어시스턴트 디바이스들이 검출해야만 하는지를 예상하기 위해 본 명세서에 서술된 기술을 사용함으로써, 오디오 데이터를 프로세싱하는 어시스턴트 디바이스들의 수량이 감소될 수 있다. 또한, 결과적으로 컴퓨팅 리소스와 네트워크 리소스를 모두 절약할 수 있다. 예를 들어, 음향 이벤트를 검출했어야 하는 생태계 내의 어시스턴트 디바이스를 예상하는데 본 발명의 기술을 사용함으로써, 음향 이벤트에 대응하지 않을 가능성이 있는 시간적으로 대응하는 오디오 데이터를 캡처했을 수도 있는 다른 어시스턴트 디바이스들은, 음향 이벤트가 실제 음향 이벤트인지를 결정함에 있어서 고려되지 않을 수 있다.
이제 도 1의 다양한 컴포넌트들에 대한 추가 설명이 도 2a, 2b 및 3을 참조하여 제공된다. 가정(home)의 평면도가 도 2a, 2b, 및 도 3에 도시되어 있다. 도시 된 평면도는 여러 개의 방(250-262)을 포함한다. 복수의 어시스턴트 입력 디바이스들(1061-5)은 상기 방들의 적어도 일부에 걸쳐 배치된다. 어시스턴트 입력 디바이스들(1061-5) 각각은 본 발명의 선택된 양상들로 구성된 자동 어시스턴트 클라이언트(118)의 인스턴스를 구현할 수 있고, 근처의 사람이 말한 발화를 캡처할 수 있는 마이크(들)와 같은 하나 이상의 입력 디바이스를 포함할 수 있다. 예를 들어, 대화형 독립형 스피커 및 디스플레이 디바이스(예를 들어, 디스플레이 스크린, 프로젝터 등)의 형태를 취하고 있는 제 1 어시스턴트 입력 디바이스(1061)가 방(250)에 배치되며, 이 예에서 상기 방(250)은 주방이다. 소위 "스마트" 텔레비전(예를 들어, 자동 어시스턴트 클라이언트(118)의 각각의 인스턴스를 구현하는 하나 이상의 프로세서를 갖는 네트워크 텔레비전)의 형태를 취하는 제 2 어시스턴트 입력 디바이스(1062)가 방(252)에 배치되며, 상기 방(252)은 서재(den)이다. 디스플레이가 없는 대화형 독립형 스피커의 형태를 취하는 제 3 어시스턴트 입력 디바이스(1063)가 방(254)에 배치되며, 상기 방(254)은 침실이다. 또 다른 대화형 독립형 스피커의 형태를 취하는 제 4 어시스턴트 입력 디바이스(1064)가 방(256)에 배치되며, 상기 방(256)은 거실이다. 또한, 스마트 텔레비전의 형태를 취하는 제 5 어시스턴트 입력 디바이스(1065)도 방(250)에 배치되며, 상기 방(250)은 주방이다.
도 2a, 2b 및 3에는 도시되지 않았지만, 복수의 어시스턴트 입력 디바이스들(1061-4)은 하나 이상의 유선 또는 무선 WAN 및/또는 LAN을 통해(예를 들어, 도 1의 네트워크 110를 통해) 서로 통신가능하게 및/또는 다른 리소스들에 연결될 수 있다. 추가적으로, 다른 어시스턴트 입력 디바이스들(특히 스마트폰, 태블릿, 랩탑, 웨어러블 디바이스 등과 같은 모바일 디바이스)도 또한 존재할 수 있고, 예를 들어, 가정에서 한 명 이상의 사람에 의해 휴대될 수 있으며 그리고 상기 동일한 WAN 및/또는 LAN에 연결될 수도 또는 연결되지 않을 수도 있다. 다음을 유의해야 하는바, 도 2A, 2B 및 3에 도시된 어시스턴트 입력 디바이스들의 구성은 단지 하나의 예일 뿐이며; 더 많거나 적은 및/또는 상이한 어시스턴트 입력 디바이스들이 가정 내의 임의 개수의 다른 방들 및/또는 다른 영역들에 걸쳐 배치되거나 및/또는 주거용 집 이외의 다른 위치들에 배치될 수 있다(예를 들어, 사업체, 호텔, 공공 장소, 공항, 차량 및/또는 기타 위치 또는 공간).
또한, 도 2a, 2b 및 3에는 복수의 어시스턴트 비입력 디바이스들(1851-5)이 도시되어 있다. 예를 들어, 스마트 도어벨 형태의 제 1 어시스턴트 비입력 디바이스(1851)가 현관문 근처의 집 외부에 배치된다. 스마트락 형태의 제 2 어시스턴트 비입력 디바이스(1852)가 집의 외부에서 집 현관문에 배치된다. 스마트 세탁기 형태의 제 3 어시스턴트 비입력 디바이스(1853)가 본 일례에서 세탁실인 방(262)에 배치된다. 도어 개폐 센서의 형태를 취하는 제 4 어시스턴트 비입력 디바이스(1854)가 방(262)의 뒷문 부근에 배치되어, 뒷문의 개폐 여부를 검출한다. 스마트 온도조절기 형태의 제 5 어시스턴트 비입력 디바이스(1855)가 방(252)에 배치되며, 상기 방(252)은 서재이다.
각각의 어시스턴트 비입력 디바이스들(185)은 (예를 들어, 도 1의 네트워크 110를 통해) 어시스턴트 비입력 시스템(180)(도 1에 도시됨)과 각각 통신하여 어시스턴트 비입력 시스템(180)에 데이터를 제공할 수 있으며 그리고 선택적으로는 어시스턴트 비입력 시스템(180)에 의해 제공되는 명령에 기초하여 제어될 수 있다. 추가적으로 또는 대안적으로, 하나 이상의 어시스턴트 비입력 디바이스들(185)은 예를 들어, 도 1의 네트워크(110)를 통해, 하나 이상의 어시스턴트 입력 디바이스(106)와 직접 통신하여, 하나 이상의 어시스턴트 입력 디바이스(106)에 데이터를 제공할 수 있으며 그리고 선택적으로는 하나 이상의 어시스턴트 입력 디바이스(106)에 의해 제공되는 명령에 기초하여 제어될 수 있다. 다음을 유의해야 하는바, 도 2A, 2B 및 3에 도시된 어시스턴트 비입력 디바이스들(185)의 구성은 단지 하나의 예일 뿐이며; 더 많거나 적은 및/또는 상이한 어시스턴트 비입력 디바이스들(185)이 가정 내의 임의 개수의 다른 방들 및/또는 다른 영역들에 걸쳐 배치되거나 및/또는 주거용 집 이외의 다른 위치들에 배치될 수 있다(예를 들어, 사업체, 호텔, 공공 장소, 공항, 차량 및/또는 기타 위치 또는 공간).
다양한 구현예에서, 음향 이벤트는 생태계에서 함께 위치하는 다수의 어시스턴트 디바이스들(예를 들어, 각각의 마이크(들)를 포함하는 임의의 어시스턴트 입력 디바이스 106 및/또는 어시스턴트 비입력 디바이스 185)에서 검출될 수 있다. 예를 들어, 음향 이벤트는 생태계에서 소정 어시스턴트 디바이스의 마이크(들)를 통해 검출된 오디오 데이터에서 캡처될 수 있고 그리고 생태계 내의 적어도 하나의 추가 어시스턴트 디바이스의 각각의 마이크(들)를 통해 검출된 각각의 오디오 데이터에서도 또한 캡처될 수 있다. 어시스턴트 디바이스들에 의해 캡처된 오디오 데이터는 각각의 어시스턴트 디바이스에 로컬로 저장되거나 및/또는 서버(들)에 원격으로 저장되고 각각의 어시스턴트 디바이스에 의해 액세스가능한 이벤트 검출 모델(들)을 사용하여 프로세싱되어, 음향 이벤트와 관련된 각각의 척도들을 생성할 수 있다. 또한, 이들 각각의 척도들은 음향 이벤트가 생태계에서 발생한 실제 음향 이벤트에 대응하는지 여부를 결정하기 위해 프로세싱될 수 있다. 음향 이벤트가 실제 음향 이벤트인 경우, 생태계에서 실제 음향 이벤트의 발생에 기초하여 액션이 수행될 수 있다. 그렇지 않으면, 오디오 데이터는 폐기될 수 있다.
일부 구현예에서, 하나 이상의 어시스턴트 디바이스들(예를 들어, 소정 어시스턴트 디바이스 및 적어도 하나의 추가 어시스턴트 디바이스)은 각각의 어시스턴트 디바이스에서 로컬로 그리고 각각의 이벤트 검출 모델을 사용하여 각각의 오디오 데이터를 프로세싱하여, 이들 어시스턴트 디바이스들 각각에서 검출된 각각의 오디오 데이터가 음향 이벤트를 캡처하는지 여부를 나타내는 각각의 척도들을 생성할 수 있다. 일부 추가적인 또는 대안적인 구현예에서, 하나 이상의 어시스턴트 디바이스들은 오디오 데이터를 생태계 내의 소정 어시스턴트 디바이스(예를 들어, 오디오 데이터를 검출한 어시스턴트 디바이스들 중 하나 또는 오디오 데이터를 검출하지 않은 별개의 어시스턴트 디바이스)로 각각 전송하여, 상기 소정 어시스턴트 디바이스에서 로컬로 그리고 이벤트 검출 모델을 이용하여 각각의 오디오 데이터를 프로세싱하고, 이들 어시스턴트 디바이스들 각각에 검출된 각각의 오디오 데이터가 음향 이벤트를 캡처하는지를 나타내는 각각의 척도들을 생성할 수 있다. 일부 추가적 또는 대안적 구현예에서, 하나 이상의 어시스턴트 디바이스들은 생태계와는 별개인 원격 시스템으로 오디오 데이터를 각각 전송하여, 상기 원격 시스템에서 원격으로 그리고 이벤트 검출 모델을 이용하여 각각의 오디오 데이터를 프로세싱하고, 이들 어시스턴트 디바이스들 각각에 검출된 각각의 오디오 데이터가 음향 이벤트를 캡처하는지를 나타내는 각각의 척도들을 생성할 수 있다.
일부 구현예에서, 음향 이벤트를 캡처하는 오디오 데이터를 검출한 소정 어시스턴트 디바이스에 응답하여, 생태계 내의 적어도 하나의 추가 어시스턴트 디바이스가 식별될 수 있다. 소정 어시스턴트 디바이스에서 검출된 음향 이벤트가 사실, 실제 음향 이벤트인 경우, 생태계에서 식별된 상기 적어도 하나의 추가 어시스턴트 디바이스는 음향 이벤트를 또한 캡처하는 시간적으로 대응하는 오디오 데이터를 검출했어야 한다. 예를 들어, 어시스턴트 디바이스들에서 캡처된 오디오 데이터와 관련된 각각의 타임스탬프들에 기초하여, 어시스턴트 디바이스들에 의해 캡처된 오디오 데이터는, 시간적으로 대응하는 오디오 데이터로 간주될 수 있다. 예를 들어, 타임스탬프들이 매칭되거나 또는 서로 임계 지속 시간 내에 있는 경우(예를 들어, 몇 밀리초, 몇 초 또는 임의의 다른 적절한 지속 시간 이내), 오디오 데이터는 시간적으로 대응하는 오디오 데이터로 간주될 수 있다. 이러한 구현예의 일부 버전에서, 적어도 하나의 추가 어시스턴트 디바이스는, 예를 들어, 소정 어시스턴트 디바이스 및 적어도 하나의 추가 어시스턴트 디바이스가 동일한 음향 이벤트를 캡처하는 오디오 데이터를 역사적으로 검출하는 것에 기초하여 식별될 수 있다. 이러한 구현예의 일부 추가 또는 대안 버전에서, 적어도 하나의 추가 어시스턴트 디바이스는 예를 들어, 소정 어시스턴트 디바이스 및 적어도 하나의 추가 어시스턴트 디바이스가 생태계의 디바이스 토폴로지 표현에서 어시스턴트 디바이스들의 동일한 그룹에 속하는 것에 기초하여 식별될 수 있다.
일부 구현예에서, 음향 이벤트는 핫워드 이벤트이고, 이벤트 검출 모델은 핫워드 검출 모델(들)에 대응한다. 핫워드 이벤트는 검출시 자동 어시스턴트의 하나 이상의 컴포넌트들 또는 기능들이 활성화되도록 하는 특정 단어 또는 문구를 검출하는 것에 해당할 수 있다. 예를 들어, 구체적으로 도 2a 및 도 2b를 참조하여, 도 2a 및 도 2b에 도시된 생태계와 관련된 사용자(101)가 "Hey Assistant..."라는 음성 발화를 제공한다고 가정하자(이러한 음성 발화는 생태계의 여러 어시스턴트 디바이스에서 검출된다). 예를 들어, 도 2a에 도시된 바와 같이, 음성 발화가 제공될 때 사용자(101)는 방(250)에 위치할 수 있으며, 이 예에서는 방(250)은 주방이다. 본 일례에서, "Hey Assistant..."라는 음성 발화에 대응하는 오디오 데이터가 제 1 어시스턴트 입력 디바이스(1061)에서 검출된다고 가정하자(예를 들어, 음성 발화에 해당하는 말 풍선으부터 제 1 어시스턴트 입력 디바이스로 향하는 점선으로 표시된 바와 같이). 또한, 제 5 어시스턴트 입력 디바이스(1065) 및 제 5 어시스턴트 비입력 디바이스(1855)(스마트 온도조절기가 마이크(들)를 포함한다고 가정)도 핫워드를 캡처하는 오디오 데이터를 검출할 것으로 예상된다고 가정하자(예를 들어, 또한 점선으로 표시됨). 본 일례에서, 제 1 어시스턴트 입력 디바이스(1061) 및 제 5 어시스턴트 입력 디바이스(1065)가 동일한 디바이스 그룹(예컨대, "주방" 그룹)에 속하는 것에 기초하여, 및/또는 제 1 어시스턴트 입력 디바이스(1061) 및 제 5 어시스턴트 입력 디바이스(1065)가 동일한 음성 발화들을 캡처하는 시간적으로 대응하는 오디오 데이터를 이전에 검출했다는 점에 기초하여, 제 5 어시스턴트 입력 디바이스(1065)가 오디오 데이터를 검출할 것으로 예상될 수 있다. 또한, 제 1 어시스턴트 입력 디바이스(1061) 및 제 5 어시스턴트 비입력 디바이스(1855)가 동일한 음성 발화들을 캡처하는 시간적으로 대응하는 오디오 데이터를 이전에 검출했다는 점에 기초하여(예를 들어, 제 1 어시스턴트 입력 디바이스(1061)는 "주방" 그룹에 속하고 제 5 어시스턴트 비입력 디바이스(1855)는 "서재" 그룹에 속한다고 가정함), 제 5 어시스턴트 비입력 디바이스(1855)가 오디오 데이터를 검출할 것으로 예상될 수 있다.
또한, 제 1 어시스턴트 입력 디바이스(1061)에서 검출된 오디오 데이터를 기반으로 생성된 척도가 오디오 데이터가 핫워드를 캡처함을 나타낸다고 가정하고, 제 5 어시스턴트 입력 디바이스(1065)에서 검출된 오디오 데이터를 기반으로 생성된 척도가 오디오 데이터가 핫워드를 캡처함을 나타낸다고 가정하고, 하지만 제 5 어시스턴트 비입력 디바이스(1855)에서 검출된 오디오 데이터를 기반으로 생성된 척도가 오디오 데이터가 핫워드를 캡처하지 않음을 나타낸다고 가정하자. 이 경우, 생태계에서 검출된 핫워드가 실제 핫워드인 것으로 결정될 수 있으며, 다른 어시스턴트 디바이스들이 음성 발화에서 핫워드가 캡처되었음을 나타내기 때문에(또는 제 5 어시스턴트 비입력 디바이스(1855)가 오디오 데이터를 전혀 검출하지 않은 경우에도), 오디오 데이터가 핫워드를 캡처하지 않았음을 제 5 어시스턴트 비입력 디바이스(1855)가 나타냄에도 불구하고, 자동 어시스턴트의 하나 이상의 컴포넌트 또는 기능이 활성화될 수 있다. 반대로, 제 1 어시스턴트 입력 디바이스(1061)에서 검출된 오디오 데이터를 기반으로 생성된 척도가 오디오 데이터가 핫워드를 캡처함을 나타내지만, 제 5 어시스턴트 입력 디바이스(1065) 및 제 5 어시스턴트 비입력 디바이스(1855)에서 검출된 오디오 데이터를 기반으로 생성된 척도들이 오디오 데이터가 핫워드를 캡처하지 않음을 나타낸다고 가정하자. 이 경우, 생태계에서 검출된 핫워드가 실제로는 핫워드가 아니라고 결정될 수 있고, 다른 어시스턴트 디바이스들이 핫워드가 음성 발화에서 캡처되지 않았음을 나타내므로, 제 1 어시스턴트 입력 디바이스(1061)가 오디오 데이터가 핫워드를 캡처함을 나타내더라도, 자동 어시스턴트의 하나 이상의 컴포넌트들 또는 기능들은 휴면 상태로 유지될 수 있다.
다른 일례로서, 그리고 도 2b에 도시된 바와 같이, 음성 발화가 제공될 때 사용자(101)는 방(252)에 위치할 수 있으며, 본 일례에서 상기 방(252)은 서재이다. 이러한 예에서, "Hey assistant..." 라는 음성 발화에 대응하는 오디오 데이터가 제 1 어시스턴트 입력 디바이스(1061)에서 검출된다고 가정하자(예를 들어, 음성 발화에 대응하는 말 풍선으로부터 제 1 어시스턴트 입력 디바이스(1061)로 항하는 점선으로 표시된 바와 같이). 또한, 제 5 어시스턴트 비입력 디바이스(1855)(스마트 온도조절기가 마이크를 포함한다고 가정함)도 핫워드를 캡처하는 오디오 데이터를 검출할 것이라 예상된다고 가정하자(예컨대, 또한 파선으로 표시됨). 이러한 일례에서, 제 2 어시스턴트 입력 디바이스(1062) 및 제 5 어시스턴트 비입력 디바이스(1855)가 동일한 디바이스 그룹(예를 들어, "서재" 그룹)에 속함에 기초하여, 및/또는 제 2 어시스턴트 입력 디바이스(1062) 및 제 5 어시스턴트 비입력 디바이스(1855)가 동일한 음성 발화를 캡처하는 시간적으로 대응하는 오디오 데이터를 이전에 검출했음에 기초하여, 제 5 어시스턴트 비입력 디바이스(1855)가 오디오 데이터를 검출할 것이라 예상될 수 있다.
또한, 제 2 어시스턴트 입력 디바이스(1062)에서 검출된 오디오 데이터를 기반으로 생성된 척도가 오디오 데이터가 핫워드를 캡처함을 나타낸다고 가정하고, 제 5 어시스턴트 비입력 디바이스(1855)에서 검출된 오디오 데이터를 기반으로 생성된 척도가 오디오 데이터가 핫워드를 캡처함을 나타낸다고 가정하자. 이러한 일례에서, 생태계에서 검출된 핫워드는 실제로 핫워드인 것으로 결정될될 수 있고, 자동 어시스턴트의 하나 이상의 컴포넌트들 또는 기능들이 활성화될 수 있다. 반대로, 제 2 어시스턴트 입력 디바이스(1062)에서 검출된 오디오 데이터를 기반으로 생성된 척도가 오디오 데이터가 핫워드를 캡처함을 나타내지만, 제 5 어시스턴트 비입력 디바이스(1855)에서 검출된 오디오 데이터를 기반으로 생성된 척도는 오디오 데이터가 핫워드를 캡처하지 않음을 나타낸다고 가정하자. 이 경우, 생태계에서 검출된 핫워드가 실제 핫워드인지를 결정하는 것은, 제 5 어시스턴트 비입력디바이스(1855)에서 검출된 오디오 데이터를 기반으로 생성된 척도가, 척도가 핫워드임을 나타내는 임계값의 임계 범위 내에 있는지의 여부에 기초할 수 있다. 예를 들어, 핫워드 이벤트와 관련된 척도가 확률이라고 가정하자. 또한, 제 2 어시스턴트 입력 디바이스(1062)에 의해 검출된 오디오 데이터에 기초하여 생성된 척도가 0.7이고, 제 5 어시스턴트 비입력 디바이스(1855)에서 검출된 오디오 데이터에 기초하여 생성된 척도는 0.6이며, 핫워드가 실제 핫워드라고 판단하기 위한 임계값은 0.65 라고 가정하자. 결과적으로, 음향 이벤트는 핫워드로 간주되지 않을 수 있는데, 왜냐하면 제 2 어시스턴트 입력 디바이스(1062)와 관련된 척도는 핫워드의 발생을 나타내지만, 제 5 어시스턴트 비입력 디바이스(1855)와 관련된 척도는 핫워드의 발생을 나타내지 않기 때문이다. 하지만, 제 5 어시스턴트 비입력 디바이스(1855)에서 검출된 오디오 데이터에 기초하여 생성된 척도(예를 들어, 0.6)가 임계값(예를 들어, 0.65)의 0.1 이내라고 가정하면, 음향 이벤트는 핫워드로 간주되지 않을 수 있다. 따라서, 2개의 디바이스들 모두 생태계에서 핫워드가 검출되었다는 확신이 높지 않더라도, 음향 이벤트는 핫워드의 발생으로 간주될 수 있다. 반면에, 제 5 어시스턴트 비입력 디바이스(1855)에서 검출된 오디오 데이터를 기반으로 생성된 척도가 0.1이라고 가정하자. 이러한 일례에서, 제 2 어시스턴트 입력 디바이스(1062)에 의해 검출된 오디오 데이터에 기초하여 생성된 척도가 0.7 인 경우에도, 음향 이벤트는 핫워드의 발생으로 간주되지 않을 것인바 왜냐하면 제 5 어시스턴트 비입력 디바이스(1855)에 의해 검출된 오디오 데이터에 기초하여 생성된 척도가 임계값(예: 0.65)을 충족하지 못하고, 임계값의 임계 범위 내에 있지도 않기 때문이다. 이러한 일례들에서, 핫워드 이벤트가 실제 핫워드 이벤트인지 여부를 결정하기 위해, 척도들에 대한 추가적인 또는 대안적인 프로세싱이 활용될 수 있다. 예를 들어, 어시스턴트 디바이스들에서 검출된 각각의 오디오 데이터에 기초하여 생성된 척도들의 평균, 중앙값, 최대값, 최소값 또는 퍼센티지 중 하나 이상이 활용되어, 핫워드 이벤트가 실제 핫워드 이벤트인지 여부를 결정할 수 있다. 예를 들어, 사용자(101)에 대한 근접성(예를 들어, 도 1의 존재 센서(105)을 사용하여 결정됨), 어시스턴트 디바이스들의 컴포넌트들의 유형들(예를 들어, 다수의 마이크를 갖는 어시스턴트 디바이스 대 단일 마이크를 갖는 어시스턴트 디바이스), 및/또는 다른 인자들에 기초하여 하나 이상의 이러한 통계들을 결정할 때 하나 이상의 척도들은 선택적으로 가중될 수 있다.
비록 도 2a 및 2b는 하나 이상의 자동 어시스턴트 컴포넌트들 또는 기능들을 활성화시키는 음향 이벤트인 핫워드 이벤트에 대해 본 명세서에서 설명되지만, 이는 예시를 위한 것이며, 본 발명을 제한하려는 의도가 아님을 이해해야 한다. 추가적으로 또는 대안적으로 핫워드프리(hotwordfree) 이벤트가 또한 생태계의 여러 어시스턴트 디바이스에 의해 검출될 수도 있다. 핫워드프리 이벤트는, 예를 들어, 소정 어시스턴트 디바이스로 향하는 시선을 검출하는 것(그리고 선택적으로 사용자 101의 입 움직임과 결합됨)을 포함할 수 있으며, 이는 검출될 때 자동 어시스턴트 컴포넌트들 또는 기능들 중 하나 이상이 활성화되게 한다. 예를 들어, 각각의 이미지 데이터는 다수의 어시스턴트 디바이스들(예를 들어, 존재 센서에 대해 설명된 비전 컴포넌트를 포함함)에 의해 캡처될 수 있고, 각각의 이미지 데이터는 핫워드프리 모델(들)(예를 들어, ML 모델(들) 데이터베이스 192에 저장됨)을 사용하여 프로세싱되어 각각의 척도를 생성할 수 있으며, 그리고 각각의 척도는 핫워드프리 이벤트가 실제 핫워드프리 이벤트인지 여부를 결정하기 위해 프로세싱될 수 있다. 이러한 기술은 생태계에서 발생할 수 있는 다른 시각적 이벤트를 검출하는 데에도 활용될 수 있다.
또한, 비록 도 2a 및 2b는 핫워드 이벤트인 음향 이벤트에 대해 본 명세서에서 설명되지만, 이는 예시를 위한 것이며 제한하려는 의도가 아님을 이해해야 한다. 다른 비제한적 일례로서, 구체적으로 도 3을 참조하면, 환경에서 캡처된 임의의 오디오 데이터는 생태계에서 특정 사운드의 발생을 검출하도록 트레이닝된 사운드 검출 모델(들)을 사용하여 추가적으로 또는 대안적으로 프로세싱될 수 있다. 예를 들어, 사용자(101)가 음성 발화를 제공하는 대신에 방(250)의 창문이 깨졌다고 가정하고, 유리 깨짐의 발생을 검출하는 것과 관련된 척도(그리고 선택적으로는, 도어벨 울림, 연기 알람 사운드, 및/또는 생태계에서 발생할 수 있는 기타 사운드와 관련된 추가 척도들)를 생성하도록 트레이닝된 각각의 사운드 검출 모델을 이용하여 제 1 어시스턴트 입력 디바이스(1061)에 의해 캡처된 오디오 데이터가 또한 프로세싱된다고 가정하자. 도 2a와 관련하여 전술한 바와 유사하게, 생태계 내의 추가 어시스턴트 디바이스(들)(예를 들어, 제 5 어시스턴트 입력 디바이스(1065) 및 제 5 어시스턴트 비입력 디바이스(1855))은 시간적으로 대응하는 오디오 데이터를 검출할 것으로 예상되는 것으로 식별될 수 있으며, 시간적으로 대응하는 오디오 데이터를 프로세싱하여 추가 척도(들)을 생성하고, 척도 및 추가 척도(들)에 기초하여 유리 깨짐에 해당하는 소리가 생태계에 실제로 캡처되었는지를 결정할 수 있다. 그 결과, 생태계에서 유리 깨지는 소리가 검출되었음을 나타내는 알림이 사용자(101)의 클라이언트 디바이스(예를 들어, 모바일 디바이스 및/또는 생태계에 있는 하나 이상의 어시스턴트 디바이스)에서 렌더링될 수 있으며 그리고 선택적으로는 유리 깨짐을 검출한 어시스턴트 디바이스들에 대한 표시 및/또는 유리 깨지는 소리가 검출된 생태계의 방에 대한 표시를 포함할 수 있다.
비록 도 2a, 2b 및 3은 음향 이벤트(및 시각적 이벤트)에 대해 본 명세서에서 설명되지만, 이는 예시를 위한 것이며 제한하려는 의도가 아님을 이해해야 한다. 여기에 설명된 기술은 생태계에서 여러 어시스턴트 디바이스에 의해 검출될 수 있는 임의의 이벤트의 발생을 확인하는데 활용될 수 있다. 예를 들어, 제 1 어시스턴트 디바이스는 가속도계를 포함하는 사용자(101)가 휴대하는 모바일 디바이스라고 가정하고, 제 2 어시스턴트 디바이스는 가속도계를 또한 포함하는 사용자(101)가 착용하는 스마트 워치라고 가정하자. 이러한 일례에서, 모바일 디바이스 및 스마트 워치에 의해 생성된 각각의 가속도계 데이터는, 검출된 가속도계 이벤트가 실제 가속도계 이벤트(예를 들어, 사용자(101)가 걷기, 조깅, 달리기, 및/또는 가속도계에서 검출할 수 있는 기타 동작 활동)인지를 결정하기 위해 전술한 바와 동일하거나 유사한 방식으로 프로세싱될 수 있다.
이제 도 4를 참조하면, 생태계 내의 복수의 어시스턴트 디바이스들에서 캡처된 오디오 데이터에 기초하여 음향 이벤트가 실제 음향 이벤트인지 여부를 결정하는 예시적인 방법(400)을 나타내는 흐름도가 도시된다. 편의상, 방법(400)의 동작들은 동작들을 수행하는 시스템을 참조하여 설명된다. 방법(400)의 시스템은 하나 이상의 프로세서 및/또는 컴퓨팅 디바이스의 다른 컴포넌트(들)를 포함한다. 예를 들어, 방법(400)의 시스템은 도 1, 도 2a, 도 2b 또는 도 3의 어시스턴트 입력 디바이스(106), 도 1, 도 2a, 도 2b 또는 도 3의 어시스턴트 비입력 디바이스(185), 도 6의 컴퓨팅 디바이스(610), 하나 이상의 서버들, 다른 컴퓨팅 디바이스들 및/또는 이들의 임의의 조합에 의해 구현될 수 있다. 또한, 방법(400)의 동작들이 특정 순서로 도시되어 있지만, 이것은 제한을 의미하지 않는다. 하나 이상의 동작들이 재정렬, 생략 및/또는 추가될 수 있다.
블록(452)에서, 복수의 어시스턴트 디바이스들을 포함하는 생태계에 위치한 어시스턴트 디바이스의 마이크(들)를 통해, 시스템은 음향 이벤트를 캡처하는 오디오 데이터를 검출한다. 검출된 음향 이벤트는 예를 들어, 생태계와 관련된 사용자에 의해 제공되는 특정 단어 또는 문구(예를 들어, 핫워드), 인간의 음성에 대응하지 않는 생태계의 특정 사운드, 및/또는 또는 생태계에서 발생할 수 있는 기타 음향 이벤트를 포함할 수 있다.
블록(454)에서, 시스템은 어시스턴트 디바이스에 로컬로 저장되는 이벤트 검출 모델을 이용하여, 음향 이벤트를 캡처하는 오디오 데이터를 프로세싱하여, 음향 이벤트와 관련된 척도를 생성한다. 일부 구현예에서, 음향 이벤트를 캡처하는 오디오 데이터는 어시스턴트 디바이스에서 로컬로 저장된 핫워드 검출 모델을 사용하여 프로세싱되어, 어시스턴트 디바이스에서 검출된 오디오 데이터가 특정 단어 또는 문구를 포함하는지의 여부를 나타내는 척도를 생성한다(예를 들어, 자동 어시스턴트의 하나 이상의 컴포넌트를 활성화하기 위해). 일부 추가적인 또는 대안적인 구현예에서, 음향 이벤트를 캡처하는 오디오 데이터는 어시스턴트 디바이스에서 로컬로 저장된 사운드 검출 모델을 사용하여 프로세싱되어, 어시스턴트 디바이스에서 검출된 오디오 데이터가 특정 사운드(예컨대, 유리 깨지는 소리, 개 짖는 소리, 고양이 울음소리, 초인종 소리, 연기 경보기 소리, 일산화탄소 검출기 소리, 아기 울음소리, 문 두드리는 소리 및/또는 생태계에서 발생할 수 있는 기타 소리)를 포함하는지의 여부를 나타내는 척도를 생성한다.
블록(456)에서, 시스템은 생태계에 위치한 추가 어시스턴트 디바이스의 추가 마이크(들)를 통해 음향 이벤트를 또한 캡처하는 추가 오디오 데이터를 검출한다. 추가 어시스턴트 디바이스에서 검출된 추가 오디오 데이터는 어시스턴트 디바이스에서 검출된 오디오 데이터에 시간적으로 대응될 수 있다. 시스템은 오디오 데이터 및 추가 오디오 데이터가 각각 수신된 시기에 대응하는 각각의 타임스탬프들에 기초하여, 추가 오디오 데이터가 오디오 데이터에 시간적으로 대응하는지를 결정할 수 있다. 또한, 타임스탬프들이 매칭되거나 또는 서로 임계 시간 기간 내에 있는 경우, 추가 오디오 데이터는 오디오 데이터에 시간적으로 대응하는 것으로 간주될 수 있다(예를 들어, 몇 밀리초 이내, 몇 초 이내 또는 기타 적절한 시간 기간 이내).
블록(458)에서, 시스템은 추가 어시스턴트 디바이스에 로컬로 저장되는 추가 이벤트 검출 모델을 사용하여 음향 이벤트와 관련된 추가 척도를 생성하기 위해 음향 이벤트를 캡처하는 추가 오디오 데이터를 프로세싱한다. 일부 구현예에서, 음향 이벤트를 캡처하는 추가 오디오 데이터는 추가 어시스턴트 디바이스에 로컬로 저장된 추가 핫워드 검출 모델을 사용하여 프로세싱되어, 추가 어시스턴트에서 검출된 추가 오디오 데이터가 특정 단어 또는 문구를 포함하는지 여부를 나타내는 추가 척도를 생성할 수 있다(예를 들어, 자동 어시스턴트의 하나 이상의 컴포넌트를 활성화하기위해). 일부 추가적 또는 대안적 구현예에서, 음향 이벤트를 캡처하는 추가 오디오 데이터는 추가 어시스턴트 디바이스에 로컬로 저장된 추가 사운드 검출 모델을 사용하여 프로세싱되어, 추가 어시스턴트 디바이스에서 검출된 추가 오디오 데이터가 특정 사운드(예: 유리 깨지는 소리, 개 짖는 소리, 고양이 야옹 소리, 초인종 소리, 연기 경보 소리, 일산화탄소 검출기 소리 및/또는 생태계에서 발생할 수 있는 기타 소리)를 포함하는지 여부를 나타내는 추가 척도를 생성할 수 있다.
블록(460)에서, 시스템은 상기 척도 및 추가 척도 둘다를 프로세싱하여, 적어도 어시스턴트 디바이스 및 추가 어시스턴트 디바이스 모두에 의해 검출된 음향 이벤트가 실제 음향 이벤트인지 여부를 결정할 수 있다. 상기 척도 및 추가 척도는 예를 들어, 오디오 데이터가 음향 이벤트를 캡처하는지 여부를 나타내는 이진 값이거나(예를 들어, "예"에 대해 "1" 및 "아니오"에 대해 "0"), 음향 이벤트가 발생했는지의 여부와 관련된 확률이거나(예를 들어, 오디오 데이터가 음향 이벤트를 캡처하는 0.7 대(vs) 오디오 데이터가 음향 이벤트를 캡처하지 않는 0.3), 및/또는 음향 이벤트와 관련된 다른 척도들일 수 있다.
블록(462)에서, 시스템은 블록(460)에서 척도 및 추가 척도를 프로세싱하는 것에 기초하여 음향 이벤트가 실제 음향 이벤트인지 여부를 결정한다. 블록(462)에서, 음향 이벤트가 실제 음향 이벤트가 아니라고 시스템이 결정하는 경우, 시스템은 블록(464)로 진행하고 추가 프로세싱 없이 오디오 데이터 및 추가 오디오 데이터를 폐기한다. 이후, 시스템은 블록(452)으로 돌아간다. 예를 들어, 척도 및 추가 척도가 오디오 데이터 및 추가 오디오 데이터가 각각 핫워드를 캡처하는 확률에 대응한다고 가정하자. 예를 들어, 상기 척도는 오디오 데이터가 핫워드를 캡처할 확률이 0.7이라고 가정하고 추가 척도는 추가 오디오 데이터가 핫워드를 캡처할 확률이 0.3이라고 가정하자. 본 일례에서, 상기 척도에만 기초하여 상기 0.7의 확률이 임계 확률 레벨을 만족한다고 가정하여, 시스템은 음향 이벤트가 실제 음향 이벤트라고 결정할 수 있다(예를 들어, 사용자가 핫워드를 포함하는 음성 발화를 제공했음). 하지만, 추가 척도에 기초하여 0.3의 확률이 임계 확률 레벨을 만족하지 못한다고 가정하여, 시스템은 음향 이벤트가 실제 음향 이벤트가 아니라고 결정할 수 있다(예를 들어, 사용자는 핫워드를 포함하는 음성 발화를 제공하지 않았다). 그 결과, 음향 이벤트가 실제 음향 이벤트였음을 상기 척도가 나타낸다 하더라도, 시스템은 음향 이벤트가 실제 음향 이벤트가 아니라고 결정할 수 있는데, 왜냐하면 추가 척도도 또한 음향 이벤트가 실제 음향 이벤트였음을 나타내야 하기 때문이며, 그리고 오디오 데이터 및 추가 오디오 데이터는 폐기될 수 있다. 추가적으로 또는 대안적으로, 시스템은 어시스턴트 디바이스들에서 검출된 각각의 오디오 데이터에 기초하여 생성된 척도들의 평균, 중앙값, 최대값, 최소값 또는 퍼센티지 등과 같은 척도들과 관련된 통계에 기초하여 음향 이벤트가 실제 음향 이벤트인지 여부를 결정할 수 있다.
블록(462)의 이터레이션에서, 음향 이벤트가 실제 음향 이벤트라고 시스템이 결정하면, 시스템은 블록(466)으로 진행한다. 예를 들어, 상기 척도 및 추가 척도가, 오디오 데이터 및 추가 오디오 데이터가 각각 핫워드를 캡처하는 확률에 대응한다고 가정하자. 예를 들어, 상기 척도는 오디오 데이터가 핫워드를 캡처하는 0.7이라는 확률이라고 가정하고, 상기 추가 척도는 추가 오디오 데이터가 핫워드를 캡처하는 0.8이라는 확률이라고 가정하자. 이러한 일례에서, 상기 척도 및 추가 척도에 각각 기초하여 0.7의 확률 및 0.8의 확률(또는 그에 기반한 하나 이상의 통계치)이 임계 확률 레벨을 만족한다고 가정하면, 시스템은 음향 이벤트가 실제 음향 이벤트라고 결정할 수 있다(예를 들어, 사용자는 핫워드를 포함하는 음성 발화를 제공했음). 그 결과, 상기 척도 및 추가 척도 모두가 음향 이벤트가 실제 음향 이벤트였음을 나타내기 때문에, 시스템은 상기 음향 이벤트가 실제 음향 이벤트라고 결정할 수 있다.
블록(466)에서, 시스템은 실제 음향 이벤트와 관련된 액션이 수행되게 할 수 있다. 이후, 시스템은 블록(452)으로 돌아간다. 시스템에 의해 수행되는 액션은 오디오 데이터 및 추가 오디오 데이터에서 캡처된 실제 음향 이벤트에 기초할 수 있다. 예를 들어, 실제 음향 이벤트가 핫워드의 발생에 대응하는 구현예에서, 시스템은 자동 어시스턴트의 하나 이상의 컴포넌트들 또는 기능들(예를 들어, 스피치 프로세싱, 자연어 프로세싱 및/또는 자동 어시스턴트의 다른 컴포넌트들 또는 기능들)을 활성화시킬 수 있다. 다른 일례로서, 실제 음향 이벤트가 특정 사운드의 발생에 대응하는 구현예에서, 시스템은 생태계에서 특정 소리가 검출되었음을 나타내는 통지를 생성할 수 있으며(선택적으로는 특정 사운드를 검출한 어시스턴트 디바이스를 식별함), 그리고 생태계와 관련된 사용자의 클라이언트 디바이스(예를 들어, 사용자의 모바일 디바이스, 하나 이상의 어시스턴트 디바이스들, 및/또는 사용자와 관련된 임의의 다른 클라이언트 디바이스)에서 상기 통지가 렌더링되게 할 수 있다.
이제 도 5를 참조하면, 음향 이벤트를 검출하는 소정 어시스턴트 디바이스에 기초하여, 생태계 내에서 어떤 어시스턴트 디바이스(들)이 음향 이벤트를 검출했어야 하는지를 식별하는 예시적인 방법(500)의 순서도가 도시된다. 편의상, 방법(500)의 동작들은 동작들을 수행하는 시스템을 참조하여 설명된다. 방법(500)의 시스템은 하나 이상의 프로세서 및/또는 컴퓨팅 디바이스의 다른 컴포넌트(들)를 포함한다. 예를 들어, 방법(500)의 시스템은 도 1, 도 2a, 도 2b 또는 도 3의 어시스턴트 입력 디바이스(106), 도 1, 도 2a, 도 2b 또는 도 3의 어시스턴트 비입력 디바이스(185), 도 6의 컴퓨팅 디바이스(610), 하나 이상의 서버들, 다른 컴퓨팅 디바이스들 및/또는 이들의 임의의 조합에 의해 구현될 수 있다. 또한, 방법(400)의 동작들이 특정 순서로 도시되어 있지만, 이것은 제한을 의미하지 않는다. 하나 이상의 동작들이 재정렬, 생략 및/또는 추가될 수 있다.
블록(552)에서, 시스템은 복수의 어시스턴트 디바이스들을 포함하는 생태계에 위치한 어시스턴트 디바이스의 마이크(들)를 통해, 음향 이벤트를 캡처하는 오디오 데이터를 검출한다. 검출된 음향 이벤트는 예를 들어, 생태계와 관련된 사용자에 의해 제공되는 특정 단어 또는 문구(예를 들어, 핫워드), 인간의 말에 대응하지 않는 생태계의 특정 사운드, 및/또는 또는 생태계에서 발생할 수 있는 기타 음향 이벤트를 포함할 수 있다.
블록(554)에서, 시스템은 생태계 내의 어시스턴트 디바이스의 위치에 기초하여, 적어도 하나의 추가 어시스턴트 디바이스의 각각의 마이크(들)를 통해, 어시스턴트 디바이스에서 검출된 오디오 데이터에 시간적으로 대응되는 추가 오디오 데이터를 검출했어야 하는 상기 적어도 하나의 추가 어시스턴트 디바이스를 식별한다. 시스템은, 상기 어시스턴트 디바이스 및 상기 적어도 하나의 추가 어시스턴트 디바이스가 시간적으로 대응하는 오디오 데이터를 역사적으로 검출한 것에 기초하여, 추가 오디오 데이터를 검출했어야 하는 적어도 하나의 추가 어시스턴트 디바이스를 식별할 수 있다. 또한, 시스템은 오디오 데이터 및 추가 오디오 데이터가 각각 수신되었던 시기에 대응하는 각각의 타임스탬프들에 기초하여, 추가 오디오 데이터가 오디오 데이터에 시간적으로 대응함을 결정할 수 있다. 또한, 타임스탬프들이 매칭되거나 또는 서로 임계 시간 기간 내에 있는 경우(예를 들어, 수 밀리초 이내, 수 초 이내 또는 임의의 다른 적합한 기간 이내), 추가 오디오 데이터는 오디오 데이터에 시간적으로 대응하는 것으로 간주될 수 있다.
블록(556)에서, 시스템은 어시스턴트 디바이스에서 검출된 오디오 데이터에 시간적으로 대응하는 추가 오디오 데이터를 추가 어시스턴트 디바이스가 검출했는지 여부를 결정한다. 블록(556)의 이터레이션에서, 어시스턴트 디바이스에서 검출된 오디오 데이터에 시간적으로 대응하는 추가 오디오 데이터가 없다고 시스템이 결정하면, 시스템은 블록(566)으로 진행하며 그리고 추가 프로세싱 없이 오디오 데이터 및 추가 오디오 데이터를 폐기한다. 블록(556)의 이터레이션에서, 어시스턴트 디바이스에서 검출된 오디오 데이터에 시간적으로 대응하는 추가 오디오 데이터가 있다고 시스템이 결정하면, 시스템은 블록(558)으로 진행한다. 다른 말로 하면, 음향 이벤트를 캡처하는 오디오 데이터를 검출했어야 하는 임의의 다른 어시스턴트 디바이스가 시간적으로 대응하는 오디오 데이터를 캡처하지 않았다면, 시스템은 임의의 이벤트 검출 모델(들)을 이용하여 오디오 데이터를 프로세싱함이 없이, 상기 음향 이벤트가 실제 음향 이벤트가 아니라고 판단할 수 있다.
블록(558)에서, 시스템은 어시스턴트 디바이스에 로컬로 저장된 이벤트 검출 모델을 이용하여, 음향 이벤트와 관련된 척도를 생성하기 위해 음향 이벤트를 캡처하는 오디오 데이터를 프로세싱한다. 일부 구현예에서, 음향 이벤트를 캡처하는 오디오 데이터는 어시스턴트 디바이스에서 로컬로 저장된 핫워드 검출 모델을 사용하여 프로세싱되어, 어시스턴트 디바이스에서 검출된 오디오 데이터가 특정 단어 또는 문구를 포함하는지의 여부를 나타내는 척도를 생성할 수 있다(예를 들어, 자동 어시스턴트의 하나 이상의 컴포넌트를 활성화하기 위해). 일부 추가적인 또는 대안적인 구현예에서, 음향 이벤트를 캡처하는 오디오 데이터는 어시스턴트 디바이스에서 로컬로 저장된 사운드 검출 모델을 사용하여 프로세싱되어, 어시스턴트 디바이스에서 검출된 오디오 데이터가 특정 사운드(예: 유리 깨지는 소리, 개 짖는 소리, 고양이 울음소리, 초인종 소리, 연기 경보기 소리, 일산화탄소 검출기 소리, 아기 울음소리, 문 두드리는 소리 및/또는 생태계에서 발생할 수 있는 기타 소리)를 포함하는지의 여부를 나타내는 척도를 생성할 수 있다.
블록(560)에서, 시스템은 추가 어시스턴트 디바이스에 로컬로 저장되는 추가 이벤트 검출 모델을 사용하여, 음향 이벤트를 캡처하는 추가 오디오 데이터를 프로세싱하여 음향 이벤트와 관련된 추가 척도를 생성한다. 일부 구현예에서, 음향 이벤트를 캡처하는 추가 오디오 데이터는 추가 어시스턴트 디바이스에 로컬로 저장된 추가 핫워드 검출 모델을 이용하여 프로세싱되어, 추가 어시스턴트 디바이스에서 검출된 추가 오디오 데이터가 특정 단어 또는 문구를 포함하는지의 여부를 나타내는 추가 척도를 생성할 수 있다(예를 들어, 자동 어시스턴트의 하나 이상의 컴포넌트를 활성화하기위해). 일부 추가적인 또는 대안적인 구현예에서, 음향 이벤트를 캡처하는 추가 오디오 데이터는 추가 어시스턴트 디바이스에 로컬로 저장된 추가 사운드 검출 모델을 이용하여 프로세싱되어, 추가 어시스턴트 디바이스에서 검출된 추가 오디오 데이터가 특정 사운드(예: 유리 깨지는 소리, 개 짖는 소리, 고양이 울음 소리, 초인종 소리, 연기 경보 소리, 일산화탄소 검출기 소리 및/또는 생태계에서 발생할 수 있는 기타 소리)를 포함하는지 여부를 나타내는 추가 척도를 생성할 수 있다.
블록(562)에서, 시스템은 상기 척도 및 추가 척도 모두를 프로세싱하여, 적어도 어시스턴트 디바이스 및 추가 어시스턴트 디바이스 모두에 의해 검출된 음향 이벤트가 실제 음향 이벤트인지 여부를 결정할 수 있다. 상기 척도 및 추가 척도는 예를 들어, 오디오 데이터가 음향 이벤트를 캡처하는지 여부를 나타내는 이진 값이거나(예를 들어, "예"에 대해 "1" 및 "아니오"에 대해 "0"), 음향 이벤트가 발생했는지의 여부와 관련된 확률이거나(예를 들어, 오디오 데이터가 음향 이벤트를 캡처하는 0.7 대(vs) 오디오 데이터가 음향 이벤트를 캡처하지 않는 0.3), 및/또는 음향 이벤트와 관련된 다른 척도들일 수 있다.
블록(564)에서, 시스템은 블록(562)에서 척도 및 추가 척도를 프로세싱하는 것에 기초하여, 음향 이벤트가 실제 음향 이벤트인지 여부를 결정한다. 블록(564)의 이터레이션에서, 음향 이벤트가 실제 음향 이벤트가 아니라고 시스템이 결정하는 경우, 시스템은 블록(566)으로 진행하고 추가 프로세싱 없이 오디오 데이터 및 추가 오디오 데이터를 폐기한다. 이후, 시스템은 블록(552)으로 돌아간다. 예를 들어, 척도 및 추가 척도가 오디오 데이터 및 추가 오디오 데이터가 각각 핫워드를 캡처하는 확률에 대응한다고 가정하자. 예를 들어, 상기 척도는 오디오 데이터가 핫워드를 캡처하는 0.7이라는 확률이라고 가정하고 추가 척도는 추가 오디오 데이터가 핫워드를 캡처하는 0.3이라는 확률이라 가정하자. 본 일례에서, 상기 척도에만 기초하여 상기 0.7의 확률이 임계 확률 레벨을 만족한다고 가정하여, 시스템은 음향 이벤트가 실제 음향 이벤트라고 결정할 수 있다(예를 들어, 사용자가 핫워드를 포함하는 음성 발화를 제공했음). 하지만, 추가 척도에 기초하여 0.3이라는 확률이 임계 확률 레벨을 만족하지 못한다고 가정하여, 시스템은 음향 이벤트가 실제 음향 이벤트가 아니라고 결정할 수 있다(예를 들어, 사용자는 핫워드를 포함하는 음성 발화를 제공하지 않았다). 그 결과, 음향 이벤트가 실제 음향 이벤트였음을 상기 척도가 나타낸다 하더라도, 시스템은 음향 이벤트가 실제 음향 이벤트가 아니라고 결정할 수 있는데, 왜냐하면 추가 척도도 또한 음향 이벤트가 실제 음향 이벤트였음을 나타내야 하기 때문이며, 그리고 오디오 데이터 및 추가 오디오 데이터는 폐기될 수 있다. 추가적으로 또는 대안적으로, 시스템은 어시스턴트 디바이스들에서 검출된 각각의 오디오 데이터에 기초하여 생성된 척도들의 평균, 중앙값, 최대값, 최소값 또는 퍼센티지 등과 같은 척도들과 관련된 통계에 기초하여 음향 이벤트가 실제 음향 이벤트인지 여부를 결정할 수 있다.
블록(564)의 이터레이션에서, 음향 이벤트가 실제 음향 이벤트라고 시스템이 결정하는 경우, 시스템은 블록(568)으로 진행한다. 예를 들어, 척도 및 추가 척도가 오디오 데이터 및 추가 오디오 데이터가 각각 핫워드를 캡처하는 확률에 대응한다고 가정하자. 예를 들어, 상기 척도는 오디오 데이터가 핫워드를 캡처하는 0.7이라는 확률이라고 가정하고, 상기 추가 척도는 추가 오디오 데이터가 핫워드를 캡처하는 0.8이라는 확률이라고 가정하자. 이러한 일례에서, 상기 척도 및 추가 척도에 각각 기초하여 0.7의 확률 및 0.8의 확률(또는 그에 기반한 하나 이상의 통계치)이 임계 확률 레벨을 만족한다고 가정하면, 시스템은 음향 이벤트가 실제 음향 이벤트라고 결정할 수 있다(예를 들어, 사용자는 핫워드를 포함하는 음성 발화를 제공했음). 그 결과, 상기 척도 및 추가 척도 모두가 음향 이벤트가 실제 음향 이벤트였음을 나타내기 때문에, 시스템은 상기 음향 이벤트가 실제 음향 이벤트라고 결정할 수 있다.
블록(568)에서, 시스템은 실제 음향 이벤트와 관련된 액션이 수행되게 한다. 이후, 시스템은 블록(552)으로 돌아간다. 시스템에 의해 수행되는 액션은 오디오 데이터 및 추가 오디오 데이터에서 캡처된 실제 음향 이벤트에 기초할 수 있다. 예를 들어, 실제 음향 이벤트가 핫워드의 발생에 대응하는 구현예에서, 시스템은 자동 어시스턴트의 하나 이상의 컴포넌트들 또는 기능들(예를 들어, 스피치 프로세싱, 자연어 프로세싱 및/또는 자동 어시스턴트의 다른 컴포넌트들 또는 기능들)을 활성화시킬 수 있다. 다른 일례로서, 실제 음향 이벤트가 특정 사운드의 발생에 대응하는 구현예에서, 시스템은 생태계에서 특정 사운드가 검출되었음을 나타내는 통지를 생성할 수 있으며(선택적으로는 특정 사운드를 검출한 어시스턴트 디바이스를 식별함), 그리고 생태계와 관련된 사용자의 클라이언트 디바이스(예를 들어, 사용자의 모바일 디바이스, 하나 이상의 어시스턴트 디바이스들, 및/또는 사용자와 관련된 임의의 다른 클라이언트 디바이스)에서 상기 통지가 렌더링되게 할 수 있다.
도 6은 본 명세서에 서술된 기술의 하나 이상의 양상들을 수행하기 위해 선택적으로 이용될 수 있는 예시적인 컴퓨팅 디바이스(610)의 블록도이다. 일부 구현예에서, 하나 이상의 어시스턴트 입력 디바이스, 하나 이상의 클라우드 기반 자동 어시스턴트 컴포넌트, 하나 이상의 어시스턴트 비입력 시스템, 하나 이상의 어시스턴트 비입력 디바이스, 및/또는 다른 컴포넌트(들)는 예시적인 컴퓨팅 디바이스(610)의 하나 이상의 컴포넌트를 포함한다.
컴퓨팅 디바이스(610)는 일반적으로 버스 서브시스템(612)을 통해 다수의 주변 디바이스들과 통신하는 적어도 하나의 프로세서(614)를 포함한다. 이러한 주변 디바이스들은 예를 들어, 메모리 서브시스템(625) 및 파일 저장 서브시스템(626)을 포함하는 저장 서브시스템(624), 사용자 인터페이스 출력 디바이스(620), 사용자 인터페이스 입력 디바이스(622) 및 네트워크 인터페이스 서브시스템(616)을 포함한다. 입력 및 출력 디바이스는 사용자가 컴퓨팅 디바이스(610)와 상호작용할 수 있게 한다. 네트워크 인터페이스 서브시스템(616)은 외부 네트워크에 대한 인터페이스를 제공하고 다른 컴퓨팅 디바이스의 디바이스의 해당 인터페이스에 연결된다.
사용자 인터페이스 입력 디바이스(622)는 키보드, 마우스, 트랙볼, 터치패드 또는 그래픽 태블릿과 같은 포인팅 디바이스, 스캐너, 디스플레이에 통합된 터치스크린, 음성 인식 시스템과 같은 오디오 입력 디바이스, 마이크 및 /또는 다른 유형의 입력 디바이스를 포함한다. 일반적으로, "입력 디바이스"라는 용어의 사용은 정보를 컴퓨팅 디바이스(610) 또는 통신 네트워크에 입력하기 위한 모든 가능한 유형의 디바이스 및 방법을 포함하도록 의도된다.
사용자 인터페이스 출력 디바이스(620)는 디스플레이 서브시스템, 프린터, 팩스 또는 오디오 출력 디바이스와 같은 비시각적 디스플레이를 포함할 수 있다. 디스플레이 서브시스템은 음극선관(CRT), 액정 디스플레이(LCD)와 같은 평면 패널 디바이스, 프로젝션 디바이스 또는 시각적 이미지를 생성하기 위한 기타 메커니즘을 포함할 수 있다. 디스플레이 서브시스템은 오디오 출력 디바이스와 같은 비시각적 디스플레이를 제공할 수도 있다. 일반적으로, "출력 디바이스"라는 용어의 사용은 컴퓨팅 디바이스(610)로부터 사용자 또는 다른 머신 또는 컴퓨팅 디바이스로 정보를 출력하기 위한 모든 가능한 유형의 디바이스 및 방법을 포함하도록 의도된다.
저장 서브시스템(624)은 본 명세서에 기술된 일부 또는 모든 모듈의 기능을 제공하는 프로그래밍 및 데이터 구성을 저장한다. 예를 들어, 저장 서브시스템(624)은 도 1에 도시된 다양한 컴포넌트를 구현하는 것뿐만 아니라 본 명세서에 기술된 방법의 선택된 양상들을 수행하기 위한 로직을 포함할 수 있다.
이들 소프트웨어 모듈은 일반적으로 프로세서(614) 단독으로 또는 다른 프로세서와 결합하여 실행된다. 저장 서브시스템(624)에서 사용되는 메모리(625)는 프로그램 실행 동안 명령들 및 데이터를 저장하기 위한 메인 랜덤 액세스 메모리(RAM)(630) 및 고정 명령어가 저장되는 판독 전용 메모리(ROM)(632)를 포함하는 다수의 메모리를 포함할 수 있다. 파일 저장 서브시스템(626)은 프로그램 및 데이터 파일을 위한 영구 저장 디바이스를 제공할 수 있고, 하드 디스크 드라이브, 관련 이동식 매체와 함께 플로피 디스크 드라이브, CD-ROM 드라이브, 광학 드라이브 또는 이동식 매체 카트리지를 포함할 수 있다. 특정 구현예의 기능을 구현하는 모듈은 파일 저장 서브시스템(626)에 의해 저장 서브시스템(624) 또는 프로세서(들)(614)에 의해 액세스가능한 다른 기계에 저장될 수 있다.
버스 서브시스템(612)은 컴퓨팅 디바이스(610)의 다양한 컴포넌트 및 서브시스템이 의도한 대로 서로 통신하게 하는 메커니즘을 제공한다. 버스 서브시스템(612)이 개략적으로 단일 버스로 도시되어 있지만, 버스 서브시스템의 대안적인 구현예는 여러 버스들을 사용할 수 있다.
컴퓨팅 디바이스(610)는 워크스테이션, 서버, 컴퓨팅 클러스터, 블레이드 서버, 서버 팜 또는 임의의 다른 데이터 프로세싱 시스템 또는 컴퓨팅 디바이스를 포함하는 다양한 유형일 수 있다. 컴퓨터들 및 네트워크들의 끊임없이 변화하는 특성으로 인해, 도 6에 도시된 컴퓨팅 디바이스(610)의 묘사는 일부 구현예들을 설명하기 위한 특정 예로서만 의도된 것이다. 도 6에 도시된 컴퓨팅 디바이스보다 더 많거나 더 적은 컴포넌트를 갖는 컴퓨팅 디바이스(610)의 많은 다른 구성이 가능하다.
여기에서 논의된 특정 구현예들이 사용자에 관한 개인 정보(예를 들어, 다른 전자 통신으로부터 추출된 사용자 데이터, 사용자의 소셜 네트워크에 대한 정보, 사용자의 위치, 사용자의 시간, 사용자의 생체 정보, 및 사용자의 활동 및 인구 통계학적 정보, 사용자 간의 관계 등)를 수집하거나 이용하는 경우, 사용자는 정보 수집 여부, 개인 정보 저장 여부, 개인 정보 사용 여부 및 사용자에 대하여 정보가 어떻게 수집, 저장, 및 사용되는지를 제어할 수 있는 하나 이상의 기회를 제공받는다. 즉, 여기에서 논의된 시스템 및 방법은 관련 사용자로부터 명시적인 승인을 받은 경우에만 사용자 개인 정보를 수집, 저장 및/또는 사용한다.
예를 들어, 특정 사용자 또는 프로그램 또는 기능과 관련된 다른 사용자에 대한 사용자 정보를 프로그램들 또는 피처들이 어떻게 수집하는지에 대한 제어권이 사용자에게 제공된다. 개인 정보가 수집되는 각 사용자에게는 해당 사용자와 관련된 정보 수집을 제어하고, 정보 수집 여부 및 정보의 어느 부분이 수집되는지에 대한 허가 또는 승인을 제공할 수 있는 하나 이상의 옵션이 제공된다. 예를 들어, 사용자는 통신 네트워크를 통해 하나 이상의 이러한 제어 옵션을 제공받을 수 있다. 또한, 특정 데이터는 개인 식별 정보가 제거되도록 저장 또는 사용하기 전에 하나 이상의 방식으로 처리될 수 있다. 일례로, 아무런 개인 식별 정보도 확인될 수 없도록 사용자의 신원이 처리될 수 있다. 다른 예로서, 사용자의 특정 위치를 알 수 없도록 사용자의 지리적 위치가 더 넓은 지역으로 일반화될 수 있다.
일부 구현예에서, 하나 이상의 프로세서들에 의해 구현되는 방법이 제공되며, 상기 방법은 복수의 어시스턴트 디바이스들을 포함하는 생태계(echosystem)에 위치한 어시스턴트 디바이스의 하나 이상의 마이크를 통해 음향 이벤트를 캡처하는 오디오 데이터를 검출하는 단계; 어시스턴트 디바이스에 로컬로 저장된 이벤트 검출 모델을 사용하여, 음향 이벤트와 관련된 척도(measure)를 생성하기 위해 음향 이벤트를 캡처하는 오디오 데이터를 프로세싱하는 단계; 생태계에 위치한 추가 어시스턴트 디바이스의 하나 이상의 추가 마이크를 통해, 상기 음향 이벤트를 또한 캡처하는 추가 오디오 데이터를 검출하는 단계, 상기 추가 어시스턴트 디바이스는 상기 어시스턴트 디바이스 이외의 것이고, 상기 추가 어시스턴트 디바이스는 상기 어시스턴트 디바이스와 상기 생태계에 함께 위치하며; 추가 어시스턴트 디바이스에 로컬로 저장된 추가 이벤트 검출 모델을 사용하여, 음향 이벤트와 관련된 추가 척도를 생성하기 위해 음향 이벤트를 캡처하는 추가 오디오 데이터를 프로세싱하는 단계; 적어도 상기 어시스턴트 디바이스 및 추가 어시스턴트 디바이스 모두에 의해 검출된 음향 이벤트가 실제 음향 이벤트인지 여부를 결정하기 위해 상기 척도 및 추가 척도 모두를 프로세싱하는 단계; 및 음향 이벤트가 실제 음향 이벤트라는 결정에 응답하여, 실제 음향 이벤트와 관련된 액션이 수행되게 하는 단계를 포함한다.
본 명세서에 개시된 기술의 이들 및 다른 구현예들은 다음의 피처들을 하나 이상을 포함한다.
일부 구현예에서, 상기 음향 이벤트는 핫워드(hotword) 검출 이벤트를 포함하고, 상기 어시스턴트 디바이스에 로컬로 저장된 이벤트 검출 모델은 오디오 데이터에서 특정 단어 또는 문구가 캡처되는지 여부를 검출하도록 트레이닝된 핫워드 검출 모델을 포함하고, 상기 추가 어시스턴트 디바이스에 로컬로 저장된 추가 이벤트 검출 모델은, 추가 오디오 데이터에서 상기 특정 단어 또는 문구가 캡처되는지 여부를 검출하도록 트레이닝된 추가 핫워드 검출 모델일 수 있다.
이들 구현예들의 일부 버전들에서, 상기 음향 이벤트와 관련된 척도는 오디오 데이터가 상기 특정 단어 또는 문구를 캡처하는지에 대응하는 신뢰 레벨일 수 있으며, 상기 음향 이벤트와 관련된 추가 척도는 추가 오디오 데이터가 상기 특정 단어 또는 문구를 캡처하는지에 대응하는 추가 신뢰 레벨일 수 있다. 이들 구현예들의 일부 추가 버전들에서, 음향 이벤트가 실제 음향 이벤트라고 결정하는 단계는, 신뢰 레벨 및 추가 신뢰 레벨에 기초하여 상기 오디오 데이터 및 추가 오디오 데이터 둘다에서 상기 특정 단어 또는 문구가 캡처되는지를 결정하는 단계를 포함할 수 있다. 이들 구현예들의 일부 추가 버전들에서, 실제 음향 이벤트와 관련된 액션이 수행되게 하는 단계는, 상기 오디오 데이터 또는 추가 오디오 데이터가 특정 단어나 문구를 캡처함을 상기 음향 이벤트 데이터가 나타낸다라고 결정함에 응답하여 자동 어시스턴트의 하나 이상의 컴포넌트들을 작동시키는 단계를 포함할 수 있다.
이들 구현예들의 일부 추가 또는 대안적인 버전에서, 상기 어시스턴트 디바이스에 로컬로 저장된 핫워드 검출 모델은 상기 추가 어시스턴트 디바이스에 로컬로 저장된 추가 핫워드 검출 모델과 구별되는 별개의 핫워드 모델일 수 있다.
일부 구현예에서, 상기 음향 이벤트는 소리(sound) 검출 이벤트일 수 있으며, 상기 어시스턴트 디바이스에 로컬로 저장되는 이벤트 검출 모델은 특정 소리가 오디오 데이터에 캡처되는지 여부를 검출하도록 트레이닝된 소리 검출 모델일 수 있고, 상기 추가 어시스턴트 디바이스에 로컬로 저장되는 추가 이벤트 검출 모델은 특정 소리가 추가 오디오 데이터에 캡처되는지 여부를 검출하도록 트레이닝된 추가 소리 검출 모델일 수 있다.
이들 구현예들의 일부 버전에서, 상기 음향 이벤트와 관련된 척도는 오디오 데이터가 특정 소리를 캡처하는지에 대응하는 신뢰 레벨일 수 있고, 상기 음향 이벤트와 관련된 추가 척도는 추가 오디오 데이터가 특정 소리를 캡처하는지에 대응하는 추가 신뢰 레벨일 수 있다. 이들 구현예들의 일부 추가 버전에서, 음향 이벤트가 실제 음향 이벤트라고 결정하는 단계는, 신뢰 레벨 및 추가 신뢰 레벨에 기초하여 오디오 데이터 및 추가 오디오 데이터 모두에서 특정 사운드가 캡처되는지를 결정하는 단계를 포함할 수 있다. 이들 구현예들의 일부 추가 버전에서, 실제 음향 이벤트와 관련된 액션이 수행되게 하는 단계는, 실제 음향 이벤트의 발생을 나타내는 통지를 생성하는 단계; 및 사용자의 컴퓨팅 디바이스를 통해 생태계와 관련된 상기 사용자에게 상기 통지가 제시되게 하는 단계를 포함할 수 있다.
이들 구현예들의 일부 추가 또는 대안 버전에서, 상기 특정 소리는 유리 깨지는 소리, 개 짖는 소리, 고양이 울음소리, 도어벨 소리, 연기(smoke) 경보 소리, 일산화탄소 검출기 소리, 아기 울음소리 또는 문 두드리는 소리 중 하나 이상을 포함한다.
일부 구현예들에서, 상기 어시스턴트 디바이스 및 추가(additional) 어시스턴트 디바이스 모두에 의해 검출된 음향 이벤트가 실제 음향 이벤트인지 여부를 결정하기 위해 상기 척도 및 추가 척도 모두를 프로세싱하는 단계는 소정의 어시스턴트 디바이스에 의해 수행되며, 상기 소정의 어시스턴트 디바이스는 상기 어시스턴트 디바이스, 상기 추가 어시스턴트 디바이스, 또는 상기 어시스턴트 디바이스 및 추가 어시스턴트 디바이스와 함께 생태계에 위치한 또 다른 추가(further additional) 어시스턴트 디바이스 중 하나 이상을 포함한다.
일부 구현예에서, 상기 방법은 상기 어시스턴트 디바이스에 의해 원격 시스템으로, 오디오 데이터를 전송하는 단계; 및 상기 추가 어시스턴트 디바이스에 의해 상기 원격 시스템으로, 추가 오디오 데이터를 전송하는 단계를 더 포함하고, 상기 어시스턴트 디바이스 및 추가 어시스턴트 디바이스 모두에 의해 검출된 음향 이벤트가 실제 음향 이벤트인지 여부를 결정하기 위해 상기 척도 및 추가 척도 모두를 프로세싱하는 단계는 상기 원격 시스템에 의해 수행될 수 있다.
일부 구현예에서, 상기 오디오 데이터는 상기 추가 오디오 데이터에 시간적으로 대응한다. 이들 구현예들의 일부 버전에서, 상기 어시스턴트 디바이스 및 추가 어시스턴트 디바이스 모두에 의해 검출된 음향 이벤트가 실제 음향 이벤트인지 여부를 결정하기 위해 상기 척도 및 추가 척도 모두를 프로세싱하는 단계는, 오디오 데이터와 관련된 타임스탬프가 추가 오디오 데이터와 관련된 추가 타임스탬프에 시간적으로 대응한다고 결정함에 응답하여 수행된다.
일부 구현예에서, 상기 방법은, 어시스턴트 디바이스의 하나 이상의 마이크를 통해 오디오 데이터를 검출함에 응답하여: 어시스턴트 디바이스 및 추가 어시스턴트 디바이스 모두에서 검출되는 복수의 이력(historical) 음향 이벤트들에 기초하여, 추가 어시스턴트 디바이스의 하나 이상의 추가 마이크를 통한 추가 오디오 데이터의 검출을 예상하는 단계를 더 포함할 수 있다.
일부 구현예에서, 상기 방법은, 어시스턴트 디바이스의 하나 이상의 마이크를 통해, 후속 음향 이벤트를 캡처하는 후속 오디오 데이터를 검출하는 단계; 이벤트 검출 모델을 이용하여, 후속 음향 이벤트와 관련된 후속 척도를 생성하기 위해 후속 음향 이벤트를 캡처하는 후속 오디오 데이터를 프로세싱하는 단계; 생태계에 위치한 또 다른 추가(further additional) 어시스턴트 디바이스의 하나 이상의 또 다른 추가 마이크를 통해, 후속 음향 이벤트를 또한 캡처하는 추가 후속 오디오 데이터를 검출하는 단계, 상기 또 다른 추가 어시스턴트 디바이스는 상기 어시스턴트 디바이스와는 별개이며, 상기 또 다른 추가 어시스턴트 디바이스는 상기 어시스턴트 디바이스와 함께 생태계에 위치하고; 상기 또 다른 추가 어시스턴트 디바이스에 로컬로 저장된 또 다른 추가 이벤트 검출 모델을 이용하여, 음향 이벤트와 관련된 추가 후속 척도를 생성하기 위해 음향 이벤트를 캡처하는 추가 후속 오디오 데이터를 프로세싱하는 단계; 상기 어시스턴트 디바이스와 상기 또 다른 추가 어시스턴트 디바이스 모두에 의해 검출된 후속 음향 이벤트가 실제 후속 음향 이벤트인지를 결정하기 위해 상기 척도 및 추가 척도 모두를 프로세싱하는 단계; 및 후속 음향 이벤트가 실제 후속 음향 이벤트라는 결정에 응답하여, 실제 후속 음향 이벤트와 관련된 후속 액션이 수행되게 하는 단계를 더 포함한다.
이들 구현예의 일부 버전에서, 상기 방법은, 어시스턴트 디바이스의 하나 이상의 마이크를 통해 후속 오디오 데이터를 검출함에 응답하여: 상기 어시스턴트 디바이스와 상기 또 다른 추가 어시스턴트 디바이스 모두에서 검출되는 복수의 추가 이력 음향 이벤트들에 기초하여, 상기 추가 어시스턴트 디바이스의 하나 이상의 추가 마이크를 통한 임의의 오디오 데이터의 검출을 예상함이 없이, 상기 또 다른 추가 어시스턴트 디바이스의 하나 이상의 또 다른 추가 마이크를 통해 추가 후속 오디오 데이터의 검출을 예상하는 단계를 더 포함할 수 있다.
일부 구현예에서, 하나 이상의 프로세서들에 의해 구현되는 방법이 제공되며, 상기 방법은, 복수의 어시스턴트 디바이스들을 포함하는 생태계에 위치한 어시스턴트 디바이스의 하나 이상의 마이크를 통해, 음향 이벤트를 캡처하는 오디오 데이터를 검출하는 단계; 생태계 내의 상기 어시스턴트 디바이스의 위치에 기초하여 적어도 하나의 추가 어시스턴트 디바이스를 식별하는 단계, 상기 적어도 하나의 추가 어시스턴트 디바이스는 생태계 내의 상기 적어도 하나의 추가 어시스턴트 디바이스의 하나 이상의 마이크 각각을 통해, 상기 오디오 데이터에 시간적으로 대응하는 추가 오디오 데이터를 검출했어야 하며; 적어도 하나의 추가 어시스턴트 디바이스가 오디오 데이터에 시간적으로 대응하는 추가 오디오 데이터를 검출했다고 결정함에 응답하여: 어시스턴트 디바이스에 로컬로 저장된 이벤트 검출 모델을 이용하여, 음향 이벤트와 관련된 척도를 생성하기 위해 음향 이벤트를 캡처하는 오디오 데이터를 프로세싱하는 단계; 상기 적어도 하나의 추가 어시스턴트 디바이스에 로컬로 저장된 각각의 이벤트 검출 모델을 이용하여, 음향 이벤트와 관련된 추가 척도를 생성하기 위해 음향 이벤트를 캡처하는 추가 오디오 데이터를 프로세싱하는 단계; 상기 척도 및 추가 척도 모두에 기초하여, 상기 어시스턴트 디바이스 및 추가 어시스턴트 디바이스 모두에 의해 검출된 음향 이벤트가 실제 음향 이벤트인지를 결정하는 단계; 및 음향 이벤트가 실제 음향 이벤트라는 결정에 응답하여, 실제 음향 이벤트와 관련된 액션이 수행되게 하는 단계를 포함할 수 있다.
본 명세서에 개시된 기술의 이들 구현 및 다른 구현은 다음 특징 중 하나 이상을 포함할 수 있다.
일부 구현들에서, 방법은 적어도 하나의 추가 어시스턴트 디바이스가 오디오 데이터에 시간적으로 대응하는 어떠한 오디오 데이터도 검출하지 않은 것으로 결정하는 것에 응답하여, 오디오 데이터를 폐기하는 단계를 더 포함할 수 있다.
또한, 일부 구현예들은 하나 이상의 컴퓨팅 디바이스들의 하나 이상의 프로세서들(예를 들어, 중앙 처리 유닛들(CPUs), 그래픽 프로세싱 유닛들(GPUs), 및/또는 텐서 프로세싱 유닛들(TPUs))을 포함하며, 여기서 하나 이상의 프로세서는 관련 메모리에 저장된 명령들을 실행하도록 작동 가능하고, 상기 명령들은 전술한 방법 중 임의의 것의 성능을 유발하도록 구성된다. 일부 구현들은 전술한 방법 중 임의의 것을 수행하기 위해 하나 이상의 프로세서에 의해 실행가능한 컴퓨터 명령을 저장하는 비일시적 컴퓨터 판독가능 저장 매체를 포함한다. 일부 구현들은 또한 전술한 방법 중 임의의 것을 수행하기 위해 하나 이상의 프로세서에 의해 실행가능한 명령들을 포함하는 컴퓨터 프로그램 제품을 포함한다.
전술한 개념 및 본 명세서에 더 상세히 설명된 추가 개념의 모든 조합은 본 명세서에 개시된 주제의 일부인 것으로 고려된다는 것을 이해해야 한다. 예를 들어, 본 개시의 말미에 나타나는 청구된 주제의 모든 조합은 본 명세서에 개시된 주제의 일부인 것으로 간주된다.

Claims (24)

  1. 하나 이상의 프로세서들에 의해 구현되는 방법으로서,
    복수의 어시스턴트 디바이스들을 포함하는 생태계(echosystem)에 위치한 어시스턴트 디바이스의 하나 이상의 마이크를 통해 음향 이벤트를 캡처하는 오디오 데이터를 검출하는 단계;
    어시스턴트 디바이스에 로컬로 저장된 이벤트 검출 모델을 사용하여, 음향 이벤트와 관련된 척도(measure)를 생성하기 위해 음향 이벤트를 캡처하는 오디오 데이터를 프로세싱하는 단계;
    생태계에 위치한 추가 어시스턴트 디바이스의 하나 이상의 추가 마이크를 통해, 상기 음향 이벤트를 또한 캡처하는 추가 오디오 데이터를 검출하는 단계, 상기 추가 어시스턴트 디바이스는 상기 어시스턴트 디바이스 이외의 것이고, 상기 추가 어시스턴트 디바이스는 상기 어시스턴트 디바이스와 상기 생태계에 함께 위치하며;
    추가 어시스턴트 디바이스에 로컬로 저장된 추가 이벤트 검출 모델을 사용하여, 음향 이벤트와 관련된 추가 척도를 생성하기 위해 음향 이벤트를 캡처하는 추가 오디오 데이터를 프로세싱하는 단계;
    적어도 상기 어시스턴트 디바이스 및 추가 어시스턴트 디바이스 모두에 의해 검출된 음향 이벤트가 실제 음향 이벤트인지 여부를 결정하기 위해 상기 척도 및 추가 척도 모두를 프로세싱하는 단계; 및
    음향 이벤트가 실제 음향 이벤트라는 결정에 응답하여, 실제 음향 이벤트와 관련된 액션이 수행되게 하는 단계
    를 포함하는 것을 특징으로 하는 방법.
  2. 제1항에 있어서,
    상기 음향 이벤트는 핫워드(hotword) 검출 이벤트를 포함하고, 상기 어시스턴트 디바이스에 로컬로 저장된 이벤트 검출 모델은 오디오 데이터에서 특정 단어 또는 문구가 캡처되는지 여부를 검출하도록 트레이닝된 핫워드 검출 모델을 포함하고,
    상기 추가 어시스턴트 디바이스에 로컬로 저장된 추가 이벤트 검출 모델은, 추가 오디오 데이터에서 상기 특정 단어 또는 문구가 캡처되는지 여부를 검출하도록 트레이닝된 추가 핫워드 검출 모델을 포함하는 것을 특징으로 하는 방법.
  3. 제1항 또는 제2항에 있어서,
    상기 음향 이벤트와 관련된 척도는 오디오 데이터가 상기 특정 단어 또는 문구를 캡처하는지에 대응하는 신뢰 레벨을 포함하고,
    상기 음향 이벤트와 관련된 추가 척도는 추가 오디오 데이터가 상기 특정 단어 또는 문구를 캡처하는지에 대응하는 추가 신뢰 레벨를 포함하는 것을 특징으로 하는 방법.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서,
    음향 이벤트가 실제 음향 이벤트라고 결정하는 단계는, 신뢰 레벨 및 추가 신뢰 레벨에 기초하여 상기 오디오 데이터 및 추가 오디오 데이터 둘다에서 상기 특정 단어 또는 문구가 캡처되는지를 결정하는 단계를 포함하는 것을 특징으로 하는 방법.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서,
    실제 음향 이벤트와 관련된 액션이 수행되게 하는 단계는, 상기 오디오 데이터 또는 추가 오디오 데이터가 특정 단어나 문구를 캡처함을 상기 음향 이벤트 데이터가 나타낸다라고 결정함에 응답하여 자동 어시스턴트의 하나 이상의 컴포넌트들을 작동시키는 단계를 포함하는 것을 특징으로 하는 방법.
  6. 제2항에 있어서,
    상기 어시스턴트 디바이스에 로컬로 저장된 핫워드 검출 모델은 상기 추가 어시스턴트 디바이스에 로컬로 저장된 추가 핫워드 검출 모델과 구별되는 별개의 핫워드 모델인 것을 특징으로 하는 방법.
  7. 제1항에 있어서,
    상기 음향 이벤트는 소리(sound) 검출 이벤트를 포함하고,
    상기 어시스턴트 디바이스에 로컬로 저장되는 이벤트 검출 모델은 특정 소리가 오디오 데이터에 캡처되는지 여부를 검출하도록 트레이닝된 소리 검출 모델을 포함하고,
    상기 추가 어시스턴트 디바이스에 로컬로 저장되는 추가 이벤트 검출 모델은 특정 소리가 추가 오디오 데이터에 캡처되는지 여부를 검출하도록 트레이닝된 추가 소리 검출 모델을 포함하는 것을 특징으로 하는 방법.
  8. 제7항에 있어서,
    상기 음향 이벤트와 관련된 척도는 오디오 데이터가 특정 소리를 캡처하는지에 대응하는 신뢰 레벨을 포함하고,
    상기 음향 이벤트와 관련된 추가 척도는 추가 오디오 데이터가 특정 소리를 캡처하는지에 대응하는 추가 신뢰 레벨을 포함하는 것을 특징으로 하는 방법.
  9. 제7항 또는 제8항에 있어서,
    음향 이벤트가 실제 음향 이벤트라고 결정하는 단계는, 신뢰 레벨 및 추가 신뢰 레벨에 기초하여 오디오 데이터 및 추가 오디오 데이터 모두에서 특정 사운드가 캡처되는지를 결정하는 단계를 포함하는 것을 특징으로 하는 방법.
  10. 제7항 내지 제9항 중 어느 한 항에 있어서,
    실제 음향 이벤트와 관련된 액션이 수행되게 하는 단계는,
    실제 음향 이벤트의 발생을 나타내는 통지를 생성하는 단계; 및
    사용자의 컴퓨팅 디바이스를 통해 생태계와 관련된 상기 사용자에게 상기 통지가 제시되게 하는 단계를 포함하는 것을 특징으로 하는 방법.
  11. 제7항 내지 제10항 중 어느 한 항에 있어서,
    상기 특정 소리는 유리 깨지는 소리, 개 짖는 소리, 고양이 울음소리, 도어벨 소리, 연기(smoke) 경보 소리, 일산화탄소 검출기 소리, 아기 울음소리 또는 문 두드리는 소리 중 하나 이상을 포함하는 것을 특징으로 하는 방법.
  12. 선행하는 청구항들 중 어느 한 항에 있어서,
    상기 어시스턴트 디바이스 및 추가(additional) 어시스턴트 디바이스 모두에 의해 검출된 음향 이벤트가 실제 음향 이벤트인지 여부를 결정하기 위해 상기 척도 및 추가 척도 모두를 프로세싱하는 단계는 소정의 어시스턴트 디바이스에 의해 수행되며,
    상기 소정의 어시스턴트 디바이스는 상기 어시스턴트 디바이스, 상기 추가 어시스턴트 디바이스, 또는 상기 어시스턴트 디바이스 및 추가 어시스턴트 디바이스와 함께 생태계에 위치한 또 다른 추가(further additional) 어시스턴트 디바이스 중 하나 이상을 포함하는 것을 특징으로 하는 방법.
  13. 선행하는 청구항들 중 어느 한 항에 있어서,
    상기 어시스턴트 디바이스에 의해 원격 시스템으로, 오디오 데이터를 전송하는 단계; 및
    상기 추가 어시스턴트 디바이스에 의해 상기 원격 시스템으로, 추가 오디오 데이터를 전송하는 단계를 더 포함하고,
    상기 어시스턴트 디바이스 및 추가 어시스턴트 디바이스 모두에 의해 검출된 음향 이벤트가 실제 음향 이벤트인지 여부를 결정하기 위해 상기 척도 및 추가 척도 모두를 프로세싱하는 단계는 상기 원격 시스템에 의해 수행되는 것을 특징으로 하는 방법.
  14. 선행하는 청구항들 중 어느 한 항에 있어서,
    상기 오디오 데이터는 상기 추가 오디오 데이터에 시간적으로 대응하는(temporally corresponding) 것을 특징으로 하는 방법.
  15. 제14항에 있어서,
    상기 어시스턴트 디바이스 및 추가 어시스턴트 디바이스 모두에 의해 검출된 음향 이벤트가 실제 음향 이벤트인지 여부를 결정하기 위해 상기 척도 및 추가 척도 모두를 프로세싱하는 단계는, 오디오 데이터와 관련된 타임스탬프가 추가 오디오 데이터와 관련된 추가 타임스탬프에 시간적으로 대응한다고 결정함에 응답하여 수행되는 것을 특징으로 하는 방법.
  16. 선행하는 청구항들 중 어느 한 항에 있어서,
    어시스턴트 디바이스의 하나 이상의 마이크를 통해 오디오 데이터를 검출함에 응답하여:
    어시스턴트 디바이스 및 추가 어시스턴트 디바이스 모두에서 검출되는 복수의 이력(historical) 음향 이벤트들에 기초하여, 추가 어시스턴트 디바이스의 하나 이상의 추가 마이크를 통한 추가 오디오 데이터의 검출을 예상하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  17. 선행하는 청구항들 중 어느 한 항에 있어서,
    어시스턴트 디바이스의 하나 이상의 마이크를 통해, 후속 음향 이벤트를 캡처하는 후속 오디오 데이터를 검출하는 단계;
    이벤트 검출 모델을 이용하여, 후속 음향 이벤트와 관련된 후속 척도를 생성하기 위해 후속 음향 이벤트를 캡처하는 후속 오디오 데이터를 프로세싱하는 단계;
    생태계에 위치한 또 다른 추가(further additional) 어시스턴트 디바이스의 하나 이상의 또 다른 추가 마이크를 통해, 후속 음향 이벤트를 또한 캡처하는 추가 후속 오디오 데이터를 검출하는 단계, 상기 또 다른 추가 어시스턴트 디바이스는 상기 어시스턴트 디바이스와는 별개이며, 상기 또 다른 추가 어시스턴트 디바이스는 상기 어시스턴트 디바이스와 함께 생태계에 위치하고;
    상기 또 다른 추가 어시스턴트 디바이스에 로컬로 저장된 또 다른 추가 이벤트 검출 모델을 이용하여, 음향 이벤트와 관련된 추가 후속 척도를 생성하기 위해 음향 이벤트를 캡처하는 추가 후속 오디오 데이터를 프로세싱하는 단계;
    상기 어시스턴트 디바이스와 상기 또 다른 추가 어시스턴트 디바이스 모두에 의해 검출된 후속 음향 이벤트가 실제 후속 음향 이벤트인지를 결정하기 위해 상기 척도 및 추가 척도 모두를 프로세싱하는 단계; 및
    후속 음향 이벤트가 실제 후속 음향 이벤트라는 결정에 응답하여, 실제 후속 음향 이벤트와 관련된 후속 액션이 수행되게 하는 단계
    를 더 포함하는 것을 특징으로 하는 방법.
  18. 제17항에 있어서,
    어시스턴트 디바이스의 하나 이상의 마이크를 통해 후속 오디오 데이터를 검출함에 응답하여:
    상기 어시스턴트 디바이스와 상기 또 다른 추가 어시스턴트 디바이스 모두에서 검출되는 복수의 추가 이력 음향 이벤트들에 기초하여, 상기 추가 어시스턴트 디바이스의 하나 이상의 추가 마이크를 통한 임의의 오디오 데이터의 검출을 예상함이 없이, 상기 또 다른 추가 어시스턴트 디바이스의 하나 이상의 또 다른 추가 마이크를 통해 추가 후속 오디오 데이터의 검출을 예상하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  19. 하나 이상의 프로세서들에 의해 구현되는 방법으로서,
    복수의 어시스턴트 디바이스들을 포함하는 생태계에 위치한 어시스턴트 디바이스의 하나 이상의 마이크를 통해, 음향 이벤트를 캡처하는 오디오 데이터를 검출하는 단계;
    생태계 내의 상기 어시스턴트 디바이스의 위치에 기초하여 적어도 하나의 추가 어시스턴트 디바이스를 식별하는 단계, 상기 적어도 하나의 추가 어시스턴트 디바이스는 생태계 내의 상기 적어도 하나의 추가 어시스턴트 디바이스의 하나 이상의 마이크 각각을 통해, 상기 오디오 데이터에 시간적으로 대응하는 추가 오디오 데이터를 검출했어야 하며;
    적어도 하나의 추가 어시스턴트 디바이스가 오디오 데이터에 시간적으로 대응하는 추가 오디오 데이터를 검출했다고 결정함에 응답하여:
    어시스턴트 디바이스에 로컬로 저장된 이벤트 검출 모델을 이용하여, 음향 이벤트와 관련된 척도를 생성하기 위해 음향 이벤트를 캡처하는 오디오 데이터를 프로세싱하는 단계;
    상기 적어도 하나의 추가 어시스턴트 디바이스에 로컬로 저장된 각각의 이벤트 검출 모델을 이용하여, 음향 이벤트와 관련된 추가 척도를 생성하기 위해 음향 이벤트를 캡처하는 추가 오디오 데이터를 프로세싱하는 단계;
    상기 척도 및 추가 척도 모두에 기초하여, 상기 어시스턴트 디바이스 및 추가 어시스턴트 디바이스 모두에 의해 검출된 음향 이벤트가 실제 음향 이벤트인지를 결정하는 단계; 및
    음향 이벤트가 실제 음향 이벤트라는 결정에 응답하여, 실제 음향 이벤트와 관련된 액션이 수행되게 하는 단계
    를 포함하는 것을 특징으로 하는 방법.
  20. 제19항에 있어서,
    상기 적어도 하나의 추가 어시스턴트 디바이스가 오디오 데이터에 시간적으로 대응하는 임의의 오디오 데이터를 검출하지 못했다라고 결정함에 응답하여, 상기 오디오 데이터를 폐기하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  21. 하나 이상의 프로세서들에 의해 구현되는 방법으로서,
    복수의 어시스턴트 디바이스들을 포함하는 생태계에 위치한 어시스턴트 디바이스의 하나 이상의 마이크를 통해 음향 이벤트를 캡처하는 오디오 데이터를 검출하는 단계, 상기 음향 이벤트는 핫워드 검출 이벤트를 포함하고;
    어시스턴트 디바이스에 로컬로 저장된 이벤트 검출 모델을 사용하여, 음향 이벤트와 관련된 척도를 생성하기 위해 음향 이벤트를 캡처하는 오디오 데이터를 프로세싱하는 단계, 상기 어시스턴트 디바이스에 로컬로 저장된 이벤트 검출 모델은 특정 단어 또는 문구가 오디오 데이터에서 캡처되는지 여부를 검출하도록 트레이닝된 핫워드 검출 모델을 포함하고;
    생태계에 위치한 추가 어시스턴트 디바이스의 하나 이상의 추가 마이크를 통해, 상기 음향 이벤트를 또한 캡처하는 추가 오디오 데이터를 검출하는 단계, 상기 추가 어시스턴트 디바이스는 상기 어시스턴트 디바이스 이외의 것이고, 상기 추가 어시스턴트 디바이스는 상기 어시스턴트 디바이스와 상기 생태계에 함께 위치하며;
    추가 어시스턴트 디바이스에 로컬로 저장된 추가 이벤트 검출 모델을 사용하여, 음향 이벤트와 관련된 추가 척도를 생성하기 위해 음향 이벤트를 캡처하는 추가 오디오 데이터를 프로세싱하는 단계, 상기 추가 어시스턴트 디바이스에 로컬로 저장된 추가 이벤트 검출 모델은 특정 단어 또는 문구가 추가 오디오 데이터에서 캡처되는지 여부를 검출하도록 트레이닝된 추가 핫워드 검출 모델을 포함하고;
    적어도 상기 어시스턴트 디바이스 및 추가 어시스턴트 디바이스 모두에 의해 검출된 음향 이벤트가 실제 음향 이벤트인지 여부를 결정하기 위해 상기 척도 및 추가 척도 모두를 프로세싱하는 단계; 및
    음향 이벤트가 실제 음향 이벤트라는 결정에 응답하여, 실제 음향 이벤트와 관련된 액션이 수행되게 하는 단계
    를 포함하는 것을 특징으로 하는 방법.
  22. 하나 이상의 프로세서들에 의해 구현되는 방법으로서,
    복수의 어시스턴트 디바이스들을 포함하는 생태계에 위치한 어시스턴트 디바이스의 하나 이상의 마이크를 통해 음향 이벤트를 캡처하는 오디오 데이터를 검출하는 단계, 상기 음향 이벤트는 소리 검출 이벤트를 포함하고;
    어시스턴트 디바이스에 로컬로 저장된 이벤트 검출 모델을 사용하여, 음향 이벤트와 관련된 척도를 생성하기 위해 음향 이벤트를 캡처하는 오디오 데이터를 프로세싱하는 단계, 상기 어시스턴트 디바이스에 로컬로 저장된 이벤트 검출 모델은 특정 소리가 오디오 데이터에서 캡처되는지 여부를 검출하도록 트레이닝된 소리 검출 모델을 포함하고;
    생태계에 위치한 추가 어시스턴트 디바이스의 하나 이상의 추가 마이크를 통해, 상기 음향 이벤트를 또한 캡처하는 추가 오디오 데이터를 검출하는 단계, 상기 추가 어시스턴트 디바이스는 상기 어시스턴트 디바이스 이외의 것이고, 상기 추가 어시스턴트 디바이스는 상기 어시스턴트 디바이스와 상기 생태계에 함께 위치하며;
    추가 어시스턴트 디바이스에 로컬로 저장된 추가 이벤트 검출 모델을 사용하여, 음향 이벤트와 관련된 추가 척도를 생성하기 위해 음향 이벤트를 캡처하는 추가 오디오 데이터를 프로세싱하는 단계;
    적어도 상기 어시스턴트 디바이스 및 추가 어시스턴트 디바이스 모두에 의해 검출된 음향 이벤트가 실제 음향 이벤트인지 여부를 결정하기 위해 상기 척도 및 추가 척도 모두를 프로세싱하는 단계, 상기 추가 어시스턴트 디바이스에 로컬로 저장된 추가 이벤트 검출 모델은 특정 소리가 추가 오디오 데이터에서 캡처되는지 여부를 검출하도록 트레이닝된 추가 소리 검출 모델을 포함하고; 및
    음향 이벤트가 실제 음향 이벤트라는 결정에 응답하여, 실제 음향 이벤트와 관련된 액션이 수행되게 하는 단계
    를 포함하는 것을 특징으로 하는 방법.
  23. 적어도 하나의 컴퓨팅 디바이스로서,
    적어도 하나의 프로세서; 및
    실행될 때 상기 적어도 하나의 프로세서로 하여금 제1항 내지 제22항 중 어느 한 항의 방법을 수행하게 하는 명령들을 저장하는 메모리
    를 포함하는 것을 특징으로 하는 컴퓨팅 디바이스.
  24. 명령들을 저장하는 비일시적 컴퓨터 판독가능 저장 매체로서,
    상기 명령들은 실행될 때 적어도 하나의 프로세서로 하여금 제1항 내지 제22항 중 어느 한 항의 방법을 수행하게 하는 것을 특징으로 하는 비일시적 컴퓨터 판독가능 저장 매체.
KR1020227045231A 2020-10-30 2020-12-15 여러 어시스턴트 디바이스들에서 동시 음향 이벤트 검출 KR20230015980A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/085,926 US11798530B2 (en) 2020-10-30 2020-10-30 Simultaneous acoustic event detection across multiple assistant devices
US17/085,926 2020-10-30
PCT/US2020/064988 WO2022093291A1 (en) 2020-10-30 2020-12-15 Simultaneous acoustic event detection across multiple assistant devices

Publications (1)

Publication Number Publication Date
KR20230015980A true KR20230015980A (ko) 2023-01-31

Family

ID=74003965

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227045231A KR20230015980A (ko) 2020-10-30 2020-12-15 여러 어시스턴트 디바이스들에서 동시 음향 이벤트 검출

Country Status (6)

Country Link
US (2) US11798530B2 (ko)
EP (1) EP4042414A1 (ko)
JP (1) JP7490822B2 (ko)
KR (1) KR20230015980A (ko)
CN (1) CN115605949A (ko)
WO (1) WO2022093291A1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11756531B1 (en) * 2020-12-18 2023-09-12 Vivint, Inc. Techniques for audio detection at a control system
US20210225374A1 (en) * 2020-12-23 2021-07-22 Intel Corporation Method and system of environment-sensitive wake-on-voice initiation using ultrasound
KR20220111078A (ko) * 2021-02-01 2022-08-09 삼성전자주식회사 전자 장치, 사운드 입출력 기기를 포함하는 시스템 및 그 제어 방법

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8364481B2 (en) * 2008-07-02 2013-01-29 Google Inc. Speech recognition with parallel recognition tasks
JP6532106B2 (ja) 2013-04-26 2019-06-19 日本電気株式会社 監視装置、監視方法および監視用プログラム
US9058805B2 (en) * 2013-05-13 2015-06-16 Google Inc. Multiple recognizer speech recognition
US9002835B2 (en) * 2013-08-15 2015-04-07 Google Inc. Query response using media consumption history
US8719039B1 (en) * 2013-12-05 2014-05-06 Google Inc. Promoting voice actions to hotwords
JP6118838B2 (ja) * 2014-08-21 2017-04-19 本田技研工業株式会社 情報処理装置、情報処理システム、情報処理方法、及び情報処理プログラム
US9812128B2 (en) * 2014-10-09 2017-11-07 Google Inc. Device leadership negotiation among voice interface devices
US9318107B1 (en) 2014-10-09 2016-04-19 Google Inc. Hotword detection on multiple devices
US10438593B2 (en) * 2015-07-22 2019-10-08 Google Llc Individualized hotword detection models
US9875081B2 (en) * 2015-09-21 2018-01-23 Amazon Technologies, Inc. Device selection for providing a response
US9899035B2 (en) * 2015-11-04 2018-02-20 Ioannis Kakadiaris Systems for and methods of intelligent acoustic monitoring
US9728188B1 (en) * 2016-06-28 2017-08-08 Amazon Technologies, Inc. Methods and devices for ignoring similar audio being received by a system
US10242673B2 (en) * 2016-12-07 2019-03-26 Google Llc Preventing of audio attacks using an input and an output hotword detection model
US10276161B2 (en) * 2016-12-27 2019-04-30 Google Llc Contextual hotwords
US10380852B2 (en) 2017-05-12 2019-08-13 Google Llc Systems, methods, and devices for activity monitoring via a home assistant
US10665232B2 (en) 2017-05-24 2020-05-26 Harman International Industries, Inc. Coordination among multiple voice recognition devices
WO2019029783A1 (en) * 2017-08-07 2019-02-14 Sonova Ag AUTOMATIC AUDIO TRANSCRIPTION ONLINE FOR HEARING AID USERS
US10665223B2 (en) * 2017-09-29 2020-05-26 Udifi, Inc. Acoustic and other waveform event detection and correction systems and methods
DE102017220266B3 (de) * 2017-11-14 2018-12-13 Audi Ag Verfahren zum Überprüfen eines Onboard-Spracherkenners eines Kraftfahrzeugs sowie Steuervorrichtung und Kraftfahrzeug
US11100923B2 (en) * 2018-09-28 2021-08-24 Sonos, Inc. Systems and methods for selective wake word detection using neural network models
KR102228549B1 (ko) * 2019-06-11 2021-03-16 엘지전자 주식회사 음성 인에이블 디바이스 선택 방법, 음성 인에이블 디바이스 선택 장치 및 이를 제어하는 지능형 컴퓨팅 디바이스
US11195522B1 (en) * 2019-06-17 2021-12-07 Amazon Technologies, Inc. False invocation rejection for speech processing systems
CN110364151B (zh) * 2019-07-15 2024-01-30 华为技术有限公司 一种语音唤醒的方法和电子设备
CN110534102B (zh) * 2019-09-19 2020-10-30 北京声智科技有限公司 一种语音唤醒方法、装置、设备及介质
US10769203B1 (en) * 2019-10-17 2020-09-08 Samsung Electronics Co., Ltd. System and method for prediction and recommendation using collaborative filtering

Also Published As

Publication number Publication date
JP2023534367A (ja) 2023-08-09
JP7490822B2 (ja) 2024-05-27
CN115605949A (zh) 2023-01-13
EP4042414A1 (en) 2022-08-17
US20220139371A1 (en) 2022-05-05
WO2022093291A1 (en) 2022-05-05
US11798530B2 (en) 2023-10-24
US20230419951A1 (en) 2023-12-28

Similar Documents

Publication Publication Date Title
KR102551715B1 (ko) Iot 기반 알림을 생성 및 클라이언트 디바이스(들)의 자동화된 어시스턴트 클라이언트(들)에 의해 iot 기반 알림을 자동 렌더링하게 하는 명령(들)의 제공
JP7490822B2 (ja) 複数のアシスタントデバイスにわたる同時音響イベント検出
US11886510B2 (en) Inferring semantic label(s) for assistant device(s) based on device-specific signal(s)
US20220272055A1 (en) Inferring assistant action(s) based on ambient sensing by assistant device(s)
US20230215422A1 (en) Multimodal intent understanding for automated assistant