KR20230113368A - 검출들의 시퀀스에 기반한 핫프레이즈 트리거링 - Google Patents
검출들의 시퀀스에 기반한 핫프레이즈 트리거링 Download PDFInfo
- Publication number
- KR20230113368A KR20230113368A KR1020237021866A KR20237021866A KR20230113368A KR 20230113368 A KR20230113368 A KR 20230113368A KR 1020237021866 A KR1020237021866 A KR 1020237021866A KR 20237021866 A KR20237021866 A KR 20237021866A KR 20230113368 A KR20230113368 A KR 20230113368A
- Authority
- KR
- South Korea
- Prior art keywords
- trigger
- audio data
- words
- trigger word
- word
- Prior art date
Links
- 238000001514 detection method Methods 0.000 title claims description 25
- 238000000034 method Methods 0.000 claims abstract description 49
- 230000009471 action Effects 0.000 claims abstract description 18
- 230000015654 memory Effects 0.000 claims description 54
- 238000012545 processing Methods 0.000 claims description 49
- 238000013518 transcription Methods 0.000 claims description 40
- 230000035897 transcription Effects 0.000 claims description 40
- 238000004891 communication Methods 0.000 claims description 8
- 238000013528 artificial neural network Methods 0.000 claims description 7
- 230000002776 aggregation Effects 0.000 claims 2
- 238000004220 aggregation Methods 0.000 claims 2
- 230000003139 buffering effect Effects 0.000 claims 2
- 230000008569 process Effects 0.000 description 13
- 238000004590 computer program Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000004044 response Effects 0.000 description 3
- 230000007958 sleep Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000006266 hibernation Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000003058 natural language processing Methods 0.000 description 2
- 230000006855 networking Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 229960003965 antiepileptics Drugs 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000010411 cooking Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 230000000007 visual effect Effects 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/22—Procedures used during a speech recognition process, e.g. man-machine dialogue
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3206—Monitoring of events, devices or parameters that trigger a change in power modality
- G06F1/3231—Monitoring the presence, absence or movement of users
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2452—Query translation
- G06F16/24522—Translation of natural language queries to structured queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/16—Sound input; Sound output
- G06F3/167—Audio in a user interface, e.g. using voice commands for navigating, audio feedback
-
- 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/28—Constructional details of speech recognition systems
- G10L15/285—Memory allocation or algorithm optimisation to reduce hardware requirements
-
- 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)
- Theoretical Computer Science (AREA)
- Computational Linguistics (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Human Computer Interaction (AREA)
- Multimedia (AREA)
- Acoustics & Sound (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Health & Medical Sciences (AREA)
- Telephonic Communication Services (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
방법(300)은 사용자 디바이스(104)에 의해 캡처된 발화(110)에 대응하는 오디오 데이터(202)를 수신하는 단계를 포함한다. 발화는 디지털 어시스턴트(109)가 동작을 수행하기 위한 명령을 포함한다. 이 방법은 또한 핫프레이즈(210)와 연관된 트리거 워드들의 세트 내의 각 트리거 워드를 검출하도록 구성된 핫프레이즈 검출기(200)를 사용하여, 트리거 워드들의 세트 내의 임의의 트리거 워드들이 대응하는 고정 지속 시간 윈도우(220) 동안 오디오 데이터에서 검출되는지 여부를 결정하는 단계를 포함한다. 이 방법은 또한 발화에 대응하는 오디오에서 트리거 워드들의 세트 내의 서로 다른 트리거 워드가 또한 오디오 데이터에서 검출될 때, 핫프레이즈를 식별하는 단계를 포함한다. 이 방법은 또한 발화에 대응하는 오디오 데이터에서 핫프레이즈가 식별될 때 오디오 데이터에 대한 스피치 인식을 수행하기 위해 자동 스피치 인식기(116)를 트리거하는 단계를 포함한다.
Description
본 개시는 검출들의 시퀀스에 기반한 핫프레이즈(hotphrase) 트리거링에 관한 것이다.
스피치 지원 환경에서는 사용자가 큰 소리로 쿼리나 명령만 말할 수 있으며 디지털 어시스턴트는 쿼리에 응답하고/하거나 명령이 수행되도록 한다. 스피치 지원 환경(예: 가정, 직장, 학교 등)은 다양한 방 및/또는 환경 영역들에 분산된 연결된 마이크로폰 디바이스들의 네트워크를 사용하여 구현할 수 있다. 이러한 마이크로폰들의 네트워크를 통해, 사용자는 자신의 앞에 또는 근처에 컴퓨터나 다른 디바이스가 없어도 본질적으로 환경의 어느 곳에서든 디지털 어시스턴트에게 구두로 쿼리할 수 있다. 이러한 디바이스들은 핫워드를 사용하여 주어진 발화가 그 환경에 있는 또 다른 개인을 향한 발화가 아니라 시스템을 향한 경우를 식별하는 데 도움을 줄 수 있다. 따라서 디바이스들은 슬립 상태 또는 하이버네이션(hibernation) 상태로 동작하다가 검출된 발화에 핫워드가 포함된 경우에만 웨이크업할 수 있다. 깨어난 디바이스들은 전체 디바이스 내 자동 스피치 인식(ASR) 또는 서버 기반 ASR과 같은 더 고가의 프로세싱을 계속 수행할 수 있다. 예를 들어, 주방에서 요리하는 동안, 사용자는 지정된 핫워드 "안녕 컴퓨터"를 말하여 스피치 지원 디바이스를 깨우고 스피치 지원 디바이스에서 실행되는 디지털 어시스턴트에게 "타이머를 20분으로 설정해주세요"라고 요청할 수 있으며, 이에 대한 응답으로, 디지털 어시스턴트는 타이머가 설정되었는지 확인하고(예: 합성된 보이스 출력의 형태로), 20분 후 타이머가 경과하면 (예: 음향 스피커의 알람 또는 기타 청각적 경보의 형태로) 사용자에게 경보를 발한다.
본 개시의 일 양태는 핫프레이즈를 검출하기 위한 방법을 제공한다. 이 방법은 사용자와 연관된 사용자 디바이스의 데이터 프로세싱 하드웨어에서, 사용자에 의해 발화되고 사용자 디바이스에 의해 캡처된 발화에 대응하는 오디오 데이터를 수신하는 단계를 포함한다. 발화는 디지털 어시스턴트가 동작을 수행하도록 하는 명령을 포함한다. 오디오 데이터의 복수의 고정 지속 시간 윈도우(fixed-duration time window)들 각각 동안: 방법은 데이터 프로세싱 하드웨어에 의해, 핫프레이즈와 연관된 트리거 워드들의 세트 내의 각각의 트리거 워드를 검출하도록 구성된 핫프레이즈 검출기를 사용하여, 트리거 워드들의 세트 내의 트리거 워드들 중 임의의 트리거 워드들이 대응하는 고정 지속 시간 윈도우 동안 오디오 데이터에서 검출되는지 여부를 결정하는 단계; 핫프레이즈와 연관된 트리거 워드들의 세트 내의 트리거 워드들 중 하나가 대응하는 고정 지속 시간 윈도우 동안 오디오 데이터에서 검출될 때, 데이터 프로세싱 하드웨어에 의해, 핫프레이즈와 연관된 트리거 워드들의 세트 내의 서로 다른 트리거 워드가 또한 오디오 데이터에서 검출되었는지 여부를 결정하는 단계; 및 트리거 워드들의 세트 내의 서로 다른 트리거 워드가 또한 오디오 데이터에서 검출될 때, 데이터 프로세싱 하드웨어에 의해, 발화에 대응하는 오디오 데이터에서 핫프레이즈를 식별하는 단계를 포함한다. 이 방법은 또한 발화에 대응하는 오디오 데이터에서 핫프레이즈가 식별될 때, 데이터 프로세싱 하드웨어에 의해, 오디오 데이터에 대한 스피치 인식을 수행하기 위해 자동 스피치 인식기(ASR)를 트리거하는 단계를 포함한다.
본 개시의 다른 양태는 핫프레이즈를 검출하기 위한 시스템을 제공한다. 이 시스템은 데이터 프로세싱 하드웨어 및 데이터 프로세싱 하드웨어와 통신하는 메모리 하드웨어를 포함하고, 메모리 하드웨어는 데이터 프로세싱 하드웨어에 의해 실행 될 때 데이터 프로세싱 하드웨어로 하여금 동작들을 수행하게 하는 명령어들을 포함한다. 동작들은 사용자에 의해 발화되고 사용자와 연관된 사용자 디바이스에 의해 캡처된 발화에 대응하는 오디오 데이터를 수신하는 동작을 포함한다. 발화는 디지털 어시스턴트가 동작을 수행하도록 하는 명령을 포함한다. 오디오 데이터의 복수의 고정 지속 시간 윈도우들 각각 동안: 동작들은 핫프레이즈와 연관된 트리거 워드들의 세트 내의 각각의 트리거 워드를 검출하도록 구성된 핫프레이즈 검출기를 사용하여, 트리거 워드들의 세트 내의 트리거 워드들 중 임의의 트리거 워드들이 대응하는 고정 지속 시간 윈도우 동안 오디오 데이터에서 검출되는지 여부를 결정하는 동작; 핫프레이즈와 연관된 트리거 워드들의 세트 내의 트리거 워드들 중 하나가 대응하는 고정 지속 시간 윈도우 동안 오디오 데이터에서 검출될 때, 핫프레이즈와 연관된 트리거 워드들의 세트 내의 서로 다른 트리거 워드가 또한 오디오 데이터에서 검출되었는지 여부를 결정하는 동작; 및 트리거 워드들의 세트 내의 서로 다른 트리거 워드가 또한 오디오 데이터에서 검출될 때, 발화에 대응하는 오디오 데이터에서 핫프레이즈를 식별하는 동작을 포함한다. 이 동작들은 또한 발화에 대응하는 오디오 데이터에서 핫프레이즈가 식별될 때, 오디오 데이터에 대한 스피치 인식을 수행하기 위해 자동 스피치 인식기(ASR)를 트리거하는 동작을 포함한다.
본 발명의 하나 이상의 구현예들에 대한 세부 사항들은 첨부된 도면들과 아래 설명에 설명되어 있다. 다른 양태들, 특징들 및 이점들은 설명, 도면들 및 청구범위로부터 명백할 것이다.
도 1은 오디오에서 핫프레이즈들을 검출하기 위한 핫프레이즈 검출기를 포함하는 예시적인 시스템이다.
도 2는 도 1의 핫프레이즈 검출기의 일 예이다.
도 3은 오디오에서 핫프레이즈를 검출하는 방법을 위한 동작들의 예시적인 배열에 대한 흐름도이다.
도 4는 본 명세서에 기술된 시스템들 및 방법들을 구현하는 데 사용될 수 있는 예시적인 컴퓨팅 디바이스의 개략도이다.
여러 도면들에서 동일한 참조 부호들은 동일한 요소들을 나타낸다.
도 2는 도 1의 핫프레이즈 검출기의 일 예이다.
도 3은 오디오에서 핫프레이즈를 검출하는 방법을 위한 동작들의 예시적인 배열에 대한 흐름도이다.
도 4는 본 명세서에 기술된 시스템들 및 방법들을 구현하는 데 사용될 수 있는 예시적인 컴퓨팅 디바이스의 개략도이다.
여러 도면들에서 동일한 참조 부호들은 동일한 요소들을 나타낸다.
하나 이상의 어시스턴트 지원 디바이스들의 네트워크를 통해, 사용자는 쿼리 또는 명령을 큰 소리로 말할 수 있고 디지털 어시스턴트 필드를 가지고 쿼리에 응답하고/하거나 명령이 수행되도록 할 수 있다. 이상적으로는 사용자는 어시스턴트 지원 디바이스를 향해 쿼리/명령을 말함으로써 마치 다른 사람과 대화하는 것처럼 디지털 어시스턴트와 통신할 수 있어야 한다. 그러나, 스마트폰이나 스마트 워치와 같이 리소스가 제한된 어시스턴트 지원 디바이스에서 전체 스피치 인식을 지속적으로 실행하는 데 엄청난 비용이 든다는 사실 때문에 디지털 어시스턴트가 항상 사용자에게 응답하는 것은 어려운 일이다.
따라서, 이러한 어시스턴트 지원 디바이스들은 일반적으로 저전력 핫워드 모델이 스피치 인식을 실행하지 않고 오디오에서 미리 정의된 핫워드를 검출할 수 있는 슬립 상태 또는 하이버네이션 상태에서 동작한다. 음성 발화에서 미리 정의된 핫워드를 검출하면, 어시스턴트 지원 디바이스가 깨어나 전체 디바이스 내 자동 스피치 인식(ASR) 또는 서버 기반 ASR과 같은 더 고가의 프로세싱을 계속 수행할 수 있다. 사용자가 미리 정의된 핫워드를 말하도록 하는 요구 사항을 완화하여 상시(always-on) 스피치를 지원하는 경험을 만들기 위해, 현재 많은 노력들이 디지털 어시스턴트를 일반적인 프레이즈들의 한정된 세트(예: "타이머 설정”, “볼륨 낮추기” 등)에 대해 직접 활성화하는 데 집중되어 있다. 저전력 상태에 있는 동안, 어시스턴트 지원 디바이스는 오디오에서 고정 핫프레이즈를 검출/인식할 수 있는 소형 핫프레이즈(또는 웜 워드(warm word)) 모델 또는 저전력 스피치 인식기와 같은 저전력 모델을 실행할 수 있다. 고정 핫프레이즈가 저전력 모델에 의해 검출/인식되면, 스피치 지원 디바이스는 더 강력하고 정확한 모델을 트리거하여 오디오에 고정 프레이즈가 존재하는지 확인한다.
핫프레이즈 검출 모델의 한 가지 문제점은 핫프레이즈 모델이 인식하도록 트레이닝된 정확한 명령을 사용자가 말해야 하기 때문에 유연성이 없다는 것이다. 즉, 사용자는 핫프레이즈 모델에서 예상하는 정확한 핫프레이즈를 말해야 하며, 다양한 프레이즈에 대한 변형/유연성을 수용할 수 없다. 많은 시나리오에서 주어진 명령에 대한 워드들의 시퀀스가 발화에서 항상 연속적으로 언급되지는 않으므로, 주어진 명령을 핫프레이즈로 표현하기가 어렵다. 예를 들어, 텍스트 메시지를 보내는 명령을 수행할 때, 사용자는 "send a message to John saying I’m running late"라고 말할 수 있다. 여기서, 이 명령은 고정된 부분들뿐만 아니라 기존의 저전력 핫프레이즈 검출 모델로는 검출/인식하기 어려운 일부 가변 부분들을 포함한다. 따라서 기존의 저전력 핫프레이즈 검출 모델은 유연성이 부족하고 제한된 수의 상이한 핫프레이즈들만 지원한다.
여기서의 구현예들은 저전력으로 실행할 수 있는 보다 유연한 핫워드 검출 모델들을 가능하게 하는 동시에 사용자가 유연성이 향상된 상시 작동하는 어시스턴트 지원 디바이스(AED)와 보다 자연스럽게 통신할 수 있는 방향으로 진행된다. 보다 구체적으로, AED는 발화에서 다수의 상이한 핫워드를 검출하도록 구성된 단일 핫워드 검출 모델을 실행하고; 또는 각 핫워드 검출 모델이 발화에서 대응하는 핫워드를 검출하도록 구성된 핫워드 검출 모델들의 세트를 병렬로 실행한다. 핫워드 검출 모델들의 세트가 주어진 발화에서 다수의 핫워드들을 검출할 때, 1단계 핫프레이즈 검출기는 전체 핫프레이즈를 검출하기 위해 다수의 핫워드들을 집계할 수 있다. 즉, 다수의 핫워드들이 예상 순서대로 미리 정의된 시간 윈도우 내에서 검출될 때 전체 핫프레이즈가 검출될 수 있으므로, AED가 저전력 상태에서 깨어나 2단계 핫프레이즈 검출기를 실행하여 검출된 핫프레이즈를 검증할 수 있다. 제2단계 핫프레이즈 검출기는 제1단계에 의해 검출된 핫워드를 검증하고/하거나 제1단계 핫프레이즈 검출기에 의해 검출/인식되지 않은 미리 정의된 시간 윈도우 내에서 파라미터들을 인식할 수 있도록 하기 위해 사용될 수 있다. 이러한 파라미터들은 예를 들어 핫워드 모델이 검출하도록 트레이닝되지는 않았지만 발행된 쿼리/명령의 일부로 음성 발화에 분산된 중간 워드들/용어들이 포함될 수 있다.
핫프레이즈 검출기는 현재 사용 중인 애플리케이션 및/또는 AED의 화면에 디스플레이된 콘텐츠와 관련된 컨텍스트에 기반하여 다수의 핫워드들/트리거 워드들을 검출하도록 활성화/초기화될 수 있다. 예를 들어, 사용자가 화면에 디스플레이된 "메시지 종료" 및 "전화 받기"를 보는 경우, 핫프레이즈 검출기는 보내기/받기/전화/메시지라는 워드들을 활성화할 수 있다.
도 1은 사용자(102)가 스피치를 통해 상호 작용할 수 있는 디지털 어시스턴트(109)를 실행하는 어시스턴트 지원 디바이스(assistant-enabled device)(AED)(104)를 포함하는 예시적인 시스템(100)을 도시한다. 표시된 예에서 AED(104)는 스마트 스피커에 대응한다. 그러나, AED(104)는 스마트폰, 태블릿, 스마트 디스플레이, 데스크톱/랩탑, 스마트 워치, 스마트 기기, 헤드폰 또는 차량 인포테인먼트 디바이스와 같은 다른 컴퓨팅 디바이스들을 포함할 수 있다. AED(104)는 데이터 프로세싱 하드웨어(10) 및 데이터 프로세싱 하드웨어(10)에서 실행될 때 데이터 프로세싱 하드웨어(10)로 하여금 동작들을 수행하게 하는 명령어들을 저장하는 메모리 하드웨어(12)를 포함한다. AED(104)는 AED(104)를 향한 스피치와 같은 음향 사운드들을 캡처하도록 구성된 하나 이상의 마이크로폰들의 어레이(16)를 포함한다. AED(104)는 또한 사용자(102)에게 재생을 위해 오디오를 출력할 수 있는 오디오 출력 디바이스(예: 스피커)를 포함하거나 이와 통신할 수 있다.
도시된 예에서, 사용자(102)는 AED(104) 부근에서, “Send a message to John saying ‘I’m running late’”라는 발화(110)를 말한다. AED(104)의 마이크로폰(16)은 발화(110)를 수신하고 발화(110)에 대응하는 오디오 데이터(202)를 프로세싱한다. 오디오 데이터의 초기 프로세싱은 오디오 데이터를 필터링하고 오디오 데이터를 아날로그 신호에서 디지털 신호로 변환하는 것을 포함할 수 있다. AED(104)가 오디오 데이터를 프로세싱함에 따라, AED는 추가 프로세싱을 위해 오디오 데이터를 메모리 하드웨어(12)의 버퍼에 저장할 수 있다. 오디오 데이터가 버퍼에 있는 경우, AED(104)는 오디오 데이터(202)가 핫프레이즈를 포함하는지 여부를 검출하기 위해 핫프레이즈 검출기(200)를 사용할 수 있다. 더 구체적으로, 핫프레이즈 검출기는 오디오 데이터(202)의 고정 지속 시간 윈도우(220) 동안 핫프레이즈와 연관된 트리거 워드들의 세트 내의 각 트리거 워드를 오디오 데이터에서 검출하도록 구성된다. 따라서, 핫프레이즈 검출기(200)는 오디오 데이터에 대한 스피치 인식을 수행하지 않고 오디오 데이터에 포함된 트리거 워드들을 식별하도록 구성된다. 도시된 예에서, 핫프레이즈 검출기(200)가 오디오 데이터(202)의 고정 지속 시간 윈도우(220) 동안 트리거 워드들 “send”, “message”, 및 “saying”의 각 특징인 오디오 데이터 내 음향 특징들을 검출하는 경우, 핫프레이즈 검출기(200)는 발화(110) "Send a message to John saying ‘I’m running late’"가 핫프레이즈(210) "send <..> message <..> saying <..>"을 포함한다고 결정할 수 있다. 음향 특징들은 발화(110)의 단기 전력 스펙트럼들의 표현인 멜-주파수 켑스트럼 계수(MFCC)들일 수 있거나 발화(110)에 대한 멜-스케일 필터뱅크 에너지들일 수 있다. 예제에서는 각 트리거 워드를 완전한 워드로 묘사하지만 트리거 워드들에는 하위 워드들이나 워드 조각들도 포함될 수 있다.
본 명세서에서 사용되는 바와 같이, 핫프레이즈(210)는 AED(104)가 각각의 액션 동작을 직접 트리거하기 위해 스피치 인식을 수행하지 않고 오디오에서 인식/검출하도록 구성되는 트리거 워드들(예: 웜 워드들)의 한정된 세트를 말한다. 즉, 핫프레이즈(210)는 AED(104)를 저전력 상태(예를 들어, 슬립 또는 하이버네이션 상태)에서 웨이크하기 위한 호출 프레이즈 및 디지털 어시스턴트(109)가 수행할 동작을 지정하는 명령의 이중 목적을 제공한다. 예에서, 핫프레이즈(210) "send <..> message <..> saying"은 사용자가 명령/쿼리에 대응하는 후속 오디오를 프로세싱하기 위해 먼저 AED(104)를 웨이크업하기 위해 미리 정의된 호출 프레이즈를 발화(110)에 접두사로 붙일 필요 없이 사용자가 AED(104)를 호출하여 각각의 동작의 수행을 트리거할 수 있게 한다.
특히, 핫 프레이즈 검출기(200)는 핫프레이즈(210)와 연관된 트리거 워드들의 세트 내의 각 트리거 워드가 핫프레이즈(210)와 연관된 미리 정의된 순차적 순서와 일치하는 시퀀스로 오디오 데이터에서 그리고 고정 지속 시간 윈도우(220) 동안/내에서 검출되는 한 핫프레이즈(210)를 검출하도록 구성된다. 즉, 핫프레이즈 검출기(200)가 검출하도록 구성된 트리거 워드들의 세트에 대응하는 고정된 부분들에 더하여, 발화(110)는 또한 제1 트리거 워드(예: “send”)와 마지막 트리거 워드(예: “saying”) 사이에서 사용자(102)에 의해 발화되는 워드들/용어들과 같이 핫프레이즈와 연관되지 않은 일부 가변 부분들을 포함할 수 있다. 이와 같이, 핫프레이즈 검출기(200)는 핫프레이즈 검출기(200)가 검출하도록 트레이닝된 정확한 명령을 사용자(102)가 말하도록 요구하지 않는다. 즉, 핫프레이즈 검출기(200)는 핫프레이즈와 연관된 상이한 프레이즈들에 대한 변형/유연성을 수용할 수 있으므로, 사용자가 트리거 워드들의 세트를 연속적으로 말할 필요가 없으며 사용자가 핫프레이즈 내에 개방형 파라미터들을 임베드하도록 허용할 수 있다. 일부 핫프레이즈들은 일반적으로 발화에서 연속적으로 언급되지만(예: "볼륨 크게", "볼륨 작게", "다음 트랙", "타이머 설정", "알람 중지" 등), 본 명세서에 개시된 핫프레이즈 검출기(200)는 또한 항상 연속적으로 언급되지 않을 핫프레이즈들에 대한 트리거 워드들의 시퀀스를 검출할 수 있으므로, AED(104)가 더 다양한 핫프레이지들(210)을 검출할 수 있다. 예를 들어, 도 1의 예에서, 사용자(102)는 디지털 어시스턴트(109)가 동작을 수행하기 위해 "Please send a nice message to my colleague John saying ‘I’m running late’”라는 약간 다른 발화를 말함으로써 동일한 명령을 전달할 수 있다. 여기서, 이 발화는 핫프레이즈(110) "send <..> message <..> saying"과 연관된 트리거 워드들의 세트를 여전히 포함하지만 제1 트리거 워드 (예: "send") 및 마지막 트리거 워드(예: "saying") 사이에서 사용자(102)가 말한 다양한 워드들/용어들을 포함한다. 따라서, 핫프레이즈 검출기(200)는 여전히 핫프레이즈(210)를 검출하여 AED(104)를 호출하여 웨이크업하고 각각의 동작(예: 메시지 콘텐츠를 수신자에게 전송)의 수행을 트리거할 수 있다.
핫프레이즈 검출기(200)는 AED(104)가 저전력 상태에 있는 동안 AED(104)에서 계속 런/실행되어 스트리밍 오디오에서 트리거 워드들의 세트 내의 각 트리거 워드를 들을 수 있다. AED(104)가 스마트폰과 같은 배터리 구동 디바이스를 포함할 때 핫프레이즈 검출기(200)는 디지털 시그널 프로세서(DSP) 칩과 같은 저전력 하드웨어에서 실행될 수 있다. 핫프레이즈 검출기(200)는 다른 유형의 AED들의 애플리케이션 프로세스(AP)/CPU에서 런/실행될 수 있지만, 스피치 인식을 수행하는 것보다 적은 전력을 소비하고 더 적은 프로세싱을 필요로 한다.
핫프레이즈 검출기(200)가 오디오 데이터(202)의 고정 지속 시간 윈도우(220) 동안 트리거 워드들의 세트 내의 각 트리거 워드를 검출함으로써 오디오 데이터(202)에서 핫프레이즈(210)를 식별할 때, AED(204)는 발화(110)에 대응하는 오디오 데이터(202)에 대한 스피치 인식을 개시하기 위해 웨이크업 프로세스를 트리거할 수 있다. 예를 들어, AED(104)에서 실행되는 자동 스피치 인식기(ASR)(116)는 오디오 데이터(202)에서 핫프레이즈들(210)의 존재를 확인하기 위한 검증 단계로서 오디오 데이터(202)에 대해 스피치 인식을 수행할 수 있다. 핫프레이즈 검출기(200)는 메모리 하드웨어(12)에 버퍼링된 오디오 데이터를 제1 트리거 워드가 검출된 시간 또는 그 이전의 시간으로 되감고, 제1 트리거 워드가 검출된 시간 또는 그 이전에 시작하는 오디오 데이터(202)를 ASR(116)에 제공하여 그에 대한 프로세싱을 수행할 수 있다. 따라서, ASR(116)에 제공되는 버퍼링된 오디오 데이터(202)는 제1 트리거 워드 전에 시작하는 일부 프리앰블 오디오를 포함할 수 있다. 프리앰블 오디오의 지속 시간은 주어진 발화에서 다른 용어들과 관련하여 제1 트리거 워드가 예상되는 위치에 기반하여 특정 핫프레이즈(210)에 의존할 수 있다. ASR(116)에 제공되는 오디오 데이터(202)는 프리앰블 오디오에 대응하는 부분 및 검출된 트리거 워드들의 세트를 특징짓는 고정 지속 시간 윈도우(220) 및 메시지 콘텐츠들 "I’m running late"을 포함하는 후속 부분(222)을 포함한다.
여기서, ASR(116)은 오디오 데이터(202)를 프로세싱함으로써 발화(110)의 전사(120)를 생성하고, 핫프레이즈(210)와 연관된 트리거 워드들의 세트 내의 각 트리거 워드가 전사(120)에서 인식되는지 여부를 결정한다. ASR(116)은 또한 전사(120)에 포함시키기 위해 마지막 트리거 워드(예: "saying")에 후속하는 메시지의 콘텐츠들, "I’m running late"에 대응하는 오디오 데이터(202)의 부분(222)을 프로세싱할 수 있다. ASR(116)이 트리거 워드들의 세트 내의 각 트리거 워드가 전사(120)에서 인식된다고 결정할 때, ASR(116)은 디지털 어시스턴트(109)가 동작을 수행하기 위한 명령을 식별하기 위해 전사(120)에 대한 쿼리 해석을 수행하기 위해 전사(120)를 쿼리 프로세싱(180)에 제공할 수 있다. 쿼리 프로세싱(180)은 발화(110)의 전사(120)를 수신하고 발화(110)가 디지털 어시스턴트(109)를 향한 쿼리/명령형 발화에 대응할 가능성을 분류하도록 구성된 전용 모델을 실행할 수 있다. 쿼리 프로세싱(180)은 의도 분류를 위해 자연어 프로세싱(NLP) 레이어들을 통해 쿼리 해석을 추가적으로 또는 대안적으로 수행할 수 있다. 예제에서, 쿼리 프로세싱(180)에 의해 전사(120)에 대해 수행되는 쿼리 해석은 수신 디바이스에 메시지를 송신하기 위한 명령을 식별하고, 메시지 콘텐츠들 “I’m running late”를 포함하는 전사(120)의 부분을 John과 연관된 수신 디바이스로 전송하기 위해 메시징 애플리케이션에 제공할 수 있다.
한편, ASR(116)이 트리거 워드들의 세트 내의 하나 이상의 트리거 워드가 전사(120)에서 인식되지 않는다고 결정할 때, ASR(116)은 핫프레이즈 검출기(200)에서 발생한 미스(miss) 트리거 이벤트를 결정하고, 따라서 핫프레이즈(210)는 사용자 발화(110)에서 발화되지 않았다. 표시된 예에서, ASR(116)은 미스 트리거 이벤트를 결정할 때 AED(104)에게 웨이크업 프로세스를 억제하고 다시 저전력 상태로 되돌아가도록 지시한다. 일부 예들에서, 핫프레이즈 검출기(200)에 의해 검출된 트리거 워드들 중 하나 이상이 ASR에 의해 잘못 인식되었을 때, AED(104)는 ASR에 의해 잘못 인식된 각 트리거 워드에 기반하여 핫프레이즈 검출기를 미세 조정하기 위해 정제 프로세스를 실행한다.
선택적으로, ASR(116)은 네트워크를 통해 AED(104)와 통신하는 원격 서버(미도시)에서 실행될 수 있다. 일부 예들에서, 계산적으로 더 집약적인 제2 단계 핫프레이즈 검출기는 ASR(116)에 의해 수행되는 검증에 더하여 또는 그 대신에 오디오 데이터(202)에서 핫프레이즈(210)의 존재를 확인한다.
도 2를 참조하면, 일부 구현예들에서, 핫프레이즈 검출기(200)는 핫프레이즈(210)와 연관된 트리거 워드들의 세트 내의 각 트리거 워드를 검출하도록 트레이닝된 트리거 워드 검출 모델(205)을 포함한다. AED(104)의 마이크로폰(16)에 의해 캡처된 스트리밍 오디오로부터 변환된 오디오 데이터(202)는 버퍼에서 버퍼링되고 트리거 워드 검출 모델(205)에 공급된다. 버퍼는 메모리 하드웨어(12)에 상주할 수 있다. 모델(205)은 핫프레이즈(210)와 연관된 트리거 워드들의 세트를 포함하는 지원되는 트리거 워드들의 범위에 대한 신뢰도 스코어들(207)을 출력하도록 구성된다. 지원되는 트리거 워드들의 범위에는 하나 이상의 추가 핫프레이즈들과 연관된 상이한 트리거 워드들의 세트에 대한 다른 트리거 워드들이 포함될 수 있다. 일부 트리거 워드들은 다수의 트리거 워드들의 세트들에 속할 수 있다. 예를 들어, 트리거 워드 "message"는 또 다른 핫프레이즈 "dictate <..> message"와 연관된 상이한 트리거 워드들의 세트에 속할 수도 있다. 일부 예들에서, 모델(205)은 오디오의 N 밀리초 마다 분류(예: 신뢰도 스코어(207))를 생성하기 위해 오디오 프레임을 프로세싱하도록 구성된 여러 신경 네트워크 레이어 블록들을 갖는 고정 윈도우 오디오 모델을 포함한다. 여기서, 신경 네트워크 레이어 블록들은 컨벌루션 블록들을 포함할 수 있다. 복수의 시간 단계들 각각에서, 모델의 출력 레이어는 지원되는 각 트리거 워드에 대한 신뢰도 스코어(207)를 출력할 수 있다. 따라서, 모델이 지원하는 각 트리거 워드는 타겟 클래스라고 할 수 있다. 모델(205)이 트리거 워드 신뢰도 임계값을 만족하는 트리거 워드에 대한 각각의 신뢰도 스코어(207)를 출력할 때, 핫프레이즈 검출기(200)는 오디오 데이터(202)에서 트리거 워드의 존재를 나타내는 각각의 트리거 이벤트(260)를 검출하고 각각의 트리거 이벤트(260)를 버퍼에 버퍼링한다.
도시된 예에서, 버퍼 내의 각각의 트리거 이벤트(260)는 대응하는 트리거 워드에 대한 각각의 신뢰도 스코어(207) 및 대응하는 트리거 워드가 오디오 데이터(202)에서 검출된 때를 나타내는 각각의 타임 스탬프(209)를 나타낸다. 예를 들어, 트리거 워드 신뢰도 임계값이 0.7이라고 가정할 때: 각각의 트리거 이벤트(260)는 모델(205)이 현재 고정 지속 시간 윈도우(220)가 시작하는 때를 나타내는 0밀리초(ms)에서 트리거 워드 "send"에 대해 0.95와 동일한 각각의 신뢰도 스코어를 출력할 때 검출될 수 있다; 각각의 트리거 이벤트(260)는 모델(205)이 삼백(300)ms에서 트리거 워드 "message"에 대해 0.8과 동일한 각각의 신뢰도 스코어를 출력할 때 검출될 수 있다; 각각의 트리거 이벤트(260)는 모델(205)이 1,000ms에서 트리거 워드 "saying"에 대해 0.85와 동일한 각각의 신뢰도 스코어를 출력할 때 검출될 수 있다. 특히, 핫프레이즈 검출기(200)는 각 개별 트리거 워드에 대한 트리거 이벤트(260) 검출에 응답하여 웨이크업 프로세스를 개시하지 않는다.
핫프레이즈 검출기(200)는 또한 트리거 워드 검출 모델(205)이 각각의 트리거 이벤트(260)를 검출할 때마다 트리거 워드 집계 루틴(280)을 실행하도록 구성된다. 여기에서, 루틴(280)은: 트리거 워드들의 세트 내의 서로 다른 대응하는 트리거 워드에 대한 각각의 트리거 이벤트(260)가 버퍼에 있는지 여부를 결정하고; 그리고 트리거 워드들의 세트 내의 서로 다른 대응하는 트리거 워드에 대한 각각의 트리거 이벤트(260)가 또한 버퍼에 있을 때, 사용자에 의한 발화가 핫프레이즈(210)를 포함할 가능성을 나타내는 핫프레이즈 신뢰도 스코어(282)를 결정한다. 일부 예들에서, 핫프레이즈 검출기(200)는 핫프레이즈 신뢰도 스코어(282)가 핫프레이즈 신뢰도 임계값을 만족할 때 오디오 데이터(202)에서 핫프레이즈를 식별한다.
루틴(280)은 트리거 워드들의 세트 내의 각 대응하는 트리거 워드에 대한 버퍼 내의 각각의 트리거 이벤트(260)에 의해 표시되는 각각의 트리거 워드 신뢰도 스코어(207) 및 각각의 타임 스탬프(209)에 기반하여 핫프레이즈 신뢰도 스코어(282)를 결정하도록 구성될 수 있다. 실제로, 각각의 트리거 이벤트(260)는 트리거 워드 신뢰도 스코어(207)가 트리거 워드 신뢰도 임계값을 초과하는 위치를 나타내는 다수의 각각의 타임 스탬프들(209)을 포함할 수 있어, 다수의 기법들을 사용하여 연속적인 검출을 결합할 수 있다. 예를 들어, 가장 높은 트리거 워드 신뢰도 스코어(207)와 연관된 타임 스탬프(209)는 버퍼에 저장된 트리거 이벤트(260)에 의해 표시될 수 있다. 트리거 워드 집계 루틴(280)을 실행하는 것은 신경 네트워크 기반 모델을 실행하는 것을 포함할 수 있다. 신경 네트워크 기반 모델은 순환 신경 네트워크(RNN) 아키텍처를 갖는 모델과 같은 시퀀스 기반 기계 학습 모델을 포함할 수 있다. 다른 예들에서, 트리거 워드 집계 루틴(280)을 실행하는 것은 문법 또는 휴리스틱 기반 모델을 실행하는 것을 포함한다. 루틴(280)은 또한 고정 지속 시간 윈도우(220) 동안 트리거 워드가 검출된 시퀀스를 고려한다. 즉, 오디오 데이터(202)에서 검출된 트리거 워드들의 세트 내의 시퀀스는 핫프레이즈(210)를 식별하기 위해 핫프레이즈(210)와 연관된 미리 정의된 순차적 순서와 일치해야 한다. 예를 들어, 도시된 예에서, 트리거 워드 "saying"의 검출을 나타내는 트리거 이벤트(260)를 수신할 때, 루틴(280)은 트리거 워드 "send" 이후 및 트리거 워드 "saying" 이전에 트리거 워드 "message"가 검출되었음을 결정하기 위해 버퍼의 각각의 타임스탬프(209)를 사용할 수 있다.
일부 예들에서, 루틴(280)에 의해 생성된 핫프레이즈 신뢰도 스코어(282)는 오디오 데이터에서 검출된 트리거 워드들의 세트 내의 인접한 트리거 워드들의 각 쌍 사이의 각각의 기간에 더 기반한다. 예를 들어, 루틴(280)은 각각의 개별 기간을 특정 프레이즈에 대한 인접한 트리거 워드들의 쌍 사이에서 예상되는 대응하는 레퍼런스 기간과 비교할 수 있다. 즉, 핫프레이즈(210) "send <..> message <..> saying"에 대해, 트리거 워드들 "send"와 "message" 사이에 예상되는 레퍼런스 기간은 트리거 워드들 "message"와 "saying" 사이에 예상되는 레퍼런스 기간보다 짧다. 루틴(280)은 또한 트리거 워드들의 특정 쌍 사이의 최대 기간에 기반하여 핫프레이즈를 제한할 수 있다.
트리거 워드 검출 모델(205)에 대한 문법들(예: 타겟 클래스들/트리거 워드들)은 수동으로 구성되거나 학습/트레이닝될 수 있다. 학습된 경우, 특정 버티컬(vertical) 또는 의도에 대한 AED 쿼리들이 사용될 수 있다. 예를 들어, 핸즈프리 방식으로 수신자에게 메시지들을 받아쓰고 보내는 명령을 나타내기 위해, 메시지를 받아쓰고 보내는 명령을 말하는 사용자들의 쿼리 전사들은 트리거 워드 검출 모델(205)에 의한 사용 및 메시지 보내기 명령에 대한 쿼리 전사들의 최대 프랙션(fraction)을 커버하는 트리거 워드들의 최소 세트를 학습하기 위해 활용될 수 있다. 즉, 전사들의 최대 프랙션을 커버하는 트리거 워드들의 최소 세트는 가장 빈도가 높은 전사들에서 발생하는 트리거 워드들과 연관된다. 또 다른 예에서, 음악 재생을 위한 저전력 명령들을 지원하도록 트리거 워드 검출 모델(205)을 구성할 때, 음악 재생 명령들에 대한 쿼리 전사들은 획득된 쿼리 전사들에서 전사들의 최대 프랙션을 커버하는 트리거 워드들의 최소 세트를 식별하기 위해 획득될 것이다. 특히, 트리거 워드 검출 모델(205)은 사용자 및/또는 특정 AED의 사용자에 의해 발화된 개인화된 핫프레이즈들을 검출하도록 트리거 워드 검출 모델(205)이 구성되도록 온-디바이스 및/또는 사용자 기반으로 구성될 수 있다. 공통/일반 핫프레이즈들에 대한 트리거 워드 검출 모델은 서버 측에서 검출되어 AED 모집단으로 푸시될 수도 있다.
도 3은 오디오 데이터(202)의 고정 지속 시간 윈도우(220) 동안 오디오 데이터(202)에서 핫프레이즈(210)를 검출하는 방법(300)을 위한 예시적인 동작들의 배열에 대한 흐름도이다. 동작(302)에서, 방법(300)은 사용자(102)와 연관된 사용자 디바이스(104)의 데이터 프로세싱 하드웨어(10)에서 사용자(102)에 의해 발화되고 사용자 디바이스(104)에 의해 캡처된 발화(110)에 대응하는 오디오 데이터(202)를 수신하는 단계를 포함한다. 발화(110)은 디지털 어시스턴트(109)가 동작을 수행하기 위한 명령을 포함한다. 사용자 디바이스(104)는 디지털 어시스턴트(109)를 실행하는 어시스턴트 지원 디바이스(AED)를 포함할 수 있다.
방법(300)에 대한 동작들(304, 306, 308)은 오디오 데이터(202)의 복수의 고정 지속 시간 윈도우들(220) 각각 동안 수행된다. 동작(304)에서, 방법(300)은 데이터 프로세싱 하드웨어(10)에 의해, 핫프레이즈(210)와 연관된 트리거 워드들의 세트 내의 각 트리거 워드를 검출하도록 구성된 핫프레이즈 검출기(200)를 사용하여, 트리거 워드들의 세트 내의 임의의 트리거 워드들이 대응하는 고정 지속 시간 윈도우(220) 동안 오디오 데이터(202)에서 검출되는지 여부를 결정하는 단계를 포함한다. 동작(306)에서, 핫프레이즈(210)와 연관된 트리거 워드들의 세트 내의 트리거 워드들 중 하나가 대응하는 고정 지속 시간 윈도우(220) 동안 오디오 데이터(202)에서 검출될 때, 방법(300)은 또한 데이터 프로세싱 하드웨어(10)에 의해, 핫프레이즈(210)와 연관된 트리거 워드들의 세트 내의 서로 다른 트리거 워드가 또한 오디오 데이터에서 검출되었는지 여부를 결정하는 단계를 포함한다. 동작(308)에서, 트리거 워드들의 세트 내의 서로 다른 트리거 워드가 또한 오디오 데이터에서 검출될 때, 방법(300)은 또한 데이터 프로세싱 하드웨어에 의해 발화에 대응하는 오디오 데이터에서 핫프레이즈를 식별하는 단계를 포함한다.
동작(310)에서, 방법(300)은 발화에 대응하는 오디오 데이터에서 핫프레이즈가 식별될 때, 데이터 프로세싱 하드웨어(10)에 의해, 오디오 데이터에 대한 스피치 인식을 수행하기 위해 자동 스피치 인식기(ASR)를 트리거하는 단계를 포함한다. 여기서, ASR은 제1 트리거 워드가 검출될 때 또는 그 이전에 시작하는 오디오를 프로세싱하여 트리거 워드들의 세트 내의 각 트리거 워드가 전사(120)에서 인식되는지 여부를 결정하기 위해 발화에 대한 전사(120)를 생성할 수 있다.
소프트웨어 애플리케이션(즉, 소프트웨어 리소스)은 컴퓨팅 디바이스로 하여금 태스크를 수행하게 하는 컴퓨터 소프트웨어를 의미할 수 있다. 일부 예들에서, 소프트웨어 애플리케이션은 "애플리케이션", "앱" 또는 "프로그램"으로 지칭될 수 있다. 예시적인 애플리케이션들에는 시스템 진단 애플리케이션, 시스템 관리 애플리케이션, 시스템 유지 보수 애플리케이션, 워드 프로세싱 애플리케이션, 스프레드시트 애플리케이션, 메시징 애플리케이션, 미디어 스트리밍 애플리케이션, 소셜 네트워킹 애플리케이션 및 게임 애플리케이션이 포함되지만 이에 국한되지는 않는다.
비일시적 메모리는 컴퓨팅 디바이스에 의한 사용을 위해 일시적 또는 영구적으로 프로그램(예: 명령어들의 시퀀스들) 또는 데이터(예: 프로그램 상태 정보)를 저장하는 데 사용되는 물리적 디바이스들일 수 있다. 비일시적 메모리는 휘발성 및/또는 비휘발성 어드레서블 반도체 메모리일 수 있다. 비휘발성 메모리의 예로는 플래시 메모리 및 읽기 전용 메모리(ROM) / 프로그래밍 가능한 읽기 전용 메모리(PROM) / 지울 수 있는 프로그래밍 가능한 읽기 전용 메모리(EPROM) / 전자적으로 지울 수 있는 프로그래밍 가능한 읽기 전용 메모리(EEPROM)(예: 부트 프로그램과 같은 펌웨어에 일반적으로 사용됨)가 포함되지만 이에 국한되지 않는다. 휘발성 메모리의 예에는 랜덤 액세스 메모리(RAM), 동적 랜덤 액세스 메모리(DRAM), 정적 랜덤 액세스 메모리(SRAM), 위상 변경 메모리(PCM) 및 디스크나 테이프가 포함되지만 이에 국한되지 않는다.
도 4는 본 문서에 기술된 시스템들 및 방법들을 구현하는 데 사용될 수 있는 예시적인 컴퓨팅 디바이스(400)의 개략도이다. 컴퓨팅 디바이스(400)는 랩탑, 데스크탑, 워크스테이션, 퍼스널 디지털 어시스턴트, 서버, 블레이드 서버, 메인프레임 및 기타 적절한 컴퓨터와 같은 다양한 형태들의 디지털 컴퓨터들을 나타내도록 의도된다. 여기에 표시된 구성요소들, 연결들 및 관계들, 기능들은 예시일 뿐이며 이 문서에서 설명 및/또는 청구된 발명의 구현을 제한하지 않는다.
컴퓨팅 디바이스(400)는 프로세서(410), 메모리(420), 스토리지 디바이스(430), 메모리(420) 및 고속 확장 포트(450)에 연결되는 고속 인터페이스/컨트롤러(440), 및 저속 버스(470) 및 스토리지 디바이스(430)에 연결되는 저속 인터페이스/컨트롤러(460)를 포함한다. 구성요소들(410, 420, 430, 440, 450 및 460) 각각은 다양한 버스들을 사용하여 상호 연결되며, 공통 마더보드 또는 적절한 다른 방식으로 장착될 수 있다. 프로세서(410)는 고속 인터페이스(440)에 결합된 디스플레이(480)와 같은, 외부 입력/출력 디바이스에 그래픽 사용자 인터페이스(GUI)에 대한 그래픽 정보를 디스플레이하기 위해 메모리(420) 또는 스토리지 디바이스(430)에 저장된 명령어들을 포함하여, 컴퓨팅 디바이스(400) 내에서 실행하기 위한 명령어들을 프로세싱할 수 있다. 다른 구현예들에서, 다수의 프로세서들 및/또는 다수의 버스들은 다수의 메모리들 및 메모리 유형과 함께 적절하게 사용될 수 있다. 또한, 다수의 컴퓨팅 디바이스들(400)이 연결될 수 있으며, 각각의 디바이스는 필요한 동작들의 일부를 제공한다(예: 서버 뱅크, 블레이드 서버 그룹 또는 멀티 프로세서 시스템).
메모리(420)는 컴퓨팅 디바이스(400) 내에 비일시적으로 정보를 저장한다. 메모리(420)는 컴퓨터 판독가능 매체, 휘발성 메모리 유닛(들) 또는 비휘발성 메모리 유닛(들)일 수 있다. 비일시적 메모리(420)는 컴퓨팅 디바이스(400)에 의한 사용을 위해 일시적 또는 영구적으로 프로그램(예: 명령어들의 시퀀스들) 또는 데이터(예: 프로그램 상태 정보)를 저장하는 데 사용되는 물리적 디바이스들일 수 있다. 비휘발성 메모리의 예로는, 플래시 메모리 및 읽기 전용 메모리(ROM) / 프로그래밍 가능한 읽기 전용 메모리(PROM) / 지울 수 있는 프로그래밍 가능한 읽기 전용 메모리(EPROM) / 전자적으로 지울 수 있는 프로그래밍 가능한 읽기 전용 메모리(EEPROM)(예: 부트 프로그램과 같은 펌웨어에 일반적으로 사용됨)가 포함되지만 이에 국한되지 않는다. 휘발성 휘발성 메모리의 예에는 랜덤 액세스 메모리(RAM), 동적 랜덤 액세스 메모리(DRAM), 정적 랜덤 액세스 메모리(SRAM), 위상 변경 메모리(PCM) 및 디스크나 테이프가 포함되지만 이에 국한되지 않는다.
스토리지 디바이스(430)는 컴퓨팅 디바이스(400)를 위한 대용량 스토리지를 제공할 수 있다. 일부 구현예들에서, 스토리지 디바이스(430)는 컴퓨터 판독가능 매체이다. 다양한 상이한 구현예들에서, 스토리지 디바이스(430)는 플로피 디스크 디바이스, 하드 디스크 디바이스, 광학 디스크 디바이스 또는 테이프 디바이스, 플래시 메모리 또는 기타 유사한 솔리드 스테이트 메모리 디바이스, 스토리지 영역 네트워크(SAN) 또는 기타 구성의 디바이스들을 포함하는 디바이스들의 배열일 수 있다. 추가 구현예들에서, 컴퓨터 프로그램 제품은 정보 캐리어에 유형적으로 구현된다. 컴퓨터 프로그램 제품은 실행될 때 위에서 설명한 것과 같은 하나 이상의 방법들을 수행하는 명령어들을 포함한다. 정보 캐리어는 메모리(420), 스토리지 디바이스(430) 또는 프로세서(410) 상의 메모리와 같은 컴퓨터 또는 기계 판독가능 매체이다.
고속 컨트롤러(440)는 컴퓨팅 디바이스(400)에 대한 대역폭 집중 동작들을 관리하는 반면, 저속 컨트롤러(460)는 낮은 대역폭 집중 동작들을 관리한다. 이러한 의무 할당은 예시일 뿐이다. 일부 구현예들에서, 고속 컨트롤러(440)는 메모리(420), 디스플레이(480)(예: 그래픽 프로세서 또는 가속기를 통해) 및 다양한 확장 카드(미도시)를 수용할 수 있는 고속 확장 포트(450)에 결합된다. 일부 구현예들에서, 저속 컨트롤러(460)는 스토리지 디바이스(430) 및 저속 확장 포트(490)에 결합된다. 저속 확장 포트(490)는 다양한 통신 포트(예: USB, 블루투스, 이더넷, 무선 이더넷)를 포함할 수 있으며, 예를 들어 네트워크 어댑터를 통해 키보드, 포인팅 디바이스, 스캐너 또는 스위치나 라우터와 같은 네트워킹 디바이스와 같은 하나 이상의 입력/출력 디바이스에 결합될 수 있다.
컴퓨팅 디바이스(400)는 도면에 도시된 바와 같이, 다수의 상이한 형태로 구현될 수 있다. 예를 들어, 표준 서버(400a)로 구현되거나 이러한 서버들(400a)의 그룹에서 여러 번, 랩탑 컴퓨터(400b) 또는 랙 서버 시스템(400c)의 일부로 구현될 수 있다.
여기에 설명된 시스템들 및 기법들의 다양한 구현예들은 디지털 전자 및/또는 광학 회로, 집적 회로, 특별히 설계된 ASIC(애플리케이션 특정 집적 회로)들, 컴퓨터 하드웨어, 펌웨어, 소프트웨어 및/또는 이들의 조합으로 실현될 수 있다. 이러한 다양한 구현예들은 적어도 하나의 프로그래밍 가능한 프로세서를 포함하는 프로그래밍가능한 시스템 상에서 실행가능 및/또는 해석가능한 하나 이상의 컴퓨터 프로그램들에서의 구현을 포함할 수 있으며, 이는 스토리지 시스템, 적어도 하나의 입력 디바이스 및 적어도 하나의 출력 디바이스로부터 데이터 및 명령어들을 수신하고 데이터 및 명령어들을 전송하도록 결합된 특수 또는 범용일 수 있다.
이러한 컴퓨터 프로그램(프로그램, 소프트웨어, 소프트웨어 애플리케이션 또는 코드라고도 함)은 프로그래밍가능한 프로세서에 대한 기계 명령어들을 포함하며, 고급 절차 및/또는 객체 지향 프로그래밍 언어 및/또는 어셈블리/기계 언어로 구현될 수 있다. 본 명세서에서 사용되는 바와 같이, "기계 판독가능 매체" 및 "컴퓨터 판독가능 매체"라는 용어들은 기계 판독가능 신호로서 기계 명령어들을 수신하는 기계 판독가능 매체를 포함하여, 프로그램가능한 프로세서에 기계 명령어들 및/또는 데이터를 제공하는 데 사용되는 모든 컴퓨터 프로그램 제품, 비일시적 컴퓨터 판독가능 매체, 장치 및/또는 디바이스((예: 자기 디스크, 광 디스크, 메모리, 프로그램가능 로직 디바이스(PLD)들)를 의미한다. "기계 판독가능 신호"라는 용어는 프로그램가능한 프로세서에 기계 명령어들 및/또는 데이터를 제공하는 데 사용되는 모든 신호를 의미한다.
본 명세서에 기술된 프로세스 및 논리 흐름은 데이터 프로세싱 하드웨어라고도 지칭되는, 하나 이상의 프로그래밍 가능한 프로세서들에 의해 수행될 수 있으며, 하나 이상의 컴퓨터 프로그램들을 실행하여 입력 데이터에 대해 동작하고 출력을 생성함으로써 기능들을 수행할 수 있다. 프로세스 및 논리 흐름들은 특수 목적 논리 회로, 예를 들어 FPGA(필드 프로그래밍가능 게이트 어레이) 또는 ASIC(애플리케이션 특정 집적 회로)에 의해 수행될 수도 있다. 컴퓨터 프로그램 실행에 적합한 프로세서에는 예를 들어, 범용 및 특수 목적 마이크로프로세서 모두와 모든 종류의 디지털 컴퓨터의 하나 이상의 프로세서들을 포함한다. 일반적으로, 프로세서는 읽기 전용 메모리나 랜덤 액세스 메모리 또는 둘 다에서 명령어들과 데이터를 수신한다. 컴퓨터의 필수 요소들은 명령어들을 수행하기 위한 프로세서와 명령어들과 데이터를 저장하기 위한 하나 이상의 메모리 디바이스들이다. 일반적으로, 컴퓨터는 또한 데이터를 저장하기 위한 하나 이상의 대용량 스토리지 디바이스들, 예를 들어 자기, 광자기 디스크 또는 광 디스크로부터 데이터를 수신하거나 데이터를 전송하거나 둘 모두를 포함하거나 작동가능하게 결합될 것이다. 그러나 컴퓨터에는 이러한 디바이스들이 필요하지 않다. 컴퓨터 프로그램 명령어들 및 데이터를 저장하기에 적합한 컴퓨터 판독가능 매체는 예를 들어 EPROM, EEPROM 및 플래시 메모리 디바이스와 같은 반도체 메모리 디바이스; 자기 디스크, 예를 들어 내부 하드 디스크 또는 이동식 디스크; 광자기 디스크; 그리고 CD ROM 및 DVD-ROM 디스크를 포함하는 모든 형태의 비휘발성 메모리, 매체 및 메모리 디바이스를 포함한다. 프로세서와 메모리는 특수 목적 논리 회로에 의해 보완되거나 통합될 수 있다.
사용자와의 상호작용을 제공하기 위해, 본 발명의 하나 이상의 양태들은 사용자에게 정보를 디스플레이하기 위한 디스플레이 디바이스, 예를 들어 CRT(음극선관), LCD(액정 디스플레이) 모니터 또는 터치 스크린 및 선택적으로 키보드 및 포인팅 디바이스, 예를 들어 마우스 또는 트랙볼을 갖는 컴퓨터에서 구현될 수 있으며, 이를 통해 사용자는 컴퓨터에 입력을 제공할 수 있다. 다른 종류의 디바이스들을 사용하여 사용자와의 상호작용도 제공할 수 있다; 예를 들어, 사용자에게 제공되는 피드백은 시각적 피드백, 청각적 피드백 또는 촉각적 피드백과 같은 임의의 형태의 감각 피드백일 수 있다; 그리고 사용자로부터의 입력은 음향, 스피치 또는 촉각적 입력을 포함한 모든 형태로 수신될 수 있다. 또한 컴퓨터는 사용자가 사용하는 디바이스와 문서를 주고받음으로써 사용자와 상호작용할 수 있다; 예를 들어, 웹 브라우저에서 받은 요청에 대한 응답으로 사용자 클라이언트 디바이스의 웹 브라우저에 웹 페이지를 보낼 수 있다.
다수의 구현예들이 설명되었다. 그럼에도 불구하고, 본 발명의 사상 및 범위를 벗어나지 않고 다양한 수정이 이루어질 수 있음이 이해될 것이다. 따라서, 다른 구현예들은 다음 청구 범위 내에 있다.
Claims (26)
- 방법(300)에 있어서,
사용자와 연관된 사용자 디바이스(104)의 데이터 프로세싱 하드웨어(10)에서, 사용자에 의해 발화되고 사용자 디바이스(104)에 의해 캡처된 발화(110)에 대응하는 오디오 데이터(202)를 수신하는 단계, 상기 발화(110)는 디지털 어시스턴트(109)가 동작을 수행하기 위한 명령을 포함하고;
오디오 데이터(202)의 복수의 고정 지속 시간 윈도우(fixed-duration time window)들(220) 각각 동안:
데이터 프로세싱 하드웨어(10)에 의해, 핫프레이즈(hotphrase)(210)와 연관된 트리거 워드들의 세트 내의 각 트리거 워드를 검출하도록 구성된 핫프레이즈 검출기(200)를 사용하여, 트리거 워드들의 세트 내의 임의의 트리거 워드들이 대응하는 고정 지속 시간 윈도우(220) 동안 오디오 데이터(202)에서 검출되는지 여부를 결정하는 단계;
핫프레이즈(210)와 연관된 트리거 워드들의 세트 내의 트리거 워드들 중 하나가 대응하는 고정 지속 시간 윈도우(220) 동안 오디오 데이터(202)에서 검출될 때, 데이터 프로세싱 하드웨어(10)에 의해, 핫프레이즈(210)와 연관된 트리거 워드들의 세트 내의 서로 다른 트리거 워드가 또한 오디오 데이터(202)에서 검출되었는지 여부를 결정하는 단계; 및
트리거 워드들의 세트 내의 서로 다른 트리거 워드가 또한 오디오 데이터(202)에서 검출될 때, 데이터 프로세싱 하드웨어(10)에 의해, 상기 발화(110)에 대응하는 오디오 데이터(202)에서 핫프레이즈(210)를 식별하는 단계; 및
상기 발화(110)에 대응하는 오디오 데이터(202)에서 핫프레이즈(210) 식별될 때, 데이터 프로세싱 하드웨어(10)에 의해, 오디오 데이터(202)에 대한 스피치 인식을 수행하기 위해 자동 스피치 인식기(ASR)(116)를 트리거하는 단계를 포함하는, 방법(300). - 제1항에 있어서,
사용자 디바이스(104)는 사용자가 상기 발화(110)를 말했을 때 저전력 상태에 있고; 그리고
사용자에 의해 발화된 상기 발화(110)는 사용자 디바이스(104)가 저전력 상태로부터 웨이크업하도록 트리거하도록 구성되는 미리 결정된 핫워드를 포함하지 않는, 방법(300). - 제1항 또는 제2항에 있어서,
트리거 워드들의 세트 내의 임의의 트리거 워드들이 오디오 데이터(202)에서 검출되는지 여부를 결정하는 단계는, 트리거 워드들의 세트 내의 각 트리거 워드에 대해:
상기 핫프레이즈 검출기(200)를 사용하여, 대응하는 트리거 워드가 대응하는 고정 지속 시간 윈도우(220) 동안 오디오 데이터(202)에 존재할 가능성을 나타내는 각각의 트리거 워드 신뢰도 스코어(207)를 생성하는 단계;
상기 각각의 트리거 워드 신뢰도 스코어(207)가 트리거 워드 신뢰도 임계값을 만족할 때, 대응하는 고정 지속 시간 윈도우(220) 동안 오디오 데이터(202)에서 대응하는 트리거 워드를 검출하는 단계; 및
데이터 프로세싱 하드웨어(10)와 통신하는 메모리 하드웨어(12)에, 오디오 데이터(202) 및 오디오 데이터(202)에서 검출된 대응하는 트리거 워드에 대한 각각의 트리거 이벤트(260)를 버퍼링하는 단계를 포함하고, 상기 각각의 트리거 이벤트(206)는 상기 각각의 트리거 워드 신뢰도 스코어(207) 및 대응하는 트리거 워드가 오디오 데이터(202)에서 검출된 시점을 나타내는 각각의 타임 스탬프를 나타내는, 방법(300). - 제3항에 있어서,
핫프레이즈(210)와 연관된 트리거 워드들의 세트 내의 트리거 워드들 중 하나가 대응하는 고정 지속 시간 윈도우(220) 동안 오디오 데이터(202)에서 검출될 때, 데이터 프로세싱 하드웨어(10)에 의해, 트리거 워드 집계 루틴(280)을 실행하는 단계를 더 포함하고, 상기 트리거 워드 집계 루틴(280)은:
트리거 워드들의 세트 내의 서로 다른 대응하는 트리거 워드에 대한 상기 각각의 트리거 이벤트(260)가 또한 메모리 하드웨어(12)에 버퍼링되는지 여부를 결정하고; 그리고
트리거 워드들의 세트 내의 서로 다른 대응하는 트리거 워드에 대한 상기 각각의 트리거 이벤트(260)가 또한 메모리 하드웨어(12)에 버퍼링될 때, 사용자에 의한 상기 발화(110)가 핫프레이즈(210)를 포함할 가능성을 나타내는 핫프레이즈 신뢰도 스코어(282)를 결정하고,
상기 핫프레이즈(210)를 식별하는 단계는 상기 핫프레이즈 신뢰도 스코어(280)가 핫프레이즈 신뢰도 임계값을 만족할 때 핫프레이즈(210)를 식별하는 단계를 포함하는, 방법(300). - 제4항에 있어서,
트리거 프레이즈(phrase) 집계 루틴은 트리거 워드들의 세트 내의 각 대응하는 트리거 워드에 대해 메모리 하드웨어(12)에 버퍼링된 각각의 검출 이벤트에 의해 나타나는 상기 각각의 타임 스탬프 및 상기 각각의 트리거 워드 신뢰도 스코어(107)에 기반하여 상기 핫프레이즈 신뢰도 스코어(282)를 결정하도록 구성되는, 방법(300). - 제4항 또는 제5항에 있어서,
상기 트리거 워드 집계 루틴(280)을 실행하는 단계는 신경 네트워크 기반 모델을 실행하는 단계를 포함하는, 방법(300). - 제4항 또는 제5항에 있어서,
상기 트리거 워드 집계 루틴(280)을 실행하는 단계는 휴리스틱 기반 모델을 실행하는 단계를 포함하는, 방법(300). - 제1항 내지 제7항 중 어느 한 항에 있어서,
트리거 워드들의 세트 내의 서로 다른 트리거 워드가 오디오 데이터(202)에서 검출될 때:
데이터 프로세싱 하드웨어(10)에 의해, 오디오 데이터(202)에서 검출된 트리거 워드들의 세트 내의 시퀀스가 핫프레이즈(210)와 연관된 미리 정의된 순차적 순서와 일치하는지 여부를 결정하는 단계를 더 포함하고,
상기 발화(110)에 대응하는 오디오 데이터(202)에서 핫프레이즈(210)를 식별하는 단계는 오디오 데이터(202)에서 검출된 트리거 워드들의 세트 내의 시퀀스가 핫프레이즈(210)와 연관된 미리 정의된 순차적 순서와 일치할 때 핫프레이즈(219)를 식별하는 단계를 포함하는, 방법(300). - 제8항에 있어서,
데이터 프로세싱 하드웨어(10)에 의해, 오디오 데이터(202)에서 검출된 트리거 워드들의 세트 내의 인접한 트리거 워드들의 각 쌍 사이의 각각의 기간을 결정하는 단계를 더 포함하고,
상기 발화(110)에 대응하는 오디오 데이터(202)에서 핫프레이즈(210)를 식별하는 단계는 상기 인접한 트리거 워드들의 각 쌍 사이의 각각의 기간에 기반하는, 방법(300). - 제1항 내지 제9항 중 어느 한 항에 있어서,
오디오 데이터(202)에 대한 스피치 인식을 수행하기 위해 ASR(116)을 트리거하는 단계는:
오디오 데이터(202)를 프로세싱함으로써 상기 발화(110)의 전사(120)를 생성하는 단계;
핫프레이즈(210)와 연관된 트리거 워드들의 세트 내의 각 트리거 워드가 상기 발화(110)의 전사(120)에서 인식되는지 여부를 결정하는 단계; 및
핫프레이즈(210)와 연관된 트리거 워드들의 세트 내의 각 트리거 워드가 상기 전사(120)에서 인식될 때, 상기 전사(120)가 디지털 어시스턴트(109)가 동작을 수행하기 위한 명령을 포함하고 있음을 식별하기 위해 상기 전사(120)에 대한 쿼리 해석을 수행하는 단계를 포함하는, 방법(300). - 제10항에 있어서,
상기 전사(120)를 생성하는 단계는:
데이터 프로세싱 하드웨어(10)와 통신하는 메모리 하드웨어(12)에 버퍼링된 오디오 데이터(202)를 트리거 워드들의 세트 내의 제1 트리거 워드가 오디오 데이터(202)에서 검출된 시간 또는 그 이전의 시간으로 되감는 단계; 및
상기 발화(110)의 전사(120)를 생성하기 위해 트리거 워드들의 시퀀스에서 제1 트리거 워드 또는 그 이전의 시간에서 시작하는 오디오 데이터(202)를 프로세싱하는 단계를 포함하는, 방법(300). - 제10항 또는 제11항에 있어서,
상기 전사(120)는 상기 전사(120)에서 인식된 트리거 워드들의 세트 내의 제1 트리거 워드 및 상기 전사(120)에서 인식된 트리거 워드들의 세트 내의 마지막 트리거 워드 사이에서, 핫프레이즈(210)와 연관되지 않은 하나 이상의 다른 워드들을 포함하는, 방법(300). - 제1항 내지 제12항 중 어느 한 항에 있어서,
상기 핫프레이즈 검출기(200)는 핫프레이즈(210)와 연관된 트리거 워드들의 세트 내의 각 트리거 워드를 검출하도록 트레이닝된 트리거 워드 검출 모델(205)을 포함하는, 방법(300). - 시스템(100)에 있어서,
데이터 프로세싱 하드웨어(10); 및
데이터 프로세싱 하드웨어(10)와 통신하는 메모리 하드웨어(12), 메모리 하드웨어(12)는 데이터 프로세싱 하드웨어(10)에서 실행될 때 데이터 프로세싱 하드웨어(10)로 하여금 동작들을 수행하게 하는 명령어들을 포함하고, 상기 동작들은:
사용자에 의해 발화되고 사용자와 연관된 사용자 디바이스(104)에 의해 캡처된 발화(110)에 대응하는 오디오 데이터(202)를 수신하는 동작, 상기 발화(110)는 디지털 어시스턴트(109)가 동작을 수행하기 위한 명령을 포함하고;
오디오 데이터(202)의 복수의 고정 지속 시간 윈도우(fixed-duration time window)들(220) 각각 동안:
핫프레이즈(hotphrase)(210)와 연관된 트리거 워드들의 세트 내의 각 트리거 워드를 검출하도록 구성된 핫프레이즈 검출기(200)를 사용하여, 트리거 워드들의 세트 내의 임의의 트리거 워드들이 대응하는 고정 지속 시간 윈도우(220) 동안 오디오 데이터(202)에서 검출되는지 여부를 결정하는 동작;
핫프레이즈(210)와 연관된 트리거 워드들의 세트 내의 트리거 워드들 중 하나가 대응하는 고정 지속 시간 윈도우(220) 동안 오디오 데이터(202)에서 검출될 때, 핫프레이즈(210)와 연관된 트리거 워드들의 세트 내의 서로 다른 트리거 워드가 또한 오디오 데이터(202)에서 검출되었는지 여부를 결정하는 동작; 및
트리거 워드들의 세트 내의 서로 다른 트리거 워드가 또한 오디오 데이터(202)에서 검출될 때, 상기 발화(110)에 대응하는 오디오 데이터(202)에서 핫프레이즈(210)를 식별하는 동작; 및
상기 발화(110)에 대응하는 오디오 데이터(202)에서 핫프레이즈(210) 식별될 때, 오디오 데이터(202)에 대한 스피치 인식을 수행하기 위해 자동 스피치 인식기(ASR)(116)를 트리거하는 동작을 포함하는, 시스템(100). - 제14항에 있어서,
사용자 디바이스(104)는 사용자가 상기 발화(110)를 말했을 때 저전력 상태에 있고; 그리고
사용자에 의해 발화된 상기 발화(110)는 사용자 디바이스(104)가 저전력 상태로부터 웨이크업하도록 트리거하도록 구성되는 미리 결정된 핫워드를 포함하지 않는, 시스템(100). - 제14항 또는 제15항에 있어서,
트리거 워드들의 세트 내의 임의의 트리거 워드들이 오디오 데이터(202)에서 검출되는지 여부를 결정하는 동작은, 트리거 워드들의 세트 내의 각 트리거 워드에 대해:
상기 핫프레이즈 검출기(200)를 사용하여, 대응하는 트리거 워드가 대응하는 고정 지속 시간 윈도우(220) 동안 오디오 데이터(202)에 존재할 가능성을 나타내는 각각의 트리거 워드 신뢰도 스코어(207)를 생성하는 동작;
상기 각각의 트리거 워드 신뢰도 스코어(207)가 트리거 워드 신뢰도 임계값을 만족할 때, 대응하는 고정 지속 시간 윈도우(220) 동안 오디오 데이터(202)에서 대응하는 트리거 워드를 검출하는 동작; 및
데이터 프로세싱 하드웨어(10)와 통신하는 메모리 하드웨어(12)에, 오디오 데이터(202) 및 오디오 데이터(202)에서 검출된 대응하는 트리거 워드에 대한 각각의 트리거 이벤트(260)를 버퍼링하는 동작을 포함하고, 상기 각각의 트리거 이벤트(206)는 상기 각각의 트리거 워드 신뢰도 스코어(207) 및 대응하는 트리거 워드가 오디오 데이터(202)에서 검출된 시점을 나타내는 각각의 타임 스탬프를 나타내는, 시스템(100). - 제16항에 있어서,
상기 동작들은, 핫프레이즈(210)와 연관된 트리거 워드들의 세트 내의 트리거 워드들 중 하나가 대응하는 고정 지속 시간 윈도우(220) 동안 오디오 데이터(202)에서 검출될 때, 트리거 워드 집계 루틴(280)을 실행하는 동작을 더 포함하고, 상기 트리거 워드 집계 루틴(280)은:
트리거 워드들의 세트 내의 서로 다른 대응하는 트리거 워드에 대한 상기 각각의 트리거 이벤트(260)가 또한 메모리 하드웨어(12)에 버퍼링되는지 여부를 결정하고; 그리고
트리거 워드들의 세트 내의 서로 다른 대응하는 트리거 워드에 대한 상기 각각의 트리거 이벤트(260)가 또한 메모리 하드웨어(12)에 버퍼링될 때, 사용자에 의한 상기 발화(110)가 핫프레이즈(210)를 포함할 가능성을 나타내는 핫프레이즈 신뢰도 스코어(282)를 결정하고,
상기 핫프레이즈(210)를 식별하는 동작은 상기 핫프레이즈 신뢰도 스코어(280)가 핫프레이즈 신뢰도 임계값을 만족할 때 핫프레이즈(210)를 식별하는 동작을 포함하는, 시스템(100). - 제17항에 있어서,
트리거 프레이즈(phrase) 집계 루틴은 트리거 워드들의 세트 내의 각 대응하는 트리거 워드에 대해 메모리 하드웨어(12)에 버퍼링된 각각의 검출 이벤트에 의해 나타나는 상기 각각의 타임 스탬프 및 상기 각각의 트리거 워드 신뢰도 스코어(107)에 기반하여 상기 핫프레이즈 신뢰도 스코어(282)를 결정하도록 구성되는, 시스템(100). - 제17항 또는 제18항에 있어서,
상기 트리거 워드 집계 루틴(280)을 실행하는 동작은 신경 네트워크 기반 모델을 실행하는 동작을 포함하는, 시스템(100). - 제17항 내지 제19항 중 어느 한 항에 있어서,
상기 트리거 워드 집계 루틴(280)을 실행하는 동작은 휴리스틱 기반 모델을 실행하는 동작을 포함하는, 시스템(100). - 제14항 내지 제20항 중 어느 한 항에 있어서,
상기 동작들은, 트리거 워드들의 세트 내의 서로 다른 트리거 워드가 오디오 데이터(202)에서 검출될 때:
오디오 데이터(202)에서 검출된 트리거 워드들의 세트 내의 시퀀스가 핫프레이즈(210)와 연관된 미리 정의된 순차적 순서와 일치하는지 여부를 결정하는 동작을 더 포함하고,
상기 발화(110)에 대응하는 오디오 데이터(202)에서 핫프레이즈(210)를 식별하는 동작은 오디오 데이터(202)에서 검출된 트리거 워드들의 세트 내의 시퀀스가 핫프레이즈(210)와 연관된 미리 정의된 순차적 순서와 일치할 때 핫프레이즈(219)를 식별하는 동작을 포함하는, 시스템(100). - 제21항에 있어서,
상기 동작들은:
오디오 데이터(202)에서 검출된 트리거 워드들의 세트 내의 인접한 트리거 워드들의 각 쌍 사이의 각각의 기간을 결정하는 동작을 더 포함하고,
상기 발화(110)에 대응하는 오디오 데이터(202)에서 핫프레이즈(210)를 식별하는 동작은 상기 인접한 트리거 워드들의 각 쌍 사이의 각각의 기간에 기반하는, 시스템(100). - 제14항 내지 제22항 중 어느 한 항에 있어서,
오디오 데이터(202)에 대한 스피치 인식을 수행하기 위해 ASR(116)을 트리거하는 동작은:
오디오 데이터(202)를 프로세싱함으로써 상기 발화(110)의 전사(120)를 생성하는 동작;
핫프레이즈(210)와 연관된 트리거 워드들의 세트 내의 각 트리거 워드가 상기 발화(110)의 전사(120)에서 인식되는지 여부를 결정하는 동작; 및
핫프레이즈(210)와 연관된 트리거 워드들의 세트 내의 각 트리거 워드가 상기 전사(120)에서 인식될 때, 상기 전사(120)가 디지털 어시스턴트(109)가 동작을 수행하기 위한 명령을 포함하고 있음을 식별하기 위해 상기 전사(120)에 대한 쿼리 해석을 수행하는 동작을 포함하는, 시스템(100). - 제23항에 있어서,
상기 전사(120)를 생성하는 동작은:
데이터 프로세싱 하드웨어(10)와 통신하는 메모리 하드웨어(12)에 버퍼링된 오디오 데이터(202)를 트리거 워드들의 세트 내의 제1 트리거 워드가 오디오 데이터(202)에서 검출된 시간 또는 그 이전의 시간으로 되감는 동작; 및
상기 발화(110)의 전사(120)를 생성하기 위해 트리거 워드들의 시퀀스에서 제1 트리거 워드 또는 그 이전의 시간에서 시작하는 오디오 데이터(202)를 프로세싱하는 동작을 포함하는, 시스템(100). - 제23항 또는 제24항에 있어서,
상기 전사(120)는 상기 전사(120)에서 인식된 트리거 워드들의 세트 내의 제1 트리거 워드 및 상기 전사(120)에서 인식된 트리거 워드들의 세트 내의 마지막 트리거 워드 사이에서, 핫프레이즈(210)와 연관되지 않은 하나 이상의 다른 워드들을 포함하는, 시스템(100). - 제14항 내지 제25항 중 어느 한 항에 있어서,
상기 핫프레이즈 검출기(200)는 핫프레이즈(210)와 연관된 트리거 워드들의 세트 내의 각 트리거 워드를 검출하도록 트레이닝된 트리거 워드 검출 모델(205)을 포함하는, 시스템(100).
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/118,251 | 2020-12-10 | ||
US17/118,251 US11694685B2 (en) | 2020-12-10 | 2020-12-10 | Hotphrase triggering based on a sequence of detections |
PCT/US2021/060233 WO2022125294A1 (en) | 2020-12-10 | 2021-11-21 | Hotphrase triggering based on a sequence of detections |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20230113368A true KR20230113368A (ko) | 2023-07-28 |
Family
ID=79024200
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020237021866A KR20230113368A (ko) | 2020-12-10 | 2021-11-21 | 검출들의 시퀀스에 기반한 핫프레이즈 트리거링 |
Country Status (6)
Country | Link |
---|---|
US (2) | US11694685B2 (ko) |
EP (1) | EP4244851A1 (ko) |
JP (1) | JP2023553451A (ko) |
KR (1) | KR20230113368A (ko) |
CN (1) | CN116601598A (ko) |
WO (1) | WO2022125294A1 (ko) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220284883A1 (en) * | 2021-03-05 | 2022-09-08 | Comcast Cable Communications, Llc | Keyword Detection |
US20220383877A1 (en) * | 2021-05-25 | 2022-12-01 | Samsung Electronics Co., Ltd. | Electronic device and operation method thereof |
GB2617420B (en) * | 2021-09-01 | 2024-06-19 | Apple Inc | Voice trigger based on acoustic space |
US11908475B1 (en) * | 2023-02-10 | 2024-02-20 | Cephable Inc. | Systems, methods and non-transitory computer readable media for human interface device accessibility |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1190413A2 (de) | 1999-06-24 | 2002-03-27 | Siemens Aktiengesellschaft | Verfahren und vorrichtung zur spracherkennung |
WO2003096324A1 (fr) * | 2002-05-10 | 2003-11-20 | Asahi Kasei Kabushiki Kaisha | Dispositif de reconnaissance vocale |
US9202462B2 (en) * | 2013-09-30 | 2015-12-01 | Google Inc. | Key phrase detection |
US20200273447A1 (en) * | 2017-10-24 | 2020-08-27 | Beijing Didi Infinity Technology And Development Co., Ltd. | System and method for key phrase spotting |
US10650807B2 (en) * | 2018-09-18 | 2020-05-12 | Intel Corporation | Method and system of neural network keyphrase detection |
KR20200111853A (ko) * | 2019-03-19 | 2020-10-05 | 삼성전자주식회사 | 전자 장치 및 전자 장치의 음성 인식 제어 방법 |
US11544463B2 (en) * | 2019-05-09 | 2023-01-03 | Intel Corporation | Time asynchronous spoken intent detection |
US11361756B2 (en) * | 2019-06-12 | 2022-06-14 | Sonos, Inc. | Conditional wake word eventing based on environment |
-
2020
- 2020-12-10 US US17/118,251 patent/US11694685B2/en active Active
-
2021
- 2021-11-21 JP JP2023535570A patent/JP2023553451A/ja active Pending
- 2021-11-21 CN CN202180083577.1A patent/CN116601598A/zh active Pending
- 2021-11-21 EP EP21827325.8A patent/EP4244851A1/en active Pending
- 2021-11-21 KR KR1020237021866A patent/KR20230113368A/ko active Search and Examination
- 2021-11-21 WO PCT/US2021/060233 patent/WO2022125294A1/en active Application Filing
-
2023
- 2023-05-25 US US18/323,725 patent/US20230298588A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20230298588A1 (en) | 2023-09-21 |
EP4244851A1 (en) | 2023-09-20 |
CN116601598A (zh) | 2023-08-15 |
WO2022125294A1 (en) | 2022-06-16 |
US20220189469A1 (en) | 2022-06-16 |
JP2023553451A (ja) | 2023-12-21 |
US11694685B2 (en) | 2023-07-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11848018B2 (en) | Utterance classifier | |
US11138977B1 (en) | Determining device groups | |
US11694685B2 (en) | Hotphrase triggering based on a sequence of detections | |
US9401146B2 (en) | Identification of communication-related voice commands | |
US20150106089A1 (en) | Name Based Initiation of Speech Recognition | |
US12073826B2 (en) | Freeze words | |
CN116648743A (zh) | 基于个性化否定来适应热词辨识 | |
US12080276B2 (en) | Adapting automated speech recognition parameters based on hotword properties | |
US20230113883A1 (en) | Digital Signal Processor-Based Continued Conversation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination |