KR20230145195A - 뉴럴 네트워크 모델을 사용하여 선택적 활성 단어 검출을 위한 시스템 및 방법 - Google Patents
뉴럴 네트워크 모델을 사용하여 선택적 활성 단어 검출을 위한 시스템 및 방법 Download PDFInfo
- Publication number
- KR20230145195A KR20230145195A KR1020237031855A KR20237031855A KR20230145195A KR 20230145195 A KR20230145195 A KR 20230145195A KR 1020237031855 A KR1020237031855 A KR 1020237031855A KR 20237031855 A KR20237031855 A KR 20237031855A KR 20230145195 A KR20230145195 A KR 20230145195A
- Authority
- KR
- South Korea
- Prior art keywords
- active word
- playback
- nmd
- sound data
- active
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 97
- 238000001514 detection method Methods 0.000 title claims description 45
- 238000003062 neural network model Methods 0.000 title description 54
- 230000004044 response Effects 0.000 claims abstract description 29
- 238000012545 processing Methods 0.000 description 44
- 230000008569 process Effects 0.000 description 43
- 239000008186 active pharmaceutical agent Substances 0.000 description 41
- 238000013528 artificial neural network Methods 0.000 description 36
- 230000006835 compression Effects 0.000 description 20
- 238000007906 compression Methods 0.000 description 20
- 230000006870 function Effects 0.000 description 20
- 238000010586 diagram Methods 0.000 description 17
- 239000000872 buffer Substances 0.000 description 12
- 238000004891 communication Methods 0.000 description 8
- 239000011159 matrix material Substances 0.000 description 8
- 230000009471 action Effects 0.000 description 7
- 238000005457 optimization Methods 0.000 description 7
- 230000008929 regeneration Effects 0.000 description 7
- 238000011069 regeneration method Methods 0.000 description 7
- 238000013139 quantization Methods 0.000 description 6
- 230000009467 reduction Effects 0.000 description 6
- 238000003491 array Methods 0.000 description 5
- 238000013527 convolutional neural network Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 230000003993 interaction Effects 0.000 description 5
- 230000000306 recurrent effect Effects 0.000 description 5
- 238000012549 training Methods 0.000 description 5
- 239000000203 mixture Substances 0.000 description 4
- 230000005236 sound signal Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 235000019800 disodium phosphate Nutrition 0.000 description 3
- 238000001914 filtration Methods 0.000 description 3
- 238000012805 post-processing Methods 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 230000003213 activating effect Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 238000010422 painting Methods 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 230000003595 spectral effect Effects 0.000 description 2
- 238000011144 upstream manufacturing Methods 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 241000238558 Eucarida Species 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000003321 amplification Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000001193 catalytic steam reforming Methods 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 229920005994 diacetyl cellulose Polymers 0.000 description 1
- 239000006185 dispersion Substances 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000002156 mixing Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000003032 molecular docking Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 238000003199 nucleic acid amplification method Methods 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000013138 pruning Methods 0.000 description 1
- 230000001172 regenerating effect Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 238000004330 variable angle spinning Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/28—Constructional details of speech recognition systems
- G10L15/30—Distributed recognition, e.g. in client-server systems, for mobile phones or network applications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/04—Segmentation; Word boundary detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/08—Speech classification or search
- G10L15/14—Speech classification or search using statistical models, e.g. Hidden Markov Models [HMMs]
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/08—Speech classification or search
- G10L15/16—Speech classification or search using artificial neural networks
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/22—Procedures used during a speech recognition process, e.g. man-machine dialogue
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/28—Constructional details of speech recognition systems
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/28—Constructional details of speech recognition systems
- G10L15/32—Multiple recognisers used in sequence or in parallel; Score combination systems therefor, e.g. voting systems
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L17/00—Speaker identification or verification techniques
- G10L17/26—Recognition of special voice characteristics, e.g. for use in lie detectors; Recognition of animal voices
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L25/00—Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
- G10L25/78—Detection of presence or absence of voice signals
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/08—Speech classification or search
- G10L2015/088—Word spotting
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/22—Procedures used during a speech recognition process, e.g. man-machine dialogue
- G10L2015/223—Execution procedure of a spoken command
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Acoustics & Sound (AREA)
- Human Computer Interaction (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Multimedia (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Theoretical Computer Science (AREA)
- Signal Processing (AREA)
- Probability & Statistics with Applications (AREA)
- Data Mining & Analysis (AREA)
- Biomedical Technology (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Biophysics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Spectroscopy & Molecular Physics (AREA)
- Selective Calling Equipment (AREA)
- User Interface Of Digital Computer (AREA)
- Circuit For Audible Band Transducer (AREA)
- Telephonic Communication Services (AREA)
- Feedback Control In General (AREA)
- Radar Systems Or Details Thereof (AREA)
Abstract
미디어 재생 시스템을 통하여 미디어를 재생하기 위한 시스템 및 방법은 네트워크 마이크로폰 장치를 통하여 사운드 데이터를 캡쳐하는 단계와 사운드 데이터 내 후보 활성 단어를 식별하는 단계를 포함한다. 사운드 데이터 내 후보 활성 단어의 식별에 기초하여, 시스템은 복수의 활성 단어 엔진으로부터 제1 활성 단어 엔진을 선택한다.
제1 활성 단어 엔진을 통하여, 시스템은 사운드 데이터를 분석하여 확인된 활성 단어를 검출하고, 제1 활성 단어 엔진이 확인된 활성 단어를 검출하는 것에 응답하여, 음성 지원 서비스와 연관된 하나 이상의 원격 컴퓨팅 장치로 상기 사운드 데이터의 음성 발화를 전송한다.
제1 활성 단어 엔진을 통하여, 시스템은 사운드 데이터를 분석하여 확인된 활성 단어를 검출하고, 제1 활성 단어 엔진이 확인된 활성 단어를 검출하는 것에 응답하여, 음성 지원 서비스와 연관된 하나 이상의 원격 컴퓨팅 장치로 상기 사운드 데이터의 음성 발화를 전송한다.
Description
본 출원은 그 전체가 여기에서 참조로서 포함된 2018년 9월 28일에 출원된 미국 특허 출원 제16/145,275호에 대한 우선권을 주장한다.
현재 기술은 소비재, 특히 음성 제어가능 미디어 재생 시스템 또는 그 일부 양상에 관한 방법, 시스템, 제품, 특징, 서비스 및 기타 요소에 관련된다.
2003년 소노스 사(SONOS, Inc.)가 그 최초 특허 출원 중 하나인 "다수의 네트워킹된 장치들 사이의 오디오 재생을 동기화하기 위한 방법(Method for Synchronizing Audio Playback between Multiple Networked Devices)"을 출원하고 2005년 미디어 재생 시스템을 판매 제공하기 시작하기까지 소리를 내는 환경(out-loud setting)에서 디지털 오디오를 액세스하고 듣기 위한 옵션은 제한적이었다. 소노스 무선 하이파이 시스템(Sonos Wireless HiFi System)은 사람들로 하여금 하나 이상의 네트워킹된 재생 장치를 통하여 많은 소스로부터 음악을 경험하는 것을 가능하게 한다. 스마트폰, 태블릿 또는 컴퓨터 상에 설치된 소프트웨어 제어 애플리케이션을 통하여, 네트워킹된 재생 장치를 가지는 임의의 공간에서 원하는 것을 재생할 수 있다. 또한, 컨트롤러를 사용하여, 예컨대 다양한 노래가 재생 장치를 가지는 각각의 공간에서 스트리밍될 수 있거나, 공간이 동기 재생을 위해 함께 그룹화될 수 있거나, 같은 노래가 모든 공간에서 동시에 들릴 수 있다.
계속 성장하는 디지털 미디어에 대한 관심을 고려하여 볼 때, 청취 경험을 더 향상시키기 위해 소비자 접근 가능 기술을 개발할 필요가 계속 있다.
여기에 개시된 기술의 특징, 태양 및 이점은 이하의 설명, 첨부된 청구범위 및 첨부 도면과 관련하여 더 잘 이해될 수 있다.
도 1a는 개시된 기술의 양상에 따라서 구성된 미디어 재생 시스템을 가지는 환경의 부분적인 절단도이다.
도 1b는 하나 이상의 네트워크와 도 1a의 미디어 재생 시스템의 개략도이다.
도 2a는 예시적인 재생 장치의 기능적 블록도이다.
도 2b는 도 2a의 재생 장치의 예시적인 하우징의 등각도이다.
도 3a-3e는 본 개시의 양상에 따라 예시적인 재생 장치 구성을 도시하는 도면이다.
도 4a는 본 개시의 양상에 따른 예시적인 컨트롤러 장치의 기능적인 블록도이다.
도 4b 및 도 4c는 본 개시의 양상에 따른 컨트롤러 인터페이스이다.
도 5는 본 개시의 양상에 따라서 예시적인 네트워크 마이크로폰 장치의 일부 컴포넌트의 기능적인 블록도이다.
도 6a는 예시적인 음성 입력의 도면이다.
도 6b는 본 개시의 양상에 따른 사운드 견본을 나타내는 그래프이다.
도 7은 본 개시의 양상에 따른 2 단계 활성 단어 검출에 대한 예시적인 방법의 흐름도이다.
도 8은 본 개시의 양상에 따른 키워드 스포팅과 선택에 대한 모델을 생성하기 위한 시스템의 기능적 블록도이다.
도 9는 본 개시의 양상에 따라 소프트-가중치 공유를 통하여 압축 전후 뉴럴 네트워크 모델에 대한 가중치의 로그 가중치 분포를 예시하는 차트이다.
도 10은 본 개시의 양상에 따른 뉴럴 네트워크 모델의 압축형 스파스 로우 표현의 예시를 예시한다.
도면은 예시적인 실시예를 예시하기 위한 것이나, 도면에 도시된 배열 및 수단에 발명이 제한되지 않음이 이해될 것이다. 도면에서, 동일한 참조 번호는 적어도 일반적으로 유사한 요소를 식별한다. 임의의 특정 요소의 논의를 용이하게 하도록, 임의의 참조 번호 중 최상위 숫자는 요소가 처음 소개된 도면을 언급한다. 예를 들어, 요소 103a는 도 1a에 관련하여 처음 소개되고 논의된다.
도 1a는 개시된 기술의 양상에 따라서 구성된 미디어 재생 시스템을 가지는 환경의 부분적인 절단도이다.
도 1b는 하나 이상의 네트워크와 도 1a의 미디어 재생 시스템의 개략도이다.
도 2a는 예시적인 재생 장치의 기능적 블록도이다.
도 2b는 도 2a의 재생 장치의 예시적인 하우징의 등각도이다.
도 3a-3e는 본 개시의 양상에 따라 예시적인 재생 장치 구성을 도시하는 도면이다.
도 4a는 본 개시의 양상에 따른 예시적인 컨트롤러 장치의 기능적인 블록도이다.
도 4b 및 도 4c는 본 개시의 양상에 따른 컨트롤러 인터페이스이다.
도 5는 본 개시의 양상에 따라서 예시적인 네트워크 마이크로폰 장치의 일부 컴포넌트의 기능적인 블록도이다.
도 6a는 예시적인 음성 입력의 도면이다.
도 6b는 본 개시의 양상에 따른 사운드 견본을 나타내는 그래프이다.
도 7은 본 개시의 양상에 따른 2 단계 활성 단어 검출에 대한 예시적인 방법의 흐름도이다.
도 8은 본 개시의 양상에 따른 키워드 스포팅과 선택에 대한 모델을 생성하기 위한 시스템의 기능적 블록도이다.
도 9는 본 개시의 양상에 따라 소프트-가중치 공유를 통하여 압축 전후 뉴럴 네트워크 모델에 대한 가중치의 로그 가중치 분포를 예시하는 차트이다.
도 10은 본 개시의 양상에 따른 뉴럴 네트워크 모델의 압축형 스파스 로우 표현의 예시를 예시한다.
도면은 예시적인 실시예를 예시하기 위한 것이나, 도면에 도시된 배열 및 수단에 발명이 제한되지 않음이 이해될 것이다. 도면에서, 동일한 참조 번호는 적어도 일반적으로 유사한 요소를 식별한다. 임의의 특정 요소의 논의를 용이하게 하도록, 임의의 참조 번호 중 최상위 숫자는 요소가 처음 소개된 도면을 언급한다. 예를 들어, 요소 103a는 도 1a에 관련하여 처음 소개되고 논의된다.
I. 개요
음성 제어는 무선 오디오 재생 장치, 조명 장치 및 가정-자동화 장치(예컨대, 온도조절기, 도어락 등)와 같은 통신 네트워크와 연결되는 장치 및 스마트 가전을 포함하는 "스마트" 홈에서 유익할 수 있다. 일부 구현예에서, 네트워크 마이크로폰 장치는 스마트 홈 장치를 제어하는 데 사용될 수 있다.
네트워크 마이크로폰 장치("NMD")는 보통 마이크로폰 어레이와 같은 마이크로폰의 배열을 포함하는 네트워킹된 컴퓨팅 장치이고, NMD의 환경에 존재하는 사운드를 검출하도록 구성된다. 검출된 사운드는 배경 잡음(예컨대, 재생 장치에 의해 출력되는 음악 또는 다른 주위 소음)과 혼합된 사람의 회화를 포함할 수 있다. 실시에서, NMD는 보통 검출된 사운드를 걸러 사람의 회화로부터 배경 잡음을 제거하여 회화가 음성 제어를 나타내는 음성 입력을 포함하는지 여부를 식별하는 것을 용이하게 한다. 그런 경우, NMD는 그러한 음성 입력에 기초하여 동작을 취할 수 있다.
NMD는 보통 NMD에 내장된 활성 단어 엔진(wake-word engine)을 종종 이용하여 NMD에 의해 검출된 사운드가 특정 활성 단어를 포함하는 음성 입력을 포함하는지 여부를 식별한다. 활성 단어 엔진은 하나 이상의 식별 알고리즘을 사용하여 특정 활성 단어를 식별(즉, "스폿") 하도록 구성될 수 있다. 활성 단어 식별 프로세스는 흔히 "키워드 스포팅"이라고 지칭된다. 실시에서, 키워드 스포팅을 용이하게 하는 데 도움 주도록, NMD는 NMD의 마이크로폰에 의해 검출된 사운드를 버퍼링할 수 있고, 이후 활성 단어 엔진을 사용하여 버퍼링된 사운드를 프로세싱하여 활성 단어가 존재하는지 여부를 결정할 수 있다.
활성 단어 엔진이 검출된 사운드에서 활성 단어를 스폿하는 경우, NMD는 NMD가 잠재적인 음성 입력을 포함하는 사운드를 검출했음을 나타내는 활성 단어 이벤트(즉, "활성 단어 트리거")가 발생했음을 결정할 수 있다. 활성 단어 이벤트의 발생은 보통 NMD로 하여금 검출된 사운드를 수반하는 추가적인 프로세스를 수행하도록 한다. 일부 구현예에서, 추가적인 프로세스는, 다른 가능한 추가적인 프로세스 중에서도, 활성 단어가 식별되는 것을 나타내는 경보(예컨대, 가청 소리 및/또는 광 표시)를 출력하고 버퍼로부터 검출된 사운드 데이터를 추출하는 것을 포함할 수 있다. 검출된 사운드를 추출하는 것은 특정 포맷에 따라 검출된 사운드의 스트림을 판독하고 패키징(packaging)하는 것과 패키징된 사운드 데이터를 해석을 위한 적절한 음성 지원 서비스(VAS)로 전송하는 것을 포함할 수 있다.
결국, 활성 단어 엔진에 의해 식별된 활성 단어에 대응하는 VAS는 통신 네트워크를 지나 NMD로부터 전송된 사운드 데이터를 수신한다. VAS는 종래에는 음성 입력을 프로세싱하도록 구성된 하나 이상의 클라우드 서버를 사용하여 구현된 원격 서비스의 형태(예컨대, 아마존의 알렉사, 애플의 시리, 마이크로소프트의 콜타나, 구글의 어시스턴트 등)를 취한다. 일부 경우에서, VAS의 일부 컴포넌트와 기능은 로컬과 원격 장치에 전체에 걸쳐에 분배될 수 있다. 추가적으로 또는 대안적으로, VAS는 NMD를 포함하는 미디어 재생 시스템 또는 NMD에 구현된 로컬 서비스의 형태를 취하여 음성 입력 또는 일부 유형의 음성 입력(예컨대, 기초적인 명령)이 원격 VAS로부터의 개입없이 로컬로 프로세싱될 수 있다.
임의의 경우에서, VAS가 검출된 사운드 데이터를 수신하는 경우, VAS는 보통 이러한 데이터를 프로세싱할 것이며, 이는 음성 입력을 식별하고 음성 입력에서 캡쳐된 단어의 의도를 결정하는 것을 수반한다. VAS는 이후 결정된 의도에 따라 일부 명령어와 함께 NMD로 응답을 제공할 수 있다. 그 명령어에 기초하여, NMD는 하나 이상의 스마트 장치로 하여금 동작을 수행하도록 할 수 있다. 예를 들어, VAS로부터의 명령어에 따라, NMD는 재생 장치로 하여금, 다른 예시 중에서도, 특정 노래를 재생하거나 조명 장치를 켜고 끄도록 할 수 있다. 일부 경우에서, NMD 또는 NMD를 가진 미디어 시스템(예컨대, NMD 구비형 재생 장치를 가지는 미디어 재생 장치 시스템)은 복수의 VAS들과 상호작용하도록 구성될 수 있다. 실시에서, NMD는 NMD에 의해 검출된 사운드에서 식별된 특정 활성 단어에 더 기초하여 하나의 VAS를 선택할 수 있다.
일부 구현예에서, 네트워킹된 미디어 재생 시스템의 일부인 재생 장치는 NMD의 기능 및 컴포넌트를 포함할 수 있다(즉, 재생 장치는 "NMD를 구비"한 것임). 이러한 양상에서, 그러한 재생 장치는 사람들의 대화와 같이 재생 장치의 환경에 존재하는 사운드, 재생 장치 자체 또는 인근에 있는 다른 재생 장치에 의해 출력되는 오디오 또는 다른 주위의 소음을 검출하도록 구성되는 마이크로폰을 포함할 수 있고, 또한 활성 단어 식별을 용이하게 하도록 검출된 사운드를 버퍼링하기 위한 컴포넌트를 포함할 수 있다.
일부 NMD 구비형 재생 장치는 재생 장치가 벽 전기 콘센트 등에 물리적으로 연결되지 않으면서 동작하는 것을 허용하는 내부 전력 소스(예컨대, 충전지)를 포함할 수 있다. 이러한 점에서, 그러한 재생 장치는 여기에서 "휴대용 재생 장치"로 지칭될 수 있다. 한편, 벽 전기 콘센트 등으로부터의 전력에 의존하도록 구성되는 재생 장치가 여기에서 "고정 재생 장치"로 지칭될 수 있으나 그러한 장치는 사실 집 또는 다른 환경 주변에서 움직일 수 있다. 실시에서, 사람은 종종 하나 이상의 고정 재생 장치가 남아 있는 집 또는 다른 환경으로 그리고 그로부터 휴대용 재생 장치를 가지고 갈 수 있다.
일부 경우에, 다수의 음성 서비스는 NMD 또는 NMD의 시스템(예컨대, 재생 장치의 미디어 재생 시스템)에 대해 구성된다. 하나 이상의 서비스는 셋업(set-up) 절차동안 구성될 수 있고, 추가적 음성 서비스가 나중에 시스템을 위해 구성될 수 있다. 이와 같이, NMD는 다수의 음성 서비스와의 인터페이스로서 역할을 하여, 아마도 각 음성 서비스와 상호작용하도록 음성 서비스 각각으로부터 NMD를 가지도록 하는 요구를 완화한다. 또한, NMD는 소정의 음성 명령을 프로세싱하도록 가정에 존재하는 서비스-특정 NMD와 협력하여 동작할 수 있다.
둘 이상의 음성 서비스가 NMD에 대해 구성되는 경우, 특정 음성 서비스가 특정 음성 서비스에 대응하는 활성 단어의 발화에 의해 적용될 수 있다. 예를 들어, 아마존(AMAZON)을 쿼리함에 있어서, 사용자는 활성 단어 "알렉사"에 이어 음성 명령을 말할 수 있다. 다른 예시는 구글(GOOGLE)을 쿼리하기 위한 "오케이, 구글" 및 애플(APPLE)을 쿼리하기 위한 "헤이, 시리"를 포함한다.
일부 경우에서, 포괄적인 활성 단어는 NMD로의 음성 입력을 나타내는 데 사용될 수 있다. 일부 경우에서, 이는 임의의 특정 음성 서비스에 결부된 활성 단어 보다는 생산사-특정 활성 단어(예컨대, NMD가 SONOS 재생 장치인 경우 "헤이, 소노스")이다. 그러한 활성 단어가 주어지면, NMD는 특정 음성 서비스를 식별하여 요청을 프로세싱할 수 있다. 예를 들어, 활성 단어 이후 음성 입력이 특정 유형의 명령(예컨대, 음악 재생)에 관련된 경우, 음성 입력은 그러한 유형의 명령과 연관된 특정 음성 서비스(예컨대, 음성 명령 능력을 가지는 음악 서비스 스트리밍)로 송신된다.
키워드 스포팅은 사운드 데이터가 하나 이상의 키워드를 포함하는지 여부를 검출하도록 사운드 데이터를 연속적으로 프로세싱하는 것을 수반함에 따라, 연산적으로 부담이고 전력 집약적일 수 있다. 추가적으로, 키워드 스포팅 알고리즘은 재생 장치 상의 상당한 메모리를 소비할 수 있고, 더 큰 메모리 요청 및 더 느린 키워드 스포팅 알고리즘의 오버 더 에어(over the air) 소프트웨어 업데이트로 이어진다. 이러한 이슈를 다루기 위한 한 가지 방법은 연산적으로 효율적이고/거나 메모리를 덜 요구하도록 설계되는 키워드 스포팅 알고리즘을 사용하는 것이다. 예를 들어, 일부 키워드 스포팅 알고리즘은 알고리즘이 캡쳐된 사운드 데이터를 프로세싱하는 방식에 기초하여 다른 것들보다 본질적으로 효율적일 수 있다. 추가적으로, 특정 키워드 스포팅 알고리즘은 예를 들어, 보다 단순한 모델을 사용하여 키워드를 정의하거나 보다 단순한 필터를 사용하여 캡쳐된 사운드 데이터를 프로세싱하여, 결과적으로, 캡쳐된 사운드 데이터를 키워드 모델에 비교하는 경우 보다 적은 프로세싱 동작이 되도록 함으로써, 연산적으로 보다 효율적으로도 만들어 질 수 있다. 키워드 스포팅 알고리즘을 조정하여 그 연산적 효율성을 향상시키는 다른 예시는 다양한 실시예에서 이용될 수 있다. 그러나, 연산적으로 덜 집약적인 키워드 스포팅 알고리즘은 또한 보통 키워드를 검출함에 있어서 덜 정확하고 결과적으로 높은 비율의 긍정 오류 및/또는 부정 오류를 발생시킬 수 있다.
이러한 이슈 또는 다른 문제를 다루는데 도움을 주기 위한 시스템과 방법이 여기에서 개시된다. 특히, NMD의 연산적인 리소스 사용, 전력 소비 및/또는 메모리 요구를 줄이는 한편 활성 단어 검출에 있어서 여전히 충분히 높은 정확성을 유지하도록, NMD는 연산 복잡도를 변동시키는 둘 이상의 키워드 스포팅 알고리즘을 수행한다. 예를 들어, 하나 이상의 활성 단어를 듣는 경우, NMD는 비교적 낮은 정도의 프로세싱 전력을 사용하는 제1 키워드 스포팅 알고리즘을 사용한다. 상기 논의에 따라, 제1 키워드 스포팅 알고리즘은 연산적인 단순함 및/또는 감소된 메모리 요구를 위하여 정확성을 희생할 수 있다. 이 때문에, 제1 알고리즘을 사용하여 활성 단어를 검출하는 것에 응답하여, NMD는 더 높은 정도의 프로세싱 전력 및/또는 보다 많은 메모리를 사용하고 제1 알고리즘보다 정확한 제2 키워드 스포팅 알고리즘을 사용하여 제1 알고리즘에 의해 검출된 활성 단어의 존재를 확인하거나 틀림을 밝힌다. 이러한 방식에서, 연산적으로 부담이고 전력 집약적인 키워드 스포팅 알고리즘을 계속해서 수행하는 대신, NMD는 보다 덜 부담인 알고리즘을 사용하는 예비 활성 단어 검출에 예비적으로 기초하여 그러한 알고리즘만을 사용한다.
추가적으로 또는 대안적으로, 제1 알고리즘은 후보 활성 단어의 예비 검출을 위해 사용될 수 있다. 식별된 후보 활성 단어에 기초하여, 일 활성 단어 엔진이 복수의 가능한 활성 단어 엔진 중에서 선택될 수 있다. 이러한 활성 단어 엔진은 보다 연산적으로 집약적이고 더 많은 전력과 메모리를 요구하는 알고리즘을 이용할 수 있다. 결과적으로, 예비 검출을 위해 제1 알고리즘을 사용하여 적절한 후보 활성 단어가 검출되면 단지 특정 활성 단어 엔진을 선택하고 작동시키는 것이 유익할 수 있다. 일부 실시예에서, 예비 검출을 위해 사용된 제1 알고리즘은 예를 들어, 연산적으로 덜 집약적인 활성 단어 엔진보다 효율적일 수 있다.
저부담 활성 단어 검출 알고리즘의 예시는 메모리 및 전력 요구 둘 다를 줄이도록 압축된 뉴럴 네트워크 모델을 포함한다. 일부 실시예에서, 뉴럴 네트워크 모델은 압축형 스파스 로우(CSR) 표현 또는 이하 보다 자세히 설명되는 바와 같은 압축형 뉴럴 네트워크 모델을 달성하기 위한 다른 적절한 기법을 사용하여 가중치를 저장할 수 있는 소프트-가중치 공유형 뉴럴 네트워크 모델일 수 있다.
예컨대, 일부 실시예에서, NMD는 NMD의 하나 이상의 마이크로폰을 통하여 오디오 컨텐츠를 캡쳐하고, NMD는 제1 알고리즘을 사용하여 캡쳐된 오디오 컨텐츠가 복수의 활성 단어 중에서 특정 후보 활성 단어를 포함하는지 여부를 결정하며, 여기서 복수의 활성 단어 각각은 각 음성 서비스에 대응한다. 캡쳐된 사운드 데이터가 특정 후보 활성 단어를 포함한다고 결정하는 것에 응답하여, NMD는 복수의 활성 단어 엔진 중에서 제1 활성 단어 엔진을 선택하고 활성화한다. 선택된 활성 단어 엔진은 제2 알고리즘을 사용하여 캡쳐된 사운드 데이터에서 후보 활성의 존재를 확인 또는 부정할 수 있다. 여기서, 제2 알고리즘은 제1 알고리즘보다 연산적으로 집약적일 수 있다. 일부 실시예에서, 제2 알고리즘이 복수의 가능한 활성 단어 검출 알고리즘 중에서 선택될 수 있으며, 예를 들어, 다른 알고리즘은 다른 VAS와 연관된 활성 단어를 검출하도록 구성된다.
일부 실시예에서, 제2 알고리즘이 캡쳐된 사운드 데이터에서 후보 활성 단어의 존재를 확인하는 경우, NMD는 특정 활성 단어에 대응하는 각 음성 서비스로 하여금 캡쳐된 오디오 컨텐츠를 프로세싱하도록 한다. 대신, 제2 알고리즘이 캡쳐된 사운드 데이터에서 후보 활성 단어의 존재를 부정하는 경우, NMD는 특정 활성 단어를 검출하도록 캡쳐된 사운드 데이터를 프로세싱하는 것을 중단한다.
여기에서 설명되는 일부 실시예가 "사용자" 및/또는 다른 엔티티(entity)와 같은 소정의 행위자에 의해 수행되는 기능을 참조할 수 있으나, 이러한 기술은 단지 설명을 위한 것임이 이해되어야 한다. 청구범위는 청구범위 자체의 언어에 의하여 명시적으로 요구되지 않는 한 임의의 그러한 예시적인 행위자에 의한 행위를 요구하는 것으로 해석되어서는 안된다.
II. 예시적인 동작 환경
도 1a 및 1b는 여기에 개시된 하나 이상의 실시예가 구현될 수 있는 미디어 재생 시스템(100)(또는 "MPS(100)")의 예시적인 구성을 예시한다. 우선, 도 1a를 참조하면, 도시된 바와 같은 MPS(100)는 일괄하여 "집 환경", "스마트 홈" 또는 "환경(101)"으로 지칭될 수 있는 복수의 공간 및 장소를 가지는 예시적인 집 환경과 연관된다. 환경(101)은 여러 공간, 장소 및/또는 재생 구역을 가지는 가정을 포함하고, 이는 주 화장실(101a), 주 침실(101b)(여기서 "Nick의 공간"으로 지칭됨), 제2 침실(101c), 가족 공간 또는 서재(101d), 사무실(101e), 거실(101f), 식당(101g), 주방(101h) 및 외부 파티오(101i)를 포함한다. 일부 실시예 및 예시가 집 환경의 맥락에서 이하에서 설명되는 한편, 여기에서 설명된 기법은 다른 유형의 환경에서 구현될 수 있다. 일부 실시예에서, 예를 들어 MPS(100)는 하나 이상의 상업 환경(예컨대, 레스토랑, 몰, 공항, 호텔, 소매 또는 다른 상점), 하나 이상의 운송 수단(예컨대, SUV(sports utility vehicle), 버스, 자동차, 선박, 배 및 비행기), 멀티 환경(예컨대, 가정 또는 운송 수단 환경의 조합) 및/또는 멀티 구역 오디오가 요구될 수 있는 다른 적절한 환경에서 구현될 수 있다.
이러한 공간과 장소 내에서, MPS(100)는 하나 이상의 컴퓨팅 장치를 포함한다. 도 1a 및 도 1b를 함께 참조하면, 그러한 컴퓨팅 장치는 재생 장치(102)(각각 재생 장치(102a-102o)로서 식별됨), 네트워크 마이크로폰 장치(103)(각각 "NMD"(103a-103i)로서 식별됨) 및 컨트롤러 장치(104a 및 104b)(집합적으로 "컨트롤러 장치"(104))를 포함할 수 있다. 도 1b를 참조하면, 집 환경은 추가적인 및/또는 다른 컴퓨팅 장치를 포함할 수 있고, 이는 하나 이상의 스마트 조명 장치(108)(도 1b), 스마트 온도 조절 장치(110) 및 로컬 컴퓨팅 장치(105)(도 1a)와 같은 로컬 네트워크 장치를 포함한다. 이하 설명된 실시예에서, 다양한 재생 장치(102) 중 하나 이상은 휴대용 재생 장치로서 구성될 수 있는 한편, 다른 것은 고정된 재생 장치로서 구성될 수 있다. 예를 들어, 책장 위의 재생 장치(102d)가 고정 장치인 한편, 헤드폰(102o)(도 1b)은 휴대용 재생 장치이다. 다른 예시로서, 벽 콘센트 또는 그와 비슷한 플러그로 연결되지 않은 경우, 파티오 상의 재생 장치(102c)는 환경(101)내에서 다양한 구역으로, 그리고 환경(101)의 외부로 이동하는 것을 허용할 수 있는 배터리 전력 장치일 수 있다.
도 1b를 참조하면, MPS(100)의 다양한 재생, 네트워크 마이크로폰 및 컨트롤러 장치(102-104) 및/또는 다른 네트워크 장치는 네트워크 라우터(109)를 포함하는 LAN(111)을 통하고, 유선 및/또는 무선 연결될 수 있는 두 지점 간 연결(point-to-point connection) 및/또는 다른 연결을 통하여 서로 연결될 수 있다. 예를 들어, "왼쪽" 장치로서 지정될 수 있는 서재(101d)(도 1a)에 있는 재생 장치(102j)는 역시 서재에 있고 "오른쪽" 장치로서 지정될 수 있는 재생 장치(102a)와 두 지점 간 연결을 가질 수 있다. 관련된 실시예에서, 왼쪽 재생 장치(102j)는 "앞쪽" 장치로서 지정될 수 있는 재생 장치(102b)와 같은 다른 네트워크 장치와 두 지점 간 연결 및/또는 LAN(111)을 통한 다른 연결을 통하여 통신할 수 있다.
도 1b에서 더 도시된 바와 같이, MPS(100)는 광역 네트워크("WAN")(107)를 통하여 하나 이상의 원격 컴퓨팅 장치(106)와 연결될 수 있다. 일부 실시예에서, 각 원격 컴퓨팅 장치(106)는 하나 이상의 클라우드 서버의 형태를 취할 수 있다. 원격 컴퓨팅 장치(106)는 다양한 방식으로 환경(101) 내 컴퓨팅 장치와 상호 작용하도록 구성될 수 있다. 예를 들어, 원격 컴퓨팅 장치(106)는 집 환경(101)에서 오디오와 같은 미디어 컨텐츠의 재생을 제어 및/또는 스트리밍하는 것을 용이하게 하도록 구성될 수 있다.
일부 구현예에서, 다양한 재생 장치, NMD 및/또는 컨트롤러 장치(102-104)는 VAS와 연관된 적어도 하나의 원격 컴퓨팅 장치 및 미디어 컨텐츠 서비스("MCS")와 연관된 적어도 하나의 원격 컴퓨팅 장치와 통신으로 연결될 수 있다. 예를 들어, 도 1b의 예시된 예시에서, 원격 컴퓨팅 장치(106a)는 VAS(190)와 연관되고, 원격 컴퓨팅 장치(106b)는 MCS(192)와 연관된다. 명확성을 위해 단일 VAS(190) 및 단일 MCS(192)만이 도 1b의 예시에서 도시되었지만, MPS(100)는 복수의 상이한 VAS 및/또는 MCS에 연결될 수 있다. 일부 구현예에서, VAS는 아마존, 구글, 애플, 마이크로소프트, 소노스 또는 기타 음성 지원 제공자 중 하나 이상에 의해 동작될 수 있다. 일부 구현예에서, MCS는 스포티파이, 판도라, 아마존 뮤직 또는 기타 미디어 컨텐츠 서비스 중 하나 이상에 의해 동작될 수 있다.
도 1b에서 추가로 도시된 바와 같이, 원격 컴퓨팅 장치(106)는 다른 동작 중에서도 원격으로 미디어 재생 기능을 용이하게 하고, 장치 및 시스템 상태 정보를 관리하고, MPS(100)의 장치와 하나 또는 복수의 VAS 및/또는 MCS 사이의 통신을 디렉팅하는 것과 같은, 일부 동작을 수행하도록 구성되는 원격 컴퓨팅 장치(106c)를 더 포함한다. 일 예시에서, 원격 컴퓨팅 장치(106c)는 하나 이상의 소노스 무선 하이파이 시스템을 위해 클라우드 서버를 제공한다.
다양한 구현예에서, 재생 장치(102) 중 하나 이상은 내장된(예컨대, 통합된) 네트워크 마이크로폰 장치의 형태를 취하거나 이를 포함할 수 있다. 예를 들어, 재생 장치(102a-e)는 각각 대응하는 NMD(103a-e)를 포함하거나 아니면 NMD(103a-e)가 구비된다. NMD를 포함하거나 이를 구비하는 재생 장치는 설명에서 별도의 표시가 없다면, 여기서 교환 가능하게 재생 장치 또는 NMD로서 지칭될 수 있다. 일부 경우에서, NMD(103) 중 하나 이상은 독립형 장치일 수 있다. 예를 들어, NMD(103f 및 103g)는 독립형 장치일 수 있다. 독립형 NMD는 스피커 또는 관련 전자기기와 같은, 재생 장치에 보통 포함된 기능 및/또는 컴포넌트를 생략할 수 있다. 예를 들어, 이러한 경우에, 독립형 NMD는 오디오 출력을 생산하지 않을 수 있거나, 제한된 오디오 출력(예컨대, 비교적 저음질 오디오 출력)을 생산할 수 있다.
MPS(100)의 다양한 재생 및 네트워크 마이크로폰 장치(102 및 103)는 이러한 장치 중 하나 이상의 셋업 동안과 같이, 사용자에 의해 각 장치에 할당될 수 있는 고유한 이름과 연관될 수 있다. 예를 들어, 도 1b의 예시된 예시에 도시된 바와 같이, 사용자는 물리적으로 책장 위에 위치해 있기 때문에, 재생 장치(102d)에 "책장"이라는 이름을 할당할 수 있다. 유사하게, NMD(103f)는 물리적으로 주방(101h)(도 1a)에 있는 아일랜드 조리대(island countertop) 상에 위치해 있기 때문에 "아일랜드"라는 이름이 할당될 수 있다. 일부 재생 장치는 이름이 각각 "침실", "식당", "거실" 및 "사무실"인 재생 장치(102e, 102l, 102m 및 102n)와 같이 구역 또는 공간에 따라 이름이 할당될 수 있다. 추가적으로, 일부 재생 장치는 기능적으로 서술하는 이름을 가질 수 있다. 예를 들어, 재생 장치(102a 및 102b)는 각각 "오른쪽" 및 "앞쪽"이라는 이름이 할당되는데, 이는 이 두 장치가 서재(101d)(도 1a)의 구역에서 미디어 재생 동안 특별 오디오 채널을 제공하도록 구성되기 때문이다. 파티오에 있는 재생 장치(102c)는 휴대용으로 명명될 수 있는데, 이는 배터리로 전력 공급되고/거나 환경(101)의 다른 영역으로 쉽게 이동할 수 있기 때문이다. 다른 명명 규칙도 가능하다.
위에서 논의된 바와 같이, NMD는 NMD의 부근에서 사람에 의해 말해진 회화와 혼합된 배경 잡음을 포함하는 사운드와 같은, 그 환경으로부터의 사운드를 검출하고 프로세싱할 수 있다. 예를 들어, 사운드가 환경에 있는 NMD에 의해 검출되는 것과 같이, NMD는 사운드가 NMD 및 본질적으로 특정 VAS를 위해 의도된 음성 입력이 들어 있는 회화를 포함하는 경우를 결정하도록 검출된 사운드를 프로세싱할 수 있다. 예를 들어, NMD는 회화가 특정 VAS와 연관된 활성 단어를 포함하는지 여부를 식별할 수 있다.
도 1b의 예시된 예시에서, NMD(103)는 LAN(111) 및 라우터(109)를 통하여 네트워크를 지나 VAS(190)과 상호 작용하도록 구성된다. VAS(190)와의 상호 작용은 예를 들어, NMD가 검출된 사운드에서 잠재적인 활성 단어를 식별하는 경우, 개시될 수 있다. 식별은 활성 단어 이벤트를 일으키며, 이는 차례로 NMD로 하여금 검출된 사운드 데이터를 VAS(190)로 전송을 시작하도록 한다. 일부 구현예에서, MPS(100)의 원격 컴퓨팅 장치(106c) 및/또는 다양한 로컬 네트워크 장치(102-105)(도 1a)는 다양한 피드백, 정보, 명령어 및/또는 선택된 VAS에 연관된 원격 컴퓨팅 장치와 관련된 데이터를 교환할 수 있다. 그러한 교환은 음성 입력을 포함하는 전송된 메시지와 관련되거나 이와 독립적인 것일 수 있다. 일부 실시예에서, 원격 컴퓨팅 장치(들) 및 미디어 재생 시스템(100)은 여기서 설명된 바와 같이 통신로를 통하고/거나 그 전체가 참조로서 여기에 포함된 2017년 2월 21에 제출되고 제목이 "미디어 재생 시스템의 음성 제어(Voice Control of a Media Playback System)"인 미국 출원 제15/438,749호에서 설명된 바와 같이 메타데이터 교환 채널을 사용하여 데이터를 교환할 수 있다.
사운드 데이터의 스트림을 수신하면, VAS(190)는 NMD로부터의 스트림 데이터에 음성 입력이 있는지 결정하고, 그런 경우 VAS(190)는 또한 음성 입력에서 본질적인 의도를 결정할 것이다. 다음, VAS(190)는 MPS(100)로 응답을 다시 전송할 수 있으며, 이는 활성 단어 이벤트를 일으킨 NMD로 직접 응답을 전송하는 것을 포함할 수 있다. 응답은 보통 VAS(190)가 음성 입력에 존재한다고 결정한 의도에 기초한다. 예시로서, "비틀즈의 헤이 주드 재생"이라는 발화를 가진 음성 입력을 수신하는 VAS(190)에 응답하여, VAS(190)는 음성 입력의 본질적인 의도가 재생을 개시하기 위한 것이라는 것을 결정하고 또한 음성 입력의 의도가 특정 노래 "헤이 주드"를 재생하기 위한 것이라는 것을 결정할 수 있다. 이러한 결정 이후, VAS(190)는 특정 MCS(192)로 명령을 전송하여 컨텐츠를 검색(즉, 노래 "헤이 주드")할 수 있고, 그 MCS(192)는 차례로 이러한 컨텐츠를 직접 MPS(100)로 제공하거나 VAS(190)을 통하여 간접적으로 제공한다(예컨대, 스트림). 일부 구현예에서, VAS(190)는 MPS(100) 자체로 하여금 MCS(192)로부터 컨텐츠를 검색하도록 하는 명령을 MPS(100)로 전송할 수 있다.
일부 구현예에서, NMD는, 음성 입력이 서로의 근처 내에 위치된 둘 이상의 NMD에 의해 검출된 회화에서 식별되는 경우, 서로 간의 중재를 용이하게 할 수 있다. 예를 들어, 환경(101)(도 1a)에서 NMD-구비형 재생 장치(102d)는 NMD-구비형 거실 재생 장치(102m)에 비교적 가까운 근처에 있고, 두 장치(102d 및 102m)는 적어도 때로는 동일한 사운드를 검출할 수 있다. 그러한 경우에서, 어떤 장치가 원격 VAS로 검출된 사운드 데이터를 제공할 궁극적인 책임이 있는지에 관하여 중재를 요구할 수 있다. NMD 사이의 중재의 예시는 예를 들어, 이전에 참조된 미국 특허 제15/438,749호에서 발견될 수 있다.
일부 구현예에서, NMD는 NMD를 포함하지 않을 수 있는 지정된 재생 장치 또는 디폴트 재생 장치에 할당되거나 연관될 수 있다. 예를 들어, 주방(101h)(도 1a)에 있는 아일랜드 NMD(103f)는 아일랜드 NMD(103f)에 비교적 가까운 근처에 있는 식당 재생 장치(102l)에 할당될 수 있다. 실시에서, NMD는 오디오를 재생하도록 NMD로부터 음성 입력을 수신하는 원격 VAS에 응답하여 오디오를 재생하도록 할당된 재생 장치를 디렉트할 수 있으며, 여기서 NMD는 사용자가 일부 노래, 앨범, 플레이리스트 등을 재생하도록 명령을 말하는 것에 응답하여, VAS에 전송했을 수 있다. 지정된 장치 또는 디폴트 장치로서 NMD 및 재생 장치를 할당하는 것에 관한 추가적인 세부 사항은 예를 들어, 이전에 참조된 미국 특허 출원 제15/438,749호에 있을 수 있다.
예시적인 MPS(100)의 다른 컴포넌트와 관련 있는 추가 양상 및 다른 컴포넌트가 어떻게 미디어 경험을 사용자에게 제공하도록 상호작용할 수 있는지는 다음의 섹션에서 발견될 수 있다. 여기에서 논의가 일반적으로 예시적인 MPS(100)을 나타내는 한편, 여기서 설명되는 기술은 그 중에서도 위에서 설명된 집 환경 내에서의 응용에 제한되는 것이 아니다. 예를 들어, 여기서 설명된 기술은 재생 장치, 네트워크 마이크로폰 및/또는 컨트롤러 장치(102-104) 중 임의의 것보다 많거나 적은 것을 포함하는 다른 집 환경 구성에서 유용할 수 있다. 예를 들어, 여기에서의 기술은 단일 재생 장치(102) 및/또는 단일 NMD(103)를 가지는 환경 내에서 활용될 수 있다. 그러한 경우의 일부 예시에서, LAN(111)(도 1b)은 제거될 수 있고 단일 재생 장치(102) 및/또는 단일 NMD(103)는 원격 컴퓨팅 장치(106a-d)와 직접적으로 통신할 수 있다. 일부 실시예에서, 전기 통신 네트워크(예컨대, LTE 네트워크, 5G 네트워크 등)은 LAN에 독립적인 다양한 재생, 네트워크 마이크로폰 및/또는 컨트롤러 장치(102-104)와 통신할 수 있다.
a. 예시적인 재생 & 네트워크 마이크로폰 장치
도 2a는 도 1a 및 1b의 MPS(100)의 재생 장치(102) 중 하나의 일부 양상을 예시하는 기능적인 블록도이다. 도시된 바와 같이, 재생 장치(102)는 각각 아래에서 더 자세하게 논의되는 다양한 컴포넌트를 포함하고, 재생 장치(102)의 다양한 컴포넌트는 시스템 버스, 통신 네트워크 또는 일부 다른 연결 메커니즘을 통하여 동작 가능하게 서로 연결될 수 있다. 도 2a의 예시된 예시에서, 재생 장치(102)는 도 1a에 도시된 바와 같이 NMD(103) 중 하나와 같은, NMD의 기능을 지원하는 컴포넌트를 포함하므로 "NMD-구비형" 재생 장치로 지칭될 수 있다.
도시된 바와 같이, 재생 장치(102)는 적어도 하나의 프로세서(212)를 포함하며, 이는 메모리(213)에 저장된 명령어에 따라 입력 데이터를 프로세싱하도록 구성되는 클락 구동(clock-driven) 컴퓨팅 컴포넌트일 수 있다. 메모리(213)는 프로세서(212)에 의해 실행 가능한 명령어를 저장하도록 구성되는 유형의 비일시적인 컴퓨터 판독 가능 기록매체일 수 있다. 예를 들어, 메모리(213)는 일부 기능을 달성하기 위해 프로세서(212)에 의해 실행 가능한 소프트웨어 코드(214)로 로딩될 수 있는 데이터 저장소일 수 있다.
일 예시에서, 이러한 기능은 다른 재생 장치일 수 있는 오디오 소스로부터 오디오 데이터를 검색하는 재생 장치(102)를 수반할 수 있다. 다른 예시에서, 기능은 오디오 데이터, (예컨대, 음성 입력에 대응하는)검출된 사운드 데이터 및/또는 다른 정보를 적어도 하나의 네트워크 인터페이스(224)를 통하여 네트워크 상의 다른 장치로 전송하는 재생 장치(102)를 수반할 수 있다. 또 다른 예시에서, 기능은 재생 장치(102)가 하나 이상의 다른 재생 장치로 하여금 재생 장치(102)와 동기적으로 오디오를 재생하도록 하는 것을 수반할 수 있다. 또 다른 예시에서, 기능은 재생 장치(102)가 하나 이상의 다른 재생 장치와 페어링되거나 아니면 연결되는 것을 용이하게 하여 멀티 채널 오디오 환경을 생성하는 것을 수반할 수 있다. 많은 다른 예시적인 기능이 가능하고 그 중 일부는 아래에서 논의된다.
언급한 바와 같이, 일부 기능은 재생 장치(102)가 오디오 컨텐츠의 재생을 하나 이상의 다른 재생 장치와 동기화하는 것을 포함할 수 있다. 동기화 재생하는 동안, 청취자는 동기화된 재생 장치에 의한 오디오 컨텐츠의 재생 간의 시간 지연 차이를 감지하지 않을 수 있다. 전체 내용이 여기에 참조로서 포함되는 2004년 4월 4일에 출원되고 제목이 "복수의 독립적으로 클록(clock)되는 디지털 데이터 처리 장치 사이에서 동작을 동기화하기 위한 시스템 및 방법(System and method for synchronizing operations among a plurality of independently clocked digital data processing devices)"인 미국 특허 제8,234,395호는 재생 장치 중에서 오디오 재생 동기화에 대한 더 상세한 일부 예시를 제공한다.
오디오 재생을 용이하게 하도록, 재생 장치(102)는 일반적으로 오디오를 렌더링하는 재생 장치(102)에 앞서 오디오를 프로세싱하도록 구성되는 오디오 처리 컴포넌트(216)를 포함한다. 이러한 점에서, 오디오 처리 컴포넌트(216)는 하나 이상의 디지털-아날로그 변환기("DAC"), 하나 이상의 오디오 전처리 컴포넌트, 하나 이상의 오디오 향상 컴포넌트, 하나 이상의 디지털 신호 프로세서("DSP") 등을 포함할 수 있다. 일부 구현예에서, 오디오 처리 컴포넌트(216) 중 하나 이상은 프로세서(212)의 서브 컴포넌트일 수 있다. 동작에서, 오디오 처리 컴포넌트(216)는 아날로그 및/또는 디지털 오디오를 수신하고, 오디오를 프로세싱하고/거나 의도적으로 변경하여 재생에 대한 오디오 신호를 생산한다.
생산된 오디오 신호는 이후 증폭기(217)에 동작 가능하게 연결된 하나 이상의 스피커(218)를 통하여 증폭 및 재생을 위해 하나 이상의 오디오 증폭기(217)로 제공될 수 있다. 오디오 증폭기(217)는 오디오 신호를 스피커(218) 중 하나 이상을 구동하기 위한 레벨로 증폭하도록 구성된 컴포넌트를 포함할 수 있다.
스피커(218) 각각은 개별의 변환기(transducer)(예컨대, "드라이버")를 포함할 수 있거나 스피커(218)는 하나 이상의 드라이버와 엔클로저를 수반하는 완전한 스피커 시스템을 포함할 수 있다. 스피커(218)의 특정 드라이버는 예를 들면, (예컨대, 저주파수를 위한) 서브 우퍼, (예컨대, 중간 주파수를 위한) 중간 범위의 드라이버 및/또는 (예컨대, 고주파를 위한) 트위터를 포함할 수 있다. 일부 경우에서, 변환기는 오디오 증폭기(217)의 개별 대응 오디오 증폭기에 의해 구동될 수 있다. 일부 구현예에서, 재생 장치는 스피커(218)를 포함하지 않을 수 있지만, 대신 외부 스피커로 재생 장치를 연결하기 위한 스피커 인터페이스를 포함할 수 있다. 일부 실시예에서, 재생 장치는 스피커(218)와 오디오 증폭기(217)를 모두 포함하지 않을 수 있지만, 대신 외부 오디오 증폭기 또는 오디오 영상 수신기로 재생 장치를 연결하기 위한 오디오 인터페이스(도시되지 않음)를 포함할 수 있다.
재생 장치(102)에 의해 재생을 위한 오디오 신호를 생성하는 것에 더하여, 오디오 처리 컴포넌트(216)는 재생을 위해 네트워크 인터페이스(224)를 통하여 하나 이상의 다른 재생 장치로 전송될 오디오를 프로세싱하도록 구성될 수 있다. 예시적인 시나리오에서, 재생 장치(102)에 의해 프로세싱 및/또는 재생될 오디오 컨텐츠는 재생 장치(102)(도시되지 않음)의 오디오 라인인 인터페이스(audio line-in interface)(예컨대, 자동 검출 3.5mm 오디오 라인인 연결)를 통하여 또는 아래에 설명된 바와 같이 네트워크 인터페이스(224)를 통하는 것과 같이, 외부 소스로부터 수신될 수 있다.
도시된 바와 같이, 적어도 하나의 네트워크 인터페이스(224)는 하나 이상의 무선 인터페이스(225) 및/또는 하나 이상의 유선 인터페이스(226)의 형태를 취할 수 있다. 무선 인터페이스는 재생 장치(102)가 통신 프로토콜(예컨대, IEEE 802.11a, 802.11b, 802.11g, 802.11n, 802.11ac, 802.15, 4G 모바일 통신 표준 등을 포함하는 임의의 무선 표준)에 따라 다른 장치(예컨대, 다른 재생 장치(들), NMD(들) 및/또는 컨트롤러 장치(들))와 무선으로 통신하도록 네트워크 인터페이스 기능을 제공할 수 있다. 유선 인터페이스는 재생 장치(102)가 통신 프로토콜(예컨대, IEEE 802.3)에 따라 다른 장치와 유선 연결 통신하도록 네트워크 인터페이스 기능을 제공할 수 있다. 도 2a에 도시되는 네트워크 인터페이스(224)가 유선 및 무선 인터페이스 둘 다를 포함하는 한편, 재생 장치(102)는 일부 구현예에서 무선 인터페이스(들)만을 또는 유선 인터페이스(들)만을 포함할 수 있다.
보통, 네트워크 인터페이스(224)는 재생 장치(102)와 데이터 네트워크 상의 하나 이상의 다른 장치 간의 데이터 흐름을 용이하게 한다. 예를 들어, 재생 장치(102)는 하나 이상의 다른 재생 장치, LAN 내의 네트워크 장치 및/또는 인터넷과 같은 광역 네트워크 상에서의 오디오 컨텐츠 소스로부터 데이터 네트워크에서 오디오 컨텐츠를 수신하도록 구성될 수 있다. 일 예시에서, 재생 장치(102)에 의해 전송되고 수신되는 오디오 컨텐츠 및 다른 신호는 인터넷 프로토콜(Internet Protocol)(IP) 기반 소스 주소 및 IP 기반 목적지 주소를 포함하는 디지털 패킷(packet data) 데이터의 형태로 전송될 수 있다. 그러한 경우, 네트워크 인터페이스(224)는 재생 장치(102)로 향하는 데이터가 재생 장치(102)에 의해 적절히 수신되고 프로세싱되도록 디지털 패킷 데이터를 파싱(parsing)하도록 구성될 수 있다.
도 2a에 도시된 바와 같이, 재생 장치(102)는 또한 하나 이상의 마이크로폰(222)에 동작 가능하게 연결된 음성 처리 컴포넌트(220)를 포함한다. 마이크로폰(222)은 재생 장치(102)의 환경에서 사운드(즉, 어쿠스틱 파장)를 검출하도록 구성되며, 이는 이후 음성 처리 컴포넌트(220)로 제공된다. 보다 구체적으로, 각 마이크로폰(222)은 사운드를 검출하고 사운드를 검출된 사운드의 디지털 또는 아날로그 신호 표현으로 전환하도록 구성되며, 이는 이후 아래에서 더 자세하게 설명되는 바와 같이, 음성 처리 컴포넌트(220)로 하여금 검출된 사운드에 기초된 다양한 기능을 수행하도록 할 수 있다. 일 구현예에서, 마이크로폰(222)은 마이크로폰의 어레이(예컨대, 6개의 마이크로폰의 어레이)로서 배열된다. 일부 구현예에서, 재생 장치(102)는 6개의 마이크로폰보다 많거나(예컨대, 8개의 마이크로폰 또는 12개의 마이크로폰) 6개의 마이크로폰보다 적은 것(예컨대, 4개의 마이크로폰, 2개의 마이크로폰 또는 단일 마이크로폰)을 포함한다.
동작에서, 음성 처리 컴포넌트(220)는 일반적으로 마이크로폰(222)을 통하여 수신된 사운드를 검출 및 프로세싱하고, 검출된 사운드에서 잠재적인 음성 입력을 식별하며, 검출된 사운드 데이터를 추출하여 VAS(190)(도 1b)와 같은, VAS가 검출된 사운드 데이터에서 식별된 음성 입력을 프로세싱할 수 있도록 구성된다. 음성 처리 컴포넌트(220)는 다른 예시적인 음성 처리 컴포넌트 중에서도 하나 이상의 아날로그 디지털 변환기, 음향 반향 캔슬러(acoustic echo canceller; "AEC"), 공간 프로세서(예컨대, 하나 이상의 멀티 채널 위너 필터, 하나 이상의 다른 필터 및/또는 하나 이상의 빔 형성 컴포넌트), 하나 이상의 버퍼(예컨대, 하나 이상의 원형 버퍼), 하나 이상의 활성 단어 엔진, 하나 이상의 음성 추출기 및/또는 하나 이상의 회화 처리 컴포넌트(예컨대, 가정과 연관 있는 사용자의 특정 집합 또는 특정 사용자의 음성을 인식하도록 구성된 컴포넌트)를 포함할 수 있다. 예시적인 구현예에서, 음성 처리 컴포넌트(220)는 하나 이상의 DSP의 형태 또는 DSP의 하나 이상의 모듈을 포함하거나 아니면 이를 취할 수 있다. 이러한 점에서, 일부 음성 처리 컴포넌트(220)는 특정 기능을 달성하도록 수정되거나 조정될 수 있는 특정 파라미터(예컨대, 이득 및/또는 스펙트럼 파라미터)로 구성될 수 있다. 일부 구현예에서, 음성 처리 컴포넌트(220) 중 하나 이상은 프로세서(212)의 서브 컴포넌트일 수 있다.
일부 구현예에서, 음성 처리 컴포넌트(220)는 MPS(100)의 사용자 계정과 연관될 수 있는 사용자의 음성 프로파일을 검출하고 저장할 수 있다. 예를 들어, 음성 프로파일은 데이터 테이블 또는 명령 정보의 세트에 저장된 변수로서 저장 및/또는 변수에 비교될 수 있다. 음성 프로파일은 이전에 참조된 미국 특허 출원 제15/438,749호에 설명된 바와 같이, 사용자의 음성의 톤 또는 주파수의 양상 및/또는 사용자의 음성의 다른 고유한 양상을 포함할 수 있다.
도 2a에 추가 도시된 바와 같이, 재생 장치(102)는 또한 전력 컴포넌트(227)을 포함한다. 전력 컴포넌트(227)는 적어도 외부 전력 소스 인터페이스(228)을 포함하며, 이는 전기 콘센트 또는 일부 다른 외부 전력 소스에 물리적으로 재생 장치(102)를 연결하는 전력 케이블 등을 통하여 전력 소스(도시되지 않음)에 연결될 수 있다. 다른 전력 컴포넌트는 예를 들어, 변압기, 컨버터 및 전력을 포맷하도록 구성된 유사 컴포넌트를 포함할 수 있다.
일부 구현예에서, 재생 장치(102)의 전력 컴포넌트(227)는 또한, 외부 전력 소스로의 물리적 연결 없이 재생 장치(102)에 전력을 공급하도록 구성된 내부 전력 소스(229)(예컨대, 하나 이상의 배터리)를 포함할 수 있다. 내부 전력 소스(229)에 구비되는 경우, 재생 장치(102)는 외부 전력 소스에 독립적으로 동작할 수 있다. 일부 그러한 구현예에서, 외부의 전력 소스 인터페이스(228)는 내부 전력 소스(229)를 충전하는 것을 용이하게 하도록 구성될 수 있다. 이전에 논의된 바와 같이, 내부 전력 소스를 포함하는 재생 장치는 여기서 "휴대용 재생 장치"로 지칭될 수 있다. 한편, 외부 전력 소스를 사용하여 동작하는 재생 장치는, 이러한 장치들이 실은 집 또는 다른 환경 주변에서 이동될 수 있지만, 여기서 "고정된 재생 장치"로 지칭될 수 있다.
재생 장치(102)는 컨트롤러 장치(104) 중 하나 이상에 의해 용이하게 되는 사용자 상호 작용과 함께 또는 이에 독립한 사용자 상호 작용을 용이하게 할 수 있는 사용자 인터페이스(240)를 더 포함한다. 다양한 실시예에서, 사용자 인터페이스(240)는 사용자가 직접 입력을 제공하도록, 다른 가능성 중에서도 하나 이상의 물리적 버튼 및/또는 터치 센싱 스크린(들) 및/또는 표면(들) 상에 제공되는 서포트 그래픽 인터페이스를 포함한다. 사용자 인터페이스(240)는 사용자에게 시각적 및/또는 오디오 피드백을 제공하도록 광(예컨대, LED) 및 스피커 중 하나 이상을 더 포함할 수 있다.
예시와 같이, 도 2b는 하우징(230)의 상부(234)에서 제어 영역(232)의 형태로 사용자 인터페이스를 포함하는 재생 장치(102)의 예시적인 하우징(230)을 도시한다. 제어 영역(232)은 오디오 재생, 음량 레벨 및 다른 기능을 제어하기 위한 버튼(236a-c)을 포함한다. 제어 영역(232)은 또한 마이크로폰(222)을 온(on) 상태 또는 오프(off) 상태로 토글링(toggling)하기 위한 버튼(236d)을 포함한다.
도 2b에 더 도시된 바와 같이, 제어 영역(232)은 하우징(230)의 상부(234)에 형성된 애퍼처에 의해 적어도 부분적으로 둘러싸이며, 이를 통하여 마이크로폰(222)(도 2b에서 보이지 않음)이 재생 장치(102)의 환경에서 사운드를 수신한다. 마이크로폰(222)은 하우징(230)의 상부(234) 또는 다른 영역을 따라 그리고/또는 그 내에서의 다양한 위치에서 배열되어 재생 장치(102)에 관해 하나 이상의 방향으로부터 사운드를 검출할 수 있다.
예를 들어, 소노스 사(SONONS, Inc.)는 여기에 개시된 실시예 중 일부를 구현할 수 있는 일부 재생 장치를 현재 판매하며 (또는 판매해왔고), 이는 "PLAY:1", "PLAY:3", "PLAY:5", "PLAYBAR", "CONNECT:AMP", "PLAYBASE", "BEAM", "CONNECT" 및 "SUB"를 포함한다. 임의의 다른 과거, 현재 및/또는 미래의 재생 장치가 추가적으로 또는 대안적으로 여기에 개시되는 예시적인 실시예의 재생 장치를 구현하도록 사용될 수 있다. 또한, 재생 장치가 도 2a 또는 2b에서 예시되는 예시 또는 소노스 제품 제안에 제한되지 않음이 이해되어야 한다. 예를 들어, 재생 장치는 네트워크 인터페이스 등을 통하여 미디어 재생 시스템(100)의 일부로서 동작할 수 있는 유선 또는 무선 헤드폰 세트를 포함하거나 아니면 그 형태를 취할 수 있다. 다른 예시에서, 재생 장치는 개인 모바일 미디어 재생 장치를 위해 도킹 스테이션(docking station)을 포함하거나 이와 상호작용할 수 있다. 또 다른 예시에서, 재생 장치는 텔레비전, 조명 기구, 또는 내부 또는 외부 용도를 위한 일부 다른 장치와 같은 다른 장치 또는 컴포넌트에 통합될 수 있다.
b. 예시적인 재생 장치 구성
도 3a-3e는 재생 장치의 예시적인 구성을 도시한다. 먼저 도 3a를 참조하면, 일부 예시적인 경우에서, 단일 재생 장치는 구역에 속할 수 있다. 예를 들어, 파티오 상의 재생 장치(102c)(도 1a)는 구역 A에 속한다. 이하에서 설명된 일부 구현예에서, 복수의 재생 장치는 "결합된 페어"를 형성하도록 "결합"될 수 있으며, 이는 함께 단일 구역을 형성할 수 있다. 예를 들어, 도 3a에서 "침대 1"로 명명된 재생 장치(102f)(도 1a)는 구역 B를 형성하도록 도 3a에서 "침대 2"로 명명된 재생 장치(102g)(도 1a)와 결합될 수 있다. 결합된 재생 장치는 상이한 재생 책임(예컨대, 채널 책임)을 가질 수 있다. 이하에서 설명된 다른 구현예에서, 복수의 재생 장치가 병합되어 단일 구역을 형성할 수 있다. 예를 들어, "책장"으로 명명된 재생 장치(102d)는 "거실"로 명명된 재생 장치(102m)와 병합되어 단일 구역 C를 형성할 수 있다. 병합된 재생 장치(102d 및 102m)는 다른 재생 책임에 명시적으로 할당되지 않을 수 있다. 즉, 병합된 재생 장치(102d 및 102m)는, 오디오 컨텐츠를 동기로 재생하는 것 외에, 그들이 병합되지 않은 경우 그들이 하는 것처럼 오디오 컨텐츠를 각각 재생할 수 있다.
제어를 위해, MPS(100)에 있는 각 구역은 단일 사용자 인터페이스("UI") 엔티티로서 표현할 수 있다. 예를 들어, 컨트롤러 장치(104)에 의해 디스플레이된 것과 같이, 구역 A는 "휴대용"으로 명명된 단일 엔티티로서 제공될 수 있고, 구역 B는 "스테레오"로 명명된 단일 엔티티로서 제공될 수 있고, 구역 C는 "거실"로 명명된 단일 엔티티로서 제공될 수 있다.
다양한 실시예에서, 구역은 구역에 속하는 재생 장치 중 하나의 이름을 취할 수 있다. 예를 들어, 구역 C는 (도시된 바와 같이) 거실 장치(102m)의 이름을 취할 수 있다. 다른 예시에서, 구역 C는 책장 장치(102d)의 이름을 대신 취할 수 있다. 추가 예시에서, 구역 C는 책장 장치(102d)와 거실 장치(102m)의 일부 조합인 이름을 취할 수 있다. 선정된 이름은 컨트롤러 장치(104)에서 입력을 통하여 사용자에 의해 선택될 수 있다. 일부 실시예에서, 구역은 구역에 속하는 장치(들)과 다른 이름이 주어질 수 있다. 예를 들어, 도 3a에 있는 구역 B는 "스테레오"라고 명명되지만 구역 B에 있는 일부 장치도 이러한 이름을 가지고 있지 않다. 일 양상에서, 구역 B는 구성 장치 "침대 1" 및 "침대 2"로 구성된 "스테레오"로 명명된 단일 장치를 나타내는 단일 UI 엔티티이다. 일 구현예에서, 침대 1 장치는 주 침실(101h)(도 1a)에 있는 재생 장치(102f)일 수 있고, 침대 2 장치는 역시 주 침실(101h)(도 1a)에 있는 재생 장치(102g)일 수 있다.
상기 언급된 바와 같이, 결합되는 재생 장치는 일부 오디오 채널에 대한 재생 책임과 같이, 상이한 재생 책임을 가질 수 있다. 예를 들어, 도 3b에 도시된 바와 같이, 침대 1 및 침대 2 장치(102f 및 102g)는 오디오 컨텐츠의 스테레오 효과를 생산 또는 향상하도록 결합될 수 있다. 이러한 예시에서, 침대 1 재생 장치(102f)가 왼쪽 채널 오디오 컴포넌트를 재생하도록 구성될 수 있는 한편, 침대 2 재생 장치(102g)는 오른쪽 채널 오디오 컴포넌트를 재생하도록 구성될 수 있다. 일부 구현예에서, 이러한 스테레오 결합은 "페어링"으로 지칭될 수 있다.
또한, 결합되도록 구성된 재생 장치는 추가적 및/또는 다른 각 스피커 드라이버를 가질 수 있다. 도 3c에서 도시된 바와 같이, "앞쪽"이라고 명명된 재생 장치(102b)는 "서브"라고 명명된 재생 장치(102k)와 결합될 수 있다. 앞쪽 장치(102b)는 중간 내지 고주파수의 범위를 렌더링할 수 있고, 서브 장치(102k)는 예를 들어, 서브 우퍼와 같이 저주파수를 렌더링할 수 있다. 결합되지 않은 경우, 앞쪽 장치(102b)는 주파수의 모든 범위를 렌더링하도록 구성될 수 있다. 다른 예시로서, 도 3d는 각각 오른쪽과 왼쪽 재생 장치(102a 및 102j)와 더 결합된 앞쪽 및 서브 장치(102b 및 102k)를 도시한다. 일부 구현예에서, 오른쪽과 왼쪽 장치(102a 및 102j)는 홈 시어터 시스템(home theater system)의 서라운드 또는 "위성" 채널을 형성할 수 있다. 결합된 재생 장치(102a, 102b, 102j 및 102k)는 단일 구역 D(도 3a)을 형성할 수 있다.
일부 구현예에서, 재생 장치는 또한 "병합"될 수 있다. 일부 결합된 재생 장치와는 대조적으로, 병합되는 재생 장치는 할당된 재생 책임을 가지지 않을 수 있지만, 각 재생 장치가 할 수 있는 오디오 컨텐츠의 모든 범위를 각각 렌더링할 수 있다. 그럼에도 불구하고, 병합된 장치는 단일 UI 엔티티(즉, 위에서 논의된 바와 같이, 구역)로서 표현될 수 있다. 예를 들어, 도 3e는 병합되는 거실 내 재생 장치(102d 및 102m)를 도시하며, 이는 결국 이러한 장치가 구역 C의 단일 UI 엔티티에 의해 표현될 것이다. 일 실시예에서, 재생 장치(102d 및 102m)는 오디오를 동기로 재생하며, 그 동안 각 재생 장치(102d 및 102m)가 각각 렌더링 할 수 있는 오디오 컨텐츠의 모든 범위를 출력할 수 있다.
일부 실시예에서, 독립형의 NMD는 홀로 구역에 있을 수 있다. 예를 들어, 도 1a에서 NMD(103h)는 "옷장"이라고 명명되고 도 3a에서 구역 I를 형성한다. NMD는 또한 구역을 형성하도록 다른 장치와 결합되거나 병합될 수 있다. 예를 들어, "아일랜드"로 명명된 NMD 장치(103f)는 함께 구역 F를 형성하고, 또한 "주방"이라고 명명된 재생 장치(102i) 주방과 결합될 수 있다. 지정된 장치 또는 디폴트 장치로서 NMD 및 재생 장치를 할당하는 것에 관한 추가적 세부 사항은 예를 들어, 이전에 참조된 미국 특허 출원 제15/438,749호에서 발견될 수 있다. 일부 실시예에서, 독립형 NMD는 구역에 할당되지 않을 수 있다.
개별 장치, 결합된 장치 및/또는 병합된 장치의 구역은 동기화로 오디오를 재생하는 재생 장치의 세트를 형성하도록 배열될 수 있다. 그러한 재생 장치의 세트는 "그룹", "구역 그룹", "동기화 그룹" 또는 "재생 그룹"으로서 지칭될 수 있다. 컨트롤러 장치(104)를 통하여 제공되는 입력에 응답하여, 재생 장치는 동기화로 오디오 컨텐츠를 재생하는 새롭거나 상이한 그룹을 형성하도록 동적으로 그룹화되고 그룹화 해제될 수 있다. 예를 들어, 도 3a를 참조하면, 구역 A는 두 구역의 재생 장치를 포함하는 구역 그룹을 형성하도록 구역 B와 그룹화될 수 있다. 다른 예시에서, 구역 A는 하나 이상의 다른 구역 C-I과 그룹화될 수 있다. 구역 A-I는 많은 방식으로 그룹화되고 그룹화 해제될 수 있다. 예를 들어, 구역 A-I 중 셋, 넷, 다섯 이상(예컨대, 전부)이 그룹화될 수 있다. 그룹화되는 경우, 개별 장치 및/또는 결합된 재생 장치의 구역은 이전에 참조된 미국 특허 제8,234,395호에 설명된 바와 같이 서로 동기로 오디오를 재생할 수 있다. 그룹화되고 결합된 장치는 위에서 논의되고 아래에서 더 자세하게 설명되는 것과 같이 트리거 이벤트에 응답하여 생길 수 있는, 휴대용 및 고정 재생 장치 사이의 연계의 예시적인 유형이다.
다양한 구현예에서, 환경 내 구역은 도 3a에 도시된 것처럼 "식당 + 주방"과 같은, 구역 그룹 내에서 구역의 이름의 조합 또는 구역 그룹 내의 구역의 디폴트 이름일 수 있는 특정 이름이 할당될 수 있다. 일부 실시예에서, 구역 그룹은 도 3a에도 도시된 것처럼, "Nick의 공간"과 같은 사용자에 의해 선택된 고유한 이름이 주어질 수 있다. "Nick의 공간"이라는 이름은 "주 침실"이라는 공간 이름과 같은 구역 그룹에 대한 이전 이름 위로 사용자에 의해 선정된 이름일 수 있다.
다시 도 2a를 참조하면, 일부 데이터는 재생 구역, 재생 장치(들) 및/또는 그것과 연관된 구역 그룹의 상태를 설명하도록 정기적으로 업데이트되고 사용되는 하나 이상 상태 변수로서 메모리(213)에 저장될 수 있다. 메모리(213)는 또한 장치 중 하나 이상이 시스템과 연관된 최신 데이터를 가지도록 장치에 따라 가끔 공유될 수 있는 미디어 재생 시스템(100)의 다른 장치의 상태와 연관된 데이터를 포함할 수 있다.
일부 실시예에서, 재생 장치(102)의 메모리(213)는 상태와 연관된 다양한 변수 유형의 인스턴스를 저장할 수 있다. 변수 인스턴스는 유형에 대응하는 식별자(예컨대, 테그)와 저장될 수 있다. 예를 들어, 일부 식별자는 구역의 재생 장치(들)을 식별하기 위한 제1 유형 "a1", 구역에서 결합될 수 있는 재생 장치(들)을 식별하기 위한 제2 유형 "b1", 구역이 속할 수 있는 그룹 구역을 식별하기 위한 제3 유형 "c1"일 수 있다. 도 1a에서 관련된 예시와 같이, 파티오와 연관된 식별자는 파티오가 특정 구역의 유일한 재생 장치이고 구역 그룹에 있지 않다는 것을 나타낼 수 있다. 거실과 연관된 식별자는 거실이 다른 구역과 그룹화되지 않았지만, 결합된 재생 장치(102a, 102b, 102j 및 102k)를 포함한다는 것을 나타낼 수 있다. 식당과 연관된 식별자는 식당이 식당+주방 그룹의 일부이고, 장치(103f 및 102i)가 결합됨을 나타낼 수 있다. 주방과 연관된 식별자는 식당+주방 구역 그룹의 일부가 되는 주방 덕에 동일하거나 비슷한 정보를 나타낼 수 있다. 다른 예시적인 구역 변수 및 식별자는 아래에서 설명된다.
또 다른 예시에서, MPS(100)는 도 3a에 도시된 것처럼, 영역과 연관된 식별자와 같은, 구역 및 구역 그룹의 다른 연계를 나타내는 변수 또는 식별자를 포함할 수 있다. 영역은 구역 그룹 내에 있지 않은 구역 및/또는 구역 그룹의 클러스터를 수반한다. 예를 들어, 도 3a는 "제1 영역"이라고 명명된 제1 영역과 "제2 영역"이라고 명명된 제2 영역을 도시한다. 제1 영역은 파티오, 서재, 식당, 주방 및 화장실의 구역 및 구역 그룹을 포함한다. 제2 영역은 화장실, Nick의 공간, 침실 및 거실의 구역 및 구역 그룹을 포함한다. 일 양상에서, 영역은 다른 클러스터의 하나 이상의 구역 및/또는 구역 그룹을 공유하는 구역 그룹 및/또는 구역의 클러스터에 적용하도록 사용될 수 있다. 이러한 측면에서, 그러한 영역은, 구역을 다른 구역 그룹과 공유하지 않는 구역 그룹과 다르다. 영역을 구현하기 위한 기법의 추가 예시는 예를 들어, 2017년 8월 21일 출원되고 제목이 "명칭에 기초한 공간 연계"인 미국 특허 출원 제15/682,506호 및 2007년 9월 11일 출원되고 제목이 "멀티 구역 미디어 시스템에서 그룹화 제어 및 조정"인 미국 특허 제8,483,853호에서 발견될 수 있다. 이러한 출원 각각은 그 전체가 참조로서 여기에 포함된다. 일부 실시예에서, MPS(100)는 영역을 구현하지 않을 수 있으며, 이 경우 시스템은 영역과 연관된 변수를 저장하지 않을 수 있다.
메모리(213)는 다른 데이터를 저장하도록 더 구성될 수 있다. 그러한 데이터는 재생 장치(또는 일부 다른 재생 장치(들))가 연관될 수 있는 재생 큐 또는 재생 장치(102)에 의해 접근 가능한 오디오 소스와 관련될 수 있다. 이하에서 설명되는 실시예에서, 메모리(213)는 음성 입력을 프로세싱하는 경우, 특정 VAS를 선택하기 위해 명령 데이터의 세트를 저장하도록 구성된다.
동작 동안, 도 1a의 환경에서 하나 이상의 재생 구역은 각각 상이한 오디오 컨텐츠를 재생할 수 있다. 예를 들어, 사용자는 파티오 구역에서 그릴에 굽고 재생 장치(102c)에 의해 재생되는 힙합 음악을 들을 수 있는 한편, 다른 사용자는 주방 구역에서 음식을 준비하고 재생 장치(102i)에 의해 재생되는 클래식 음악을 들을 수 있다. 다른 예시에서, 재생 구역은 다른 재생 구역과 동기화로 동일한 오디오 컨텐츠를 재생할 수 있다. 예를 들어, 사용자는 재생 장치(102n)가 파티오 구역에 있는 재생 장치(102c)에 의해 재생하고 있는 동일한 힙합 음악을 재생하고 있는 사무실 구역에 있을 수 있다. 이러한 경우에, 재생 장치(102c 및 102n)는 사용자가 다른 재생 구역 사이를 이동하면서 소리 내어 재생되고 있는 오디오 컨텐츠를 끊김 없이 (또는 적어도 실질적으로 끊김 없이) 즐길 수 있도록 동기화로 힙합 음악을 재생할 수 있다. 재생 구역 사이의 동기화는 이전에 참조된 미국 특허 제 8,234,395호에 설명되는 바와 같이, 재생 장치 중의 동기화와 비슷한 방식으로 달성될 수 있다.
위에서 제안되는 바와 같이, MPS(100)의 구역 구성은 동적으로 수정될 수 있다. 이와 같이, MPS(100)는 다수의 구성을 지원한다. 예를 들어, 사용자가 하나 이상의 재생 장치를 구역으로부터 또는 구역으로 물리적으로 이동하는 경우, MPS(100)는 변화(들)를 수용하도록 재구성될 수 있다. 예를 들어, 사용자가 재생 장치(102c)를 파티오 구역으로부터 사무실 구역으로 물리적으로 이동하는 경우, 사무실 구역은 재생 장치(102c 및 102n) 둘 다를 포함할 수 있다. 일부 경우에서, 사용자는 예를 들어, 컨트롤러 장치(104) 및/또는 음성 입력 중 하나를 사용하여, 사무실 구역에 있는 플레이어를 재명칭하고/거나 이동된 재생 장치(102c)를 사무실 구역과 페어링 또는 그룹화할 수 있다. 다른 예시로서, 하나 이상의 재생 장치가 이미 재생 구역이 아닌 집 환경에서 특정 장소로 이동되는 경우, 이동된 재생 장치(들)는 특정 공간에 대한 재생 장치와 연관되거나 재명칭될 수 있다.
또한, MPS(100)의 상이한 재생 구역은 동적으로 구역 그룹으로 조합되거나 개별 재생 구역으로 나누어질 수 있다. 예를 들어, 식당 구역과 주방 구역은 저녁 파티를 위해 구역 그룹으로 조합되어 재생 장치(102i 및 102l)가 동기로 오디오 컨텐츠를 렌더링할 수 있다. 다른 예시로서, 서재 구역 내 결합된 재생 장치는 (i) 텔레비전 구역과 (ii) 별도 청취 구역으로 나누어질 수 있다. 텔레비전 구역은 앞쪽 재생 장치(102b)를 포함할 수 있다. 청취 구역은 위에서 설명된 바와 같이, 그룹화, 페어링 또는 병합될 수 있는 오른쪽, 왼쪽 및 서브 재생 장치(102a, 102j 및 102k)를 포함할 수 있다. 서재 구역을 이러한 방식으로 나누는 것은 일 사용자가 거실 공간의 일 영역에 있는 청취 구역에서 음악을 듣도록 허용하고, 다른 사용자가 거실 공간의 다른 영역에서 텔레비전을 볼 수 있도록 허용할 수 있다. 관련된 예시에서, 사용자는 텔레비전 구역과 청취 구역으로 분리되기 이전에 서재 구역을 제어하도록 NMD(103a 또는 103b)(도 1b) 중 하나를 이용할 수 있다. 분리되면, 청취 구역은 예를 들어, NMD(103a)의 근처에 있는 사용자에 의해 제어될 수 있고, 텔레비전 구역은 예를 들어, NMD(103b)의 근처에 있는 사용자에 의해 제어될 수 있다. 그러나, 위에서 설명된 바와 같이, NMD(103) 중 임의의 것은 MPS(100)의 다양한 재생 및 다른 장치를 제어하도록 구성될 수 있다.
c. 예시적인 컨트롤러 장치
도 4a는 도 1a의 MPS(100)의 컨트롤러 장치(104) 중 선택된 하나의 일부 양상을 예시하는 기능 블록도이다. 그러한 컨트롤러 장치는 또한 여기서 "제어 장치" 또는 "컨트롤러"로서 지칭될 수 있다. 도 4a에 도시된 컨트롤러 장치는 컴포넌트를 포함할 수 있는데, 이는 일반적으로 프로세서(412), 프로그램 소프트웨어(414)를 저장하는 메모리(413), 적어도 하나의 네트워크 인터페이스(424) 및 하나 이상의 마이크로폰(422)과 같은, 위에서 설명된 네트워크 장치의 일부 컴포넌트와 유사하다. 일 예시에서, 컨트롤러 장치는 MPS(100)를 위한 전용 컨트롤러일 수 있다. 다른 예시에서, 제어 장치(300)는 예컨대 아이폰(iPhone)??, 아이패드(iPad)?? 또는 임의의 다른 스마트폰, 타블렛 또는 네트워크 장치(예컨대, PC 또는 맥(Mac)??과 같은 네트워킹된 컴퓨터)와 같은 미디어 재생 시스템 컨트롤러 어플리케이션 소프트웨어가 설치될 수 있는 네트워크 장치일 수 있다.
컨트롤러 장치(104)의 메모리(413)는 컨트롤러 어플리케이션 소프트웨어 및 시스템(100)의 사용자 및/또는 MPS(100)와 연관된 다른 데이터를 저장하도록 구성될 수 있다. 메모리(413)는 MPS(100)의 구성, 제어 및/또는 사용자 접근을 용이하게 하는 것과 같은, 일부 기능을 달성하도록 프로세서(412)에 의해 실행 가능한 소프트웨어(414)에서 명령어로 로드될 수 있다. 컨트롤러 장치(104)는 위에서 설명된 바와 같이 무선 인터페이스의 형태를 취할 수 있는 네트워크 인터페이스(424)를 통하여 다른 네트워크 장치와 통신하도록 구성될 수 있다.
일 예시에서, (예컨대, 상태 변수와 같은) 시스템 정보는 네트워크 인터페이스(424)를 통하여 컨트롤러 장치(104)와 다른 장치 사이에서 통신될 수 있다. 예를 들어, 컨트롤러 장치(104)는 재생 장치, NMD 또는 다른 네트워크 장치로부터 MPS(100)에 있는 재생 구역과 구역 그룹 구성을 수신할 수 있다. 마찬가지로, 컨트롤러 장치(104)는 네트워크 인터페이스(424)를 통하여 재생 장치 또는 다른 네트워크 장치로 그러한 시스템 정보를 전송할 수 있다. 일부 경우에서, 다른 네트워크 장치는 다른 컨트롤러 장치일 수 있다.
컨트롤러 장치(104)는 또한 네트워크 인터페이스(424)를 통하여 재생 장치로 음량 제어 및 오디오 재생 제어와 같은 재생 장치 제어 명령을 통신할 수 있다. 위에서 제안된 바와 같이, MPS(100)의 구성으로의 변화는 또한 컨트롤러 장치(104)를 사용하여 사용자에 의해 수행될 수 있다. 구성 변경은 다른 것들 중에서도 구역으로/으로부터 하나 이상의 재생 장치를 추가/제거하는 것, 구역 그룹으로/으로부터 하나 이상의 구역을 추가/제거하는 것, 결합 또는 병합된 재생 장치를 형성, 결합 또는 병합된 재생 장치로부터 하나 이상의 재생 장치를 분리하는 것을 포함할 수 있다.
도 4a에 도시된 바와 같이, 컨트롤러 장치(104)는 또한, 일반적으로 MPS(100)의 제어와 사용자 접근을 용이하게 하도록 구성되는 사용자 인터페이스를 포함한다. 사용자 인터페이스(440)는 도 4b와 4c에 도시되는 컨트롤러 인터페이스(440a 및 440b)와 같은 다양한 그래픽 컨트롤러 인터페이스를 제공하도록 구성되는 터치 스크린 디스플레이 또는 기타 물리적 인터페이스를 포함할 수 있다. 도 4b 및 4c를 함께 참조하면, 컨트롤러 인터페이스(440a 및 440b)는 재생 제어 영역(442), 재생 구역 영역(443), 재생 상태 영역(444), 재생 큐 영역(446) 및 소스 영역(448)을 포함한다. 도시된 바와 같이 사용자 인터페이스는 도 4a에서 도시되는 컨트롤러 장치와 같이, 네트워크 장치 상에서 제공되고 MPS(100)과 같은, 미디어 재생 시스템을 제어하도록 사용자에 의해 접근될 수 있는 인터페이스의 단순한 일 예시이다. 포맷, 스타일 및 상호작용 순서를 변동하는 다른 사용자 인터페이스가 하나 이상의 네트워크 장치 상에서 대안적으로 구현되어 미디어 재생 시스템으로 비슷한 제어 접근을 제공할 수 있다.
재생 제어 영역(442)(도 4b)은, 선택되는 경우, 선택된 재생 구역 또는 구역 그룹 내 재생 장치가 재생 또는 일시 정지, 빨리 감기, 뒤로 감기, 다음으로 스킵, 이전으로 스킵, 셔플(shuffle) 모드 시작/종료, 크로스 페이드 모드(cross fade mode) 시작/종료 등을 하도록 하는 (예컨대, 터치의 방식으로 또는 커서를 이용함으로써) 선택 가능한 아이콘을 포함할 수 있다. 재생 제어 영역(442)은 또한 선택되는 경우, 다른 가능성 중에서도 이퀄라이제이션 설정(equalization setting) 및/또는 재생 음량을 변경하는 선택 가능한 아이콘을 포함할 수 있다.
재생 구역 영역(443)(도 4c)은 MPS(100) 내에 있는 재생 구역의 표현(representation)을 포함할 수 있다. 재생 구역 영역(443)은 또한 도시된 바와 같이 식당+주방 구역 그룹과 같은 구역 그룹의 표현을 포함할 수 있다. 일부 실시예에서, 재생 구역의 그래픽적 표현은, 다른 가능성 중에서도, 결합된 구역의 생성, 구역 그룹의 생성, 구역 그룹의 분리 및 구역 그룹의 재명칭과 같은 MPS(100)에서의 재생 구역을 관리하거나 구성하기 위한 추가의 선택 가능한 아이콘을 띄우도록 선택 가능할 수 있다.
예를 들면, 도시된 바와 같이, "그룹" 아이콘이 재생 구역의 그래픽적 표현 각각 내에서 제공될 수 있다. 특정 구역의 그래픽적 표현 내에서 제공되는 "그룹" 아이콘은 특정 구역과 그룹화될 MPS(100) 내 하나 이상의 다른 구역을 선택하기 위한 옵션을 띄우도록 선택 가능할 수 있다. 그룹화 되면, 특정 구역과 그룹화된 구역 내 재생 장치는 특정 구역 내 재생 장치와 동기화로 오디오 컨텐츠를 재생하도록 구성될 것이다. 비슷하게, "그룹" 아이콘이 구역 그룹의 그래픽적 표현 내에서 제공될 수 있다. 이러한 경우에, "그룹" 아이콘은 구역 그룹으로부터 제거될 구역 그룹 내 하나 이상의 구역을 선택 해제하기 위한 옵션을 띄우도록 선택 가능할 수 있다. 사용자 인터페이스를 통하여 구역을 그룹화 및 그룹화 해제하기 위한 다른 상호 작용 및 구현도 가능하다. 재생 구역 영역(443)(도 4c)에서 재생 구역의 표현은 재생 구역 또는 구역 그룹 구성이 변경됨에 따라 동적으로 갱신될 수 있다.
재생 상태 영역(444)(도 4b)은 선택된 재생 구역 또는 구역 그룹에서 현재 재생되거나, 이전에 재생되었거나 다음에 재생하도록 스케줄링되는 오디오 컨텐츠의 그래픽적 표현을 포함할 수 있다. 선택된 재생 구역 또는 구역 그룹은 재생 구역 영역(443) 및/또는 재생 상태 영역(444) 내에서와 같이 컨트롤러 인터페이스 상에서 시각적으로 구분될 수 있다. 그래픽적 표현은 트랙 타이틀(track title), 아티스트 이름, 앨범 이름, 앨범 년도, 트랙 길이 및/또는 컨트롤러 인터페이스를 통하여 MPS(100)를 제어하는 경우, 사용자가 알기에 유용할 수 있는 다른 관련 정보를 포함할 수 있다.
재생 큐 영역(446)은 선택된 재생 구역 또는 구역 그룹과 연관된 재생 큐 내의 오디오 컨텐츠의 그래픽적 표현을 포함할 수 있다. 일부 실시예에서, 각각의 재생 구역 또는 구역 그룹은 재생 구역 또는 구역 그룹에 의한 재생을 위한 0 개 이상 오디오 항목에 대응하는 정보를 포함하는 재생 큐와 연관될 수 있다. 예를 들어, 재생 큐에 있는 각각의 오디오 항목은 이후 재생 장치에 의해 재생될 수 있는 로컬 오디오 컨텐츠 소스 또는 네트워킹된 오디오 컨텐츠 소스로부터 오디오 항목을 탐색 및/또는 검색하도록 재생 구역 또는 구역 그룹에서 재생 장치에 의해 사용될 수 있는 인터넷 식별자(URI), 자료 위치 주소(URL), 또는 일부 다른 식별자를 포함할 수 있다.
일 예시에서, 플레이리스트는 재생 큐에 추가될 수 있으며, 이러한 경우에 플레이리스트 내 각 오디오 항목에 대응하는 정보는 재생 큐에 추가될 수 있다. 다른 예시에서, 재생 큐에 있는 오디오 항목은 플레이리스트로서 저장될 수 있다. 추가적인 예시에서, 재생 구역 또는 구역 그룹이 재생 기간을 가지는 개별 오디오 항목 보다는 달리 멈출 때까지 지속적으로 재생할 수 있는 인터넷 라디오와 같은, 계속해서 스트리밍되는 오디오 컨텐츠를 재생하는 경우, 재생 큐는 비어 있거나 차 있더라도, "사용되지 않음"일 수 있다. 대안적인 실시예에서, 재생 큐는 재생 구역 또는 구역 그룹이 그러한 아이템을 재생하고 있는 경우, 인터넷 라디오 및/또는 다른 스트리밍 오디오 컨텐츠 항목을 포함할 수 있고, "사용 중"일 수 있다. 다른 예시도 또한 가능하다.
재생 구역 또는 구역 그룹이 "그룹화" 또는 "그룹화 해제"되는 경우, 영향을 받는 재생 구역 또는 구역 그룹과 연관되는 재생 큐는 정리되거나 재연관될 수 있다. 예를 들어, 제1 재생 큐를 포함하는 제1 재생 구역이 제2 재생 큐를 포함하는 제2 재생 구역과 그룹화되면, 규정된 구역 그룹은 처음에는 비어 있고, (제2 재생 구역이 제1 재생 구역으로 추가된 경우와 같이) 제1 재생 큐로부터의 오디오 항목을 포함하고, (제1 재생 구역이 제1 재생 구역으로 추가되는 경우와 같이) 제2 재생 큐로부터의 오디오 항목 또는 제1 및 제2 재생 큐 둘 다로부터의 오디오 항목의 조합을 포함하는 연관된 재생 큐를 가질 수 있다. 차후에, 규정된 구역 그룹이 그룹화 해제되는 경우, 결과적인 제1 재생 구역은 이전의 제1 재생 큐와 재연관될 수 있거나, 비어 있거나 규정된 구역 그룹이 그룹화 해제되기 이전에 규정된 구역 그룹과 연관된 재생 큐로부터 오디오 항목을 포함하는 새로운 재생 큐와 연관될 수 있다. 유사하게, 결과적인 제2 재생 구역은 이전의 제2 재생 큐와 재연관될 수 있거나, 비어 있거나 규정된 구역 그룹이 그룹화 해제되기 이전에 규정된 구역 그룹과 연관된 재생 큐로부터 오디오 항목을 포함하는 새로운 재생 큐와 연관될 수 있다. 다른 예시도 가능하다.
계속 도 4b 및 4c를 참조하면, 재생 큐 영역(446)(도 4b) 내 오디오 컨텐츠의 그래픽적 표현은 트랙 타이틀, 아티스트 이름, 트랙 길이 및/또는 재생 큐에서 오디오 컨텐츠와 연관되는 다른 관련 정보를 포함할 수 있다. 일 예시에서, 오디오 컨텐츠의 그래픽적 표현은 재생 큐 및/또는 재생 큐에서 표현되는 오디오 컨텐츠를 관리 및/또는 조작하도록 추가의 선택 가능한 아이콘을 띄우도록 선택 가능할 수 있다. 예를 들어, 표현되는 오디오 컨텐츠는 다른 가능성 중에서도 재생 큐로부터 제거되거나, 재생 큐 내에서 다른 위치로 이동되거나 임의의 현재 오디오 컨텐츠 이후 또는 즉시 재생되도록 선택될 수 있다. 재생 구역 또는 구역 그룹과 연관된 재생 큐는 재생 구역 또는 구역 그룹 내 하나 이상의 재생 장치, 재생 구역 또는 구역 그룹에 있지 않은 재생 장치 및/또는 일부 다른 지정된 장치 상의 메모리에 저장될 수 있다. 그러한 재생 큐의 재생은 아마도 순차적이거나 무작위 순서로 큐의 미디어 항목을 재생하는 하나 이상의 재생 장치를 수반할 수 있다.
소스 영역(448)은 선택 가능한 오디오 컨텐츠 소스 및/또는 대응하는 VAS와 연관된 선택 가능한 음성 보조원(assistant)의 그래픽적 표현을 포함할 수 있다. VAS는 선택적으로 할당될 수 있다. 일부 예시에서, 아마존의 알렉사, 마이크로소프트의 콜타나 등과 같은 다수의 VAS는 동일한 NMD에 의해 작동될 수 있다. 일부 실시예에서, 사용자는 하나 이상의 NMD에 배타적으로 VAS를 할당할 수 있다. 예를 들어, 사용자는 도 1a에 도시된 거실에 있는 NMD(102a 및 102b) 중 하나 또는 둘 다에 제1 VAS를, 그리고 주방에 있는 NMD(103)에 제2 VAS를 할당할 수 있다. 다른 예시도 가능하다.
d. 예시적인 오디오 컨텐츠 소스
소스 영역(448)에 있는 오디오 소스는 오디오 컨텐츠가 선택된 재생 구역 또는 구역 그룹에 의해 검색되고 재생될 수 있는 오디오 컨텐츠 소스일 수 있다. 구역 또는 구역 그룹 내 하나 이상의 재생 장치는 다양한 이용 가능한 오디오 컨텐츠 소스로부터 (예컨대, 오디오 컨텐츠에 대하여 대응하는 URI 또는 URL에 따라) 재생 오디오 컨텐츠를 검색하도록 구성될 수 있다. 일 예시에서, 오디오 컨텐츠는 대응하는 오디오 컨텐츠 소스로부터 직접적으로 (예컨대, 라인인 연결을 통하여) 재생 장치에 의해 검색될 수 있다. 다른 예시에서, 오디오 컨텐츠는 하나 이상의 다른 재생 장치 또는 네트워크 장치를 통하여 네트워크 상에서 재생 장치로 제공될 수 있다. 이하에서 더 자세하게 설명된 바와 같이, 일부 실시예에서 오디오 컨텐츠는 하나 이상의 미디어 컨텐츠 서비스에 의해 제공될 수 있다.
예시적인 오디오 컨텐츠 소스는 다른 가능성 중에서도, 도 1의 MPS(100)와 같은 미디어 재생 시스템 내 하나 이상의 재생 장치의 메모리, 하나 이상의 네트워크 장치 상의 로컬 음악 라이브러리(예컨대, 컨트롤러 장치, 네트워크 가능한 개인 컴퓨터, 또는 네트워크 접속 기반 파일 서버(NAS)), 인터넷을 통하여 오디오 컨텐츠를 제공하는 스트리밍 오디오 서비스(예컨대, 클라우드 기반 음악 서비스) 또는 재생 장치 또는 네트워크 장치 상에서 라인인 입력 연결을 통하여 미디어 재생 시스템으로 연결되는 오디오 소스를 포함할 수 있다.
일부 실시예에서, 오디오 컨텐츠 소스는 도 1a의 MPS(100)과 같은 미디어 재생 시스템으로부터 추가 또는 제거될 수 있다. 일 예시에서, 하나 이상의 오디오 컨텐츠 소스가 추가, 제거 또는 갱신될 때마다 오디오 항목의 인덱싱(indexing)이 수행될 수 있다. 오디오 항목의 인덱싱은 미디어 재생 시스템 내 재생 장치에 의해 액세스 가능한 네트워크 상에서 공유되는 모든 폴더/디렉토리에서 식별 가능한 오디오 항목에 대하여 스캐닝하는 것 및 메타데이터(예컨대, 다른 것들 중에서도 타이틀, 아티스트, 앨범, 트랙 길이)와 탐색되는 각각의 식별 가능한 오디오 항목에 대한 URI 또는 URL과 같은 다른 연관되는 정보를 포함하는 오디오 컨텐츠 데이터베이스를 생성 또는 갱신하는 것을 수반할 수 있다. 오디오 컨텐츠 소스를 관리 및 유지하기 위한 다른 예시도 가능할 수 있다.
e. 예시적인 네트워크 마이크로폰 장치
도 5는 본 개시의 실시예 따라 구성된 NMD(503)를 도시하는 기능적 블록도이다. NMD(503)는 음성 캡쳐 컴포넌트("VCC")(560), 각각 사용 가능하게 VCC(560)와 결합된 복수의 식별 엔진(569) 및 적어도 하나의 음성 추출기(572)를 포함한다. NMD(503)는 위에서 설명한 마이크로폰(222) 및 적어도 하나의 네트워크 인터페이스(224)를 더 포함하고, 명확성을 위해 도 5에 도시되지 않은 오디오 증폭기, 스피커, 사용자 인터페이스 등과 같은, 다른 컴포넌트도 포함할 수 있다.
NMD(503)의 마이크로폰(222)은 NMD(503)의 환경으로부터 VCC(560)로 검출된 사운드 SD를 제공하도록 구성된다. 검출된 사운드 SD는 하나 이상의 아날로그 또는 디지털 신호의 형태를 취할 수 있다. 예시적인 구현예에서, 검출된 사운드 SD는 VCC로 피드되는, 각 채널(562)과 연관된 복수의 신호로 구성될 수 있다.
각 채널(562)은 특정 마이크로폰(222)에 대응할 수 있다. 예를 들어, 6개 마이크로폰을 가지는 NMD는 6 개의 대응하는 채널을 가질 수 있다. 검출된 사운드 SD의 각 채널은 다른 채널과 일부 유사성을 포함할 수 있지만, 일부 고려사항과 다를 수 있고, 이는 다른 채널의 마이크로폰에 관한 소정의 채널의 대응하는 마이크로폰의 위치로 인한 것일 수 있다. 예를 들어, 검출된 사운드 SD의 채널 중 하나 이상은 다른 채널보다 배경 잡음에 대한 회화의 더 큰 신호 대 잡음비("SNR")를 가질 수 있다.
도 5에 더 도시된 바와 같이, VCC(560)는 AEC(564), 공간 프로세서(566) 및 하나 이상의 버퍼(568)를 포함한다. 동작에서, AEC(564)는 검출된 사운드 SD를 수신하고 필터링하거나 아니면 사운드를 프로세싱하여, 에코를 억제하고/거나 검출된 사운드 SD의 품질을 개선한다. 프로세싱된 사운드는 이후, 공간 프로세서(566)로 보내질 수 있다.
공간 프로세서(566)는 보통 검출된 사운드 SD를 분석하고 사운드의 진폭(예컨대, 데시벨 레벨), 주파수 스펙트럼, 방향성 등과 같은 일부 특성을 식별하도록 구성된다. 일 측면에서, 공간 프로세서(566)는 위에서 논의된 바와 같이, 검출된 사운드SD의 구성 채널(562) 내 유사성과 차이에 기초하여 잠재적인 사용자 회화로부터 검출된 사운드 SD에 있는 주위 소음을 필터링 또는 억제하는 것을 도울 수 있다. 일 가능성에서, 공간 프로세서(566)는 회화를 다른 사운드로부터 구별하는 메트릭스를 모니터링할 수 있다. 그러한 메트릭스는 예를 들어, 배경 잡음에 관한 회화 대역 내의 에너지 및 가장 흔한 배경 잡음에서 보다 회화에서 보통 낮은 회화 대역 내의 엔트로피 - 스펙트럼 구조의 측정 -를 포함할 수 있다. 일부 구현예에서, 공간 프로세서(566)는 회화 존재 가능성을 결정하도록 구성될 수 있고, 그러한 기능의 예시는 전체 내용이 참조로서 여기에 포함되는 2018년 5월 18일 출원되고 제목이 "소음 억제 회화 검출을 위한 선형 필터링"인 미국 특허 출원 제15/984,073호에 개시된다.
동작에서, 하나 이상의 버퍼(568) - 이 중 하나 이상은 메모리의 일부 또는 메모리에서 독립된 것임 -는 검출된 사운드 SD에 대응하는 데이터를 캡쳐한다. 더 구체적으로, 하나 이상의 버퍼(568)는 업스트림 AEC(564) 및 공간 프로세서(566)에 의해 프로세싱된 검출된 사운드 데이터를 캡쳐한다.
일반적으로, 검출된 사운드 데이터는 마이크로폰(222)에 의해 검출된 사운드의 디지털 표현(즉, 사운드 데이터 스트림)SDS을 형성한다. 실시에서, 사운드 데이터 스트림 SDS은 다양한 형태를 취한다. 일 가능성으로서, 사운드 데이터 스트림 SDS은 각각 하나 이상의 사운드 샘플을 포함할 수 있는 프레임으로 구성될 수 있다. 프레임은 NMD(503)의 식별 엔진(569) 및 음성 추출기(572)와 같은, 다운스트림 컴포넌트에 의한 추가 처리를 위해 하나 이상의 버퍼(568)로부터 스트리밍(즉, 판독됨)될 수 있다.
일부 구현예에서, 적어도 하나의 버퍼(568)는 슬라이딩 윈도우 접근법을 이용하여 검출된 사운드 데이터를 캡쳐하며, 여기서 소정 양의 가장 최근에 캡쳐된 검출된 사운드 데이터가 적어도 하나의 버퍼(568)에서 유지되는 한편, 오래된 검출된 사운드 데이터는, 그들이 윈도우의 범위 밖에 있는 경우 덮어쓰여진다(overwrite). 예를 들어, 적어도 하나의 버퍼(568)는 소정의 시간에서 사운드 표본의 20 프레임을 임시로 유지하고, 만료 기간 이후에 가장 오래된 프레임을 버리고, 이후 사운드 표본의 19개의 이전 프레임에 더해지는 새로운 프레임을 캡쳐할 수 있다.
실시에서, 사운드 데이터 스트림 SDS이 프레임으로 구성되는 경우, 프레임은 다양한 특성을 가지는 다양한 형태를 취할 수 있다. 일 가능성으로서, 프레임은 샘플링 레이트(sampling rate)(예컨대, 44,100Hz)에 기초할 수 있는 일부 해상도(예컨대, 16 비트의 해상도)를 가지는 오디오 프레임의 형태를 취할 수 있다. 추가적으로 또는 대안적으로, 프레임은 다른 예시 중에서도, 주파수 응답, 전력 입력 레벨, SNR, 마이크로폰 채널 식별 및/또는 소정의 사운드 표본의 다른 정보를 나타내는 메타 데이터와 같이, 프레임이 정의하는 소정의 사운드 표본에 대응하는 정보를 포함할 수 있다. 따라서 일부 실시예에서, 프레임은 사운드의 부분(예컨대, 소정의 사운드 표본 중 하나 이상의 샘플)과 사운드의 부분에 대한 메타 데이터를 포함할 수 있다. 다른 실시예에서, 프레임은 사운드의 부분(예컨대, 소정의 사운드 표본 중 하나 이상의 샘플) 또는 사운드의 부분에 대한 메타 데이터만을 포함할 수 있다.
임의의 경우에서, NMD(503)의 다운스트림 컴포넌트는 사운드 데이터 스트림 SDS를 프로세싱할 수 있다. 예를 들어, 식별 엔진(569)은 하나 이상의 식별 알고리즘을 사운드 데이터 스트림 SDS(예컨대, 스트리밍된 사운드 프레임)에 적용하여 검출된 사운드 SD에서 잠재적인 활성 단어를 스폿하도록 구성될 수 있다. 식별 엔진(569)은 도 7에 관하여 이하에서 더 자세하게 설명된 바와 같이 키워드 스포터(576), 제1 활성 단어 엔진(570a), 제2 활성 단어 엔진(570b) 및 선택적으로 다른 엔진(571a)을 포함한다. 식별 엔진(569)이 잠재적인 활성 단어를 스폿하는 경우, 식별 엔진(569) 중 하나 이상은 "활성 단어 이벤트"("활성 단어 트리거"로도 지칭됨)의 표시를 음성 추출기(572)에 제공할 수 있다.
활성 단어 이벤트에 응답하여 (예를 들어, 활성 단어 이벤트를 나타내는 식별 엔진(569)로부터의 신호에 응답하여), 음성 추출기(572)는 사운드 데이터 스트림 SDS을 수신하고 포맷(예컨대, 패킷화)하도록 구성된다. 예를 들어, 음성 추출기(572)는 사운드 데이터 스트림 SDS의 프레임을 메시지로 패킷화한다. 음성 추출기(572)는 네트워크 인터페이스(218)를 통하여 VAS(190)(도 1b)와 같은 원격 VAS로 실시간으로 또는 거의 실시간으로 음성 입력을 포함할 수 있는 이러한 메시지MV를 전송하거나 스트리밍한다.
VAS는 NMD(503)로부터 송신된 메시지 MV에 포함된 사운드 데이터 스트림 SDS를 프로세싱하도록 구성된다. 보다 구체적으로, VAS는 사운드 데이터 스트림 SDS에 기초하여 음성 입력을 식별하도록 구성된다. 도 6a를 참조하면, 음성 입력(680)은 활성 단어 부분(680a) 및 발화 부분(680b)을 포함할 수 있다. 활성 단어 부분(680a)은 활성 단어 이벤트를 일으킨 검출된 사운드에 대응한다. 예를 들어, 활성 단어 부분(680a)은 식별 엔진(569)으로 하여금 활성 단어 이벤트의 표시를 음성 추출기(572)로 제공하도록 한 검출된 사운드에 대응한다. 발화 부분(680b)은 활성 단어 부분(680a)에 이어 사용자 요청을 잠재적으로 포함하는 검출된 사운드에 대응한다.
예시와 같이, 도 6b는 예시적인 제1 사운드 표본을 도시한다. 이러한 예시에서, 사운드 표본은 도 6a의 스포팅된 활성 단어(680a)와 연관된 사운드 데이터 스트림 SDS(예컨대, 하나 이상의 오디오 프레임)에 대응한다. 예시된 바와 같이, 예시적인 제1 사운드 표본은 (i) 프리롤 부분으로 지칭될 수 있는 활성 단어가 언급되기 직전(시간 t0와 t1 사이), (ii) 활성 미터 부분으로 지칭될 수 있는 활성 단어가 언급되는 동안(t1과 t2 사이) 및/또는 (iii) 포스트 롤 위치로 지칭될 수 있는 활성 단어가 언급된 이후(t2와 t3 사이)에 재생 장치(102i)의 환경에서 검출된 사운드를 포함한다. 다른 사운드 표본도 가능하다.
보통, VAS는 활성 단어의 존재를 입증하도록 사운드 데이터 스트림 SDS 내의 활성 단어 부분(680a)을 먼저 프로세싱할 수 있다. 일부 경우에서, VAS는 활성 단어 부분(680a)이 거짓 활성 단어(예를 들어, "알렉사"가 타겟 활성 단어인 경우, 단어 "일렉션")를 포함한다고 결정할 수 있다. 그러한 발생에서, VAS는 NMD(503)(도 5)로 NMD(503)에 대한 표시와 응답을 송신하여 사운드 데이터의 추출을 중단시키고, 이는 음성 추출기(572)로 하여금 VAS로의 검출된 사운드 데이터의 추가 스트리밍을 중지하도록 할 수 있다. 식별 엔진(569)(예컨대, 키워드 스포터(576)) 중 하나 이상은 다른 활성 단어 이벤트로 이어지는 다른 잠재적 활성 단어까지 사운드 표본 모니터링을 계속하거나 재개할 수 있다. 일부 구현예에서, VAS는 활성 단어 부분(680a)을 프로세싱하거나 수신하지 않을 수 있지만 대신 발화 부분(680b)만을 프로세싱한다.
임의의 경우에서, VAS는 검출된 사운드 데이터에서 임의의 단어의 존재를 식별하고, 이러한 단어로부터 근본적인 의도를 결정하도록 발화 위치(680b)를 프로세싱한다. 단어는 일부 명령과 (제1 키워드(684a) 및 제2 키워드(684b)로서 도 6a에서 개별적으로 식별되는) 일부 키워드(684)에 대응할 수 있다. 키워드는 예를 들어, MPS(100) 내 특정 장치 또는 그룹을 식별하는 음성 입력(680)에 있는 단어일 수 있다. 예를 들어, 예시된 예시에서, 키워드(684)는 거실과 식당(도 1a)과 같은, 음악이 재생될 하나 이상의 구역을 식별하는 하나 이상의 단어일 수 있다.
단어의 의도를 결정하기 위해, VAS는 보통 MPS(100)의 하나 이상의 데이터베이스(도시되지 않음) 및 또는 VAS(도시되지 않음)와 연관된 하나 이상의 데이터베이스와 통신한다. 그러한 데이터베이스는 자연 언어 처리 및/또는 다른 처리를 위한 다양한 사용자 데이터, 분석 및 기타 정보를 저장할 수 있다. 일부 구현예에서, 그러한 데이터베이스는 음성 입력 프로세싱에 기초하여 뉴럴 네트워크를 위한 피드백 또는 적응 학습을 위해 업데이트될 수 있다. 일부 경우에서, 발화 부분(680b)은 도 6a에 도시된 것처럼, 사용자에 의해 언급되는 단어 사이에서 검출된 정지와 같은 추가적 정보(예를 들어, 비-회화 기간)를 포함할 수 있다. 정지는 분리된 명령, 키워드 또는 발화 부분(680b) 내에서 사용자에 의해 언급된 다른 정보의 위치를 경계 지을 수 있다.
일부 명령 기준에 기초하여, VAS는 명령(682)과 같은, 음성 입력 내 하나 이상의 명령을 식별하는 결과로서 동작을 취할 수 있다. 명령 기준은 다른 가능성 중에서도, 음성 입력 내의 일부 키워드의 포함에 기초될 수 있다. 추가적으로 또는 대안적으로, 명령에 대한 명령 기준은 하나 이상의 특정 명령의 식별과 함께 하나 이상의 제어 상태 및/또는 구역 상태 변수의 식별을 수반할 수 있다. 제어 상태 변수는 예를 들어, 음량의 레벨, 하나 이상의 장치와 연관된 큐 및 장치가 큐를 재생, 정지 등을 하는지 여부와 같은 재생 상태를 식별하는 지표를 포함할 수 있다. 구역 상태 변수는 예를 들어, 있다면, 구역 플레이어가 그룹화됨을 식별하는 지표를 포함할 수 있다.
음성 입력을 프로세싱한 이후, VAS는 음성 입력으로부터 결정된 의도에 기초하여 하나 이상의 동작을 수행하기 위한 명령어를 가지고 MPS(100)로 응답을 전송할 수 있다. 예를 들어, 음성 입력에 기초하여, VAS는 MPS(100)가 다른 동작 중에서도, 재생 장치(102) 중 하나 이상을 재생하는 것을 시작하고, 이러한 장치 중 하나 이상을 제어(예컨대, 음량을 높임/낮춤, 장치를 그룹화/그룹화 해제 등)하고, 일부 스마트 장치를 끄고 켜도록 지시할 수 있다. VAS로부터 응답을 수신한 이후, NMD(503)의 식별 엔진(569) 중 하나 이상은 위에서 논의된 바와 같이, 다른 잠재적인 활성 단어를 스폿할 때까지, 사운드 데이터 스트림 SDS을 모니터링하는 것을 계속하거나 재개할 수 있다.
도 5를 다시 참조하면, 복수 VAS 구현예에서, NMD(503)는 VAS 셀렉터(574)(파선으로 도시됨)를 포함할 수 있으며, 이는 소정의 활성 단어가 제1 활성 단어 엔진(570a), 제2 활성 단어 엔진(570b) 또는 추가적인 활성 단어 엔진(571)과 같은 특정 활성 단어 엔진에 의해 식별되는 경우, 음성 추출기의 추출과 적절한 VAS로의 사운드 데이터 스트림 SDS의 전파를 디렉트하도록 일반적으로 구성된다. 그러한 구현예에서, NMD(503)는 특정 VAS에 의해 각각 서포트되는 복수의 상이한 활성 단어 엔진 및/또는 음성 추출기를 포함할 수 있다. 상기 논의와 유사하게, 각 활성 단어 엔진은 하나 이상의 버퍼(568)로부터 사운드 데이터 스트림 SDS을 입력으로서 수신하고, 식별 알고리즘을 적용하여 적절한 VAS에 대한 활성 단어 트리거를 일으키도록 구성될 수 있다. 따라서, 일 예시로서, 제1 활성 단어 엔진(570a)은 활성 단어 "알렉사"를 식별하고 "알렉사"가 스폿되는 경우, NMD(503)로 하여금 아마존 VAS를 적용하도록 구성될 수 있다. 다른 예시로서, 제2 활성 단어 엔진(570b)은 활성 단어 "오케이, 구글"을 식별하고, "오케이, 구글"이 스폿되는 경우, NMD(503)로 하여금 구글 VAS를 적용하도록 구성될 수 있다. 단일 VAS 구현에서, VAS 셀렉터(574)는 생략될 수 있다.
추가적 또는 교대하는 구현예에서, NMD(503)는 NMD(503)가 원격 VAS의 지원없이 동작할 수 있도록 하는 다른 음성 입력 식별 엔진(571)(파선으로 도시됨)을 포함할 수 있다. 일 예시로서, 그러한 엔진은 검출된 사운드에서 일부 명령(예컨대, "재생", "정지", "켜" 등) 및/또는 소정의 재생 장치에 할당된 고유한 명칭(예컨대, "책장", "파티오", "사무실" 등)과 같은 일부 키워드 또는 어구를 식별할 수 있다. 이러한 명령, 키워드 및/또는 어구 중 하나 이상을 식별하는 것에 응답하여, NMD(503)는 오디오 처리 컴포넌트(216)(도 2a)로 하여금 하나 이상의 동작을 수행하도록 하는 신호(도 5에서 도시되지 않음)를 통신할 수 있다. 예를 들어, 사용자가 "헤이, 소노스. 사무실에서 음악을 멈춰"라고 말하는 경우, NMD(503)는 직접적이거나 간접적으로, 사무실 장치(102n)로 하여금 오디오 재생을 멈추도록 하는 MPS(100)의 하나 이상의 다른 장치를 통하여, 사무실 재생 장치(102n)로 신호를 통신할 수 있다. 원격 VAS로부터 지원에 대한 요구를 감소하거나 제거하는 것은 원격으로 음성 입력을 프로세싱하는 경우, 발생할 수 있는 지연 시간을 감소할 수 있다. 일부 경우에서, 이용된 식별 알고리즘은 이전의 활성 단어 없이 언급되는 명령을 식별하도록 구성될 수 있다. 예를 들어, 위의 예시에서, NMD(503)는 사용자가 "헤이, 소노스" 또는 다른 활성 단어를 먼저 말하지 않으면서 사무실에서 음악을 멈추도록 이벤트를 트리거하는 식별 알고리즘을 이용할 수 있다.
III. 활성 단어의 2 단계 검출을 위한 예시적인 시스템 및 방법.
도 5에서 도시된 바와 같이, NMD(503)의 식별 엔진(569)은 제1 및 제2 활성 단어 엔진(570a 및 570b)의 업스트림인 키워드 스포터(576) 및 위에서 논의된 다른 음성 입력 식별 엔진(571)을 포함한다. 동작에서, 사운드 데이트 스트림 SDS은 VCC(560)에서 키워드 스포터(576)로 보내진다. 키워드 스포터(576)는 사운드 데이터 스트림 SDS을 분석하여 활성 단어 또는 명령과 같은 키워드를 검출한다. 이하에서 더 자세히 설명되는 바와 같이, 일부 실시예에서, 키워드 스포터(576)는 사운드 데이터 스트림 SDS 내 후보 키워드를 식별한다. 사운드 데이터 스트림 SDS 내 하나 이상의 키워드 또는 후보 키워드를 스포팅하는 것에 응답하여, 키워드 스포터(576)는 또한 적절한 출력을 선택하여 추가 프로세싱을 위한 사운드 데이터 스트림 SDS를 제공한다. 예시된 바와 같이, 키워드 스포터(576)는 로컬 장치 기능을 위해 구성되는 제1 활성 단어 엔진(570a), 제2 활성 단어 엔진(570b) 및/또는 다른 엔진(571)으로 사운드 데이터 스트림 SDS을 보낼 수 있다. 일부 실시예에서, 출력 목적지는 사운드 데이터 스트림 SDS에서 키워드 스포터(576)를 통하여 스폿된 키워드에 기초하여 결정된다.
일부 실시예에서, 키워드 스포터(576)는 사운드 데이터 스트림 SDS 상의 제1 알고리즘을 수행하여 음성 입력에서 예비 또는 후보 활성 단어를 식별할 수 있다. 제1 알고리즘은 제1 및/또는 제2 활성 단어 엔진(570a 및 570b)에 의해 사용되는 다운스트림 알고리즘보다 연산적으로 덜 복잡하고/거나 메모리를 덜 소비할 수 있다. 일부 예시에서, 제1 알고리즘은 음성 입력이 "알렉사", "오케이, 구글" 및 "헤이, 시리"와 같은 복수의 가능한 활성 단어 중에서 하나의 활성 단어를 포함하는지 여부를 결정하는 데 사용된다.
일부 실시예에서, 키워드 스포터(576)는 사운드 데이터 스트림 SDS에서 후보 활성 단어에 범위 또는 확률 스코어를 할당하도록 구성된다. 예를 들어, 제1 알고리즘은, "오케이, 구글"이 후보 또는 예비 활성 단어로서 식별될 수 있는 경우에, 활성 단어 "오케이, 구글"이 사운드 데이터 스트림 SDS에서 검출된 80% 확률을 나타낼 수 있다. 일부 실시예에서, 식별된 후보 활성 단어는 일부 최소 임계값 확률 스코어를 요구한다. 예를 들어, 60% 또는 더 큰 확률로 식별된 활성 단어는 후보 활성 단어로서 식별될 수 있는 한편, 60% 확률 미만으로 식별된 활성 단어는 후보 활성 단어로서 식별되지 않을 수 있다. 특정 임계값은 예를 들어 50%, 60%, 70%, 80% 또는 90% 확률보다 더 큰, 다양한 실시예에서, 변동될 수 있다. 일부 실시예에서, 단일 사운드 데이터 스트림 SDS 내에서 두 가지 상이한 활성 단어는 각각 확률 스코어 또는 범위가 할당될 수 있어, 각각이 후보 활성 단어로서 식별된다.
키워드 스포터(576)에 의해 이용된 제1 알고리즘은 현재 알려진 또는 나중에 개발되는, 다양한 키워드 스포팅 알고리즘 또는 그것의 변형을 포함할 수 있다. 일부 실시예에서, 제1 알고리즘은 키워드 스포팅에 대한 심층 뉴럴 네트워크(DNN), 중첩형 뉴럴 네트워크(CNN) 또는 반복형 뉴럴 네트워크(RNN)과 같은 뉴럴 네트워크를 사용하여 많은 양의 키워드 특정 트레이닝 데이터에 기초하여 키워드를 모델링한다. 일부 실시예에서, 키워드 스포터(576)에 의해 활용되는 뉴럴 네트워크는 압축되어 뉴럴 네트워크에 대한 연산적 복잡성 및/또는 메모리 요구의 실질적인 감소를 달성한다. 이는 뉴럴 네트워크가 지나친 전력 또는 메모리 소비 없이 NMD 또는 재생 장치 상에 로컬로 저장될 수 있게 한다. 활성 단어 검출에 대한 뉴럴 네트워크의 압축에 관하여 추가적 세부사항은 도 8-10에 대하여 이하에서 설명된다.
키워드 스포터(576)를 통한 활성 단어의 예비 검출에 기초하여, 사운드 데이터 스트림 SDS이 제1 활성 단어 엔진(570a) 또는 제2 활성 단어 엔진(570b)과 같은 적절한 활성 단어 엔진으로 보내질 수 있거나, 음성 입력이 로컬 장치 기능을 위해 구성된 다른 엔진(571)으로 보내질 수 있다. 일부 실시예에서, 제1 및 제2 활성 단어 엔진(570a 및 570b)은 상이한 음성 지원 서비스에 연관될 수 있다. 예를 들어, 제1 활성 단어 엔진(570a)은 아마존 음성 지원 서비스와 연관될 수 있고, 제2 활성 단어 엔진(570b)는 구글 음성 지원 서비스와 연관될 수 있다. 여기에 도시되지 않은 또 다른 활성 단어 엔진은 예를 들어, 애플 음성 서비스 등과 연관된 제3 활성 단어 엔진을 포함할 수 있다. 이러한 활성 단어 엔진 각각은 키워드 스포터(576)에 의한 결정에 응답하여 인에이블(예컨대, 전력 공급) 및 디세이블(예컨대, 전력 차단)될 수 있다.
결과로서, 특정 활성 단어 엔진은 키워드 스포터(576)에 의해 선택되는 경우에만 인에이블 및 활성화될 수 있다.
활성 단어 엔진(570a 및 570b) 각각은 키워드 스포터(576)로부터 수신된 사운드 데이터 스트림 SDS를 분석하여 확인된 활성 단어를 검출하도록 구성된다. 확인된 활성 단어는 키워드 스포터(576)에 의해 이전에 식별된 동일한 활성 단어일 수 있다. 일부 실시예에서, (어떤 것이 선택되었는지에 따라) 제1 또는 제2 활성 단어 엔진(570a 또는 570b)은 보다 높은 정확성을 가지고, 따라서 검출된 활성 단어에서 보다 높은 신뢰성을 가진다. 제1 및 제2 활성 단어 엔진(570a 및 570b)은 확인된 활성 단어를 검출하기 위해 연산적으로 더 집약적인 알고리즘을 사용할 수 있다. 일 예시에서, 아마존 음성 서비스와 연관되는 키워드 스포터(576)는 "알렉사"의 후보 활성 단어를 식별하고 이후, 음성 입력의 추가 프로세싱을 위해 제1 활성 단어 엔진(570a)을 선택한다. 이후, 제1 활성 단어 엔진(570a)은 음성 입력을 분석하여 음성 입력에서 활성 단어 "알렉사"의 존재를 확인 또는 부정한다. 활성 단어가 확인되는 경우, NMD(503)는 위에서 논의된 바와 같이, 추가 프로세싱을 위해 사운드 데이터 스트림 SDS 의 추가적인 데이터(예컨대, 도 6a의 음성 발화 부분(680b))을 적절한 음성 지원 서비스로 보낼 수 있다. 활성 단어가 부정되는 경우, NMD(503)는 그 특정 사운드 데이터 스트림 SDS에 대하여 추가 동작을 수행하지 않을 수 있거나 NMD(503)는 예비 활성 단어가 제1 활성 단어 엔진(570a)에 의해 부정되었음을 알려주는 경보 또는 다른 출력을 제공할 수 있다.
위에서 언급된 바와 같이, 다양한 활성 단어 엔진(570a 및 570b)은 각각 상이한 음성 서비스와 연관될 수 있다. 그러한 활성 단어 엔진은 현재 알려지건 나중에 개발되건 이들의 변형이건 음성 입력에서 확인된 활성 단어를 식별하기 위해 상이한 알고리즘을 이용할 수 있다. 그러한 알고리즘의 예시는 (i) 캡쳐된 오디오의 슬라이딩 시간 간격 내에 있는 특징이 키워드 모델과 비교되는 슬라이딩 윈도우 모델, (ii) 비-키워드 모델이 키워드 회화로부터 비 키워드 회화를 구별하는 것에 도움이 되도록, 은닉 마코브 모델(Hidden Markov Model)(HMM)이 각 키워드 및 비-키워드로 구성되는 가비지 모델(garbage model), (iii) 입력 회화가 미리 정의된 키워드로 검색되는 격자로 디코딩되는, 대규모 어휘 연속 음성 인식(Large Vocabulary Continuous Speech Recognition; LVCSR)의 사용 및 (iv) 다량의 키워드 특정 트레이닝 데이터에 기초하여 키워드를 모델링하기 위한 심층 뉴럴 네트워크(DNN), 중첩형 뉴럴 네트워크(CNN) 또는 반복형 뉴럴 네트워크(RNN)와 같은, 뉴럴 네트워크의 사용을 포함하지만 이에 제한되지는 않는다.
이전에 언급된 바와 같이, 일부 실시예에서 키워드 스포터(576)는 사운드 데이터 스트림 SDS을 제1 활성 및/또는 제2 활성 단어 엔진(570a 및/또는 570b)으로 보내는 대신에 또는 그에 더하여, 사운드 데이터 스트림 SDS을 다른 엔진(571)으로 보낼 수 있다. 키워드 스포터(576)가 사운드 데이터 스트림 SDS에서 로컬 장치 명령과 같은 키워드를 식별하는 경우, 키워드 스포터(576)는 수행될 명령에 대하여 이러한 입력을 다른 엔진(571)으로 보낼 수 있다. 일 예시로서, 키워드 스포터(576)가 "음량을 키워"라는 키워드를 검출하는 경우, 키워드 스포터(576)는 사운드 데이터 스트림 SDS을 다른 엔진(571)으로 보낼 수 있다. 다양한 실시예에서, 다른 엔진(571)은, 재생 음량 변경하기, 트랙 제어 (정지하기, 스킵하기, 반복하기 등), 장치 그룹화 또는 그룹화 해제, 마이크로폰 비활성화하기, 임의의 다른 로컬 장치 기능과 같은 임의의 수의 상이한 기능을 수행하도록 구성되는 컴포넌트를 포함할 수 있다. 일부 실시예에서, 다른 엔진(571)은 사운드 데이터 스트림 SDS을 수신한 특정 NMD 상에서 기능을 수행하는 것에 제한된다. 다른 실시예에서, 다른 엔진(571)은 사운드 데이터 스트림 SDS을 수신하는 NMD와 통신하는 다른 재생 장치 또는 NMD 상에서 수행될 기능을 하게 할 수 있다.
a. 활성 단어의 예시적인 2 단계 검출
위에서 논의된 바와 같이, 일부 예시에서, NMD는 수신된 오디오를 모니터링하고 분석하여 임의의 활성 단어가 수신된 오디오에 존재하는지를 결정하도록 구성된다. 도 7은, 임의의 활성 단어가 수신된 오디오에 존재하는지를 결정하도록 NMD에 대한 방법(700)의 예시적인 실시예를 도시한다. 방법(700)은 여기에서 설명 및/또는 개시된 NMD 중 임의의 것 또는 현재 알려진 또는 나중에 개발되는 임의의 다른 NMD에 의해 구현될 수 있다.
방법(700)의 다양한 실시예는 블록(702 내지 718)에 의해 예시되는 하나 이상의 동작, 기능 및 작용을 포함한다. 블록도가 순차적인 순서로 예시되어 있지만, 이러한 블록도는 병렬 및/또는 여기에 개시되고 설명된 순서와 상이한 순서로도 수행될 수 있다. 또한, 다양한 블록은 요구되는 구현에 기초하여 더 적은 블록도로 결합되고/거나, 추가적인 블록도로 분할되고/거나 제거될 수 있다.
방법(700)은 블록(702)에서 시작하며 이는 NMD가 하나 이상의 마이크로폰을 통하여 검출된 사운드 데이터를 캡쳐하는 단계를 수반한다. 캡쳐된 사운드 데이터는 NMD의 환경으로부터의 사운드 데이터를 포함하고, 일부 실시예에서, 도 6a에서 도시되는 음성 입력(680)과 같은 음성 입력을 포함한다.
블록(704)에서, 방법(700)은 NMD가 제1 알고리즘을 사용하여 사운드 데이터 내 후보 활성 단어를 식별하는 단계를 수반한다. 후보 활성 단어는 복수의 가능한 활성 단어 중에서의 하나일 수 있고, 복수의 활성 단어 중 일부 각 활성 단어는 복수의 음성 서비스 중 각 음성 서비스에 대응한다. 일부 실시예에서, 이는 NMD가 도 5와 관하여 위에서 설명된 키워드 스포터(576)로 하여금 활성 단어 검출 알고리즘을 이용하여 후보 활성 단어를 검출하도록 하는 단계를 수반한다. 추가적으로, 일부 실시예에서, 복수의 활성 단어는 (i) 아마존 음성 서비스에 대응하는 활성 단어 "알렉사", (ii) 구글 음성 서비스에 대응하는 활성 단어 "오케이, 구글", (iii) 애플 음성 서비스에 대응하는 활성 단어 "헤이, 시리" 중 하나 이상을 포함한다. 따라서, 일부 예시에서, 제1 활성 단어 검출 프로세스를 수행하도록 제1 알고리즘을 사용하는 단계는 NMD가 제1 알고리즘을 사용하여 캡쳐된 사운드 데이터가 "알렉사", "오케이, 구글" 및 "헤이, 시리"와 같은 복수의 활성 단어를 포함하는지 여부를 결정하는 단계를 수반한다. 추가로, 일부 예시에서, NMD는 제1 알고리즘을 병렬로 사용하여 캡쳐된 사운드 데이터가 다수의 활성 단어를 포함하는지 여부를 동시에 결정한다.
추가적으로, 일부 실시예에서, 복수의 활성 단어는 (i) 아마존 음성 서비스에 대응하는 활성 단어 "알렉사", (ii) 구글 음성 서비스에 대응하는 활성 단어 "오케이, 구글", (iii) 애플 음성 서비스에 대응하는 활성 단어 "헤이, 시리" 중 하나 이상을 포함한다. 따라서, 일부 예시에서, 제1 활성 단어 검출 프로세서를 수행하도록 제1 알고리즘을 사용하는 단계는 NMD가 제1 알고리즘을 사용하여 캡쳐된 사운드 데이터가 "알렉사", "오케이, 구글" 및 "헤이, 시리"와 같은, 복수의 활성 단어를 포함하는지 여부를 결정하는 단계를 수반한다. 또한, 일부 실시예에서, NMD는 제1 알고리즘을 병렬로 사용하여 캡쳐된 사운드 데이터가 복수의 활성 단어를 포함하는지 여부를 동시에 결정한다.
일부 실시예에서, 후보 활성 단어를 식별하는 단계는 하나 이상의 활성 단어로 범위 또는 확률 스코어를 할당하는 단계를 포함한다. 예를 들어, 제1 알고리즘은 활성 단어 "알렉사"가 음성 입력에서 검출된 70% 확률을 나타낼 수 있으며, 이는 "알렉사"가 후보 활성 단어로 간주될 수 있다. 일부 실시예에서, 두 상이한 활성 단어는 각각 확률 스코어 또는 범위에 할당되어 각각이 후보 활성 단어로서 식별될 수 있다.
위에서 언급된 바와 같이, 후보 활성 단어를 식별하도록 블록(704)에서 이용된 제1 알고리즘은 현재 알려진 또는 나중에 개발되는 다양한 키워드 스포팅 알고리즘 또는 그것의 변형을 포함할 수 있다. 일부 실시예에서, 제1 알고리즘은 심층 뉴럴 네트워크(DNN), 중첩형 뉴럴 네트워크(CNN) 또는 반복형 뉴럴 네트워크(RNN)과 같이 키워드 스포팅을 위해 뉴럴 네트워크를 사용하여 키워드 특정의 트레이닝 데이터에 기초하여 키워드를 모델링 한다. 일부 실시예에서, 블록(704)에서 이용되는 뉴럴 네트워크는 압축되어 뉴럴 네트워크에 대한 연산적 복잡성 및/또는 메모리 요구의 실질적인 감소를 달성하였다. 이는 뉴럴 네트워크가 과도한 전력 또는 메모리 소비 없이 NMD 또는 재생 장치 상에 로컬로 저장될 수 있게 한다. 활성 단어 검출을 위한 뉴럴 네트워크의 압축에 관한 추가적인 세부사항은 도 8-10에 대하여 이하에서 설명된다.
블록(706)에서, 방법(700)은 NMD가 임의의 후보 활성 단어가 블록(704)에서 사운드 데이터에서 검출되었는지 여부를 결정하는 단계를 수반한다. NMD가 후보로서 캡쳐된 사운드 데이터에서 다수의 활성 단어 중 임의의 것을 식별하지 않는 경우, 방법(700)은 블록(702)으로 돌아가고, NMD는 계속 추가적 사운드 데이터를 캡쳐하고 제1 알고리즘을 이용하여 그 추가적인 사운드 데이터를 프로세싱하여 사운드 데이터에서 임의의 후보 활성 단어를 식별한다. 대안적으로, NMD가 제1 알고리즘을 사용하여 특정 활성 단어를 식별한 경우, 방법(700)은 블록(708)으로 진행하며, 여기서 NMD는 후보 활성 단어가 캡쳐된 사운드 데이터 내에 존재하는지 여부를 확인하도록 시도한다.
사운드 데이터에서 후보 활성 단어의 식별에 응답하여, NMD는 블록(708)에서 제1 활성 단어 엔진 또는 블록(709)에서 제2 활성 단어 엔진을 선택하고 활성화한다. 일부 실시예에서, 제1 활성 단어 엔진을 활성화하는 단계는 NMD가 (예컨대, 저전력 또는 무전력 상태에서 고전력 상태로) 파워업(power up)하거나 아니면 특정 활성 단어 엔진 컴포넌트로 하여금 캡쳐된 사운드 데이터를 분석할 수 있도록 하는 단계를 수반한다.
제1 활성 단어 엔진 및 제2 활성 단어 엔진 간의 선택은 블록(704)의 사운드 데이터에서 검출된 특정 후보 활성 단어에 기초하여 이루어질 수 있다. 예를 들어, 제1 활성 단어 엔진은 제1 VAS와 연관될 수 있고, 제2 활성 단어 엔진은 제2 VAS와 연관될 수 있다. 후보 활성 단어가 제1 VAS와 연관되는 경우, 제1 활성 단어 엔진은 블록(708)에서 선택되고 활성화된다. 대신, 후보 활성 단어가 제2 VAS와 연관되는 경우, 제2 활성 단어 엔진은 블록(709)에서 선택되고 활성화된다.
일 예시에서, 제1 활성 단어 엔진은 활성 단어 "알렉사"를 검출하여 NMD가 블록(706)에서 예비 활성 단어 검출 프로세스가 후보 활성 단어로서 단어 "알렉사"를 검출했다고 결정하는 경우, NMD는 블록(708)에서 응답으로 제1 활성 단어 엔진을 활성화하고, 블록(710)에서 사운드 데이터 내 후보 활성 단어 "알렉사"의 존재를 확인하거나 부정하도록 구성된다. 동일하거나 다른 예시에서, 제2 활성 단어 엔진은 활성 단어 "오케이, 구글"을 검출하여 NMD가 블록(704)에서 식별된 예비 활성 단어가 "오케이, 구글"이라는 것을 블록(706)에서 결정하는 경우, NMD는 블록(709)에서 응답으로 제2 활성 단어 엔진을 활성화하고, 블록(711)에서 사운드 데이터 내 "오케이, 구글"의 존재를 확인하거나 부정하도록 구성된다. 일부 실시예에서, 방법(700)은 추가적 활성 단어 검출 모듈을 사용하여 추가적인 활성 단어 검출 프로세스를 수행하는 단계를 수반한다. 예를 들어, 일부 실시예에서, 방법(700)은 NMD가 검출하도록 구성되는 각 활성 단어에 대한 각각의 활성 단어 검출 모듈을 사용하는 단계를 수반한다.
블록(708)에서, 방법(700)은 NMD가 제1 활성 단어 엔진로 하여금 사운드 데이터를 분석하여 사운드 데이터 내 후보 활성 단어의 존재를 확인하거나 부정하도록 하는 단계를 수반한다. 확인되는 경우, NMD는 확인된 활성 단어를 출력할 수 있다. 확인된 활성 단어는 제1 활성 단어 엔진이 더 높은 예상 정확도와 그에 따라 검출된 활성 단어에서 더 높은 신뢰도를 가질 수 있는 것을 제외하고 블록(704)에서 예비로서 이전에 식별된 활성 단어와 동일할 수 있다. 일부 실시예에서, 제1 활성 단어 엔진은 후보 활성 단어를 식별하기 위해 사용되는 제1 알고리즘보다 확인된 활성 단어를 검출하기 위해 연산적으로 더 집약적인 알고리즘을 사용할 수 있다. 일 예시에서, 블록(704)에서의 "알렉사"의 후보 활성 단어로서 식별되는 제1 알고리즘과 블록(708)에서 아마존 음성 서비스에 연관되는 활성 단어 엔진이 선택된다. 이후, 블록(710)에서, 아마존 활성 단어 엔진은 사운드 데이터를 분석하여 사운드 데이터에서 "알렉사"의 존재를 확인하거나 부정한다. 아마존 활성 단어 엔진이 활성 단어 "알렉사"를 식별하는 경우, 이는 확인된 활성 단어로서 식별된다. 다른 예시에서, 제1 알고리즘이 블록(704)에서의 후보 활성 단어 "오케이, 구글"로서 식별하였으며, 블록(708)에서 구글 음성 서비스에 연관되는 활성 단어 엔진이 선택된다. 이후, 블록(710)에서 구글 활성 단어 엔진은 사운드 데이터를 분석하여 사운드 데이터에서 "오케이, 구글"의 존재를 확인하거나 부정한다.
예비 활성 단어 검출과 다운스트림 활성 단어 엔진과 관련되는 위에서 설명된 알고리즘은 현재 알려진 또는 나중에 개발되는 다양한 키워드 스포팅 알고리즘 또는 그들의 변형을 포함할 수 있다. 키워드 스포팅 알고리즘의 예시는 (i) 캡쳐된 오디오의 슬라이딩 시간 간격 내에 있는 특징이 키워드 모델과 비교되는 슬라이딩 윈도우 모델, (ii) 비-키워드 모델이 키워드 회화로부터 비 키워드 회화를 구별하는 것에 도움이 되도록, 은닉 마코브 모델(Hidden Markov Model)(HMM)이 각 키워드 및 비-키워드로 구성되는 가비지 모델(garbage model), (iii) 입력 회화가 미리 정의된 키워드로 검색되는 격자로 디코딩되는, 대규모 어휘 연속 음성 인식(LVCSR)의 사용 및 (iv) 다량의 키워드 특정 트레이닝 데이터에 기초하여 키워드를 모델링하기 위한 심층 뉴럴 네트워크(DNN), 중첩형 뉴럴 네트워크(CNN) 또는 반복형 뉴럴 네트워크(RNN)와 같은, 뉴럴 네트워크의 사용을 포함하지만 이에 제한되지는 않는다. 뉴럴 네트워크의 사용에 관하여 추가적인 세부사항은 도 8-10에 대해 이하에서 설명된다.
블록(712)에서, 방법(700)은 확인된 활성 단어가 캡쳐된 사운드 데이터에서 검출되었는지 여부를 결정하는 것을 수반한다. 확인된 활성 단어가 블록(710) 또는 블록(711)에서 검출되는 경우, 이후 방법(700)은 블록(714)로 진행한다. 그리고 확인되지 않은 활성 단어가 블록(710) 또는 블록(711)에서 검출되는 경우(즉, 예비 활성 단어가 블록(710)또는 블록(711)에서 부정됨), 이후 방법(700)은 블록(716)로 진행한다.
블록(714)에서, 방법(700)은 NMD가 그 네트워크 인터페이스를 통하여 특정 활성 단어에 대응하는 각 음성 서비스로 하여금 캡쳐된 사운드 데이터를 프로세싱하도록 하는 단계를 수반한다. 일부 실시예에서, 이는 먼저 복수의 음성 서비스 중 어떠한 각 음성 서비스가 특정 활성 단어에 대응하는지 식별하는 단계를 수반하며, 그 예시는 그 전체가 여기에 참조로서 포함되는 미국 특허 출원 제15/229,868호에 개시된다.
일부 실시예에서, 각 음성 서비스로 하여금 캡쳐된 사운드 데이터를 프로세싱하도록 하는 단계는 NMD가 네트워크 인터페이스를 통하여 각 음성 서비스의 하나 이상의 서버로 사운드 데이터를 나타내는 데이터 및 사운드 데이터를 나타내는 데이터를 프로세싱하도록 명령 또는 쿼리를 전송하는 단계를 수반한다. 명령 또는 쿼리는 각 음성 서비스로 하여금, 음성 명령을 프로세싱하도록 할 수 있고, 각 음성 서비스에 따라, 명령 또는 쿼리를 각 음성 서비스에(예컨대, 음성 서비스의 API에) 따르게 하도록 변화할 수 있다.
위에서 언급된 바와 같이, 일부 예시에서, 캡쳐된 오디오는 음성 입력(680)을 포함하며, 이는 차례로 활성 단어(680a)를 나타내는 제1 부분 및 음성 발화(680b)를 나타내는 제2 부분을 포함하고, 이는 명령(682)과 같은 하나 이상의 명령을 포함할 수 있다. 일부 경우에서, NMD는 음성 입력의 적어도 제2 부분(예컨대, 음성 발화(680b)를 나타내는 부분)을 나타내는 데이터만을 전송할 수 있다. 제1 부분을 제외하고, NMD는 다른 가능한 이점 중에서도, 활성 단어(680a)로 인해 음성 입력(680)의 가능한 미스프로세싱(misprocessing)을 피하고 음성 입력(680)을 전송하는 데 요구되는 대역폭을 줄일 수 있다. 대안적으로, NMD는 음성 입력(680)의 두 부분 또는 음성 입력(680)의 일부 다른 부분을 나타내는 데이터를 전송할 수 있다.
일부 실시예에서, 각 음성 서비스로 하여금 캡쳐된 사운드 데이터를 프로세싱하도록 하는 단계는, NMD가 각 음성 서비스에 대응하는 활성 단어 검출 알고리즘을 쿼리하는 단계를 수반한다. 위에서 언급된 바와 같이, 음성 서비스로의 쿼리는 NMD 상에 로컬로 또는 네트워크 인터페이스를 사용하여 원격으로 음성 서비스의 각 API를 적용하는 단계를 수반한다. 각 음성 서비스의 활성 단어 검출 알고리즘으로의 쿼리에 응답하여, NMD는 쿼리에 제출된 캡쳐된 사운드 데이터가 그 음성 서비스에 대응하는 활성 단어를 포함했는지 여부를 나타내는 응답을 수신한다. 특별한 음성 서비스의 활성 단어 검출 알고리즘이 캡쳐된 사운드 데이터가 특별한 음성 서비스에 대응하는 특정 활성 단어를 포함함을 검출하는 경우, NMD는 그 특별한 음성 서비스로 하여금, 사운드 데이터를 더 프로세싱하도록, 예를 들어, 캡쳐된 사운드 데이터에서 음성 명령을 식별하도록 할 수 있다.
각 음성 서비스로 하여금 캡쳐된 오디오를 프로세싱하도록 하는 단계 이후, NMD는 프로세싱의 결과를 수신한다. 예를 들어, 검출된 사운드 데이터가 서치 쿼리(search query)를 나타내는 경우, NMD는 검색 결과를 수신할 수 있다. 다른 예시로서, 검출된 사운드 데이터가 장치로의 명령(예컨대, 재생 장치로의 미디어 재생 명령)을 나타내는 경우, NMD는 명령 및 아마도 명령과 연관된 추가적 데이터(예컨대, 명령과 연관된 미디어 소스)를 수신할 수 있다. NMD는 명령의 유형과 수신된 결과에 적절히 기초하여 이러한 결과를 출력할 수 있다.
대안적으로, 검출된 사운드 데이터가 NMD외에 다른 장치로 향하는 음성 명령을 포함하는 경우, 결과는 NMD 보다 장치를 향할 수 있다. 예를 들어, 도 1a를 참조하면, 주방(101h)에 있는 NMD(103f)는 (예를 들어, 재생 장치(102l)에 의해 미디어 재생을 조정하도록) 식당(101g)의 재생 장치(102l)를 향하는 음성 입력을 수신할 수 있다. 그러한 실시예에서, NMD(103f)가 음성 입력의 프로세싱을 용이하게 하지만, 프로세싱의 결과(예컨대, 미디어 재생을 조정하기 위한 명령)는 재생 장치(102l)로 전송될 수 있다. 대안적으로, 음성 서비스는 NMD(103f)로 결과를 보낼 수 있으며, 이는 명령을 재생 장치(102l)로 전달할 수 있거나 아니면 재생 장치(102l)로 하여금 명령을 수행하도록 할 수 있다.
블록(716)에서, 방법(700)은 NMD가 캡쳐된 사운드 데이터가 특정 활성 단어를 포함하지 않는다는 것을 결정하는 것에 응답하여 확인된 활성 단어를 검출하도록 캡쳐된 사운드 데이터를 프로세싱하는 것을 중단하는 단계를 수반한다. 일부 실시예에서, 특정 활성 단어를 검출하도록 캡쳐된 사운드 데이터를 프로세싱하는 것을 중단하는 단계는 캡쳐된 사운드 데이터가 특정 활성 단어와 상이한 활성 단어를 포함하는지 여부를 결정하도록 캡쳐된 사운드 데이터를 추가로 프로세싱하는 NMD를 수반한다. 예를 들어, 복수의 활성 단어 중 각각의 활성 단어에 대해, NMD는 캡쳐된 사운드 데이터가 각 활성 단어를 포함하는지 여부를 결정하도록 하나 이상의 알고리즘을 사용할 수 있다.
추가적으로 또는 대안적으로, 일부 실시예에서, 특정 활성 단어를 검출하도록 캡쳐된 사운드 데이터를 프로세싱하는 것을 중단하는 단계는 NMD가 캡쳐된 사운드 데이터를 프로세싱하는 것을 완전히 중단하는 단계는 수반하지 않는다. 대신, NMD는 방법(700)을 반복함으로써 예를 들어, 추가적 사운드 데이터를 캡쳐하고, 추가적 캡쳐된 사운드 데이터 상에 제1 및 제2 활성 단어 검출 프로세스를 수행함으로써, 계속해서 활성 단어를 듣는다.
임의의 경우에, 블록(718)에서, 방법(700)은 NMD가 선택된 활성 단어 엔진(즉, 어떤 엔진이 이전에 선택되고 활성화되었는지에 따라 제1 및/또는 제2 활성 단어 엔진)을 비활성화시키는 단계를 수반한다. 따라서, 일부 예시에서, 방법(700)은 NMD가 블록(716)에서 사운드 데이터를 프로세싱하는 것을 중단하는 단계 이후에 선택된 활성 단어 엔진을 비활성화하는 단계를 수반한다. 그리고, 다른 예시에서, 방법(700)은 NMD가 블록(714)에서 음성 서비스로 하여금 특정 활성 단어를 프로세싱하도록 하는 단계 이후에 선택된 활성 단어 엔진을 비활성화하는 단계를 수반한다. 위에서 논의된 바에 따라, 일부 실시예에서, 선택된 활성 단어 엔진을 비활성화하는 단계는 NMD가 파워 다운(power down)하거나 아니면 활성 단어 엔진 컴포넌트(570a 및/또는 570b)를 캡쳐된 사운드 데이터를 분석하는 것으로부터 비활성화하는 단계를 수반한다.
b. 활성 단어 검출을 위해 뉴럴 네트워크 모델을 압축하는 예시
도 8은 키워드 스포팅 및 선택에 대한 압축형 뉴럴 네트워크 모델을 생성하기 위한 시스템(800)의 기능적 블록도이다. 도 8에 도시된 바와 같이, 미리 트레이닝된 뉴럴 네트워크 모델(802)은 키워드 선택 및 압축 모듈(804)에 제공된다. 미리 트레이닝된 뉴럴 네트워크 모델(802)은 다량의 키워드-특정 트레이닝 데이터에 기초하여 하나 이상의 선택된 키워드를 모델링한다. 예컨대, 심층 뉴럴 네트워크(DNN), 중첩형 뉴럴 네트워크(CNN) 또는 반복형 뉴럴 네트워크(RNN)과 같은 뉴럴 네트워크일 수 있다. 키워드 선택 및 압축 모듈(804)은 미리 트레이닝된 뉴럴 네트워크 모델을 최적화하고 압축하여 미리 트레이닝된 뉴럴 네트워크 모델 입력(802)보다 잘 수행하는 압축형 뉴럴 네트워크 모델을 제공할 수 있으며, 이는 예를 들어, 키워드 검출의 정확성의 실질적인 감소 없이 연산적으로 덜 집약적이고/거나 메모리를 덜 요구할 수 있다.
이하에서 더 자세히 설명된 바와 같이, 키워드 선택 및 압축 모듈(804)은 미리 트레이닝된 뉴럴 네트워크 모델의 가중치를 K 클러스터로 압축함으로써, 예를 들어 가중치에 가우시안 혼합 모델(Gaussian mixture model)(GMM)을 피팅함으로써, 미리 트레이닝된 뉴럴 네트워크 모델(802)을 재트레이닝하고 압축할 수 있다. 이러한 기법은 소프트-가중치 공유로 알려져 있고, 결과적으로 뉴럴 네트워크 모델의 상당한 압축이 될 수 있다. 미리 트레이닝된 뉴럴 네트워크 모델의 가중치와 함께 GMM의 컴포넌트를 피팅함으로써, 가중치는 다수의 클러스터 컴포넌트 주위에 타이트하게 집중되는 경향이 있는 한편, 클러스터 센터는 스스로 최적화되어, 네트워크에 높은 예측 정확도를 제공한다. 이는 뉴럴 네트워크 모델이 미리 트레이닝된 뉴럴 네트워크 모델의 가중치 모두 보다는 K 클러스터 평균(mean)만을 인코딩 하면 되므로 결과적으로 높은 압축이 된다. 추가적으로, 일 클러스터는 도 10에 대하여 아래에서 논의된 바와 같이 스파스 표현을 감안하여 GMM에서 높은 초기 책임을 가지고 0에서 고정될 수 있다.
키워드 선택 및 압축 모듈(804)의 초기화 모듈(806)에서 GMM의 컴포넌트는 초기화된다. 예를 들어, 미리 정해진 수의 비 고정 컴포넌트의 평균이 미리 트레이닝된 뉴럴 네트워크 모델(802)의 가중치의 범위에서 고르게 분포될 수 있다. 분산은 각 가우시안이 그 각 영역에서 상당한 확률 질량을 가지도록 초기화될 수 있다. 일부 실시예에서, 뉴럴 네트워크 모델의 가중치는 또한 사전 트레이닝에 기초하여 초기화 모듈(806)을 통하여 초기화될 수 있다. 일부 실시예에서, GMM은 17개의 컴포넌트(24+1)로 초기화될 수 있고, 가중치 및 평균에 대한 러닝 레이트(learning rate), 로그 분산 및 로그 혼합 비율은 모두 별도로 초기화될 수 있다.
GMM 컴포넌트의 초기화에 이어, 조인트 최적화 모듈(808)은 GMM을 사용하여 미리 트레이닝된 뉴럴 네트워크 모델을 재트레이닝한다. 조인트 최적화 모듈(808)은 초기화된 GMM을 미리 트레이닝된 뉴럴 네트워크 모델의 가중치에 피팅하고, 최적화 알고리즘을 실행하여 GMM의 클러스터 주위에 뉴럴 네트워크 모델의 가중치를 클러스터링 한다. 예를 들어, 일부 실시예에서, 이하의 방정식은 기울기 하강을 통하여 최적화될 수 있다.
여기서, w는 뉴럴 네트워크 모델의 파라미터(또는 가중치)이고, μj,σj,πj는 GMM의 평균, 분산 및 혼합 가중치이며, X와 T는 음향 특성 입력과 뉴럴 네트워크 모델의 분류 타겟이다. 손실은 GMM의 항 과 뉴럴 네트워크 모델에 대한 항 으로 분해되며, 이들은 가중치 인자τ을 사용하여 상쇄된다.
일부 예시에서, 가중치 인자 τ는 0.005로 설정될 수 있다. 다음 단계에서 희소성(sparsity)을 촉진하고 압축을 향상하기 위해, GMM의 일 컴포넌트는 고정된 평균 μj=0 = 0 과 혼합 가중치 πj=0 = 0.999를 가질 수 있다. 컴포넌트의 나머지들은 학습된다. 대안적으로, 단계는 또한 πj=0도 트레이닝할 수 있지만 베타 분포와 같은 하이퍼프라이어(hyperprior)를 사용하여 이를 제한할 수 있다. 연속적인 반복 이후, 함수는 뉴럴 네트워크 모델의 가중치가 GMM의 클러스터 주위에 타이트하게 클러스터링되도록 수렴한다.
조인트 최적화 모듈(808)에서, 기울기 하강 계산은 선택된 러닝 레이트와 파라미터에 매우 민감할 수 있다. 러닝 레이트가 너무 높은 경우, GMM은 매우 빠르게 붕괴될 수 있고, 뉴럴 네트워크 모델의 가중치는 임의의 컴포넌트 외부에 남고 클러스터링에 실패할 수 있다. 반대로 러닝 레이트가 너무 낮은 경우, 혼합은 매우 느리게 수렴할 수 있다. 일부 실시예에서, 러닝 레이트는 대략 5x10-4로 설정될 수 있다. 일부 실시예에서, 인버스-감마 하이퍼 프라이어(Inverse-Gamma hyperprior)는 혼합 컴포넌트가 매우 빠르게 붕괴하는 것을 방지하도록 혼합 분산 상에서 적용될 수 있다.
키워드 선택 및 압축 모듈(804)의 마지막 단계로서, 양자화 모듈(810)은 모델을 더 압축한다. 예를 들어, 뉴럴 네트워크 모델이 조인트 최적화 모듈(808)을 통하여 재트레이닝된 이후, 각 가중치는 그것을 위해 최대 책임을 취하는 컴포넌트의 평균으로 설정될 수 있다. 이 프로세스는 양자화로서 지칭될 수 있다. 그러나 양자화 이전에, 리던던트(redudant) 컴포넌트는 제거될 수 있다. 일 예시에서, 쿨백 라이블러(Kullback-Leibler)(KL) 발산은 모든 컴포넌트 사이에서 계산될 수 있고, 역치보다 작은 KL 발산에 대하여, 두 컴포넌트는 단일 컴포넌트를 형성하도록 병합될 수 있다. 양자화 이후, 결과적인 뉴럴 네트워크 모델은 미리 트레이닝된 뉴럴 네트워크 모델(802)과 비교하여 가중치 전체에 걸쳐지나 상당히 감소된 수의 개별 값을 가진다.
키워드 선택 및 압축 모듈(804)의 출력은 이후 키워드 스포터(576)와 같이 출력되기 이전에 포스트 프로세싱(812)(예컨대, 추가적인 필터링, 포맷 등)의 대상이 될 수 있다. 일부 실시예에서, 포스트 프로세싱은 도 10에 대하여 이하에서 설명되는 바와 같이, 압축형 스파스 로우(CSR) 표현을 포함할 수 있다. 도 5 내지 도 7에 대하여 상술된 바와 같이, 키워드 스포터(576)는 활성 단어 검출을 수행하여, 예를 들어, 캡쳐된 사운드 데이터 상에 예비 활성 단어 검출 분석을 수행하는 데 사용될 수 있다. 이러한 압축형 뉴럴 네트워크 모델의 출력에 기초하여, 제2 활성 단어 검출 프로세스는 예를 들어, 특정 VAS 또는 활성 단어의 특정 세트와 연관되는 활성 단어 엔진을 활용하여 수행될 수 있다.
소프트 가중치 공유된 뉴럴 네트워크, 양자화, 압축형 스파스 로우 표현 및 KL 발산의 사용의 예시와 추가적인 세부사항은 각각 그 전체가 참조로써 여기에 포함되는 https://arxiv.org/abs/1702.04008v2에서 이용할 수 있는 울리히 등의 "뉴럴 네트워크 압축에 대한 소프트 가중치 공유", https://arxiv.org/abs/1510.00149v5에서 이용할 수 있는 한 등의 "심층 압축: 프루닝, 트레이닝된 양자화 및 허프만 코딩과 심층 뉴럴 네트워크 압축하기" 및 https://arxiv.org/abs/1506.02626v3에서 이용할 수 있는 한 등의 "효율적인 뉴럴 네트워크를 위한 가중치 및 연결 모두 배우기"에서 발견될 수 있다. 위에서 참조된 논문에서 개시된 기법 중 임의의 것은 위에서 설명된 키워드 선택 및 압축 모듈(804) 및/또는 포스트 프로세싱(812)에 포함될 수 있다.
도 9는 소프트 가중치 공유를 통하여 압축 전후 뉴럴 네트워크 모델에 대한 가중치의 로그 가중치 분포를 예시한다. 도 9의 맨 위에 있는 히스토그램은 미리 트레이닝된 뉴럴 네트워크 모델(예컨대, 도 8의 미리 트레이닝된 뉴럴 네트워크 모델(802))의 가중치w의 분포를 도시한다. 오른쪽에서 동일한 분포가 (예컨대, 키워드 스포터(576)의 압축형 뉴럴 네트워크 모델에서 반영된 바와 같이) 재트레이닝이 수행된 소프트 가중치 공유 이후에 도시된다. 각 가중치의 값에서의 변화는 산점도에 의해 예시된다. 도시된 바와 같이, 가중치는 함께 모여 이산 값 주위에 클러스터링하여 미리 트레이닝된 뉴럴 네트워크 모델과 비교하여 소프트 가중치 공유된 뉴럴 네트워크 모델 내 가중치 전반에 걸쳐 개별 값의 수를 크게 감소시킨다. 추가적으로, 가중치의 최고 농도가 0에 있으며, 이로써 결과적인 뉴럴 네트워크 모델에서 0이 아닌 가중치의 수를 최소화한다. 이는 도 10에 대하여 아래에서 설명된 바와 같이, 압축형 스파스 로우(CSR) 표현을 사용하는 더 큰 압축을 고려한다. CSR(또는 가중치의 다른 압축형 표현)과 함께 소프트 가중치 공유에 의해 달성되는 가중치 전체에 걸친 개별 값에서의 감축은 정확성에서 내용 감소없이 뉴럴 네트워크 모델의 연산적 복합성 및 사이즈를 상당히 감소시킨다.
도 10는 뉴럴 네트워크 모델의 압축형 스파스 로우(CSR) 표현의 예시를 예시한다. 공유된 가중치 클러스터링에 더하여, 뉴럴 네트워크 모델은 스파스 표현을 사용하여 추가 압축될 수 있다. 일 예시는 행렬 M이 세 개의 일차원의 어레이에 의해 표현되는 스탠다드 CSR 표현이다. 특히, 도 10에 관하여, 행렬 D는 세 개의 일차원의 어레이(A, IA 및 JA)에 의해 표현될 수 있다. 어레이 A는 행렬 D의 0이 아닌 컴포넌트(5, 8, 3 및 6)를 취함으로써 얻어진다. 어레이 IA는 행렬 D의 각 로우에서의 0이 아닌 컴포넌트의 수로부터 회귀적으로 얻어지며, 추가적인 첫번째 값 0을 가진다. 행렬 D에서, 각 로우의 0이 아닌 컴포넌트의 수는 각각 0, 2, 1 및 1이다. 이들을 회귀적으로 더하는 것은 어레이 IA에서 반영된 바와 같이, 0, 2(0+2), 3(2+1) 및 4(3+1)의 값을 제공한다. 마지막으로, 어레이 JA는 행렬 D에서 각각 0이 아닌 값의 칼럼 인덱스로부터 생성된다. 예를 들어, 제1의 0이 아닌 값(5)은 칼럼 0에 있고, 제2의 0이 아닌 값(8)은 칼럼 1에 있고, 제3의 0이 아닌 값(3)은 칼럼 2에 있으며 제4의 0이 아닌 값(6)은 칼럼 1에 있다. 따라서, 어레이 JA는 값 0, 1, 2, 1을 포함한다. 이러한 세 개의 어레이는 예를 들어, 뉴럴 네트워크 모델을 표현하도록 저장될 필요가 있는 값의 전체 수를 감소시킴으로써, 압축형 포맷으로 행렬 M을 표현할 수 있다. 도 10의 예시에서, 행렬 M은 16개의 값을 가지는 한편 세 개의 어레이 A, IA 및 JA는 결합하여 전체 13개 값을 가진다.
이러한 어레이 각각은 더 최적화될 수 있다. 예를 들어, 어레이 IA에서 가장 큰 수는 D에서 0이 아닌 요소의 전체 수이므로, IA에 있는 수는 낮은 정밀도로 저장될 수 있다. 어레이 A는 인덱스로의 코드북으로 양자화함으로써 최적화될 수 있다. 그리고, 어레이 JA는 낮은 정밀도 인덱스로 최적화될 수 있고/거나 차이를 저장할 수 있다.
CSR 기법을 사용하여 압축된 뉴럴 네트워크 모델을 평가함에 있어서, 발명자는 베이스라인 뉴럴 네트워크 모델로부터 사이즈에서의 상당한 감소를 발견했다. 8개의 컴포넌트를 가지는 일 예시에서, 뉴럴 네트워크 모델의 베이스라인 전체의 사이즈는 540kB이다. 압축형 스파스 로우 표현 이후, 1.16의 전반적인 압축률을 반영하여 사이즈는 462.5kB로 감소되었다. CSR 어레이의 최적화 이후, 3.1의 전반적인 압축률을 반영하여 사이즈는 174kB로 더 감소되었다. 따라서, 어레이의 최적화와 함께 CSR 표현을 이용하는 것은 3분의 2 이상까지 전반적인 사이즈가 감소하는 것이 발견되었다. 이러한 압축 기법 및 다른 압축 기법은 위에서 설명된 바와 같이 활성 단어를 검출하는 데 사용된 뉴럴 네트워크 모델의 연산적 복합성 및/또는 사이즈를 감소하는 데 사용될 수 있다.
c. NMD 사이 중재를 위한 뉴럴 네트워크 사용의 예시
이전에 언급된 바와 같이, 일부 구현예에서, 음성 입력이 서로의 근처 내에 위치되는 둘 이상의 NMD에 의해 검출되는 회화에서 식별되는 경우, NMD는 서로 간의 중재를 용이하게 할 수 있다. 예를 들어, 서로에 가까이 위치되는 두 NMD는 적어도 때로는 동일한 사운드를 검출할 수 있다. 이러한 경우, 이는 어떤 장치가 근본적으로 검출된 사운드 데이터를 원격 VAS로 제공할 책임이 있는지에 관하여 중재를 요구할 수 있다.
일부 실시예에서, 둘 이상의 NMD 각각은 검출된 사운드 데이터를 분석하여 위에서 설명된 키워드 스포팅 알고리즘 중 임의의 하나를 사용하여(예컨대, 키워드 스포터(576), 제1 활성 단어 엔진(570a) 및/또는 제2 활성 단어 엔진(570b)를 이용하여) 활성 단어 또는 후보 활성 단어를 식별할 수 있다. 예를 들어, 두 NMD는 각각 뉴럴 네트워크 기반 키워드 스포터를 이용하여 음성 입력에서 후보 활성 단어를 식별할 수 있다. 적어도 일부 실시예에서, 키워드 스포터는 또한 사운드 데이터 스트림 SDS에 있는 후보 활성 단어에 확률 스코어 또는 범위를 할당할 수 있다. 각 NMD에 의해 식별된 후보 활성 단어 및 상대적인 확률 스코어에 기초하여, NMD 중 하나는 원격 VAS로 검출된 사운드 데이터를 제공하기 위해 선택될 수 있다.
일 예시로서, 제1 NMD 및 제2 NMD는 그들이 동일한 사운드를 검출하도록 서로 가까이 위치될 수 있다. 제1 NMD 상에서 동작하는 키워드 스포터는 활성 단어 "오케이, 구글"이 제1 NMD의 사운드 데이터 스트림 SDS에서 검출된 80% 확률을 나타낼 수 있는 한편, 제2 NMD 상에서 동작하는 키워드 스포터는 활성 단어 "오케이, 구글"이 제2 NMD의 사운드 데이터 스트림 SDS에서 검출된 70% 확률을 나타낼 수 있다. 제1 NMD가 제2 NMD보다 높은 확률의 검출된 활성 단어를 가지므로, 제1 NMD는 원격 VAS와 통신하도록 선택될 수 있다.
결론
위 설명은 다른 컴포넌트 중에서도 하드웨어 상에서 실행되는 펌웨어 및/또는 소프트웨어를 포함하는, 다른 것들 중에서도, 다양한 예시적인 시스템, 방법, 장비 및 제품을 개시한다. 이러한 예시는 단지 예시적이며, 제한하는 것으로 간주되어서는 안된다고 이해된다. 예를 들어, 펌웨어, 하드웨어 및/또는 소프트웨어 태양 또는 컴포넌트 중 임의의 것 또는 모두가 하드웨어로만, 소프트웨어로만, 펌웨어로만 또는 하드웨어, 소프트웨어 및/또는 펌웨어의 임의의 조합으로 구현될 수 있음이 고려된다. 따라서, 제공되는 예시는 그러한 시스템, 방법, 장비 및/또는 제품을 구현하기 위한 유일한 방식이 아니다.
명세서는 주로 예시적인 환경, 시스템, 절차, 단계, 논리 블록, 처리 및 네트워크로 결합된 데이터 처리 장치의 동작에 직접 또는 간접적으로 유사한 다른 심볼 표현의 관점에서 제공된다. 이러한 프로세스 설명 및 표현은 일반적으로 당업자에 의해 가장 효과적으로 자신의 연구의 본질을 다른 분야에 전달하기 위해 사용된다. 본 개시의 완전한 이해를 제공하기 위해 다수의 구체적인 세부 사항이 개시된다. 그러나 본 개시의 일부 실시예는 일부 구체적인 세부 사항 없이 수행될 수 있음이 당업자에게 이해된다. 다른 경우에, 잘 알려진 방법, 절차, 컴포넌트 및 회로는 실시예의 태양을 불필요하게 흐리는 것을 피하기 위해 상세히 설명되지 않았다. 따라서, 본 개시의 범위는 앞의 실시예의 설명이 아니라 첨부된 청구범위에 의해 정의된다.
첨부된 청구범위 중에서 임의의 것이 순전히 소프트웨어 및/또는 펌웨어 구현을 커버하는 것으로 읽히는 경우, 적어도 하나의 예시에서의 구성 요소 중 적어도 하나는 여기에서 명시적으로 메모리, DVD, CD, 블루레이 등과 같이 소프트웨어 및/또는 펌웨어를 저장하는 유형의 비일시적인 매체를 포함하는 것으로 정의된다.
본 기법이 예를 들어, 아래에서 설명되는 다양한 양상에 따라 예시된다. 본 기법의 양상의 다양한 예시가 편의를 위해 번호 예시(1, 2, 3 등)으로 설명된다. 이는 예시로서 제공되고, 본 기법을 제한하지 않는다. 의존하는 예시 중 임의의 것이 임의의 조합으로 결합될 수 있고, 각각 독립된 예시가 배치된다는 것이 알려져 있다. 다른 예시가 비슷한 방식으로 존재할 수 있다.
예시 1: 네트워크 마이크로폰 장치를 통하여 사운드 데이터를 캡쳐하는 단계; 네트워크 마이크로폰 장치를 통해 사운드 데이터 내 후보 활성 단어를 식별하는 단계; 사운드 데이터 내 후보 활성 단어의 식별에 기초하여, 복수의 활성 단어 엔진으로부터 제1 활성 단어 엔진을 선택하는 단계; 제1 활성 단어 엔진으로, 사운드 데이터를 분석하여 활성 단어의 검출을 확인하는 단계; 및 확인된 활성 단어를 검출하는 것에 응답하여 제1 활성 단어 엔진이 활성 단어의 검출을 확인하는 경우, 음성 지원 서비스와 연관된 하나 이상의 원격 컴퓨팅 장치로 사운드 데이터의 음성 발화를 전송하는 단계를 포함하는 방법. 예시 2: 예시 1에 있어서, 후보 활성 단어를 식별하는 단계는 후보 활성 단어가 사운드 데이터에 존재하는 확률을 결정하는 단계를 포함하는, 방법. 예시 3: 예시 1-2 중 어느 하나에 있어서, 제1 활성 단어 엔진은 후보 활성 단어와 연관되고, 복수의 활성 단어 엔진 중 다른 것은 하나 이상의 추가적인 활성 단어와 연관되는 것인, 방법. 예시 4: 예시 1-3 중 어느 하나에 있어서, 후보 활성 단어를 식별하는 단계는 뉴럴 네트워크 모델을 사운드 데이터에 적용하는 단계를 포함하는, 방법. 예시 5: 예시 4에 있어서, 뉴럴 네트워크 모델은 압축형 뉴럴 네트워크 모델을 포함하는, 방법. 예시 6: 예시 4에 있어서, 뉴럴 네트워크 모델은 소프트 가중치 공유된 뉴럴 네트워크 모델을 포함하는, 방법. 예시 7: 예시 1-6 중 어느 하나에 있어서, 추가적인 사운드 데이터를 전송하는 단계 이후에, 네트워크 마이크로폰 장치를 통하여 추가적인 사운드 데이터와 관련된 미디어 컨텐츠의 선택을 수신하는 단계를 더 포함하는 방법. 예시8: 예시 1-7 중 어느 하나에 있어서, 복수의 활성 단어 엔진은 제1 활성 단어 엔진; 및 네트워크 마이크로폰 장치의 로컬 기능을 수행하는 예시적인 제2 활성 단어 엔진을 포함하는, 방법.
예시 9: 하나 이상의 프로세서; 적어도 하나의 마이크로폰; 및 네트워크 마이크로폰 장치로 하여금, 예시 1-8 중 어느 하나를 포함하는 동작을 수행하도록 하나 이상의 프로세서에 의해 실행 가능한 명령어를 저장하는 유형의 비일시적인 컴퓨터 판독 가능 기록매체를 포함하는 네트워크 마이크로폰 장치.
예시 10: 네트워크 마이크로폰 장치로 하여금, 예시 1-8 중 어느 하나를 포함하는 동작을 수행하도록 하나 이상의 프로세서에 의해 실행 가능한 명령어를 저장하는 유형의 비일시적인 컴퓨터 판독 가능 기록매체를 포함하는 네트워크 마이크로폰 장치.
Claims (1)
- 키워드 스포팅 알고리즘을 사용하여, 상기 사운드 데이터 내 후보 활성 단어를 식별하는 단계;
상기 키워드 스포팅 알고리즘을 통하여 상기 사운드 데이터 내의 상기 후보 활성 단어의 식별에 기초하여, 네트워크 마이크로폰 장치에 저장된 복수의 활성 단어 검출 알고리즘 중에서, 제1 활성 단어 검출 알고리즘을 선택하는 단계 - 상기 제1 활성 단어 검출 알고리즘은 제1 음성 지원 서비스와 연관되며, 상기 복수의 활성 단어 검출 알고리즘의 다른 하나는 상기 제1 음성 지원 서비스와 상이한 제2 음성 지원 서비스와 연관됨 -;
상기 제1 활성 단어 검출 알고리즘을 선택한 이후에 그리고 상기 복수의 활성 단어 검출 알고리즘의 다른 하나는 사용하지 않으면서, 상기 제1 활성 단어 검출 알고리즘을 사용하여 상기 사운드 데이터를 분석하여 상기 키워드 스포팅 알고리즘을 통하여 식별된 상기 후보 활성 단어의 검출을 확인하는 단계 - 상기 제1 활성 단어 검출 알고리즘은 상기 키워드 스포팅 알고리즘보다 높은 정확도를 가지고 상기 후보 활성 단어가 상기 사운드 데이터 내에 존재하는지 여부를 결정함 -; 및
상기 후보 활성 단어의 검출을 확인하는 단계에 응답하여, 상기 제1 음성 지원 서비스와 연관된 하나 이상의 원격 컴퓨팅 장치로 상기 사운드 데이터의 음성 발화를 전송하는 단계
를 포함하는, 방법.
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/145,275 | 2018-09-28 | ||
US16/145,275 US11100923B2 (en) | 2018-09-28 | 2018-09-28 | Systems and methods for selective wake word detection using neural network models |
PCT/US2019/052841 WO2020068909A1 (en) | 2018-09-28 | 2019-09-25 | Systems and methods for selective wake word detection using neural network models |
KR1020237018549A KR102581837B1 (ko) | 2018-09-28 | 2019-09-25 | 뉴럴 네트워크 모델을 사용하여 선택적 활성 단어 검출을 위한 시스템 및 방법 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020237018549A Division KR102581837B1 (ko) | 2018-09-28 | 2019-09-25 | 뉴럴 네트워크 모델을 사용하여 선택적 활성 단어 검출을 위한 시스템 및 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20230145195A true KR20230145195A (ko) | 2023-10-17 |
KR102718326B1 KR102718326B1 (ko) | 2024-10-17 |
Family
ID=
Also Published As
Publication number | Publication date |
---|---|
KR20210120138A (ko) | 2021-10-06 |
JP2021516790A (ja) | 2021-07-08 |
WO2020068909A1 (en) | 2020-04-02 |
CN111247582A (zh) | 2020-06-05 |
KR20200067941A (ko) | 2020-06-12 |
US20210343284A1 (en) | 2021-11-04 |
KR102541498B1 (ko) | 2023-06-13 |
US20230410812A1 (en) | 2023-12-21 |
EP3655948A1 (en) | 2020-05-27 |
US11100923B2 (en) | 2021-08-24 |
KR102308525B1 (ko) | 2021-10-05 |
EP4099322B1 (en) | 2024-03-27 |
US20200105256A1 (en) | 2020-04-02 |
EP4099322A1 (en) | 2022-12-07 |
JP7397920B2 (ja) | 2023-12-13 |
AU2023266275A1 (en) | 2023-12-07 |
KR20200037245A (ko) | 2020-04-08 |
KR102122312B1 (ko) | 2020-06-12 |
KR20230085214A (ko) | 2023-06-13 |
JP7096353B2 (ja) | 2022-07-05 |
US11790911B2 (en) | 2023-10-17 |
EP3655948B1 (en) | 2022-07-06 |
JP2022126805A (ja) | 2022-08-30 |
AU2019299865B2 (en) | 2023-08-17 |
AU2019299865A1 (en) | 2020-04-16 |
KR102581837B1 (ko) | 2023-09-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102581837B1 (ko) | 뉴럴 네트워크 모델을 사용하여 선택적 활성 단어 검출을 위한 시스템 및 방법 | |
US20240288926A1 (en) | Multiple Stage Network Microphone Device with Reduced Power Consumption and Processing Load | |
US11538460B2 (en) | Networked microphone devices, systems, and methods of localized arbitration | |
US20230317077A1 (en) | Devices, systems, and methods for distributed voice processing | |
US20230237998A1 (en) | Networked devices, systems, & methods for intelligently deactivating wake-word engines | |
US11961519B2 (en) | Localized wakeword verification | |
CA3067776A1 (en) | Systems and methods for selective wake word detection using neural network models | |
KR102718326B1 (ko) | 뉴럴 네트워크 모델을 사용하여 선택적 활성 단어 검출을 위한 시스템 및 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A107 | Divisional application of patent | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right |