KR102321396B1 - 장치에 대한 다중 사용자 인증 - Google Patents

장치에 대한 다중 사용자 인증 Download PDF

Info

Publication number
KR102321396B1
KR102321396B1 KR1020197026114A KR20197026114A KR102321396B1 KR 102321396 B1 KR102321396 B1 KR 102321396B1 KR 1020197026114 A KR1020197026114 A KR 1020197026114A KR 20197026114 A KR20197026114 A KR 20197026114A KR 102321396 B1 KR102321396 B1 KR 102321396B1
Authority
KR
South Korea
Prior art keywords
query
user
voice
utterance
samples
Prior art date
Application number
KR1020197026114A
Other languages
English (en)
Other versions
KR20190113927A (ko
Inventor
멜텀 옥템
타랄 프레딥 조그리카
프누 헤린디
푸 센 차우
이그나시오 로페즈 모리노
살릴 라자디아샤
알렉산더 에이치. 그루엔스테인
디에고 멜렌도 카사도
Original Assignee
구글 엘엘씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 구글 엘엘씨 filed Critical 구글 엘엘씨
Priority to KR1020217035224A priority Critical patent/KR102458805B1/ko
Publication of KR20190113927A publication Critical patent/KR20190113927A/ko
Application granted granted Critical
Publication of KR102321396B1 publication Critical patent/KR102321396B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L17/00Speaker identification or verification
    • G10L17/06Decision making techniques; Pattern matching strategies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/16Sound input; Sound output
    • G06F3/167Audio in a user interface, e.g. using voice commands for navigating, audio feedback
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/60Information retrieval; Database structures therefor; File system structures therefor of audio data
    • G06F16/63Querying
    • G06F16/635Filtering based on additional data, e.g. user or group profiles
    • G06F16/636Filtering based on additional data, e.g. user or group profiles by using biological or physiological data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/32User authentication using biometric data, e.g. fingerprints, iris scans or voiceprints
    • G06K9/00362
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/06Creation of reference templates; Training of speech recognition systems, e.g. adaptation to the characteristics of the speaker's voice
    • G10L15/065Adaptation
    • G10L15/07Adaptation to the speaker
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/26Speech to text systems
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L17/00Speaker identification or verification
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L17/00Speaker identification or verification
    • G10L17/22Interactive procedures; Man-machine interfaces
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L2015/088Word spotting
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • G10L2015/223Execution procedure of a spoken command

Abstract

일부 구현예들에서, 장치의 알려진 사용자들에 대응하는 인증 토큰들이 상기 장에 저장된다. 화자의 발화가 수신된다. 상기 발화는 알려진 사용자들 중 특정 알려진 사용자가 말한 것으로 분류된다. 화자로서 특정 알려진 사용자의 표시 및 발화의 표현을 포함하는 쿼리는 특정 알려진 사용자의 인증 토큰을 사용하여 제공된다.

Description

장치에 대한 다중 사용자 인증
본 명세서는 일반적으로 자연어 프로세싱에 관한 것이다.
음성 지원 장치는 사용자의 발화에 대한 음성 응답을 제공할 수 있다. 이러한 장치는 종종 소위 디지털 어시스턴트 소프트웨어 또는 "디지털 어시스턴트" 또는 "가상 어시스턴트"의 프론트 엔드이다. 이러한 장치는 종종 제한된 양의 음성 인식 기능 자체를 제공하고 추가 리소스를 위해 서버 또는 다른 장치와 통신한다. 또한, 이러한 장치는 종종 사용자를 위해 가청 합성 음성으로 변환되는 (예를 들어, 음성 입력된 쿼리 또는 발화에 응답하여) 서버 또는 다른 장치로부터 데이터를 수신한다. 예를 들어, 사용자가 "오늘 비가 올까요?"라고 말하고 음성 지원 장치가 "하루 종일 맑을 거에요"라고 청각적으로 응답할 수 있다. 사용자는 사용자의 개인 정보와 관련된 발화를 제공할 수 있다. 예를 들어, 사용자는 시스템에 "나의 일정에 있는 내용"을 요청할 수 있으며, 장치는 장치와 관련된 일정상의 약속으로 응답할 수 있다. 그러나, 일반적인 음성 지원 장치는 특히 특정 사용자의 개인 정보에 대한 보안 액세스와 관련하여 다양한 사용자를 적절히 구별하지 못하고, 예를 들어 게스트 사용자에 의한 음성 지원 장치의 일반적인 사용을 여전히 허용한다.
음성 지원 장치는 여러 다른 사용자가 사용할 수 있다. 예를 들어, 주방 조리대에 설치된 음성 지원 장치는 가정에서 "존(John)"과 "제인 도(Jane Doe)"가 사용할 수 있다. 음성 지원 장치의 사용자들은 사용자의 개인 정보와 관련된 질문을 할 수 있다. 예를 들어 John과 Jane Doe는 음성 지원 장치에 각자의 요일 일정을 별도로 요청할 수 있다. John 및 Jane Doe 이외의 사용자(예: "게스트들(guests)")들도 사용자의 개인 정보와 관련이 없는 질문을 음성 지원 장치에 할 수 있다. 예를 들어, 게스트 사용자는 음성 지원 장치에 현재 시간을 물어볼 수 있다.
다수의 상이한 사용자들로부터의 발화를 처리하기 위해, 음성 지원 장치는 발화의 화자를 특정 사용자로서 식별하려고 시도할 수 있고, 성공하면 식별된 특정 사용자에 대응하는 표시(indication)와 함께 서버에 쿼리를 제공하고, 성공적이지 않으면 식별된 특정 사용자에 대응하는 표시 없이 서버에 쿼리를 제공한다. 예를 들어, 음성 지원 장치는 "John Doe"의 사전 설정된 음성 패턴과 일치하는 것으로 발화를 인식하는 것에 기초하여 "John Doe"에 의해 발언된 발화를 인식하고, 이에 대한 응답으로, 발화의 오디오 표현과 상기 발화가 "John Doe"에 의해 발언되었다는 표시를 모두 포함하는 쿼리를 서버에 제공할 것이다.
이 조합을 통해 가상 어시스턴트 소프트웨어는 John Doe의 개인 정보에 액세스하여 쿼리에 대한 응답을 제공할 수 있다. 이 액세스를 용이하게 하기 위해 쿼리 재작성(re-write)이 발생할 수도 있다 (예: "오늘 일정에 있는 내용"의 초기 쿼리를 [[식별된 사용자]의 [날짜]에 대한 일정에 기록"). 동시에, 시스템은 단순히 한 명 이상의 가능한 화자의 발화, 발화 및 표시("id") 중 하나, 또는 장치 ID와 같은 일부 다른 표시(indication) 및 발화를 서버에 제공함으로써 인식되지 않는 당사자(예를 들어, 게스트 사용자)에 의한 쿼리 프로세싱을 허용하도록 구성된다.
서버는 쿼리(질의)에 대한 응답을 생성하기 위해 특정 사용자의 표시 또는 그러한 표시의 부재를 사용하여 쿼리에 대한 응답을 생서알 수 있다. 예를 들어, 서버는 발화는 John Doe에 의해 발언되었다는 표시의 수신에 기초하여, 쿼리에 응답하여 적절한 개인 정보를 제공할 권한이 있다고 결정할 수 있다. 하루 일정에 대한 요청의 예에서, 이는 서버가 John Doe에 대한 약속의 목록 또는 요약을 발성(vocalization)하기 위해 음성 지원 장치에 제공할 수 있음을 의미한다. 서버가 쿼리가 특정 사용자의 식별(식별정보)(identification)을 나타내지 않는다고 결정했지만 쿼리가 개인 정보를 찾고 있는 경우, 서버는 사용자가 음성 지원 장치에 알려지지 않아서 응답을 제공할 수 없음을 나타낼 수 있다. 또 다른 예에서, 서버는 발화에 대응하는 쿼리(예를 들어, "몇시입니까")가 특정 사용자를 나타내지 않더라도, 쿼리는 개인 정보와 관련이 없으며 응답(예: "현재 오전 11시 입니다")이 음성 지원 장치에 제공될 수 있다고 결정할 수 있다.
음성 지원 장치는 사용자가 쿼리를 제공함에 따라 사용자의 음성 인식을 적응시킬 수 있다. 예를 들어, 사용자를 인식하기 위해, 음성 지원 장치는 등록 프로세스 동안 말하는 사용자의 샘플과 쿼리를 제공하는 사용자의 최근 샘플의 조합을 사용할 수 있다. 음성 자원 장치는 그 장치가 각각의 사용자가 쿼리를 발언했다고 결정한 후에 쿼리로부터 각각의 사용자에 대한 새로운 샘플을 생성한 다음, 그 새로운 샘플을 사용하고 추후 인식을 위해 더 오래된 샘플의 사용을 중지할 수 있다. 추가적으로 또는 대안적으로, 샘플은 특정 사용자에 의해 사용되는 다수의 상이한 음성 지원 장치에 걸쳐 공유될 수 있어서, 각 장치는 특정 사용자가 쿼리를 제공할 때 유사하게 인식할 수 있다.
일부 양태에서, 본 명세서에서 설명된 요지는 동작을 포함할 수 있는 방법으로 구현될 수 있으며, 상기 동작은, 알려진 장치 사용자에 대응하는 인증 토큰을 저장하는 동작; 화자로부터 발화를 수신하는 동작, 알려진 사용자들 중 특정 알려진 사용자가 발언한 것으로 상기 발화를 분류하는 동작; 상기 발화의 표현(representation) 및 특정 알려진 사용자의 인증 토큰을 사용하여 화자로서 특정 알려진 사용자의 표시를 포함하는 쿼리를 제공하는 동작을 포함한다.
일부 양태들에서, 상기 발화의 표현 및 특정 알려진 사용자의 인증 토큰을 사용하여 화자로서 특정 알려진 사용자의 표시를 포함하는 쿼리를 제공하는 동작은, 인증 토큰 및 발화가 특정 알려진 사용자가 발언한 것으로 분류되었음을 나타내는 플래그를 포함하는 쿼리를 제공하는 동작을 포함한다. 특정 양태들에서, 상기 발화의 표현 및 특정 알려진 사용자의 인증 토큰을 사용하여 화자로서 특정 알려진 사용자의 표시를 포함하는 쿼리를 제공하는 동작은, 알려진 특정 사용자의 인증 토큰을 포함하는 쿼리를 제공하는 동작을 포함하며, 쿼리에서 특정 알려진 사용자의 인증 토큰을 포함하는 것은 발화가 특정 알려진 사용자에 의해 발언된 것으로 분류되었음을 나타낸다. 일부 구현들에서, 알려진 장치 사용자에 대응하는 인증 토큰을 저장하는 동작은 알려진 장치 사용자 각각에 대한 인증 토큰을 저장하는 동작을 포함하며, 여기서 각각의 인증 토큰은 알려진 사용자들 각각에 대응한다. 일부 양태들에서, 알려진 장치 사용자에 대응하는 인증 토큰들을 저장하는 것은 음성 지원 장치의 알려진 사용자들로서 등록하는 사용자들에 대한 응답이다.
특정 양태들에서, 알려진 사용자들 중 특정 알려진 사용자가 발언한 것으로 발화를 분류하는 것은 상기 발화가 특정 알려진 사용자에 대응하는 음성과 매칭하는 것으로 결정하는 것을 포함한다. 일부 구현들에서, 상기 발화가 특정 알려진 사용자에 대응하는 음성과 매칭하는 것으로 결정하는 것은, 발화가 미리 결정된 구문을 포함한다고 결정하는 것; 발화가 미리 결정된 구문을 포함한다는 결정에 응답하여, 미리 결정된 구문의 발화가 특정 알려진 사용자에 의한 미리 결정된 구문의 사전 발화와 매칭(일치)한다고 결정하는 것을 포함한다. 일부 양태들에서, 알려진 사용자들 중 특정 알려진 사용자가 발언한 것으로 발화를 분류하는 것은 화자에 대응하는 시각적 정보(시각 정보)가 특정 알려진 사용자에 대응하는 시각적 정보와 매칭한다고 결정하는 것을 포함한다.
특정 양태에서, 화자에 대응하는 시각적 정보(시각 정보)가 특정 알려진 사용자에 대응하는 시각적 정보와 매칭한다고 결정하는 것은 화자의 지문, 망막 스캔, 얼굴 또는 자세 중 하나 이상을 설명하는 화자 정보를 수신하는 것과, 화자 정보가 특정 알려진 사용자에 대응하는 시각적 정보와 매칭하는 것으로 결정하는 것을 포함한다. 일부 양태들에서, 발화의 표현 및 화자로서 특정 알려진 사용자의 표시를 포함하는 쿼리를 제공하는 것은 쿼리를 서버에 제공하는 것을 포함한다. 일부 구현예들에서, 동작들은 서버로부터 쿼리에 대한 응답을 수신하고 그 응답을 화자에 제공하는 것을 포함한다.
일부 양태에서, 본 명세서에서 설명된 요지는 동작을 포함할 수 있는 방법으로 구현될 수 있으며, 상기 동작은, 알려진 장치 사용자에 대응하는 인증 토큰을 저장하는 동작; 화자로부터 발화를 수신하는 동작, 알려진 사용자들 중 어느 누구도 발언하지 않은 것으로 상기 발화를 분류하는 동작, 발화의 표현을 포함하고 그리고 발화가 알려진 사용자들 중 특정 알려진 사용자가 발언한 것으로 분류되었음을 나타내지 않는 쿼리를 제공하는 동작을 포함한다. 특정 양태들에서, 발화의 표현을 포함하고 그리고 발화가 알려진 사용자들 중 특정 알려진 사용자가 발언한 것으로 분류되었음을 나타내지 않는 쿼리를 제공하는 동작은 인증 토큰을 포함하고 그리고 발화가 알려진 사용자들 중 특정 알려진 사용자에 의해 발언된 것으로 분류됨을 나타내는 플래그를 포함하지 않는 쿼리를 제공하는 동작을 포함한다. 일부 구현예에서, 발화의 표현을 포함하고 그리고 발화가 알려진 사용자들 중 특정 알려진 사용자가 발언한 것으로 분류되었음을 나타내지 않는 쿼리를 제공하는 동작은 알려진 사용자들의 인증 토큰을 포함하지 않는 쿼리를 제공하는 동작을 포함한다.
일부 양태에서, 본 명세서에서 설명된 요지는 다음의 동작을 포함할 수 있는 방법으로 구현될 수 있으며, 상기 동작은 쿼리가 특정 알려진 사용자를 화자로 나타내는지를 결정하는 동작; 쿼리가 특정 알려진 사용자를 화자로서 나타내는지를 결정하는 것에 응답하여, 쿼리가 알려진 사용자의 것이 아니라고 결정하는 동작; 쿼리가 알려진 사용자의 것이 아니라고 결정한 것에 응답하여, 쿼리가 비-개인적(non-personal)인지 여부를 결정하는 동작; 그리고 쿼리가 비-개인적이라는 결정에 응답하여, 쿼리에 응답을 제공하려고 시도하는 동작을 포함한다. 특정 양태들에서, 쿼리가 특정 알려진 사용자를 화자로서 나타내는지를 결정하는 동작은 발화를 나타내는 플래그를 포함하는 쿼리가 특정 알려진 사용자가 발언한 것으로 분류되는지를 결정하는 동작을 포함한다. 일부 구현예들에서, 쿼리가 특정 알려진 사용자를 화자로 나타내는지를 결정하는 동작은 알려진 특정 사용자의 인증 토큰을 포함하는 쿼리를 결정하는 동작을 포함한다. 일부 양태들에서, 쿼리가 알려진 사용자의 것이 아니라고 결정한 것에 응답하여, 쿼리가 비-개인적인 것인지를 결정하는 동작은 쿼리가 알려진 사용자의 것이 아니라고 결정한 것에 응답하여, 쿼리에 대한 응답(답변)이 개인 정보에 의존하는지 여부를 결정하는 동작을 포함한다.
일부 양태에서, 본 명세서에서 설명된 요지는 다음의 동작을 포함할 수 있는 방법으로 구현될 수 있으며, 상기 동작은, 발화가 핫워드를 말하고 있는 특정 사용자의 제1 세트의 샘플들에 적어도 기초하여 핫워드를 말하고 있는 특정 사용자를 포함하는 것을 결정하는 동작; 발화가 핫워드를 말하고 있는 특정 사용자의 제1 세트의 샘플들에 적어도 기초하여 핫워드를 말하고 있는 특정 사용자를 포함한다는 결정에 응답하여, 발화의 적어도 일부(부분)를 새로운 샘플로서 저장하는 동작; 발화를 말하고 있는 특정 사용자의 제2 세트의 샘플들을 획득하는 동작 -상기 제2 세트의 샘플들은 새로운 샘플을 포함하며, 제1 세트의 샘플들의 모든 샘플보다 적음-; 적어도 핫 워드를 말하고 있는 사용자의 제2 세트의 샘플들에 기초하여 제2 발화가 핫워드를 말하고 있는 특정 사용자를 포함하는 것으로 결정하는 동작을 포함한다.
특정 양태에서, 발화를 말하고 있는 특정 사용자의 제2 세트의 샘플들을 획득하는 동작 -제2 세트의 샘플들은 새로운 샘플을 포함하고 제1 세트의 샘플들 내의 모든 샘플보다 적은 샘플을 포함함 -은 미리 결정된 수의 최근 저장된 샘플들을 제2 세트의 샘플들로서 선택하는 동작을 포함한다. 일부 양태에서, 발화를 말하고 있는 특정 사용자의 제2 세트의 샘플들을 획득하는 동작 -제2 세트의 샘플들은 새로운 샘플을 포함하고 그리고 제1 세트의 샘플들 내의 모든 샘플보다 적은 샘플을 포함함 -은 미리 결정된 개수의 가장 최근에 저장된 샘플들과 레퍼런스 샘플들의 세트를 모두 선택하여 제2 세트의 샘플들로서 함께 결합하는 동작을 포함한다. 일부 구현들에서, 레퍼런스 샘플들은 특정 사용자에 대한 등록 프로세스로부터의 샘플들을 포함하고 그리고 가장 최근에 저장된 샘플들은 특정 사용자가 발언한 쿼리로부터의 샘플들을 포함한다.
특정 양태들에서, 동작들은 제2 세트의 샘플들을 획득하는 것에 응답하여, 제1 세트의 샘플들에서 샘플을 삭제하지만 제2 세트의 샘플들에서는 샘플을 삭제하지 않는 동작을 포함한다. 일부 양태들에서, 핫워드를 말하고 있는 특정 사용자의 제1 세트의 샘플들에 기초하여 발화가 핫워드를 말하고 있는 특정 사용자를 포함한다고 결정하는 동작은, 제1 세트의 샘플들을 사용하여 핫워드 검출 모델을 생성하는 동작; 핫워드 검출 모델에 발화를 입력하는 동작; 핫워드 검출 모델이 발화를 핫워드를 말하고 있는 특정 사용자를 포함하는 것으로 분류했다고 결정하는 동작을 포함한다. 일부 구현예들에서, 핫워드를 말하고 있는 사용자의 제2 세트의 샘플들에 기초하여 제2 발화가 핫워드를 말하고 있는 특정 사용자를 포함한다고 결정하는 동작은, 상기 제2 세트의 샘플들을 사용하여 제2 핫워드 검출 모델을 생성하는 동작; 제2 발화를 제2 핫워드 검출 모델에 입력하는 동작; 제2 핫워드 검출 모델이 핫워드를 말하고 있는 특정 사용자를 포함하는 것으로 제2 발화를 분류했다고 결정하는 동작을 포함한다.
특정 양태에서, 동작들은 서버에서 제2 새로운 샘플을 수신하는 동작, 서버로부터의 제2 새로운 샘플을 포함하고 그리고 제2 세트의 샘플들 내의 모든 샘플보다 적은 제3 세트의 샘플들에 적어도 기초하여, 핫워드를 말하고 있는 특정 사용자를 제3 발화가 포함하는지를 결정하는 동작을 포함한다. 일부 양태에서, 동작들은 서버로부터, 제3 세트의 샘플들에서 샘플들의 표시를 수신하는 동작, 로컬로 저장되지 않은 제3 세트의 샘플들에 있는 샘플들을 결정하는 동작, 로컬로 저장되지 않은 제3 세트의 샘플들 내의 샘플들에 대한 요청을 서버에 제공하는 동작, 상기 요청에 응답하여 서버로부터 로컬로 저장되지 않은 샘플들을 수신하는 동작을 포함한다.
일부 구현예들에서, 동작들은, 상기 음성 지원 장치가 상기 특정 사용자가 핫워드를 말하는지 여부를 검출할 수 있도록 상기 음성 지원 장치에 제1 세트의 샘플들을 제공하는 동작을 포함하며, 핫워드를 말하고 있는 특정 사용자의 제1 세트의 샘플들에 기초하여 발화가 핫워드를 말하고 있는 특정 사용자를 포함하는지를 결정하는 동작은, 상기 음성 지원 장치가 상기 특정 사용자가 핫워드를 말했음을 검출했다는 표시를 수신하는 동작을 포함한다. 특정 양태들에서, 동작은, 상기 제1 세트의 샘플들을 사용하여 핫워드 검출 모델을 생성하고, 상기 핫 워드 검출 모델을 음성 지원 장치에 제공하여 상기 음성 지원 장치가 상기 특정 사용자가 상기 핫워드를 말했는지 여부를 검출할 수 있도록 하는 동작을 포함하며, 핫워드를 말하고 있는 특정 사용자의 제1 세트의 샘플들에 적어도 기초하여 발화가 핫워드를 말하고 있는 특정 사용자를 포함하는 것으로 결정하는 동작은 상기 음성 지원 장치가 상기 특정 사용자가 핫워드를 말했음을 검출했다는 표시를 수신하는 동작을 포함한다.
일부 구현예들에서, 동작은, 특정 사용자가 핫워드를 말했는지 여부를 검출하기 위해 현재 세트의 샘플들에 대한 요청을 음성 지원 장치로부터 수신하는 동작; 음성 지원 장치에 의해 로컬적으로 저장되지 않은 현재 세트의 샘플들의 샘플들을 결정하는 동작; 상기 음성 지원 장치에, 상기 음성 지원 장치에 의해 로컬적으로 저장되지 않은 현재 세트의 샘플들의 샘플들 및 상기 현재 세트의 샘플들 내의 샘플들의 표시를 제공하는 동작을 포함한다.
이 양태 및 다른 양태의 다른 구현 예는 컴퓨터 저장 장치상에 인코딩된 방법의 동작을 수행하도록 구성된 시스템, 장치 및 컴퓨터 프로그램을 포함한다. 하나 이상의 컴퓨터로 구성된 시스템은 소프트웨어, 펌웨어, 하드웨어 또는 시스템에 설치된 이들의 조합으로 작동하여 시스템이 동작들을 수행하도록 구성될 수 있다. 하나 이상의 컴퓨터 프로그램은 데이터 처리 장치에 의해 실행될 때 그 장치로 하여금 동작을 수행하게 하는 명령(명령어)을 가짐으로써 구성될 수 있다.
본 명세서에 기술된 요지의 특정 실시 예는 다음 장점 중 하나 이상을 실현하도록 구현될 수 있다. 예를 들어, 음성 지원 장치가 발화의 인증 토큰 화자를 포함하는 쿼리를 서버에 제공하게 함으로써, 시스템은 음성 지원 장치가 다수의 상이한 사용자에 의해 공유되고 발화의 화자에게 개인화된 응답을 제공할 수 있게 할 수 있다. 다른 예에서, 음성 지원 장치에 저장된 사용자에 대한 다수 또는 모든 인증 토큰을 포함하는 쿼리를 갖고, 어떤 인증 토큰이 화자에 대응하는지 또는 인증 토큰이 화자에 대응하지 않는지를 나타냄으로써, 시스템은 서비스가 상기 공유된 음성 지원 장치의 사용자들 사이에서 공유될 수 있게 한다. 예를 들어, 쿼리를 프로세싱하는 서버가 음악 스트리밍 서비스를 사용하도록 허용된 특정 사용자에 대한 인증 토큰을 포함하는 토큰 풀(pool)이 포함된 쿼리를 수신한 경우, 상기 쿼리가 특정 사용자가 발화를 말한 것으로 나타내지 않더라도, 서버는 특정 사용자에 대한 인증 토큰이 존재하는 경우, 쿼리에 응답하여 음악 스트리밍 서비스가 여전히 사용되도록 허용할 수 있다. 따라서, 시스템은 예를 들어 게스트 사용자들에 의한 음성 지원 장치의 일반적인 사용을 여전히 허용하면서 특정 사용자의 개인 정보에 대한 액세스를 보안할 수 있다. 따라서, 시스템은 데이터 보안과 관련된 문제를 해결할 수 있다. 시스템은 다수의 상이한 사용자에 의해 사용되는 장치에서 개인화된 사용자 상호 작용을 제공하는 방법과 관련된 문제를 추가로 또는 대안적으로 해결할 수 있다.
다른 예에서, 시스템이 발화를 말하는 사용자들의 새로운 샘플들에 기초하여 상이한 세트의 샘플들을 획득함으로써, 시스템은 음성, 악센트, 환경, 또는 음성 지원 장치에 의해 수신된 오디오의 다른 요소가 변경될 때에도 특정 알려진 사용자가 발화를 말할 때 검출의 정확성을 보장할 수 있다. 또 다른 예에서, 시스템이 다수의 상이한 음성 지원 장치들 사이에서 샘플들을 전송하게 함으로써, 시스템은 사용자가 말을 할 필요가 없이, 각각의 음성 지원 장치에 대한 레퍼런스 샘플을 제공함으로써 시간을 절약할 수 있게 하고, 그리고 음성 지원 장치들 각각이 핫워드를 말하는 알려진 사용자를 유사하게 검출하도록 보장할 수 있다. 따라서, 사용자가 제1 등록 후에 말함으로써 레퍼런스 샘플을 제공하기 위해 필요한 프로세싱이 절약될 수 있다. 예를 들어, 시스템은 특정 발화가 알려진 사용자의 하나의 음성 지원 장치에서 말하는 것으로 인식되면, 알려진 사용자의 모든 음성 지원 장치들은 알려진 사용자가 말한 것으로 상기 특정 발화를 유사하게 인식할 것이다. 따라서, 알려진 사용자에 대한 일관성 및 예측성이 증가될 수 있다.
본 명세서에서 설명된 요지의 하나 이상의 구현예들의 세부 사항은 첨부 도면 및 이하의 설명에서 설명된다. 본 요지의 다른 특징, 양태 및 잠재적 장점은 상세한 설명, 도면 및 청구 범위로부터 명백해질 것이다.
도 1a-1c는 음성 지원 장치와의 예시적인 상호 작용을 나타내는 블록도이다.
도 2는 알려진 사용자로부터 발화를 처리하기 위한 프로세스의 예를 나타내는 흐름도이다.
도 3은 게스트 사용자로부터 발화를 처리하기 위한 프로세스의 예를 나타내는 흐름도이다.
도 4는 음성 지원 장치로부터의 쿼리를 처리하기 위한 프로세스의 예를 나타내는 흐름도이다.
도 5는 음성 지원 장치로부터의 쿼리를 처리하기 위한 프로세스의 다른 예를 나타내는 흐름도이다.
도 6은 화자 식별에 사용되는 샘플 세트를 업데이트하는 예를 나타내는 블록도이다.
도 7은 화자 식별에 사용되는 샘플 세트를 업데이트하기 위한 프로세스의 예를 나타내는 흐름도이다.
도 8은 컴퓨팅 장치의 예의 도면이다.
다양한 도면에서 유사한 참조 번호 및 명칭은 유사한 요소를 나타낸다.
도 1a 내지 도 1c는 시스템(100)에서의 상이한 예시적인 상호 작용을 나타내는 블록도이다. 시스템(100)은 음성 지원 장치(speech-enabled device)(125) 및 서버(155)를 포함한다. 음성 지원 장치(125)와 서버(155)는 함께 작동하여 사용자(110)에 의한 발화(120)에 대한 응답을 제공할 수 있다. 예를 들어, 음성 지원 장치(125)는 음성 지원 장치(125)에 근접한 사용자에 의해 발언된 발화에 기초하여 서버에 쿼리를 제공할 수 있다. 서버(155)는 발화에 대한 응답을 음성 지원 장치(125)에 제공할 수 있다.
일부 구현예들에서, 음성 지원 장치(125)는 사용자가 시스템(100)으로부터 응답을 시작하기 위해 말하는 핫워드라고 하는 미리 결정된 구문을 포함하는 발화의 검출에 응답하여 서버(155)에 쿼리를 제공할 수 있다. 예를 들어, 핫워드는 "오케이 컴퓨터(OK Computer)" 또는 다른 구문일 수 있다.
다수의(복수의) 사용자로부터의 발화를 처리하기 위해, 음성 지원 장치 (125)는 특정 알려진 사용자에 의해 발언된 것으로 발화를 분류하고, 발화를 발언한 것으로 분류된 특정 알려진 사용자를 나타내는 쿼리를 서버에 제공할 수 있다. 알려진 사용자는 시스템(100)의 사용자로서 등록된 사용자 일 수 있고, 게스트 사용자는 시스템(100)의 사용자로서 등록되지 않은 사용자일 수 있다. 예를 들어, "아빠(Dad)"는 음성 지원 장치(125)의 알려진 사용자로 등록될 수 있고, 음성 지원 장치(125)는 발화가 알려진 사용자 "Dad"에 의해 발언되는지를 나중에 분류할 수 있다. 서버(155)는 쿼리에 대한 응답을 생성하기 위해, 쿼리에서 특정 알려진 사용자의 표시(indication) 또는 쿼리에 그러한 표시의 부재(lack)를 사용할 수 있다.
예를 들어, 도 1a는 알려진 사용자 "아빠"에 의해 발언된 "오케이 컴퓨터, 내 일정이 어떻게 되지"라는 발화를 설명한다. 음성 지원 장치(125)는 서버(155)에 쿼리를 제공하는데, 여기서 쿼리는 발화의 표현 및 발화가 알려진 사용자 "아빠(Dad)"에 의해 발언된 것으로 분류되었다는 표시(indication)를 포함한다. 서버(155)는 알려진 사용자 "Dad"의 표시에 기초하여 "아빠, 오늘 오후 1시에 존과 1회 미팅이 있어요"라는 응답을 생성한다.
다른 예에서, 도 1b는 게스트 사용자에 의해 발언된 발화 "오케이 컴퓨터, 내 일정이 어떻게 되지"를 나타낸다. 음성 지원 장치(125)는 서버(155)에 쿼리를 제공하는데, 여기서 쿼리는 발화의 표현을 포함하고 발화가 음성 지원 장치(125)의 임의의 알려진 사용자에 의해 발언된 것으로 분류되었다는 표시를 포함하지 않는다. 그 후, 서버(155)는 발화가 음성 지원 장치(125)의 임의의 알려진 사용자에 의해 발언된 것으로 분류되었다는 표시의 부재에 기초하여 "일정에 액세스할 수 없지만, 오늘은 전국 아이스크림의 날이라는 것을 알고 있었나요?"라는 응답을 생성한다.
또 다른 예에서, 도 1c는 게스트 사용자에 의해 발언된 발화 "오케이 컴퓨터, 몇시지?"를 나타낸다. 음성 지원 장치(125)는 서버(155)에 쿼리를 제공하는데, 여기서 쿼리는 발화의 표현을 포함하고 발화가 음성 지원 장치(125)의 임의의 알려진 사용자에 의해 벌언된 것으로 분류되었다는 표시를 포함하지 않는다. 그리고 나서 서버(155)는 "오전 11시입니다"라는 응답을 생성하고, 그리고 알려진 사용자가 말하지 않았지만, 쿼리는 개인 정보와 관련이 없다는 결정에 기초하여 음성 지원 장치(125)에 상기 응답을 제공한다.
구체적으로, 음성 지원 장치(125)는 하나 이상의 마이크로폰 및 하나 이상의 스피커를 포함할 수 있다. 음성 지원 장치(125)는 하나 이상의 마이크로폰을 사용하여 발화를 수신하고 그리고 하나 이상의 스피커를 통해 발화에 대한 가청 응답을 출력할 수 있다. 음성 지원 장치(125)는 각각의 알려진 사용자에 대응하는 인증 토큰을 저장할 수 있다. 예를 들어, 음성 지원 장치는 제1 알려진 사용자 "엄마"에 대한 제1 인증 토큰(132), 제2 알려진 사용자 "아빠"에 대한 제2 인증 토큰(134), 제3 알려진 사용자 "매트"에 대한 제3 인증 토큰(136), 제4 알려진 사용자 "케이티"를 위한 제4 인증 토큰(138)을 저장할 수 있다.
사용자의 인증 토큰은 시스템(100)에서 사용자의 계정에 대한 로그인 역할을하는 데이터 구조일 수 있다. 예를 들어, 알려진 사용자 "아빠"(134)에 대한 인증 토큰을 포함하고 "아빠"가 화자로 분류됨을 나타내는 쿼리는 "아빠"의 계정에 있는 정보에 액세스할 수 있다. 인증 토큰은 발화에 응답하여 수행될 수 있는 동작을 나타낼 수 있다. 예를 들어, 알려진 사용자 "아빠"의 계정은 "Provider X"에서 음악을 재생할 수 있는 권한을 가질 수 있으므로, "아빠"(134)에 대한 인증 토큰을 포함하는 "Provider X"에서 음악을 재생하기 위한 쿼리로 인해 "Provider X"에서 음악이 재생될 수 있다. 다른 예에서, 현재 화자뿐만 아니라“Provider X”에서 음악을 재생할 수 있는 권한이 있는 계정을 가진 알려진 사용자에 대한 인증 토큰을 포함하지 않는 “Provider X”의 음악 재생 쿼리로 인해 음악이 재생되지 않을 수 있다.
일부 구현예들에서, 음성 지원 장치(125)는 음성 지원 장치의 알려진 사용자로서 등록한 사용자에 응답하여 알려진 사용자에 대한 인증 토큰을 저장할 수 있다. 예를 들어, "엄마", "아빠", "매트" 및 "케이티" 사용자는 음성 지원 장치(125)의 알려진 사용자로서 명시적으로 등록될 수 있다. 등록 프로세스에서, 음성 지원 장치(125)는 서버(155)로부터 알려진 사용자에 대한 인증 토큰을 수신할 수 있다. 예를 들어, "아빠"가 음성 지원 장치(125)의 알려진 사용자로 등록될 때, 서버(155)는 "아빠"(134)에 대한 인증 토큰을 음성 지원 장치(125)에 제공할 수 있다. 등록 프로세스에서, 음성 지원 장치(125)는 또한 화자를 알려진 사용자로서 식별하는데 사용될 수 있는 컨텍스트 정보를 저장할 수 있다. 예를 들어, "아빠"가 음성 지원 장치(125)의 알려진 사용자로 등록될 때, 음성 지원 장치(125)는 "아빠"가 핫워드를 여러 번 말하도록 요청한 다음, 핫워드의 발화에 대응하는 화자 식별 특징을 로컬적으로(locally) 저장할 수 있다.
일부 구현들에서, 사용자는 모바일 컴퓨팅 장치가 로컬 무선 연결을 통해 음성 지원 장치(125)와 통신하는 모바일 컴퓨팅 장치상의 컴패니언(companion) 애플리케이션을 통해 알려진 사용자로서 등록할 수 있다. 예를 들어, 사용자는 스마트 폰에서 컴패니언 애플리케이션을 통해 사용자의 계정에 로그인한 다음, 컴패니언 애플리케이션에서 사용자가 음성 지원 장치(125)의 알려진 사용자로서 등록하기를 원한다고 지시한 다음, 핫워드를 모바일 컴퓨팅 장치에 여러 번 말할 수 있다. 컴패니언 애플리케이션은 사용자에 대한 인증(authentication)이 사용자가 핫워드를 말하는 것에 기초하여 화자 식별 특징과 함께 음성 지원 장치(125) 상에 저장되게 할 수 있다.
일부 구현예들에서, 음성 지원 장치(125)는 쿼리에서 특정 알려진 사용자에 대한 인증 토큰에 대한 플래그를 포함하는 것에 기초하여 쿼리에서 특정 알려진 사용자의 표시를 포함할 수 있다. 예를 들어, 음성 지원 장치(125)는 쿼리로 음성 지원 장치(125)에 저장된 모든 인증 토큰(본 명세서에서 "풀(pool)"이라고 함)을 포함할 수 있고, 음성 지원 장치(125)가 인증 토큰에 대응하는 식별된 알려진 사용자에 의해 발언된 발화로서 분류하는 인증 토큰에 대한 플래그를 설정할 수 있다.
이러한 구현예들에서, 인증 토큰들의 풀은 응답이 알려진 사용자의 개인 정보에 의존하지 않는 쿼리를 처리하기 위해 서버(155)에 의해 사용될 수 있다. 예를 들어, 쿼리는 "X 서비스에서 음악 재생"일 수 있고, 그리고 서버(155)는 "X 서비스로부터 음악 재생"에 대한 권리를 갖는 알려진 사용자와 연관된 풀로부터 인증 토큰을 식별하기 위해 쿼리에서 인증 토큰을 검사할 수 있다. 서버(155)가 "X 서비스로부터 음악 재생"에 대한 권리를 갖는 적어도 하나의 인증 토큰을 식별하면, 서버(155)는 "X 서비스"로부터의 음악을 재생할 수있다. 이 예에서, 쿼리에 풀로서 모든 인증 토큰을 포함시키는 것은 게스트 사용자를 포함하는 음성 지원 장치(125)의 임의의 사용자가 음성 지원 장치(125)로 하여금 "X 서비스"로부터 음악을 재생할 수 있게 할 수 있다.
일부 구현예들에서, 음성 지원 장치(125)는 쿼리에 특정 알려진 사용자에 대한 인증 토큰을 포함함으로써 (즉, 플래그를 포함하지 않음) 쿼리에 특정 알려진 사용자의 표시를 포함할 수 있다. 예를 들어, 일부 구현예들에서, 음성 지원 장치(125)는, 음성 지원 장치(125)가 인증 토큰에 대응하는 알려진 사용자에 의해 발언된 것으로 발화를 분류할 때 쿼리에 인증 토큰만을 포함한다. 이러한 구현예들에서, 알려진 사용자와 일치하지 않는 게스트 사용자의 발화가 있는 경우, 음성 지원 장치(125)는 알려진 사용자들 중 어느 누구도 말하지 않은 것으로 발화를 분류하고 인증 토큰을 포함하지 않는 쿼리를 서버(155)에 제공한다.
일부 구현예들에서, 음성 지원 장치(125)는, 음성 지원 장치(125)가 가질 수 있는 권한을 나타내는 장치(디바이스) 인증 토큰을 저장할 수 있고, 서버(155)에 대한 쿼리들에 장치 인증 토큰을 포함할 수 있다. 예를 들어, 음성 지원 장치(125)가 "Provider X"로부터 음악을 재생할 수 있는 권한이 있는 알려진 사용자에 대한 인증 토큰을 저장하면, 음성 지원 장치(125)는 음성 지원 장치(125)가 "Provider(공급자) X"로부터 음악을 재생할 수 있는 권한이 있음을 나타내는 장치 인증 토큰을 저장할 수 있고 그리고 모든 사용자가 "Provider(공급자) X"로부터 음악을 재생할 수 있도록(즉, 특정 사용자 토큰이 필요하지 않음) 모든 쿼리에 장치 인증 토큰을 포함시킨다. 다른 예에서, 음성 지원 장치(125)가 "공급자 X"로부터 음악을 재생할 수 있는 권한이 있는 알려진 사용자에 대한 인증 토큰을 저장하지 않는 경우, 음성 지원 장치(125)는, 음성 지원 장치(125)가 "공급자 X"로부터 음악을 재생할 권한이 있음을 나타내지 않는 장치 인증 토큰을 저장할 수 있다.
일부 구현예들에서, 음성 지원 장치(125)는 컨텍스트 정보에 기초하여 특정 사용자에 의해 발언된 것으로 발화를 분류할 수 있다. 컨텍스트 정보는 오디오, 시각 또는 다른 정보 중에서 하나 이상을 포함할 수 있다. 오디오 정보와 관련하여, 음성 지원 장치(125)는 알려진 사용자의 하나 이상의 발화의 화자 식별 특징(예를 들어, 집합적으로 특징 벡터를 형성할 수 있는 MFCC(Mel-Frequency Cepstral Cefficient) 특징)에 기초하여 발화를 분류할 수 있다. 예를 들어, 음성 지원 장치(125)는 "오케이 컴퓨터"를 말하고 있는 알려진 사용자 각각에 대한 화자 식별 특징을 저장할 수 있다. "오케이 컴퓨터"라고 말하고 있는 알려진 사용자 "아빠"의 저장된 화자 식별 특징과 충분히 매칭하는 현재 수신된 발화의 화자 식별 특징에 응답하여, 음성 지원 장치(125)는 알려진 사용자 "아빠"에 의해 발언된 것으로 발화를 분류할 수 있다.
다른 예에서, 음성 지원 장치 125)는 발화의 전체 오디오에 기초하여 발화를 분류할 수 있다. 예를 들어, 음성 지원 장치(125)는 전체 수신된 발화에서의 음성이 알려진 사용자 "아빠"에 대응하는 음성과 매칭하는지 여부를 결정할 수 있다.
시각 정보와 관련하여, 음성 지원 장치(125)는 화자의 적어도 일부(부분)의 하나 이상의 이미지를 수신할 수 있고 그리고 하나 이상의 이미지를 기반으로 화자를 인식할 수 있다. 예를 들어, 음성 지원 장치(125)는 카메라를 포함할 수 있고 그리고 카메라의 뷰 내의 화자가 음성 지원 장치(125)가 알려진 사용자 "아빠"에 대응하는 얼굴과 매칭하는 것으로 분류한 얼굴을 갖는지를 결정할 수 있다. 다른 예들에서, 음성 지원 장치(125)는 화자의 지문, 망막 스캔, 얼굴 인식, 자세, 다른 장치의 공존, 또는 다른 장치 또는 소프트웨어 요소로부터의 신원 확인 중 하나 이상을 매칭시키려고 시도할 수 있다.
서버(155)는 음성 지원 장치(125)로부터 쿼리를 수신하고, 음성 지원 장치(125)에 쿼리에 대한 응답을 제공할 수 있다. 예를 들어, 서버(155)는 "오케이 컴퓨터, 내 일정은?"이라는 쿼리를 수신하고, 이에 대한 응답으로 "아빠, 오늘 오후 1시에 존과 회의가 한 번 있습니다."라는 응답을 제공할 수 있다. 서버(155)는 도 1a 내지 1c에 도시된 바와 같이, 쿼리가 알려진 사용자의 표시를 포함하는지 여부 및 쿼리가 개인 정보와 관련된 질문을 포함하는지 여부에 기초하여 쿼리에 대한 응답을 제공할 수 있다.
구체적으로, 서버(155)는 발화가 음성 지원 장치(125)에 의해 알려진 사용자가 말한 것으로 분류되었음을 쿼리가 나타내는지를 초기에 결정할 수 있다. 예를 들어,쿼리가 음성 지원 장치(125)에 저장된 모든 인증 토큰의 풀을 포함하는 경우, 서버(155)는 쿼리가 "아빠"의 인증 토큰에 대해 "참(True)" 값을 갖는 "베스트-화자(best-speaker)"의 플래그를 포함한다고 결정할 수 있다. 다른 예에서, 쿼리가 발화를 말하는 것으로 분류된 알려진 사용자에 대한 인증 토큰만을 포함하는 경우, 서버(155)는 쿼리가 "아빠"의 인증 토큰을 포함한다고 결정할 수 있다.
서버(155)는 발화가 알려진 사용자에 의해 발언된 것으로 음성 지원 장치(125)에 의해 분류되었음을 쿼리가 나타내는 것으로 결정하면, 서버(155)는 알려진 사용자와 관련하여 쿼리를 프로세싱할 수 있다. 예를 들어, 발화“오케이 컴퓨터, 내 일정은?”의 오디오 표현을 포함하고 알려진 사용자“아빠”를 나타내는 쿼리의 경우, 서버(155)는 오디오 표현으로부터 "오케이 컴퓨터, 내 일정은?"의 전사(transcription)를 생성할 수 있고, 그 전사에 기초하여 알려진 사용자 "아빠"의 일정(calendar)에 액세스하고, "아빠, 오늘 오후 1시에 존과 한 번의 회의가 있어요"라는 응답을 생성하고, 그 응답을 음성 지원 장치(125)에 제공할 수 있다. 선택적으로, 서버(155) (또는 이와 관련된 모듈)는 전사를 재기록하기 위해 알려진 화자 식별 및/또는 오디오 표현을 사용할 수 있다. 예를 들어, 화자가 "아빠"라는 것을 알면, 서버(155)는 "오케이 컴퓨터, 내 일정은?"으로부터 "오케이 컴퓨터, [아빠]의 일정은?"으로 쿼리를 재작성할 수 있다.
서버(155)가, 발화가 알려진 사용자에 의해 발언된 것으로 분류되었음을 쿼리가 나타내지 않는다고 결정하는 경우, 서버(155)는 쿼리가 개인 정보와 관련되어 있는지 여부를 결정할 수 있다. 예를 들어, 서버(155)는 질문에 대한 답변이 사용자에 대한 개인 정보에 의존하기 때문에 (예를 들어, 질문에 응답하기 위해 보안 사용자 계정에 액세스해야 함), "오케이 컴퓨터, 내 일정은?"이라는 발화의 오디오 표현을 포함하는 쿼리가 개인 정보와 관련되어 있다고 결정할 수 있다. 다른 예에서, 서버(155)는 질문에 대한 답변이 사용자의 개인 정보에 의존하지 않기 때문에 발화 "오케이 컴퓨터, 몇시입니까?"의 음성 표현을 포함하는 쿼리가 개인 정보와 관련되지 않은 것으로 결정할 수 있다.
서버(155)가, 발화가 알려진 사용자에 의해 발언된 것으로 음성 지원 장치(125)에 의해 분류되지 않았다고 결정하고, 쿼리가 개인 정보와 관련되어 있다고 결정하면, 서버(155)는 쿼리에 대한 응답(답변)을 제공하지 않기로 결정할 수 있다 (및 선택적으로 추가 정보, 대화 또는 인식 부족을 정정하기 위한 가이드를 제공함). 예를 들어, 도 1b에 도시된 바와 같이, 게스트 사용자가 말한 발화“오케이 컴퓨터, 내 일정은?”의 경우, 서버(155)는 "일정에 액세스할 수 없지만 오늘은 전국 아이스크림의 날이라는 것을 알고 있습니까?"라는 응답(또는 "일정에 액세스할 수 없지만, 원하실 경우 등록 절차를 안내할 수 있습니다.)을 제공한다.
서버(155)가, 발화가 알려진 사용자에 의해 발언된 것으로 음성 지원 장치(125)에 의해 분류됨을 나타내지 않는다고 결정하고, 쿼리가 개인 정보와 관련되지 않은 것으로 결정하면, 서버(155)는 쿼리에 대한 응답을 제공하기로 결정할 수 있다. 예를 들어, 도 1c에 도시된 바와 같이, 게스트 사용자에 의해 발언된 "오케이 컴퓨터, 몇시입니까?"인 경우, 서버(155)는 "오전 11시입니다"라는 응답을 제공한다.
음성 지원 장치(125) 및 서버(155)의 기능이 결합, 추가 분리, 분배 또는 교환될 수 있는 시스템(100)의 상이한 구성이 사용될 수 있다. 예를 들어, 서버(155)가 전사할 쿼리에 발화의 오디오 표현을 포함시키는 대신, 음성 지원 장치(125)는 발화를 전사하고 서버(155)에 대한 쿼리에 전사를 포함시킬 수 있다.
도 2는 알려진 사용자로부터 발화를 처리하기 위한 프로세스(200)의 예를 나타내는 흐름도이다. 프로세스(200)의 동작은 도 1a-1c의 시스템(100)과 같은 하나 이상의 컴퓨팅 시스템에 의해 수행될 수 있다.
프로세스(200)는 장치의 알려진 사용자에 대응하는 인증 토큰을 저장하는 단계(205)를 포함한다. 예를 들어, 음성 지원 장치(125)는 알려진 사용자 "엄마", "아빠", "매트" 및 "케이티" 각각에 대한 인증 토큰(132, 134, 136, 138)을 수신 및 저장할 수 있다. 인증 토큰들 각각은 알려진 사용자들 각각에 대응할 수 있다. 예를 들어, 제1 인증 토큰(132)은 제1 알려진 사용자 "엄마"에 대응할 수 있고, 제2 인증 토큰(134)은 제2 알려진 사용자 "아빠"에 대응할 수 있고, 제3 인증 토큰(136)은 제3 알려진 사용자 "매트"에 대응할 수 있고, 제4 인증 토큰(138)은 제4 알려진 사용자 "케이티"에 대응할 수 있다.
음성 지원 장치(125)는 사용자가 음성 지원 장치의 알려진 사용자로서 등록하는 것에 응답하여 인증 토큰을 저장할 수 있다. 예를 들어, "엄마"에 대한 인증 토큰은, 서버(155)가 "엄마"가 음성 지원 장치(125)를 사용할 것이라는 표시를 수신한 후 음성 지원 장치(125)가 서버(155)로부터 인증 토큰을 수신하는 것에 응답하여, 음성 지원 장치(125)에 의해 저장될 수 있다.
프로세스(200)는 화자로부터 발화를 수신하는 단계(210)를 포함한다. 예를 들어, 음성 지원 장치(125)는, 음성 지원 장치(125)의 마이크로폰을 통해 알려진 사용자 "아빠"로부터 "오케이 컴퓨터, 내 일정은?"이라는 발화를 수신할 수 있다.
프로세스(200)는 알려진 사용자들 중 특정 알려진 사용자가 말한 것으로서 발화를 분류하는 단계(215)를 포함한다. 예를 들어, 음성 지원 장치(125)는 알려진 사용자 "아빠"에 의해 발언된 것으로 발화를 분류할 수 있다. 일부 구현예들에서, 알려진 사용자들 중 특정 알려진 사용자에 의해 발언된 것으로 발화를 분류하는 것은 발화가 특정 알려진 사용자에 대응하는 음성과 매칭한다고 결정하는 것을 포함한다. 예를 들어, 음성 지원 장치(125)는 발화의 화자 식별 특징이 "아빠"에 대해 이전에 저장된 화자 식별 특징과 매칭(일치)한다고 결정할 수 있다.
일부 구현예들에서, 발화가 특정 알려진 사용자에 대응하는 음성과 매칭한다고 결정하는 것은 발화가 미리 결정된 구문을 포함한다고 결정하고, 미리 결정된 구문의 발화를 결정한 것에 응답하여, 미리 결정된 구문의 발화가 특정 알려진 사용자에 의한 미리 결정된 구문의 사전 발화와 매칭한다고 결정하는 것을 포함한다. 예를 들어, 음성 지원 장치(125)는 발화가 핫워드 "오케이 컴퓨터"를 포함한다고 결정할 수 있고, 이에 대한 응답으로, 발화 내의 "오케이 컴퓨터"의 화자 식별 특징이 "오케이 컴퓨터"라고 말하는 "아빠"에 대해 이전에 저장된 화자 식별 특징과 매칭하는지 여부를 결정할 수 있다.
일부 구현예들에서, 알려진 사용자들 중 특정 알려진 사용자에 의해 발언된 것으로 발화를 분류하는 것은 화자에 대응하는 시각적 정보(시각 정보)가 특정 알려진 사용자에 대응하는 시각적 정보와 매칭한다고 결정하는 것을 포함한다. 예를 들어, 음성 지원 장치(125)는 카메라를 포함할 수 있고, 카메라를 사용하여 화자의 이미지를 캡처하고, 화자의 지문, 망막 스캔, 얼굴 또는 자세 중 하나 이상이 "아빠"의 해당 시각적 정보와 매칭하는지 여부를 결정한다.
프로세스(200)는 발화의 표현 및 화자로서 특정 알려진 사용자의 표시를 포함하는 쿼리를 제공하는 단계(220)를 포함한다. 예를 들어, 음성 지원 장치(125)는 "오케이 컴퓨터"라는 오디오 표현 및 "아빠"가 화자라는 표시를 포함하는 쿼리를 서버(155)에 제공할 수 있다.
일부 구현예들에서, 발화의 표현 및 화자로서 특정 알려진 사용자의 표시를 포함하는 쿼리를 제공하는 단계는 인증 토큰 및 발화가 특정 알려진 사용자가 말한 것으로 분류되었음을 나타내는 플래그를 포함하는 쿼리를 제공하는 단계를 포함한다. 예를 들어, 음성 지원 장치(125)는, 음성 지원 장치(125)에 저장된 모든 인증 토큰 및 "아빠"의 인증 토큰에 대한 "베스트-화자"의 플래그에 대한 "참"의 표시를 포함하는 쿼리를 서버(155)에 제공할 수 있다.
일부 구현들에서, 발화의 표현 및 화자로서 특정 알려진 사용자의 표시를 포함하는 쿼리를 제공하는 것은 특정 알려진 사용자의 인증 토큰만을 포함하는 쿼리를 제공하는 것을 포함하며, 쿼리에 특정 알려진 사용자의 인증 토큰을 포함하는 것은 발화가 특정 알려진 사용자에 의해 발언된 것으로 분류되었음을 나타낸다. 예를 들어, 음성 지원 장치(125)는 "아빠"에 대한 단일 인증 토큰을 포함하는 쿼리를 서버(155)에 제공할 수 있다.
도 3은 게스트 사용자로부터 발화를 처리하기 위한 프로세스(300)의 예를 예시하는 흐름도이다. 프로세스(300)의 동작은 도 1a-1c의 시스템(100)과 같은 하나 이상의 컴퓨팅 시스템에 의해 수행될 수 있다.
프로세스(300)는 장치의 알려진 사용자에 대응하는 인증 토큰을 저장하는 단계(305)를 포함한다. 예를 들어, 음성 지원 장치(125)는 알려진 사용자 "엄마", "아빠", "매트" 및 "케이티"에 대한 인증 토큰을 수신 및 저장할 수 있다.
프로세스(300)는 화자로부터 발화를 수신하는 단계(310)를 포함한다. 예를 들어, 음성 지원 장치(125)는, 음성 지원 장치(125)의 마이크로폰을 통해 알려진 사용자 "아빠"로부터 "오케이 컴퓨터, 내 일정은?"이라는 발화를 수신할 수 있다.
프로세스(300)는 알려진 사용자들에 의해 발언되지 않은 것으로 발화를 분류하는 단계(315)를 포함한다. 예를 들어, 음성 지원 장치(125)는 "엄마", "아빠", "매트"또는 "케이티"가 말하지 않은 것으로 발화를 분류할 수 있다.
프로세스(300)는 발화의 표현을 포함하고 그리고 화자로서 특정 알려진 사용자를 나타내지 않는 쿼리를 제공하는 단계(320)를 포함한다. 예를 들어, 음성 지원 장치(125)는 "오케이 컴퓨터"의 오디오 표현을 포함하고 그리고 "엄마", "아빠", "매트" 또는 "케이티"의 표시를 화자로서 표시하지 않는 쿼리를 서버(155)에 제공할 수 있다.
일부 구현예에서, 발화의 표현을 포함하고 그리고 화자로서 알려진 사용자들 중 특정 알려진 사용자가 발언한 것으로 분류되었음을 나타내지 않는 쿼리를 제공하는 단계는 인증 토큰의 풀을 포함하고 그리고 발화가 알려진 사용자들 중 특정 알려진 사용자가 말한 것으로 분류됨을 나타내는 플래그를 포함하지 않는 쿼리를 제공하는 단계를 포함한다. 예를 들어, 음성 지원 장치(125)는, 음성 지원 장치(125)에 저장된 모든 인증 토큰 및 알려진 사용자들의 모든 인증 토큰에 대한 "베스트-화자"의 모든 플래그에 대한 "거짓"의 표시를 포함하는 쿼리를 서버(155)에 제공할 수 있다.
일부 구현예에서, 발화의 표현을 포함하고 그리고 발화가 알려진 사용자들 중 특정 알려진 사용자에 의해 발언된 것으로 분류됨을 나타내지 않는 쿼리를 제공하는 것은 알려진 사용자들의 인증 토큰을 포함하지 않는 쿼리를 제공하는 것을 포함한다. 예를 들어, 음성 지원 장치(125)는 "엄마", "아빠", "매트" 또는 "케이티"에 대한 인증 토큰을 포함하지 않는 쿼리를 서버(155)에 제공할 수 있다. 실제로, 일부 실시 예들에 따른 그러한 경우에, 음성 지원 장치(125)는 발화의 표현을 토큰없이 서버(155)에 제공할 수 있다. 다른 실시 예들에 따르면, 사용자 인증 토큰 이외의 토큰은 장치 인증 토큰과 같은 발화의 표현으로 서버(155)에 제공될 수 있다.
도 4는 음성 지원 장치로부터의 발화를 처리하기 위한 프로세스(400)의 예를 나타내는 흐름도이다. 프로세스(400)의 동작은 도 1a-1c의 시스템(100)과 같은 하나 이상의 컴퓨팅 시스템에 의해 수행될 수 있다.
프로세스(400)는 쿼리가 특정 알려진 사용자를 화자로서 나타내는지 여부를 결정하는 단계(405)를 포함한다. 예를 들어, 서버(155)는 쿼리가 알려진 사용자 "아빠"가 쿼리에 대한 화자임을 나타내는 것으로 결정할 수 있다. 일부 구현예들에서, 쿼리가 특정 알려진 사용자를 화자로서 나타내는지 여부를 결정하는 단계는 발화가 특정의 알려진 사용자가 발언한 것으로 분류됨을 나타내는 플래그를 포함하는지 여부를 결정하는 단계를 포함한다. 예를 들어, 서버(155)는 알려진 사용자 "아빠"의 인증 토큰에 대한 "베스트-화자"의 플래그가 "참"으로 설정되었는지 여부를 결정할 수 있다. 일부 구현예들에서, 쿼리가 특정 알려진 사용자를 화자로 표시하는지를 결정하는 단계는 쿼리가 알려진 사용자의 인증 토큰을 포함하는지 여부를 결정하는 단계를 포함한다. 예를 들어, 서버(155)는 쿼리가 알려진 사용자 "아빠"에 대한 인증 토큰을 포함한다고 결정할 수 있다.
프로세스(400)는 쿼리가 특정 알려진 사용자를 화자로 표시하는지 여부를 결정하는 것에 응답하여, 쿼리가 알려진 사용자의 것이 아니라고 결정하는 단계(410)를 포함한다. 예를 들어, 서버(155)는 특정 알려진 사용자가 쿼리에 대한 화자가 아니라고 결정하면 쿼리는 게스트 사용자의 쿼리인 것으로 결정할 수 있다.
프로세스(400)는 쿼리가 알려진 사용자의 것이 아니라고 결정하는 것에 응답하여, 쿼리가 비-개인적인지 여부를 결정하는 단계(415)를 포함한다. 예를 들어, 쿼리가 알려진 사용자의 것이 아니라고 결정한 것에 응답하여, 서버(155)는 발화 "오케이 컴퓨터, 내 일정은?"에 대한 쿼리가 개인적이라고 결정할 수 있다. 다른 예에서, 쿼리가 알려진 사용자의 것이 아니라고 결정한 것에 응답하여, 서버(155)는 발화에 대한 쿼리 "오케이 컴퓨터, 몇시입니까"가 비-개인적인 것으로 결정할 수 있다. 일부 구현예들에서, 쿼리가 비-개인적인지 여부를 결정하는 것은 쿼리에 대한 응답(답변)이 개인 정보에 의존하는지(예를 들어, 보안 사용자 계정에 대한 액세스를 요구함)를 결정하는 것을 포함한다. 예를 들어, 서버(155)는 "내 일정은?"에 대한 쿼리가, 응답(답변)이 사용자가 누구인지와 해당 사용자의 개인 정보에 대한 액세스에 의존하기 때문에, 개인적인 것으로 결정할 수 있다. 다른 예에서, 응답이 사용자가 누구인지에 의존하지 않기 때문에 "몇시입니까?"라는 쿼리가 비-개인적이라고 결정할 수 있다.
프로세스(400)는 쿼리가 비-개인적인 것이라는 결정에 응답하여, 쿼리에 대한 응답을 제공하려고 시도하는 단계(420)를 포함한다. 예를 들어, "몇시입니까"라는 쿼리가 비-개인적인 것으로 결정한 것에 응답하여, 서버(155)는 현재 시간을 결정하려고 시도하고 음성 지원 장치(125)에 "오전 11시입니다"라는 응답을 제공할 수 있다.
도 5는 음성 지원 장치로부터의 발화를 처리하기 위한 프로세스(500)의 예를 나타내는 흐름도이다. 프로세스(500)의 동작은 도 1a-1c의 시스템(100)과 같은 하나 이상의 컴퓨팅 시스템에 의해 수행될 수 있다.
프로세스(500)는 쿼리를 수신하는 단계(510)를 포함한다. 예를 들어, 서버(155)는 (i) 발화 "오케이 컴퓨터, 내 일정은?"의 표현, (ii) 알려진 사용자들에 대한 인증 토큰들의 풀, 및 (iii) 알려진 사용자 "아빠"가 발화를 발언했다는 표시를 수신할 수 있다.
프로세스(500)는 쿼리가 개인 데이터를 요구하는지 결정하는 단계(512)를 포함한다. 예를 들어, 서버(155)는 "내 일정은?"이 화자의 개인 데이터를 요구한다고 결정할 수 있다.
프로세스(500)가, 쿼리가 개인 데이터를 요구하지 않는다고 결정하면, 프로세스(500)는 쿼리가 알려진 사용자 표시를 포함하는지를 결정하는 단계(514)를 포함한다. 예를 들어, 서버(155)는 "아빠"의 인증 토큰에 대해 "베스트-화자"의 플래그가 참으로 설정되어 있다고 결정할 수 있다.
프로세스(500)가 쿼리가 알려진 사용자 표시를 포함한다고 결정하면, 그 후 프로세스(500)는 표시된 알려진 사용자에 대한 인증 토큰을 사용하여 로그인 또는 다른 자격증명(credential) 동작을 수행하고(516), 데이터를 검색하고(518), 음성 지원 장치에 제공(serve)한다(520). 예를 들어, 서버(155)는 "아빠"에 대한 인증 토큰을 사용하여 "아빠"의 계정에 로그인하고, "아빠"의 일정을 검색하고, 검색된 일정에 기초하여 "아빠"에 대한 약속의 요약과 함께 응답을 음성 지원 장치(125)에 제공한다.
514 단계로 돌아가서, 프로세스(500)가 대신 쿼리가 알려진 사용자 표시를 포함하지 않는다고 결정하면, 프로세스는 "액세스 안됨" 메시지를 제공하는 단계(522)를 포함한다. 예를 들어, 서버(155)는 음성 지원 장치(125)에 "일정에 액세스할 수 없습니다"라는 응답을 제공할 수 있다. "액세스 안됨" 메시지를 제공한 후, 프로세스(500)는 선택적으로 등록 지원을 제공하는 단계(524)를 포함할 수 있다. 예를 들어, 서버(155)는 "원하실 경우 등록 프로세스를 안내할 수 있습니다"라는 응답을 음성 지원 장치(125)에 제공할 수 있다.
512 단계로 돌아가서, 프로세스(500)가 대신 쿼리가 개인 데이터를 요구하지 않는다고 결정하면, 프로세스는 쿼리가 다른 등록을 요구하는지를 결정한다(526). 예를 들어, 서버(155)는 가입(subscription) 기반 오디오 서비스에 액세스하기 위해 쿼리를 처리하려면 알려진 사용자를 가입에 등록해야 한다고 결정할 수 있다.
프로세스(500)가, 쿼리가 다른 등록을 요구한다고 결정하면, 프로세스(500)는 쿼리가 풀의 하나 이상의 알려진 사용자를 포함하는지를 결정한다(528). 예를 들어, 서버(155)는 풀의 알려진 사용자가 오디오 서비스에 가입하지 않은 것으로 결정할 수 있다. 프로세스(500)가 풀이 하나 이상의 알려진 사용자를 포함하지 않는다고 결정하면, 프로세스는 "액세스 안됨" 메시지를 제공하는 단계(522)를 포함하고 선택적으로 등록을 지원한다(524).
528 단계로 돌아가서, 프로세스(500)가, 쿼리가 풀의 적어도 하나의 알려진 사용자를 포함한다고 결정하면, 프로세스(500)는 쿼리를 실행하고(530), 음성 지원 장치에 제공(serve)(532)하는 것을 포함한다. 예를 들어, 서버(155)는 가입 오디오 서비스에 액세스하고 그리고 가입 오디오 서비스에 대한 액세스를 사용하여 음성 지원 장치(125)에 응답을 제공한다.
526 단계로 돌아가서, 프로세스(500)가, 쿼리가 다른 등록을 요구하지 않는다고 결정하면, 프로세스(500)는 쿼리를 실행하는 단계(530) 및 음성 지원 장치에 서비스하는 단계(532)를 포함한다. 예를 들어, 서버(155)는 "몇 시입니까?"에 대한 쿼리가 다른 등록을 요구하지 않는다고 결정하고, 시간을 나타내는 응답을 제공한다.
쿼리가 개인 데이터를 요구하는지를 결정하는 단계(512)가 프로세스(500)에서 먼저 도시되지만, 프로세스(500)는 상이할 수 있다. 예를 들어, 프로세스(500)는 쿼리가 알려진 사용자 표시를 포함하는지를 결정(514)하는 대신에, 알려진 사용자가 표시되지 않으면 쿼리가 개인 데이터를 요구하는지를 결정한다(512).
도 6은 화자 식별에 사용되는 샘플들의 세트(샘플 세트)를 업데이트하는 시스템(600)의 예를 나타내는 블록도이다. 시스템(600)은 핫워드 검출기(610), 샘플 선택기(620), 레퍼런스 샘플(reference sample) 데이터 저장소(630) 및 최근 샘플(recent sample) 데이터 저장소(640)를 포함한다. 일부 구현예들에서, 핫워드 검출기(610)는 시스템(100)에 대해 설명된 음성 지원 장치(125)와 같은 음성 지원 장치 상에서 구현될 수 있고, 샘플 선택기(620), 레퍼런스 샘플 데이터 저장소(630) 및 최근 샘플 데이터 저장소(640)는 시스템(100)에 대해 설명된 서버(155)와 같은 서버에서 구현된다. 예를 들어, 음성 지원 장치(125)는 핫워드 검출기(610)를 포함할 수 있고, 음성 지원 장치(125)는 특정 알려진 사용자가 핫워드를 말했는지 여부를 결정하기 위해 핫워드 검출기(610)를 사용할 수 있다. 다른 예에서, 핫워드 검출기(610) 및 샘플 선택기(620)는 음성 지원 장치(125) 상에 위치될 수 있다.
특정 알려진 사용자의 등록 후 핫워드를 말하는 특정 알려진 사용자의 추후 검출을 개선하기 위한 일부 구현예들에서, 시스템(100)은 사용자가 나중에 쿼리를 제공할 때 핫워드를 말하면 추가적인 화자 식별 특징들을 저장할 수 있다. 예를 들어, 알려진 사용자 "아빠"는 초기 등록 동안 "오케이 컴퓨터"라고 세 번 말할 수 있고, 음성 지원 장치(125)는 이들 세 번의 화자 식별 특징을 저장할 수 있다. 알려진 사용자 "아빠"가 "오케이 컴퓨터"라고 말함으로써 쿼리를 제공할 때 등록 후, 음성 지원 장치(125)는 그 쿼리에 대해 "오케이 컴퓨터"라는 말을 사용하는 것에 대해 추가 화자 식별 특징을 저장할 수 있다. 계속해서 예를 들어, 음성 지원 장치(125)는 알려진 사용자 "아빠"가 나중에 "오케이 컴퓨터"라고 말할 때를 결정하기 위해 4세트의 화자 식별 특징 모두를 사용할 수 있다.
화자 식별 특징의 사용이 여기에서 일반적으로 설명되지만, 오디오 기록이 유사하게 사용될 수 있다. 예를 들어, 음성 지원 장치(125)는 "오케이 컴퓨터"라고 말하는 알려진 사용자 "아빠"에 대응하는 4개의 오디오 기록을 저장한 다음, 4개의 오디오 기록을 사용하여 나중에 핫워드를 말하는 알려진 사용자 "아빠"를 검출하는데 사용될 수 있는 핫워드 검출 모델을 생성할 수 있다. 핫워드 검출 모델은 4개의 오디오 기록으로부터 추출된 화자 식별 특징에 기초하여 생성될 수도 있다. 따라서, 핫워드를 말하고 있는 알려진 사용자를 검출하기 위해 화자 식별 특징을 저장하고 사용하는 시스템(100)의 설명은 오디오 기록을 저장하고 사용하여 알려진 사용자가 핫워드를 말하고, 그 반대로도 검출하는 것에 유사하게 적용될 수 있다.
시스템(100)이 추가 화자 식별 특징을 사용하게 함으로써 시스템(100)은 핫워드를 말하는 알려진 사용자의 더 많은 샘플을 수집할 수 있기 때문에 화자가 핫 워드를 말할 때를 보다 정확하게 검출할 수 있다. 추가로 또는 대안적으로, 등록 후 핫워드를 말하는 사용자의 추가 화자 식별 특징을 사용하면 시스템(100)이 사용자가 핫 워드를 말하는 방식의 변화에 적응할 수 있다. 예를 들어, 핫워드를 발음하는 사용자의 음성 또는 방법은 시간이 지남에 따라 천천히 변할 수 있다.
일부 구현예들에서, 시스템(100)은 알려진 사용자가 핫워드를 말하는 제한된 횟수의 화자 식별 특징들을 사용할 수 있다. 예를 들어, 음성 지원 장치(125)는 최대 8개, 10개, 15개 또는 다른 소정 개수의 오디오 기록 및 해당 화자 식별 특징만을 사용할 수 있다. 음성 지원 장치(125)는 등록 동안 그리고 미리 결정된 수의 오디오 레코딩의 나머지 동안, 핫워드를 말하고 있는 알려진 사용자로부터 화자 식별 특징을 항상 사용할 수 있고, 쿼리에 대한 핫워드를 말하는 사용자의 최신 오디오 기록을 사용할 수 있다. 예를 들어, 음성 지원 장치(125)는 검출을 위해 총 8개의 오디오 기록만을 사용할 수 있으므로, 등록 동안 핫워드를 말하는 알려진 사용자의 3개의 오디오 기록을 모두 사용하고, 알려진 사용자가 핫워드를 말한 가장 최근 5개의 오디오 기록을 사용한다.
그러나, 다수의 사용자가 음성 지원 장치(125)를 사용할 수 있기 때문에, 시스템(100)이 알려진 사용자가 핫워드를 말한 것을 높은 신뢰도로 결정할 수 있다면, 시스템(100)은 핫워드를 말하고 있는 알려진 사용자의 추후 검출을 위해 화자 식별 특징만을 사용하기로 결정할 수 있다. 예를 들어, 음성 지원 장치(125)는 "오케이 컴퓨터, 음악 재생"의 특정 발화에 대해 음악을 재생한다"에 대해, "오케이 컴퓨터"는 특정 알려진 사용자가 핫워드를 말할 것으로 예상되는 것과 완전히 동일하지 않다고 결정할 수 있다. 이에 응답하여, 음성 지원 장치(125)는 특정 알려진 사용자가 발화를 말했을 가능성이 얼마나 높은지를 반영하는 신뢰도 점수를 결정할 수 있고, 이는 알려진 사용자가 좋아하는 음악을 재생하기에 충분히 높지만, 음성 지원 장치(125)가 알려진 사용자가 말하고 있는 핫워드를 나중에 검출하기 위해 사용하기에는 충분히 높지 않다.
사용자가 나중에 검출하기 위해 사용하기로 결정한 화자 식별 특징들에 대해, 음성 지원 장치(125)는 화자 식별 특징들 또는 오디오 기록들이 획득되었을 때의 표시로 화자 식별 특징들 또는 오디오 기록들에 라벨을 붙일 수 있다. 예를 들어, 음성 지원 장치(125)는 타임스탬프로 오디오 기록에 라벨을 붙일 수 있고 그리고 타임스탬프를 사용하여 어떤 오디오 기록이 검출에 사용하기 위한 가장 최근의 오디오 기록인지를 결정할 수 있다.
핫워드 검출기(610)는 핫워드가 특정 사용자에 의해 발언되었을 가능성이 있는지를 결정하고 표시할 수 있다. 예를 들어, 핫워드 검출기(610)는 "오케이 컴퓨터, 내 일정은?"이라고 말하는 알려진 사용자 "아빠"의 오디오 표현을 수신할 수 있고, 알려진 사용자 "아빠"가 핫워드 "오케이 컴퓨터"를 말했을 가능성이 있는 것으로 결정하고, 이에 응답하여, "아빠"의 표시 및 오디오 표현을 샘플 선택기(620)에 제공한다.
음성 지원 장치(125)와 관련하여 위에서 설명된 바와 같이, 핫워드 검출기(610)는 특정 알려진 사용자가 핫워드를 말했는지 여부를 검출하기 위해 샘플 세트, 예를 들어 하나 이상의 화자 식별 특징 또는 오디오 기록(레코딩)을 사용할 수 있다. 예를 들어, 핫워드 검출기(610)는 레퍼런스 샘플 A-C 및 최근 샘플 E-I을 사용하여 "오케이 컴퓨터"를 말하는 알려진 사용자 "아빠"를 인식하도록 훈련된 신경망 모델일 수 있다. 레퍼런스 샘플은 등록 프로세스 동안 알려진 사용자로부터 획득된 샘플 일 수 있고, 최근 샘플은 쿼리로부터 획득된 샘플일 수 있다.
샘플 선택기(620)는 오디오 표현 및 오디오 표현이 핫워드를 말할 가능성이 있는 알려진 사용자에 대응한다는 표시를 획득하고, 이에 응답하여, 오디오 표현의 부분을 새로운 최근 샘플로서 저장하고 그 저장된 샘플들로부터 다른 샘플 세트를 획득한다. 예를 들어, 샘플 선택기(620)는 "오케이 컴퓨터, 내 일정은?"의 오디오 표현을 획득하고, "오케이 컴퓨터"에 대응하는 부분으로부터의 샘플을 최근 샘플 J로서 생성한 다음, 새로운 세트에 최근 샘플 E를 포함하지 않고 레퍼런스 샘플 A-C 및 최근 샘플 F-J를 포함하는 새로운 샘플 세트를 선택할 수 있다.
샘플 선택기(620)는 레퍼런스 샘플 데이터 저장소(630)의 레퍼런스 샘플들 및 최근 샘플 데이터 저장소(640)의 최근 샘플들로부터 다른 샘플 세트를 획득할 수 있다. 예를 들어, 샘플 선택기(620)는 레퍼런스 샘플 데이터 저장소(630)로부터 레퍼런스 샘플 A-C를 획득하고, 최근 샘플 데이터 저장소(640)로부터 최근 샘플 E-J를 획득한 다음, 레퍼런스 샘플 A-C 및 최근 샘플 F-J를 선택할 수 있다.
서버(155)에 대해 전술한 바와 유사하게, 샘플 선택기(620)는 샘플이 얼마나 최근인지에 기초하여 샘플 세트에서 사용할 샘플을 선택할 수 있다. 일부 구현예들에서, 알려진 사용자가 말한 핫워드의 검출에 필요한 데이터 전송, 저장 및 프로세싱의 양을 감소시키기 위해, 핫워드 검출기(610)는 검출을 위해 제한된 수의 샘플만을 사용할 수 있다. 예를 들어, 핫워드 검출기(610)는 검출을 위해 8개의 샘플만을 사용할 수 있다. 그러나, 알려진 사용자의 핫워드를 말하는 방식의 변경, 예를 들어, 사용자가 아프거나, 사용자가 시끄러운 환경에 있고, 사용자의 억양이 변경된 경우, 샘플 선택기(620)는 가장 최근에 획득된 샘플을 선택할 수 있다. 또한, 레퍼런스 샘플은 알려진 사용자가 쿼리를 제공하기 위해 핫워드를 말하고 있는 가장 정확한 표현을 갖는 것으로 간주될 수 있지만, 샘플 선택기는 미리 결정된 개수의 레퍼런스 샘플, 예를 들어, 3개 또는 모두를 선택할 수 있고, 및 가장 최근에 획득된 최근 샘플들 중 미리 결정된 개수를 선택할 수 있다.
일부 구현예들에서, 샘플 선택기(620)는 샘플이 생성된 시간, 예를 들어 타임스탬프의 표시로 생성될 때 각각의 샘플을 라벨링함으로써 가장 최근에 획득된 최근 샘플을 결정할 수 있고, 최근 샘플들을 상기 표시와 함께 최근 샘플 데이터 저장소(640)에 저장한다.
도 6에 도시된 바와 같이, 샘플 선택기(620)는 "오케이 컴퓨터, 내 일정은?"으로부터 최근 샘플 J를 생성한 후, 샘플 선택기(620)는 레퍼런스 샘플 데이터 저장소(630)로부터 레퍼런스 샘플 A-C를 획득하고, 최근 샘플 데이터 저장소(640)로부터 최근 샘플 E-I를 획득하고, 레퍼런스 샘플들 모두를 선택하고, 최근 샘플들 E-J 중에서 가장 최근에 생성된 5개의 최근 샘플들에 대한 결정에 기초하여 최근 샘플들 F-J를 선택함으로써, 레퍼런스 샘플 A-C 및 최근 샘플 F-J를 포함하는 세트를 획득할 수 있다.
일부 구현예들에서, 핫워드 검출기(610)는 알려진 사용자가 핫워드를 말한 것에 대한 신뢰도의 표시를 부가적으로 또는 대안적으로 제공할 수 있고 그리고 샘플 선택기는 검출에 사용된 샘플 세트에 대해 최신 샘플을 사용할지 여부를 결정할 때 그 신뢰도를 고려할 수 있다. 예를 들어, 샘플 선택기(620)는 95%의 신뢰도 임계 값을 사용할 수 있으므로, 핫워드 검출기(610)가 알려진 사용자가 오디오 표현에서 핫워드를 말한 것으로 95% 미만의 신뢰도를 나타내는 경우 오디오 표현으로부터 새로운 샘플을 생성하지 않을 수 있다.
샘플 선택기(620)는 오디오 표현이 어떤 유형의 장치로부터 왔는지 추가적으로 또는 대안적으로 결정할 수 있고, 그 유형의 표시로 최근 샘플을 라벨링한 다음, 새로운 샘플 세트를 생성할 때 상기 유형을 고려할 수 있다. 예를 들어, 샘플 선택기(620)는 테이블-탑(table-top) 음성 지원 장치가 가장 최신의 샘플 세트를 요청하고 있음을 결정하고, 이에 응답하여, 테이블-탑 음성 지원 장치로부터 나온 것으로 라벨링된 최근 샘플들 중에서만 최근 샘플들을 선택할 수 있다. 다른 예에서, 샘플 선택기(620)는 텔레비전 음성 지원 장치가 최신 샘플 세트를 요청하고 있다고 결정할 수 있고, 이에 응답하여, 텔레비전 음성 지원 장치로부터 가장 최근의 2개의 샘플과 아직 선택되지 않은 최근의 샘플들 중 3개의 가장 최신 샘플을 결정하고 선택할 수 있다.
추가적으로 또는 대안적으로, 핫워드 검출기는 음성 지원 장치에서 구현되고 샘플 선택기(620)는 서버에서 구현되며, 서버는 샘플 세트에 기초하여 검출을 위한 모델을 생성한 다음 샘플 자체를 음성 지원 장치에 제공하지 않고 상기 모델을 음성 지원 장치에 전송할 수 있다. 예를 들어, 서버(155)는 레퍼런스 샘플 A-C 및 최근 샘플 F-J를 포함하는 샘플 세트를 획득하고, 상기 샘플 세트를 사용하여 핫워드 검출 모델을 학습시킨 후, 학습된 핫워드 검출 모델을 음성 지원 장치(125)에 전송할 수 있다.
일부 구현예들에서, 시스템(100)은, 시스템(100)이 핫워드를 말하고 있는 특정 알려진 사용자의 화자 식별 특징을 이미 저장 한경우, 음성 가능 장치(125)가 핫워드를 말하지 않고 핫워드를 말하고 있는 특정 알려진 사용자의 화자 식별 특징을 획득할 수 있게 할 수 있다. 예를 들어, 사용자가 음성 지원 장치(125)와 함께 사용할 계정에 대한 로그인 정보를 제공한 후 초기 등록 동안, 음성 지원 장치(125)는 서버(155)가 다른 음성 지원 장치에 사전 등록하는 동안 "오케이 컴퓨터"라고 3번 말한 사용자의 오디오 기록이 저장되어 있다고 결정하고, 이에 대한 응답으로, 등록시에 특정 알려진 사용자에게 "오케이 컴퓨터"라고 3번 말하도록 하는 대신 서버(155)로부터 사전 등록에 대한 오디오 기록을 요청할 수 있다.
저장된 화자 식별 특징을 사용함으로써, 시스템(100)은 사용자가 추가 음성 지원 장치에 등록하기 위해 핫워드를 여러 번 말할 필요없이 추가 음성 지원 장치를 사용하여 사용자가 신속하게 시작할 수 있게 할 수있다. 후속 장치들에 대해, 시스템(100)은 제1 음성 지원 장치로의 등록으로부터 저장된 "오케이 컴퓨터"라고 말하는 사용자의 이전 오디오 기록들로부터 화자 식별 특징들을 대신 사용할 수 있다. 또한, 다양한 음성 지원 장치가 모두 동일한 화자 식별 특징을 사용할 수 있기 때문에, 시스템(100)은 사용자가 핫워드를 말할 때 다양한 장치가 일관성 있고 균일하게 검출되도록 할 수 있다.
특정 예에서, 사용자는 스마트폰 상의 컴패니언 애플리케이션을 통해 음성 지원 장치(125)를 사용하도록 등록할 수 있고, 사용자가 음성 지원 장치(125)의 알려진 사용자로서 등록하고 싶다는 것을 표시하고, 컴패니언 애플리케이션에서 사용자 계정에 대한 로그인 자격증명(credentials)을 제공하고, 컴패니언 애플리케이션은 서버(155)가 사용자의 계정에 핫워드 "오케이 컴퓨터"를 말하는 사용자의 오디오 기록이 저장되어 있는지 여부를 결정하도록 요청할 수 있다. 서버(155)는 저장된 오디오 기록, 예를 들어 부울 "참"이 존재한다는 표시로 응답할 수 있고, 컴패니언 애플리케이션은, 이에 응답하여, 사용자에게 핫워드를 여러 번 말하도록 요청하는 스크린을 스킵하고, 대신에 서버(155)에 오디오 기록을 요청하는 명령을 음성 지원 장치(125)에 전송할 수 있다. 이에 응답하여, 서버(155)는 오디오 기록을 음성 지원 장치(125)로 전송할 수 있다.
일부 구현예들에서, 음성 지원 장치(125)가 알려진 사용자에 의해 발언되는 핫워드의 추후 검출을 위한 쿼리의 일부로서 핫워드를 말하는 알려진 사용자로부터의 추가적인 화자 식별 특징을 어떻게 사용할 수 있는지와 유사하게, 시스템(100)의 음성 지원 장치는 이러한 추가적인 화자 식별 특징을 서로 공유하여 모든 음성 지원 장치가 핫워드를 말하는 알려진 사용자의 검출을 향상시킬 수 있다. 예를 들어, 사용자 "아빠"는 음성 지원 장치(125)에 "오케이 컴퓨터, 오늘 나의 약속은 무엇인가"라고 말할 수 있고, 음성 지원 장치(125)는 나중에 "오케이 컴퓨터"라고 말하는 사용자 "아빠"를 검출하도록 사용하기 위해 제2 음성 지원 장치에 제공되는 오디오 기록을 생성할 수 있다.
일부 구현예들에서, 음성 지원 장치들은 서버(155)를 통해 추가적인 화자 식별 특징들을 공유할 수 있다. 예를 들어, 음성 지원 장치(125)가 핫워드 발화에 대한 신뢰도 점수가 미리 정해진 신뢰도 점수 임계 값을 만족한다고 결정할 때마다, 음성 지원 장치(125)는, 음성 지원 장치(125)에 저장된 특정 알려진 사용자에 대한 토큰과 함께 핫워드를 말하는 알려진 사용자의 화자 식별 특징 또는 오디오 기록을 서버(155)에 제공할 수 있다. 서버(155)는 해당 알려진 사용자 계정을 식별하고, 토큰의 포함에 기초하여 오디오 기록이 알려진 사용자 계정에 대해 저장되어야 한다는 것을 인증할 수 있고, 그 다음 화자 식별 특징 또는 오디오 기록을 서버(155)에 저장하고, 알려진 사용자가 사용하는 것으로 등록한 다른 모든 음성 지원 장치에 화자 식별 특징 또는 오디오 기록을 제공한다. 다른 음성 지원 장치는 핫워드를 말하고 있는 알려진 사용자의 추후 검출을 위해 화자 식별 특징 또는 오디오 기록을 추후 사용할 수 있다.
일부 구현예들에서, 서버(155)는 음성 지원 장치들로부터의 요청들에 응답하여 또는 음성 지원 장치들로부터 요청들을 수신하지 않고 추가적인 화자 식별 특징들 또는 오디오 기록들을 제공할 수 있다. 예를 들어, 음성 지원 장치(125)의 전원이 켜질 때마다(또는 소정의 간격, 예를 들어 매시간, 매일, 매주 등 마다), 음성 지원 장치(125)는 검출에 사용하기 위해 오디오 기록에 대한 임의의 업데이트를 요청하는 요청을 서버(155)에 제공할 수 있다. 다른 예에서, 서버(155)는, 서버(155)가 핫워드를 말하는 특정 알려진 사용자의 새로운 오디오 기록을 저장할 때마다, 특정 알려진 사용자의 표시로 라벨링된 추가 오디오 기록을 푸시할 수 있다.
일부 구현예들에서, 시스템(100)은 전체 세트의 화자 식별 특징들 또는 오디오 기록들을 음성 지원 장치들로 전송할 수 있다. 예를 들어, 서버(155)는 "오케이 컴퓨터"라고 말하는 알려진 사용자를 검출하기 위해 오디오 기록에 대한 요청을 수신할 수 있고, 이에 대한 응답으로, 알려진 사용자의 등록으로부터 3개의 오디오 기록 및 "오케이 컴퓨터"라고 말하는 알려진 사용자의 가장 최근의 5개의 오디오 기록을 쿼리의 일부로서 제공할 수 있다.
일부 구현예들에서, 시스템(100)은 음성 지원 장치들이 이미 저장한 화자 식별 특징들 또는 오디오 기록들의 전송을 회피함으로써 대역폭 사용량을 감소시키려고 시도할 수 있다. 예를 들어, 서버(155)는 특정 음성 지원 장치로부터 현재의 오디오 기록 세트에 대한 요청을 수신하고 그리고 8개의 오디오 기록 각각에 대한 식별자, 예를 들어 고유한 영숫자 텍스트를 전송할 수 있다. 특정 음성 지원 장치는 그 식별자를 음성 지원 장치가 이미 저장한 오디오 기록의 식별자와 비교하고 그리고 음성 지원 장치가 저장하지 않은 식별자에 대해서만 오디오 기록을 요청할 수 있다. 서버(155)는 음성 지원 장치가 식별자에 의해 요청한 오디오 기록을 제공할 수 있고, 그 후, 음성 지원 장치는 핫워드를 말하는 알려진 사용자의 추후 검출을 위해 그 오디오 기록의 세트를 사용할 수 있다.
부가적으로 또는 대안적으로, 시스템(100)은 음성 지원 장치가 특정 식별 특징 또는 오디오 기록을 요구할 필요가 없도록 각 음성 지원 장치가 어떤 오디오 기록을 저장했는지 추적할 수 있다. 예를 들어, 서버(155)는 특정 음성 지원 장치로부터 현재의 오디오 기록의 세트에 대한 요청을 수신할 수 있고, 특정 음성 지원 장치가 사용할 8개의 오디오 기록들의 세트에 대해 2개의 새로운 오디오 기록을 모두 포함한다고 결정하고, 이에 응답하여, 음성 지원 장치에 2개의 새로운 오디오 기록과 함께 8개의 오디오 기록에 대한 식별자들의 세트를 제공한다. 그 후, 음성 지원 장치는 식별자들의 세트 내의 임의의 식별자들과 매칭하지 않는 식별자들을 갖는 임의의 저장된 오디오 기록을 삭제하고, 핫워드를 나중에 검출하기 위해 상기 세트에 대응하는 식별자들을 갖는 오디오 기록을 사용할 수 있다.
일부 구현예들에서, 발화에 대한 신뢰도 점수는 전적으로 화자 식별 특징들 또는 오디오 기록들에 기초할 수 있다. 예를 들어, 음성 진원 장치(125)는 현재 발화에 대한 화자 식별 특징들을 획득하고, 화자 식별 특징들을 저장된 화자 식별 특징들과 비교하고, 그 비교로부터 직접 신뢰도 점수를 생성할 수 있다.
대안적으로, 발화에 대한 신뢰도 점수는 다른 요인들에 기초할 수 있다. 예를 들어, 음성 지원 장치(125)는 다른 쿼리가 방금 수신되었는지를 결정하고, 현재 발화에 대한 초기 신뢰도 점수 및 이전 신뢰도 점수의 평균을 취할 수 있다. 다른 예에서, 음성 지원 장치(125)는 사용자가 최근에 알려진 사용자에 대한 패스코드(passcode)를 제공한 것으로 결정하고, 이에 응답하여 화자 식별 특징 또는 오디오 기록만으로 생성되는 것보다 상기 발화에 대해 더 높은 신뢰도 점수를 생성할 수 있다.
일부 구현예들에서, 시스템(100)은 특정 음성 지원 장치의 특성에 기초하여 사용할 특정 음성 지원 장치에 대한 특정 오디오 기록 세트를 결정할 수 있다. 예를 들어, 서버(155)는, 대중에게 공개될 가능성이 있고 그리고 핫워드를 말하는 많은 다른 사람들로부터의 발화에 노출될 수 있는 모바일 컴퓨팅 장치인 음성 지원 장치에 대해 매우 높은 신뢰도를 갖는 오디오 기록만을 사용할 수 있다. 다른 예에서, 서버(155)는 테이블-탑 음성 지원 장치들에 대해 하나의 테이블-탑 음성 지원 장치에 의해 생성된 오디오 기록만을 사용할 수 있다. 이 예에서, 서버(155)는, 서버(155)가 나중에 장치 유형에 기초하여 음성 지원 장치에 사용할 오디오 기록을 결정할 수 있도록, 어떤 유형의 장치가 오디오 기록을 생성했는지를 나타내는 정보로 오디오 기록을 라벨링할 수 있다.
도 6의 상기 설명이 알려진 사용자 "아빠"에 대한 샘플을 설명하지만, 핫워드 검출기(610) 및 샘플 선택기(620)는 다수의 다른 알려진 사용자에 대한 샘플을 유사하게 사용할 수 있다. 핫워드 검출기(610)는 상이한 샘플들의 세트를 획득할 수 있고(여기서 각각의 세트는 특정 알려진 사용자에 대한 샘플을 포함함), 알려진 사용자가 그 세트를 사용하여 발화에서 핫워드를 말했는지 여부를 결정할 수 있다. 예를 들어, 핫워드 검출기(610)는 발화를 수신할 수 있고, 동시에 알려진 사용자 "아빠"에 대한 샘플 세트를 사용하여 학습된(훈련된) 제1 핫워드 검출기 모델을 사용할 수 있고, 알려진 사용자 "엄마"에 대한 샘플 세트를 사용하여 학습된 제2 핫워드 검출기 모델을 사용할 수 있고, 제2 핫워드 검출기 모델의 출력이 알려진 사용자 "엄마"가 핫워드 "오케이 컴퓨터"를 말한 것에 대해 97% 신뢰도를 나타내고, 제2 핫워드 검출기 모델의 출력이 알려진 사용자 "아빠"가 핫워드를 말한 것에 대해 8% 신뢰도를 나타내는 것으로 결정할 수 있고, 97% 신뢰도가 미리 결정된 임계 값 95%보다 크고 그리고 8% 신뢰도보다 크다는 결정에 응답하여, 발화가 핫워드를 말하는 알려진 사용자 "엄마"를 포함한다고 결정할 수 있다.
도 7은 화자 식별에 사용되는 샘플 세트를 업데이트하기 위한 프로세스(700)의 예를 나타내는 흐름도이다. 프로세스(200)의 동작은 도 6의 샘플 선택기(620) 및 핫워드 검출기(610)와 같은 하나 이상의 컴퓨팅 시스템에 의해 수행될 수 있다.
프로세스(700)는 발화가 핫워드를 말하고 있는 특정 사용자의 제1 세트의 샘플에 기초하여 핫워드를 말하고 있는 특정 사용자를 포함한다고 결정하는 단계(705)를 포함한다. 예를 들어, 핫워드 검출기(610)는 발화가 핫워드 "오케이 컴퓨터"를 말하는 알려진 사용자 "아빠"를 포함하는 것으로 검출하기 위해 최근 샘플 E-I 및 레퍼런스 샘플 A-C의 세트를 사용할 수 있다.
일부 구현예들에서, 발화가 핫워드를 말하고 있는 특정 사용자의 제1 세트의 샘플들에 기초하여 핫워드를 말하는 특정 사용자를 포함한다고 결정하는 단계는 상기 제1 세트의 샘플을 사용하여 핫워드 검출 모델을 생성하고, 핫워드 검출 모델에 발화를 입력하는 단계; 및 핫워드 검출 모델이 발화를 핫워드를 말하는 특정 사용자를 포함하는 것으로 분류했다고 결정하는 단계를 포함할 수 있다. 예를 들어, 핫워드 검출기(610)는 제1 세트의 샘플을 사용하여 핫워드 검출 모델을 생성하고, 핫워드 검출 모델로 발화를 입력한 다음, 핫워드 검출기의 출력으로서 핫워드 검출 모델로부터의 출력을 사용할 수 있다.
프로세스(700)는 발화가 핫워드를 말하는 특정 사용자의 제1 세트의 샘플에 기초하여 핫워드를 말하는 특정 사용자를 포함한다는 결정에 응답하여, 발화의 적어도 부분(일부)을 새로운 샘플로서 저장하는 단계(710)를 포함한다. 예를 들어, 알려진 사용자 "아빠"가 발화에서 핫워드를 발언했다는 표시를 핫워드 검출기(610)로부터 수신한 것에 응답하여, 샘플 선택기(620)는 "오케이 컴퓨터"에 대응하는 발화의 부분을 알려진 사용자 "아빠"에 대한 새로운 최신 샘플 J로서 저장할 수 있다.
프로세스(700)는 발화를 말하는 특정 사용자의 제2 세트의 샘플을 획득하는 단계(715)를 포함하고, 여기서 제2 세트의 샘플은 새로운 샘플을 포함하고 제1 세트의 샘플 내의 모든 샘플보다 적은 샘플을 포함한다. 예를 들어, 샘플 선택기(620)는 최근 샘플 E를 포함하지 않고, 레퍼런스 샘플 A-C 및 최근 샘플 F-J를 포함하는 제2 세트의 샘플을 획득할 수 있다.
일부 구현예들에서, 발화를 말하는 특정 사용자의 제2 세트의 샘플을 획득하는 단계(715)(여기서 제2 세트의 샘플은 새로운 샘플을 포함하고 제1 세트의 샘플 내의 모든 샘플보다 적은 샘플을 포함함)는 미리 결정된 수의 최근 저장된 샘플을 제2 세트의 샘플로서 선택하는 단계를 포함한다. 예를 들어, 샘플 선택기(620)는 가장 최근에 저장된 최근 샘플 중 3개, 5개, 8개 또는 다른 미리 결정된 수를 선택할 수 있다. 일부 구현예에서, 발화를 말하는 특정 사용자의 제2 세트의 샘플을 획득하는 단계(여기서 제2 세트의 샘플은 새로운 샘플을 포함하고 제1 세트의 샘플 내의 모든 샘플보다 적은 샘플을 포함함)는 미리 결정된 개수의 가장 최근에 저장된 샘플들과 레퍼런스 샘플들의 세트를 모두 선택하여 제2 세트의 샘플로서 함께 결합하는 단계를 포함한다. 예를 들어, 샘플 선택기(620)는 가장 최근에 저장된 최근 샘플의 3개, 5개, 8개 또는 다른 수를 선택하고, 하나, 2개, 3개, 모두 또는 일부 다른 수의 레퍼런스 샘플을 선택할 수 있다.
프로세스(700)는 적어도 핫워드를 말하는 사용자의 제2 세트의 샘플에 기초하여 제2 발화가 상기 핫워드를 말하는 특정 사용자를 포함한다고 결정하는 단계(720)를 포함한다. 예를 들어, 핫워드 검출기(610)는 발화가 핫워드 "오케이 컴퓨터"를 말하는 알려진 사용자 "아빠를 포함한다는 것을 검출하기 위해, 최근 샘플 E 없이, 최근 샘플 F-J 및 레퍼런스 샘플 A-C의 세트를 사용할 수 있다.
일부 구현예들에서, 프로세스(700)는 제2 세트의 샘플들을 획득하는 것에 응답하여, 제2 세트의 샘플에서가 아니라, 제1 세트의 샘플에서 샘플을 삭제하는 단계를 포함한다. 예를 들어, 샘플 선택기(620)는 최근 샘플 E 없이 제2 세트를 선택한 후, 샘플 선택기(620)는 핫워드 검출을 위한 현재 세트가 최근 샘플 E를 포함하지 않는 것으로 결정하고, 이에 응답하여 최근 샘플 데이터 저장소(640)에 최근 샘플 E를 삭제하도록 지시할 수 있다.
일부 구현예들에서, 프로세스(700)는 서버로부터 제2 새로운 샘플을 수신하는 단계 및 서버로부터의 제2 새로운 샘플을 포함하고 그리고 제2 세트의 샘플 내의 모든 샘플보다 적은 제3 세트의 샘플에 기초하여 핫워드를 말하는 특정 사용자를 제3 발화가 포함하는 것으로 결정하는 단계를 포함한다. 예를 들어, 핫워드 검출기(610)는 최근 샘플 K를 수신한 다음, 다른 발화가 레퍼런스 샘플 A-C 및 최근 샘플 G-K에 기초하여 "오케이 컴퓨터"라고 말하는 알려진 사용자 "아빠"를 포함한다고 결정할 수 있다.
일부 구현예들에서, 프로세스(700)는 서버로부터, 제3 세트의 샘플에서 샘플의 표시를 수신하는 단계; 로컬로 저장되지 않은 제3 세트의 샘플에 있는 샘플을 결정하는 단계; 로컬로 저장되지 않은 제3 세트의 샘플 내의 샘플에 대한 요청을 서버에 제공하는 단계; 요청에 응답하여 서버로부터 로컬로 저장되지 않은 샘플을 수신하는 단계를 포함한다. 예를 들어, 핫워드 검출기(610) 또는 음성 지원 장치(125)는 서버(155)에 현재 세트의 샘플(샘플들의 현재 세트)을 요청하고, 이에 응답하여 핫워드 검출기(610) 또는 음성 지원 장치(125)에 대한 현재 세트의 샘플이 레퍼런스 샘플 A-C 및 최근 샘플 G-K를 포함한다는 표시를 수신하고, 레퍼런스 샘플 A-C 및 최근 샘플 G-J가 이미 로컬에 저장되어 있지만 최근 샘플 K가 로컬에 저장되어 있지 않다고 결정하고, 최근 샘플 K에 대한 요청을 서버(155)에 제공하고, 그 요청에 대한 응답으로 최근 샘플 K를 수신할 수 있다.
일부 구현예에서, 프로세스(700)는 상기 음성 지원 장치가 상기 특정 사용자가 핫워드를 말하는지 여부를 검출할 수 있도록 상기 음성 지원 장치에 제1 세트의 샘플을 제공하는 단계를 포함하며, 핫워드를 말하는 특정 사용자의 제1 세트의 샘플에 기초하여 핫워드를 말하는 특정 사용자를 발화가 포함하는 것으로 결정하는 단계는 상기 특정 사용자가 핫워드를 말했음을 상기 음성 지원 장치가 검출했다는 표시를 수신하는 단계를 포함한다. 예를 들어, 서버(155)는 발화가 음성 지원 장치(125)로부터 오디오 표현을 수신하는 것에 기초하여 핫워드 "오케이 컴퓨터"를 말하는 알려진 사용자 "아빠" 및 화자로서 플래그된 알려진 사용자 "아빠"에 대한 토큰을 포함하는 것으로 결정할 수 있다.
일부 구현예들에서, 프로세스(700)는 제1 세트의 샘플들을 사용하여 핫워드 검출 모델을 생성하는 단계 및 핫워드 검출 모델을 음성 지원 장치에 제공하여 음성 지원 장치가 특정 사용자가 핫워드를 말했는지 여부를 검출할 수 있게 하는 단계를 포함하며, 여기서 핫워드를 말하는 특정 사용자의 제1 세트의 샘플에 기초하여 발화가 핫워드를 말하는 특정 사용자를 포함한다고 결정하는 단계는 상기 음성 지원 장치가 상기 특정 사용자가 핫워드를 말했음을 검출했다는 표시를 수신하는 단계를 포함한다. 예를 들어, 서버(155)는 샘플 세트에 기초하여 핫워드 검출 모델을 생성한 다음 핫워드 검출 모델을 음성 지원 장치(125)에 제공할 수 있다.
일부 구현예에서, 프로세스(700)는 특정 사용자가 핫워드를 말했는지 여부를 검출하기 위해 현재 세트의 샘플(현재 샘플 세트)에 대한 요청을 음성 지원 장치로부터 수신하는 단계; 음성 지원 장치에 의해 로컬적으로 저장되지 않은 현재 세트의 샘플 내의 샘플을 결정하는 단계; 상기 음성 지원 장치에, 상기 음성 지원 장치에 의해 로컬적으로 저장되지 않은 현재 세트의 샘플(현재 샘플 세트) 내의 샘플 및 상기 현재 세트의 샘플(현재 샘플 세트) 내의 샘플의 표시를 제공하는 단계를 포함한다. 예를 들어, 서버(155)는 음성 지원 장치(125)로부터 현재 샘플 세트에 대한 요청을 수신할 수 있고, 서버(155)가 이전에 음성 지원 장치(125)에 제공한 샘플을 결정한 후, 서버(155)가 아직 음성 지원 장치(125)에 제공하지 않았다고 서버(155)가 결정한 샘플과 함께 현재 샘플 세트 내의 샘플들에 대한 표시(indication)를 음성 지원 장치(125)에 제공한다.
일부 구현예에서, 시스템(600)은 사용자가 새로운 레퍼런스 샘플을 제공하도록 요청할 수 있게 할 수 있다. 예를 들어, 시스템(600)은 사용자로부터 저장된 샘플을 리셋(reset)하라는 요청을 사용자로부터 수신할 수 있다. 시스템(600)은 사용자가 사용하는 스마트폰에서 컴패니언 애플리케이션을 통해 샘플을 리셋하라는 요청을 수신할 수 있고, 상기 요청에 응답하여, 시스템(600)은 사용자를 위해 저장된 모든 레퍼런스 샘플을 삭제하고 그리고 사용자가 핫워드를 여러 번 말하도록 요청하고, 발화로부터 새로운 레퍼런스 샘플을 생성할 수 있다. 시스템(600)은 모든 새로운 레퍼런스 샘플 및 미리 결정된 수의 가장 최근에 저장된 최근 샘플을 포함하는 제3 세트의 샘플을 생성할 수 있다. 다른 예에서, 시스템(600)은 사용자에 의해 사용된 스마트폰 상의 컴패니언 애플리케이션을 통해 샘플을 리셋하라는 요청을 수신할 수 있고; 상기 요청에 응답하여, 시스템(600)은 사용자를 위해 저장된 레퍼런스 및 최근 샘플 모두를 삭제하고, 사용자가 핫워드를 여러 번 말하고 발화로부터 새로운 레퍼런스 샘플을 생성하도록 요청할 수 있다. 이후 시스템(600)은 새로운 레퍼런스 샘플만을 포함하는 제3 세트의 샘플을 생성할 수 있다.
도 8은 본 명세서에 기술된 기법들을 구현하는데 사용될 수 있는 컴퓨팅 장치(800)와 모바일 컴퓨팅 장치(850)의 예시를 도시한다. 컴퓨팅 장치(800)는 랩톱, 데스크톱, 워크스테이션, 개인 휴대 정보 단말기, 서버, 블레이드 서버, 메인 프레임 및 다른 적절한 컴퓨터와 같은 다양한 형태의 디지털 컴퓨터들을 나타내기 위한 것이다. 모바일 컴퓨팅 장치(850)는 개인 휴대 정보 단말기, 셀룰러 전화기, 스마트폰 및 다른 유사한 컴퓨팅 장치들과 같은 다양한 형태의 모바일 장치들을 나타내기 위한 것이다. 여기에 도시된 컴포넌트들, 그들의 연결 및 관계, 및 그들의 기능은 단지 예시적인 것을 의미하며, 제한하는 것을 의미하지는 않는다.
컴퓨팅 장치(800)는 프로세서(802), 메모리(804), 저장 장치(806), 메모리(804) 및 다수의 고속 확장 포트(810)에 연결되는 고속 인터페이스(808) 및 저속 확장 포트(814) 및 저장 장치(806)에 연결되는 저속 인터페이스(812)를 포함한다. 프로세서(802), 메모리(804), 저장 장치(806), 고속 인터페이스(808) 및 저속 인터페이스(812) 각각은 다양한 버스들을 사용하여 상호연결되며, 공통 마더보드에 또는 적절한 다른 방식으로 장착된다. 프로세서(802)는 메모리(804) 또는 저장 장치(806)에 저장된 명령어들을 포함하는, 컴퓨팅 장치(800) 내에서 실행하기 위한 명령어들을 프로세싱하여, 고속 인터페이스(808)에 연결된 디스플레이(816)와 같은 외부 입/출력 장치에 GUI(graphical user interface)에 대한 그래픽 정보를 디스플레이할 수 있다. 다른 구현예에서, 다수의(복수의) 프로세서들 및/또는 다수의 버스들이 다수의 메모리들 및 다수의 유형의 메모리와 함께, 적절하게 사용될 수 있다. 또한, 다수의 컴퓨팅 장치들은 필요한 동작의 부분들을 제공하는 각 장치와 연결될 수 있다(예를 들어, 서버 뱅크, 블레이드 서버 그룹 또는 멀티 프로세서 시스템).
메모리(804)는 컴퓨팅 장치(800) 내에 정보를 저장한다. 일부 구현예에서, 메모리(804)는 휘발성 메모리 유닛 또는 유닛들이다. 일부 구현예에서, 메모리(804)는 비휘발성 메모리 유닛 또는 유닛들이다. 또한, 메모리(804)는 자기 또는 광학 디스크와 같은 컴퓨터 판독가능 매체의 다른 형태 일 수 있다.
저장 장치(806)는 컴퓨팅 장치(800)에 대한 대형 저장소를 제공할 수 있다. 일부 구현예에서, 저장 장치(806)는 플로피 디스크 장치, 하드 디스크 장치, 광 디스크 장치 또는 테이프 장치, 플래시 메모리 또는 다른 유사한 고체 상태 메모리 장치, 또는 저장 영역 네트워크 또는 다른 구성의 장치를 포함하는 장치의 어레이와 같은 컴퓨터 판독가능 매체이거나 컴퓨터 판독가능 매체를 포함할 수 있다. 명령어들은 정보 캐리어에 저장될 수 있다. 명령어들은 하나 이상의 프로세싱 장치들(예를 들어, 프로세서(802))에 의해 실행될 때, 상술한 것과 같은 하나 이상의 방법들을 수행한다. 명령어들은 또한 컴퓨터 또는 기계 판독가능 매체(예를 들어, 메모리(804), 저장 장치(806) 또는 프로세서(802)상의 메모리)와 같은 하나 이상의 저장 장치들에 의해 저장될 수 있다.
고속 인터페이스(808)는 컴퓨팅 장치(800)에 대한 대역폭 집중 동작들을 관리하는 반면, 저속 인터페이스(812)는 낮은 대역폭 집중 동작들을 관리한다. 이러한 기능들의 할당은 단지 예시적인 것이다. 일부 구현예에서, 고속 인터페이스(808)는 메모리(804), 디스플레이(816)(예를 들어, 그래픽 프로세서 또는 가속기를 통해) 및 다양한 확장 카드(도시되지 않음)를 수용할 수 있는 고속 확장 포트(810)에 연결된다. 구현예에서, 저속 인터페이스(812)는 저장 장치(806) 및 저속 확장 포트(814)에 연결된다. 다양한 통신 포트(예를 들어, USB, 블루투스, 이더넷, 무선 이더넷)를 포함할 수 있는 저속 확장 포트(814)는 키보드, 포인팅 장치, 스캐너와 같은 하나 이상의 입력/출력 장치 또는 예를 들어 네트워크 어댑터를 통해 스위치 또는 라우터와 같은 네트워킹 장치에 결합될 수 있다.
컴퓨팅 장치(800)는 도면에 도시된 바와 같이 다수의 상이한 형태로 구현될 수 있다. 예를 들어, 그것은 표준 서버(820)로서 또는 그러한 서버들의 그룹에서 다수로 구현될 수 있다. 또한, 랩톱 컴퓨터(822)와 같은 퍼스널 컴퓨터에서 구현될 수 있다. 또한, 랙 서버 시스템(824)의 일부로서 구현될 수 있다. 대안적으로, 컴퓨팅 장치(800)로부터의 컴포넌트들은 모바일 컴퓨팅 장치(850)와 같은 모바일 장치(도시되지 않음) 내의 다른 컴포넌트들과 결합될 수 있다. 상기 장치들 각각은 컴퓨팅 장치(800), 모바일 컴퓨팅 장치(850) 중 하나 이상을 포함할 수 있고, 전체 시스템은 서로 통신하는 다수의 컴퓨팅 장치들로 구성될 수 있다.
모바일 컴퓨팅 장치(850)는 다른 여러 컴포넌트들 중에서도 특히, 프로세서(852), 메모리(864), 디스플레이(854)와 같은 입/출력 장치, 통신 인터페이스(866) 및 송수신기(868)를 포함한다. 모바일 장치(850)에는 또한 추가적 저장을 제공하기 위해 마이크로 드라이브 또는 다른 장치와 같은 저장 장치가 제공될 수 있다. 프로세서(852), 메모리(864), 디스플레이(854), 통신 인터페이스(866) 및 트랜스시버(868) 각각은 다양한 버스들을 사용하여 상호 연결되고, 몇몇 컴포넌트들은 공통 마더보드 상에 또는 적절한 다른 방식으로 장착될 수 있다.
프로세서(852)는 메모리(864)에 저장된 명령어들을 포함하는 모바일 컴퓨팅 장치(850) 내의 명령어들을 실행할 수 있다. 프로세서(852)는 별개의 그리고 다수의 아날로그 및 디지털 프로세서들을 포함하는 칩들의 칩셋으로서 구현될 수 있다. 프로세서(852)는 예를 들어 사용자 인터페이스들, 모바일 컴퓨팅 장치(850)에 의해 실행되는 애플리케이션 및 모바일 컴퓨팅 장치(850)에 의한 무선 통신과 같은 모바일 컴퓨팅 장치(850)의 다른 컴포넌트들의 조정을 제공할 수 있다.
프로세서(852)는 제어 인터페이스(858) 및 디스플레이(856)에 연결된 디스플레이 인터페이스(856)를 통해 사용자와 통신할 수 있다. 디스플레이(854)는 예를 들어, TFT LCD(박막 트랜지스터 액정 디스플레이) 또는 OLED(유기 발광 다이오드) 디스플레이 또는 다른 적절한 디스플레이 기술을 포함할 수 있다. 디스플레이 인터페이스(856)는 사용자에게 그래픽 및 다른 정보를 제공하기 위해 디스플레이(854)를 구동하기 위한 적절한 회로를 포함할 수 있다. 제어 인터페이스(858)는 사용자로부터 명령을 수신하고, 프로세서(852)에 제출하기 위해 그들을 변환할 수 있다. 추가로, 외부 인터페이스(862)는 프로세서(852)와의 통신에 제공되어 다른 장치들과 모바일 컴퓨팅 장치(850)의 근거리 통신을 가능하게할 수 있다. 외부 인터페이스(862)는 예를 들면, 일부 구현예들에서는 유선 통신을 위해 또는 다른 구현예들에서는 무선 통신을 위해 제공될 수 있고, 다수의 인터페이스들도 사용될 수 있다.
메모리(864)는 모바일 컴퓨팅 장치(850) 내에 정보를 저장한다. 메모리(864)는 컴퓨터 판독가능 매체 또는 매체들, 휘발성 메모리 유닛 또는 유닛들, 비휘발성 메모리 유닛 또는 유닛들 중 하나 이상으로 구현될 수 있다. 또한 확장 메모리(874)는 예를 들어 SIMM(Single In Line Memory Module) 카드 인터페이스를 포함할 수 있는 확장 인터페이스(872)를 통해 모바일 컴퓨팅 장치(850)에 제공되고 접속될 수 있다. 상기 확장 메모리(874)는 모바일 컴퓨팅 장치(850)에 대해 추가 저장 공간을 제공할 수 있거나, 또는 애플리케이션들 또는 모바일 컴퓨팅 장치(850)에 대한 다른 정보를 저장할 수 있다. 특히, 확장 메모리(874)는 전술한 프로세스들을 수행하거나 보충하는 명령어들을 포함할 수 있으며, 또한 보안 정보를 포함할 수 있다. 따라서, 예를 들면, 확장 메모리(874)는 모바일 컴퓨팅 장치(850)에 대한 보안 모듈로서 제공될 수 있고, 모바일 컴퓨팅 장치(850)의 보안 사용을 허용하는 명령어들로 프로그래밍될 수 있다. 또한, 보안 애플리케이션들은 SIMM 카드 상의 식별 정보를 해킹할 수 없는 방식으로 배치하는 것과 같이, SIMM 카드들을 통해 추가 정보와 함께 제공될 수 있다.
메모리는 예를 들어, 후술되는 바와 같이, 플래시 메모리 및/또는 NVRAM 메모리(non-volatile random access memory)를 포함할 수 있다. 일부 구현예들에서, 명령어들은 정보 캐리어에 저장되어, 하나 이상의 프로세싱 장치들(예를 들어, 프로세서(852))에 의해 실행될 때, 상술한 것과 같은 하나 이상의 방법들을 수행한다. 명령어들은 또한 하나 이상의 컴퓨터 또는 기계 판독가능 매체(예를 들어, 메모리(864), 확장 메모리(874) 또는 프로세서(852)상의 메모리)와 같은 하나 이상의 저장 장치들에 의해 저장될 수 있다. 일부 구현들에서, 명령어들은 예를 들어 트랜스시버(868) 또는 외부 인터페이스(862)를 통해 전파된 신호로 수신될 수 있다.
모바일 컴퓨팅 장치(850)는 필요에 따라 디지털 신호 처리 회로를 포함할 수 있는 통신 인터페이스(866)를 통해 무선으로 통신할 수 있다. 통신 인터페이스(866)는 GSM 음성 호출(이동 통신용 글로벌 시스템), SMS(단문 메시지 서비스), EMS(확장 메시징 서비스) 또는 MMS 메시징(멀티미디어 메시징 서비스), CDMA(코드 분할 다중 접속), TDMA(시분할 다중 접속), PDC(개인 디지털 셀룰러), WCDMA(광대역 코드 분할 다중 접속), CDMA2000 또는 GPRS(일반 패킷 무선 서비스)와 같은 다양한 모드 또는 프로토콜 하에서 통신을 제공할 수 있다. 이러한 통신은 예를 들어, 무선 주파수를 사용하는 트랜스시버(868)를 통해 발생될 수 있다. 추가로, 블루투스, Wi-Fi 또는 다른 트랜시버(도시되지 않음)를 사용하는 것과 같은 단거리 통신이 발생될 수 있다. 추가로, GPS(Global Positioning System) 수신기 모듈(870)은 모바일 컴퓨팅 장치(850)상에서 실행되는 애플리케이션들에 의해 적절히 사용될 수 있는 추가적인 내비게이션 및 위치 관련 무선 데이터를 모바일 컴퓨팅 장치(850)에 제공할 수 있다.
모바일 컴퓨팅 장치(850)는 또한 사용자로부터 발화된 정보를 수신하고 그것을 이용가능한 디지털 정보로 변환할 수 있는 오디오 코덱(860)을 사용하여 청각적으로 통신할 수 있다. 오디오 코덱(860)은 마찬가지로, 예를 들어 모바일 컴퓨팅 장치(850)의 핸드셋 내의 스피커를 통하는 것과 같이, 사용자를 위한 가청 사운드를 생성할 수 있다. 이러한 사운드는 보이스 전화 콜들로부터의 사운드 포함할 수 있고, 기록된 사운드(예를 들어, 음성 메시지, 음악 파일 등)를 포함할 수 있고, 또한 모바일 컴퓨팅 장치(850)상에서 동작하는 애플리케이션들에 의해 생성된 사운드를 포함할 수 있다.
모바일 컴퓨팅 장치(850)는 도면에 도시된 바와 같이 다수의 상이한 형태로 구현될 수 있다. 예를 들면, 그것은 셀룰러 전화(880)로서 구현될 수 있다. 또한 스마트폰(882), 개인 휴대 정보 단말기(PDA), 또는 다른 유사한 모바일 장치의 일부로서 구현될 수 있다.
본 명세서에서 설명된 요지 및 기능적 동작의 실시 예는 디지털 전자 회로, 유형적으로 구현된 컴퓨터 소프트웨어 또는 펌웨어, 컴퓨터 하드웨어로 구현될 수 있으며, 본 명세서 및 그 구조적 균등물에 개시된 구조를 포함하거나, 그들 중 하나 이상의 조합을 포함한다. 본 명세서에서 설명된 요지의 실시 예는 하나 이상의 컴퓨터 프로그램, 즉 데이터 프로세싱 장치에 의해 실행되거나 또는 데이터 프로세싱 장치의 동작을 제어하기 위한 유형의 비-일시적인 프로그램 캐리어상에 인코딩된 컴퓨터 프로그램 명령어들의 하나 이상의 모듈로서 구현될 수 있다. 선택적으로 또는 부가적으로, 상기 프로그램 명령어들은 데이터 프로세싱 장치에 의한 실행을 위해 적절한 수신기 장치로의 송신을 위한 정보를 인코딩하기 위해 생성된 인위적으로 생성된 전파 신호, 예를 들어, 기계 - 생성 전기, 광학 또는 전자기 신호 상에 인코딩될 수 있다. 컴퓨터 저장 매체는 기계 판독 가능 저장 장치, 기계 판독 가능 저장 기판, 랜덤 또는 시리얼 액세스 메모리 장치, 또는 이들 중 하나 이상의 조합일 수 있다.
"데이터 프로세싱 장치"라는 용어는 예를 들어 프로그램 가능 프로세서, 컴퓨터, 또는 복수의 프로세서 또는 컴퓨터를 포함하는 데이터 프로세싱을 위한 모든 종류의 장치, 디바이스 및 기계를 포함한다. 상기 장치는 특수 목적 논리 회로, 예를 들어 FPGA(field programmable gate array) 또는 ASIC(application specific integrated circuit)을 포함할 수 있다. 또한, 상기 장치는 하드웨어 이외에, 해당 컴퓨터 프로그램에 대한 실행 환경을 생성하는 코드, 예를 들어 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제, 또는 이들 중 하나 이상의 조합을 구성하는 코드를 포함할 수 있다.
컴퓨터 프로그램(프로그램, 소프트웨어, 소프트웨어 애플리케이션, 모듈, 소프트웨어 모듈, 스크립트 또는 코드로 지칭되거나 설명될 수 있음)은 컴파일된 또는 해석된 언어, 또는 선언적 또는 절차적 언어를 포함한 모든 형태의 프로그래밍 언어로 작성될 수 있으며, 독립 실행형 프로그램이나 모듈, 컴포넌트, 서브루틴 또는 컴퓨팅 환경에서 사용하기에 적합한 다른 장치를 포함하여 어떤 형태로든 배포될 수 있다. 컴퓨터 프로그램은 파일 시스템의 파일에 해당할 수 있지만 반드시 그런 것은 아니다. 프로그램은 프로그램 전용 단일 파일, 여러 개의 조정된 파일(예를 들어, 하나 이상의 모듈, 하위 프로그램 또는 코드의 부분들을 저장하는 파일들), 또는 마크업 언어 문서에 저장된 하나 이상의 스크립트와 같은 다른 프로그램들 또는 데이터를 보유하고 있는 파일의 부분에 저장될 수 있다. 컴퓨터 프로그램은 한 사이트에 있거나 여러 사이트에 분산되어 있으며 통신 네트워크로 상호 연결된 여러 대의 컴퓨터 또는 하나의 컴퓨터에서 실행되도록 배포될 수 있다.
본 명세서에서 설명되는 프로세스들 및 로직 흐름은 입력 데이터를 오퍼레이팅하고 출력을 생성함으로써 기능들을 수행하기 위해 하나 이상의 컴퓨터 프로그램을 실행하는 하나 이상의 프로그램 가능 컴퓨터에 의해 수행될 수 있다. 상기 프로세스들 및 로직 흐름은 또한 FPGA(field programmable gate array) 또는 ASIC(application-specific integrated circuit)과 같은 특수 목적의 논리 회로에 의해 수행될 수 있고, 장치는 또한 상기 특수 목적의 논리 회로로 구현될 수 있다.
컴퓨터 프로그램의 실행에 적합한 컴퓨터들은 예를 들어 범용 또는 특수 목적 마이크로프로세서들 또는 둘 모두, 또는 임의의 다른 종류의 중앙 처리 장치를 포함하고, 이들에 기반될 수 있다. 일반적으로, 중앙 처리 장치는 판독 전용 메모리 또는 랜덤 액세스 메모리 또는 둘 모두로부터 명령어들 및 데이터를 수신할 것이다. 컴퓨터의 필수 구성요소들은 명령어들을 수행하거나 실행하기 위한 중앙 처리 장치 및 명령어들 및 데이터를 저장하기 위한 하나 이상의 메모리 장치이다. 일반적으로, 컴퓨터는 예를 들어, 자기, 광 자기 디스크 또는 광학 디스크와 같은 데이터를 저장하기 위한 하나 이상의 대용량 저장 장치로부터 데이터를 수신하거나 그 하나 이상의 대용량 저장 장치에 데이터를 전송하기 위해 동작 가능하게 결합될 것이다. 그러나, 컴퓨터는 그러한 장치들을 가질 필요가 없다. 또한, 컴퓨터는 다른 장치, 예를 들어, 이동 전화기, 개인 휴대 정보 단말기(PDA), 이동 오디오 또는 비디오 플레이어, 게임 콘솔, GPS 수신기 또는 예를 들어 범용 직렬 버스(USB) 플래시 드라이브와 같은 휴대용 저장 장치에 내장될 수 있다.
컴퓨터 프로그램 명령어들 및 데이터를 저장하기에 적합한 컴퓨터 판독 가능 매체는 예를 들어 EPROM, EEPROM 및 플래시 메모리 장치들과 같은 반도체 메모리 장치들; 내부 하드 디스크 또는 이동식 디스크와 같은 자기 디스크; 광 자기 디스크; 그리고 CD-ROM 및 DVD-ROM 디스크를 포함하는 모든 형태의 비휘발성 메모리, 매체 및 메모리 장치들을 포함한다. 상기 프로세서 및 메모리는 특수 목적 논리 회로에 의해 통합되거나 보완될 수 있다.
사용자와의 상호 작용을 제공하기 위해, 본 명세서에서 설명된 요지의 실시예들은 사용자에게 정보를 디스플레이하기 위한 디스플레이 장치(예를 들어 CRT(cathode ray tube) 모니터, LCD(liquid crystal display) 모니터), 사용자가 컴퓨터에 입력을 제공할 수 있는 키보드 및 포인팅 장치(예를 들어 마우스 또는 트랙볼)를 갖는 컴퓨터상에서 구현될 수 있다. 다른 종류의 디바이스들이 사용자와의 상호 작용을 제공하는 데 사용될 수 있으며, 예를 들어, 사용자에게 제공되는 피드백은 시각 피드백, 청각 피드백 또는 촉각 피드백과 같은 임의의 형태의 감각 피드백일 수 있으며, 사용자로부터의 입력은 음향, 음성 또는 촉각 입력을 포함하는 임의의 형태로 수신될 수 있다. 또한, 컴퓨터는 사용자가 사용하는 디바이스로부터 자원들을 수신하고 그 자원들을 보냄으로써, 예를 들어, 웹 브라우저로부터 수신된 요청들에 응답하여 사용자의 클라이언트 디바이스상의 웹 브라우저에 웹 페이지들을 전송함으로써 사용자와 상호 작용할 수 있다.
본 명세서에서 설명된 요지의 실시예들은 데이터 서버와 같은 백 엔드 컴포넌트, 또는 예를 들어 애플리케이션 서버와 같은 미들웨어 컴포넌트, 또는 본 명세서에 설명된 요지의 구현예와 사용자가 상호 작용할 수 있는 웹 브라우저를 또는 그래픽 사용자 인터페이스를 갖는 클라이언트 컴퓨터와 같은 프론트 엔드 컴포넌트, 또는 하나 이상의 백엔드, 미들웨어 또는 프런트 엔드 컴포넌트의 모든 조합을 포함하는 컴퓨팅 시스템으로 구현될 수 있다. 상기 시스템의 컴포넌트들은 디지털 데이터 통신의 임의의 형태 또는 매체, 예를 들어 통신 네트워크에 의해 상호 접속될 수 있다. 예시적인 통신 네트워크들은 근거리 통신망("LAN") 및 광역 통신망("WAN"), 예를 들어 인터넷을 포함한다.
상기 컴퓨팅 시스템은 클라이언트들과 서버들을 포함할 수 있다. 클라이언트와 서버는 일반적으로 서로 멀리 떨어져 있으며, 일반적으로 통신 네트워크를 통해 상호 작용한다. 클라이언트와 서버의 관계는 각각의 컴퓨터들에서 실행되고 서로 클라이언트-서버 관계를 갖는 컴퓨터 프로그램들에 의해 발생한다.
본 명세서는 다수의 특정 구현 세부 사항을 포함하지만, 이들은 청구될 수 있는 범위에 대한 제한으로서 해석되어서는 안되며, 오히려 특정 실시예들에 특정 될 수 있는 특징들에 대한 설명으로 해석되어야 한다. 별도의 실시예들과 관련하여 본 명세서에서 설명되는 특정 특징들은 또한 단일 실시예에서 조합하여 구현될 수 있다. 반대로, 단일 실시예의 문맥에서 설명된 다양한 특징은 또한 다수의 실시예에서 개별적으로 또는 임의의 적합한 하위 조합으로 구현될 수 있다. 더욱이, 특징들은 특정 조합으로 동작하는 것으로 상술될 수 있지만, 청구된 조합으로부터의 하나 이상의 특징이 일부 경우에서 그 조합으로부터 제거될 수 있으며, 청구된 조합은 서브 조합 또는 서브 조합의 변형에 관한 것일 수 있다.
유사하게, 동작들이 특정 순서로 도면들에 도시되어 있지만, 이는 바람직한 결과들을 달성하기 위해 상기 동작들이 도시된 특정 순서 또는 순차적 순서로 수행되거나 모든 예시된 동작이 수행될 것을 요구하는 것으로 이해되어서는 안된다. 특정 상황에서 멀티 태스킹 및 병렬 처리가 유리할 수 있다. 또한, 전술한 실시예들에서 다양한 시스템 컴포넌트들의 분리는 모든 실시예들에서 그러한 분리를 요구하는 것으로 이해되어서는 안되며, 서술된 프로그램 컴포넌트들 및 시스템들은 일반적으로 단일 소프트웨어 제품에 함께 통합되거나 다중 소프트웨어 제품들로 패키징될 수 있다는 것을 이해해야 한다.
본 발명의 특정 실시예들이 설명되었다. 다른 실시예들은 다음의 청구항들의 범위 내에 있다. 예를 들어, 청구 범위에 열거된 동작들은 상이한 순서로 수행될 수 있으며 여전히 바람직한 결과들을 달성한다. 하나의 예로서, 첨부된 도면들에 도시된 프로세스들은 바람직한 결과들을 얻기 위해 나타낸 특정 순서 또는 순차적 순서를 반드시 필요로 하지는 않는다. 특정 구현예들에서, 멀티태스킹 및 병렬 처리가 유리할 수 있다. 기술된 프로세스들로부터 다른 단계들이 제공되거나 단계들이 제거될 수 있다. 따라서, 다른 구현예들은 다음의 청구 범위의 범위 내에 있다.

Claims (13)

  1. 컴퓨터로 구현되는 방법으로서,
    장치로부터, 장치의 알려진 사용자에 대응하는 인증 토큰들 및 발화의 표현을 포함하는 쿼리를 수신하는 단계;
    쿼리가 알려진 사용자를 화자로서 나타내지 않는다고 결정하는 단계;
    쿼리가 알려진 사용자를 화자로서 나타내지 않는다는 결정에 응답하여, 발화의 표현에 기초하여 쿼리가 비-개인적(non-personal)인지 여부를 결정하는 단계;
    발화의 표현에 기초하여 쿼리가 비-개인적이라는 결정에 응답하여, 쿼리에 포함된 인증 토큰들에 기초하여 쿼리에 대한 응답을 결정하는 단계; 그리고
    장치에 응답을 제공하는 단계를 포함하는 것을 특징으로 하는 컴퓨터로 구현되는 방법.
  2. 제1항에 있어서, 상기 쿼리가 알려진 사용자를 화자로서 나타내지 않는다고 결정하는 단계는,
    상기 발화가 상기 알려진 사용자에 의해 발언된 것으로 분류되었음을 나타내는 플래그를 상기 쿼리가 포함하지 않는다고 결정하는 단계를 포함하는 것을 특징으로 하는 컴퓨터로 구현되는 방법.
  3. 제1항에 있어서, 상기 쿼리가 알려진 사용자를 화자로서 나타내지 않는다고 결정하는 단계는, 상기 쿼리가 상기 발화의 화자에 대응하는 것으로 인증 토큰들을 플래그(flag)하지 않는 것으로 결정하는 단계를 포함하는 것을 특징으로 하는 컴퓨터로 구현되는 방법.
  4. 제1항에 있어서, 쿼리가 알려진 사용자를 화자로서 나타내지 않는다는 결정에 응답하여, 발화의 표현에 기초하여 쿼리가 비-개인적(non-personal)인지 여부를 결정하는 단계는,
    쿼리가 알려진 사용자를 화자로서 나타내지 않는다는 결정에 응답하여, 쿼리에 대한 답변이 개인 정보에 의존하는지 여부를 결정하는 단계를 포함하는 것을 특징으로 하는 컴퓨터로 구현되는 방법.
  5. 제4항에 있어서, 상기 쿼리에 대한 답변이 개인 정보에 의존하는지 여부를 결정하는 단계는, 상기 쿼리에 대한 답변이 개인 정보와 무관(independent)하다고 결정하는 단계를 포함하는 것을 특징으로 하는 컴퓨터로 구현되는 방법.
  6. 제1항에 있어서, 발화의 표현에 기초하여 쿼리가 비-개인적이라는 결정에 응답하여, 쿼리에 포함된 인증 토큰들에 기초하여 쿼리에 대한 응답을 결정하는 단계는,
    발화의 표현에 기초하여 쿼리가 비-개인적이라는 결정에 응답하여, 인증 토큰들 중 하나의 인증 토큰이 발화에 의해 표시된 액션을 수행할 권한을 나타내는지 여부를 결정하는 단계; 그리고
    인증 토큰들 중 하나의 인증 토큰이 발화에 의해 표시된 액션을 수행할 권한을 나타내는 것으로 결정한 것에 응답하여, 상기 액션이 수행되었음을 나타내는 응답을 생성하는 단계를 포함하는 것을 특징으로 하는 컴퓨터로 구현되는 방법.
  7. 삭제
  8. 삭제
  9. 삭제
  10. 삭제
  11. 삭제
  12. 시스템으로서,
    하나 이상의 컴퓨터들; 그리고
    상기 하나 이상의 컴퓨터들에 의해 실행될 때, 상기 하나 이상의 컴퓨터들로 하여금 청구항 제1항 내지 제6항 중 어느 한 항에 따른 방법을 포함하는 동작들을 수행하도록 동작 가능한 명령어들을 저장하는 하나 이상의 저장 장치들을 포함하는 것을 특징으로 하는 시스템.
  13. 하나 이상의 컴퓨터들에 의해 실행 가능한 명령어들을 저장하는 컴퓨터 판독 가능 매체로서, 상기 명령어들은 상기 하나 이상의 컴퓨터들에 의해 실행될 때 상기 하나 이상의 컴퓨터들로 하여금 청구항 제1항 내지 제6항 중 어느 한 항에 따른 방법을 포함하는 동작들을 수행하게 하는 것을 특징으로 하는 컴퓨터 판독 가능 매체.
KR1020197026114A 2017-04-20 2018-04-18 장치에 대한 다중 사용자 인증 KR102321396B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020217035224A KR102458805B1 (ko) 2017-04-20 2018-04-18 장치에 대한 다중 사용자 인증

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201762488000P 2017-04-20 2017-04-20
US62/488,000 2017-04-20
US201762567372P 2017-10-03 2017-10-03
US62/567,372 2017-10-03
PCT/US2018/028149 WO2018195185A1 (en) 2017-04-20 2018-04-18 Multi-user authentication on a device

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020217035224A Division KR102458805B1 (ko) 2017-04-20 2018-04-18 장치에 대한 다중 사용자 인증

Publications (2)

Publication Number Publication Date
KR20190113927A KR20190113927A (ko) 2019-10-08
KR102321396B1 true KR102321396B1 (ko) 2021-11-03

Family

ID=62116989

Family Applications (4)

Application Number Title Priority Date Filing Date
KR1020247000254A KR20240008405A (ko) 2017-04-20 2018-04-18 장치에 대한 다중 사용자 인증
KR1020197026114A KR102321396B1 (ko) 2017-04-20 2018-04-18 장치에 대한 다중 사용자 인증
KR1020227036565A KR102622356B1 (ko) 2017-04-20 2018-04-18 장치에 대한 다중 사용자 인증
KR1020217035224A KR102458805B1 (ko) 2017-04-20 2018-04-18 장치에 대한 다중 사용자 인증

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020247000254A KR20240008405A (ko) 2017-04-20 2018-04-18 장치에 대한 다중 사용자 인증

Family Applications After (2)

Application Number Title Priority Date Filing Date
KR1020227036565A KR102622356B1 (ko) 2017-04-20 2018-04-18 장치에 대한 다중 사용자 인증
KR1020217035224A KR102458805B1 (ko) 2017-04-20 2018-04-18 장치에 대한 다중 사용자 인증

Country Status (5)

Country Link
US (7) US10522137B2 (ko)
EP (3) EP4293661A3 (ko)
KR (4) KR20240008405A (ko)
CN (2) CN117577099A (ko)
WO (1) WO2018195185A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210286976A1 (en) * 2019-08-22 2021-09-16 Nice Ltd. Systems and methods for retrieving and presenting information using augmented reality

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10199051B2 (en) 2013-02-07 2019-02-05 Apple Inc. Voice trigger for a digital assistant
US9338493B2 (en) 2014-06-30 2016-05-10 Apple Inc. Intelligent automated assistant for TV user interactions
US10747498B2 (en) 2015-09-08 2020-08-18 Apple Inc. Zero latency digital assistant
US10691473B2 (en) 2015-11-06 2020-06-23 Apple Inc. Intelligent automated assistant in a messaging environment
US10522137B2 (en) 2017-04-20 2019-12-31 Google Llc Multi-user authentication on a device
DK179496B1 (en) * 2017-05-12 2019-01-15 Apple Inc. USER-SPECIFIC Acoustic Models
DK201770428A1 (en) 2017-05-12 2019-02-18 Apple Inc. LOW-LATENCY INTELLIGENT AUTOMATED ASSISTANT
US10979423B1 (en) * 2017-10-31 2021-04-13 Wells Fargo Bank, N.A. Bi-directional voice authentication
US10928918B2 (en) 2018-05-07 2021-02-23 Apple Inc. Raise to speak
WO2020017165A1 (ja) * 2018-07-20 2020-01-23 ソニー株式会社 情報処理装置、情報処理システム、および情報処理方法、並びにプログラム
EP3906549B1 (en) * 2019-02-06 2022-12-28 Google LLC Voice query qos based on client-computed content metadata
US11132992B2 (en) * 2019-05-05 2021-09-28 Microsoft Technology Licensing, Llc On-device custom wake word detection
US11222622B2 (en) 2019-05-05 2022-01-11 Microsoft Technology Licensing, Llc Wake word selection assistance architectures and methods
US11468890B2 (en) 2019-06-01 2022-10-11 Apple Inc. Methods and user interfaces for voice-based control of electronic devices
EP4038927A4 (en) * 2019-09-30 2023-06-28 Telefonaktiebolaget Lm Ericsson (Publ) Server node, digital assistant and methods in a communications network for handling access control
US11061543B1 (en) 2020-05-11 2021-07-13 Apple Inc. Providing relevant data items based on context
WO2021251953A1 (en) * 2020-06-09 2021-12-16 Google Llc Generation of interactive audio tracks from visual content
US11490204B2 (en) 2020-07-20 2022-11-01 Apple Inc. Multi-device audio adjustment coordination
US20220083634A1 (en) * 2020-09-11 2022-03-17 Cisco Technology, Inc. Single input voice authentication
US11620990B2 (en) 2020-12-11 2023-04-04 Google Llc Adapting automated speech recognition parameters based on hotword properties
US11568878B2 (en) * 2021-04-16 2023-01-31 Google Llc Voice shortcut detection with speaker verification
US20230196033A1 (en) * 2021-12-20 2023-06-22 Rovi Guides, Inc. Methods and systems for responding to a natural language query
WO2024068032A1 (en) * 2022-09-29 2024-04-04 Verisure Sàrl Security installations and methods

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160174074A1 (en) 2014-12-11 2016-06-16 Samsung Electronics Co., Ltd. Method for providing personal assistant service and electronic device thereof
US20170025124A1 (en) * 2014-10-09 2017-01-26 Google Inc. Device Leadership Negotiation Among Voice Interface Devices

Family Cites Families (152)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4363102A (en) 1981-03-27 1982-12-07 Bell Telephone Laboratories, Incorporated Speaker identification system using word recognition templates
JPS59180599A (ja) 1983-03-31 1984-10-13 日本電気ホームエレクトロニクス株式会社 車載用音声認識制御装置
US5659665A (en) 1994-12-08 1997-08-19 Lucent Technologies Inc. Method and apparatus for including speech recognition capabilities in a computer system
JP3522421B2 (ja) 1995-10-31 2004-04-26 株式会社リコー 話者認識システムおよび話者認識方法
US5895448A (en) 1996-02-29 1999-04-20 Nynex Science And Technology, Inc. Methods and apparatus for generating and using speaker independent garbage models for speaker dependent speech recognition purpose
EP0954854A4 (en) 1996-11-22 2000-07-19 T Netix Inc PARTIAL VALUE-BASED SPEAKER VERIFICATION BY UNIFYING DIFFERENT CLASSIFIERS USING CHANNEL, ASSOCIATION, MODEL AND THRESHOLD ADAPTATION
US6023676A (en) 1996-12-12 2000-02-08 Dspc Israel, Ltd. Keyword recognition system and method
JP2991144B2 (ja) 1997-01-29 1999-12-20 日本電気株式会社 話者認識装置
SE511418C2 (sv) 1997-03-13 1999-09-27 Telia Ab Metod för talarverifiering/identifiering via modellering av typiska icke-typiska egenskaper.
US8209184B1 (en) 1997-04-14 2012-06-26 At&T Intellectual Property Ii, L.P. System and method of providing generated speech via a network
US6076055A (en) 1997-05-27 2000-06-13 Ameritech Speaker verification method
US5897616A (en) 1997-06-11 1999-04-27 International Business Machines Corporation Apparatus and methods for speaker verification/identification/classification employing non-acoustic and/or acoustic models and databases
JPH1152976A (ja) 1997-07-29 1999-02-26 Nec Home Electron Ltd 音声認識装置
US5913196A (en) 1997-11-17 1999-06-15 Talmor; Rita System and method for establishing identity of a speaker
JP3524370B2 (ja) 1998-02-19 2004-05-10 富士通テン株式会社 音声起動システム
JP2000075954A (ja) 1998-09-02 2000-03-14 Sony Corp 電子機器制御装置
US6141644A (en) 1998-09-04 2000-10-31 Matsushita Electric Industrial Co., Ltd. Speaker verification and speaker identification based on eigenvoices
US6744860B1 (en) 1998-12-31 2004-06-01 Bell Atlantic Network Services Methods and apparatus for initiating a voice-dialing operation
US6671672B1 (en) 1999-03-30 2003-12-30 Nuance Communications Voice authentication system having cognitive recall mechanism for password verification
US6408272B1 (en) 1999-04-12 2002-06-18 General Magic, Inc. Distributed voice user interface
JP3357629B2 (ja) 1999-04-26 2002-12-16 旭化成株式会社 設備制御システム
US8645137B2 (en) 2000-03-16 2014-02-04 Apple Inc. Fast, language-independent method for user authentication by voice
DE10015960C2 (de) 2000-03-30 2003-01-16 Micronas Munich Gmbh Spracherkennungsverfahren und Spracherkennungsvorrichtung
US6567775B1 (en) 2000-04-26 2003-05-20 International Business Machines Corporation Fusion of audio and video based speaker identification for multimedia information access
US6826159B1 (en) 2000-05-24 2004-11-30 Cisco Technology, Inc. System and method for providing speaker identification in a conference call
EP1168736A1 (en) 2000-06-30 2002-01-02 Alcatel Telecommunication system and method with a speech recognizer
US7016833B2 (en) 2000-11-21 2006-03-21 The Regents Of The University Of California Speaker verification system using acoustic data and non-acoustic data
US6973426B1 (en) 2000-12-29 2005-12-06 Cisco Technology, Inc. Method and apparatus for performing speaker verification based on speaker independent recognition of commands
US20020143540A1 (en) * 2001-03-28 2002-10-03 Narendranath Malayath Voice recognition system using implicit speaker adaptation
US20020194003A1 (en) 2001-06-05 2002-12-19 Mozer Todd F. Client-server security system and method
US6701293B2 (en) 2001-06-13 2004-03-02 Intel Corporation Combining N-best lists from multiple speech recognizers
JP4224250B2 (ja) 2002-04-17 2009-02-12 パイオニア株式会社 音声認識装置、音声認識方法および音声認識プログラム
JP2003345391A (ja) 2002-05-23 2003-12-03 Denso Corp 端末、音声認識サーバ、音声認識システムおよびコンピュータプログラム
US20030231746A1 (en) 2002-06-14 2003-12-18 Hunter Karla Rae Teleconference speaker identification
US7224981B2 (en) 2002-06-20 2007-05-29 Intel Corporation Speech recognition of mobile devices
TW200409525A (en) 2002-11-26 2004-06-01 Lite On Technology Corp Voice identification method for cellular phone and cellular phone with voiceprint password
US7457745B2 (en) 2002-12-03 2008-11-25 Hrl Laboratories, Llc Method and apparatus for fast on-line automatic speaker/environment adaptation for speech/speaker recognition in the presence of changing environments
EP1429314A1 (en) 2002-12-13 2004-06-16 Sony International (Europe) GmbH Correction of energy as input feature for speech processing
US7266189B1 (en) 2003-01-27 2007-09-04 Cisco Technology, Inc. Who said that? teleconference speaker identification apparatus and method
US7533023B2 (en) 2003-02-12 2009-05-12 Panasonic Corporation Intermediary speech processor in network environments transforming customized speech parameters
US7222072B2 (en) 2003-02-13 2007-05-22 Sbc Properties, L.P. Bio-phonetic multi-phrase speaker identity verification
US8290603B1 (en) 2004-06-05 2012-10-16 Sonos, Inc. User interfaces for controlling and manipulating groupings in a multi-zone media system
US7571014B1 (en) 2004-04-01 2009-08-04 Sonos, Inc. Method and apparatus for controlling multimedia players in a multi-zone system
US20070198262A1 (en) 2003-08-20 2007-08-23 Mindlin Bernardo G Topological voiceprints for speaker identification
EP1511277A1 (en) 2003-08-29 2005-03-02 Swisscom AG Method for answering an incoming event with a phone device, and adapted phone device
US7305078B2 (en) 2003-12-18 2007-12-04 Electronic Data Systems Corporation Speaker identification during telephone conferencing
US20050165607A1 (en) 2004-01-22 2005-07-28 At&T Corp. System and method to disambiguate and clarify user intention in a spoken dialog system
US8214447B2 (en) 2004-06-08 2012-07-03 Bose Corporation Managing an audio network
US7720012B1 (en) 2004-07-09 2010-05-18 Arrowhead Center, Inc. Speaker identification in the presence of packet losses
US8412521B2 (en) 2004-08-20 2013-04-02 Multimodal Technologies, Llc Discriminative training of document transcription system
US8521529B2 (en) 2004-10-18 2013-08-27 Creative Technology Ltd Method for segmenting audio signals
KR100679043B1 (ko) 2005-02-15 2007-02-05 삼성전자주식회사 음성 대화 인터페이스 장치 및 방법
US7226189B2 (en) 2005-04-15 2007-06-05 Taiwan Oasis Technology Co., Ltd. Light emitting diode illumination apparatus
US8041570B2 (en) 2005-05-31 2011-10-18 Robert Bosch Corporation Dialogue management using scripts
US7643985B2 (en) * 2005-06-27 2010-01-05 Microsoft Corporation Context-sensitive communication and translation methods for enhanced interactions and understanding among speakers of different languages
US7603275B2 (en) 2005-10-31 2009-10-13 Hitachi, Ltd. System, method and computer program product for verifying an identity using voiced to unvoiced classifiers
CA2536976A1 (en) 2006-02-20 2007-08-20 Diaphonics, Inc. Method and apparatus for detecting speaker change in a voice transaction
JP2006227634A (ja) 2006-03-29 2006-08-31 Seiko Epson Corp 音声認識を用いた機器制御方法および音声認識を用いた機器制御システムならびに音声認識を用いた機器制御プログラムを記録した記録媒体
US8595007B2 (en) 2006-06-15 2013-11-26 NITV Federal Services, LLC Voice print recognition software system for voice identification and matching
CN1996847B (zh) 2006-12-27 2010-05-19 中国科学院上海技术物理研究所 基于协作网格的图像及多媒体数据通信与存储系统
US8099288B2 (en) 2007-02-12 2012-01-17 Microsoft Corp. Text-dependent speaker verification
US20110060587A1 (en) 2007-03-07 2011-03-10 Phillips Michael S Command and control utilizing ancillary information in a mobile voice-to-speech application
US8838457B2 (en) 2007-03-07 2014-09-16 Vlingo Corporation Using results of unstructured language model based speech recognition to control a system-level function of a mobile communications facility
US8352264B2 (en) 2008-03-19 2013-01-08 Canyon IP Holdings, LLC Corrective feedback loop for automated speech recognition
US8503686B2 (en) 2007-05-25 2013-08-06 Aliphcom Vibration sensor and acoustic voice activity detection system (VADS) for use with electronic systems
US8385233B2 (en) 2007-06-12 2013-02-26 Microsoft Corporation Active speaker identification
GB2450886B (en) 2007-07-10 2009-12-16 Motorola Inc Voice activity detector and a method of operation
JP2009104020A (ja) 2007-10-25 2009-05-14 Panasonic Electric Works Co Ltd 音声認識装置
GB2458461A (en) 2008-03-17 2009-09-23 Kai Yu Spoken language learning system
US8504365B2 (en) 2008-04-11 2013-08-06 At&T Intellectual Property I, L.P. System and method for detecting synthetic speaker verification
US8145482B2 (en) 2008-05-25 2012-03-27 Ezra Daya Enhancing analysis of test key phrases from acoustic sources with key phrase training models
KR101056511B1 (ko) 2008-05-28 2011-08-11 (주)파워보이스 실시간 호출명령어 인식을 이용한 잡음환경에서의음성구간검출과 연속음성인식 시스템
US8676586B2 (en) 2008-09-16 2014-03-18 Nice Systems Ltd Method and apparatus for interaction or discourse analytics
US8676904B2 (en) 2008-10-02 2014-03-18 Apple Inc. Electronic devices with voice command and contextual data processing capabilities
US9922640B2 (en) 2008-10-17 2018-03-20 Ashwin P Rao System and method for multimodal utterance detection
KR101519104B1 (ko) 2008-10-30 2015-05-11 삼성전자 주식회사 목적음 검출 장치 및 방법
MY178936A (en) * 2008-11-10 2020-10-23 Entrust Datacard Denmark As Method and system protecting against identity theft or replication abuse
US8326637B2 (en) 2009-02-20 2012-12-04 Voicebox Technologies, Inc. System and method for processing multi-modal device interactions in a natural language voice services environment
US8209174B2 (en) 2009-04-17 2012-06-26 Saudi Arabian Oil Company Speaker verification system
US9858925B2 (en) 2009-06-05 2018-01-02 Apple Inc. Using context information to facilitate processing of commands in a virtual assistant
CN101923853B (zh) 2009-06-12 2013-01-23 华为技术有限公司 说话人识别方法、设备和系统
US8311838B2 (en) 2010-01-13 2012-11-13 Apple Inc. Devices and methods for identifying a prompt corresponding to a voice input in a sequence of prompts
US8626511B2 (en) 2010-01-22 2014-01-07 Google Inc. Multi-dimensional disambiguation of voice commands
US8543402B1 (en) 2010-04-30 2013-09-24 The Intellisis Corporation Speaker segmentation in noisy conversational speech
US8306814B2 (en) 2010-05-11 2012-11-06 Nice-Systems Ltd. Method for speaker source classification
KR101672212B1 (ko) 2010-06-15 2016-11-04 엘지전자 주식회사 휴대 단말기 및 그 동작 방법
US8782404B2 (en) * 2010-09-07 2014-07-15 Nicholas L. Lamb System and method of providing trusted, secure, and verifiable operating environment
US8719018B2 (en) 2010-10-25 2014-05-06 Lockheed Martin Corporation Biometric speaker identification
US8874773B2 (en) 2010-11-30 2014-10-28 Gary W. Grube Obtaining group and individual emergency preparedness communication information
WO2012083552A1 (en) 2010-12-24 2012-06-28 Huawei Technologies Co., Ltd. Method and apparatus for voice activity detection
US8978100B2 (en) * 2011-03-14 2015-03-10 Verizon Patent And Licensing Inc. Policy-based authentication
US9262612B2 (en) 2011-03-21 2016-02-16 Apple Inc. Device access using voice authentication
US8282404B1 (en) * 2011-06-24 2012-10-09 Hon Hai Precision Ind. Co., Ltd. Card connector
US9159324B2 (en) 2011-07-01 2015-10-13 Qualcomm Incorporated Identifying people that are proximate to a mobile device user via social graphs, speech models, and user context
US20130024196A1 (en) 2011-07-21 2013-01-24 Nuance Communications, Inc. Systems and methods for using a mobile device to deliver speech with speaker identification
US8660847B2 (en) 2011-09-02 2014-02-25 Microsoft Corporation Integrated local and cloud based speech recognition
US8340975B1 (en) 2011-10-04 2012-12-25 Theodore Alfred Rosenberger Interactive speech recognition device and system for hands-free building control
US9031847B2 (en) 2011-11-15 2015-05-12 Microsoft Technology Licensing, Llc Voice-controlled camera operations
WO2013078388A1 (en) 2011-11-21 2013-05-30 Robert Bosch Gmbh Methods and systems for adapting grammars in hybrid speech recognition engines for enhancing local sr performance
US8893244B2 (en) * 2011-11-30 2014-11-18 Verizon Patent And Licensing Inc. Application-based credential management for multifactor authentication
US8825020B2 (en) 2012-01-12 2014-09-02 Sensory, Incorporated Information access and device control using mobile phones and audio in the home environment
US20130262873A1 (en) 2012-03-30 2013-10-03 Cgi Federal Inc. Method and system for authenticating remote users
KR20130133629A (ko) 2012-05-29 2013-12-09 삼성전자주식회사 전자장치에서 음성명령을 실행시키기 위한 장치 및 방법
US20140006825A1 (en) 2012-06-30 2014-01-02 David Shenhav Systems and methods to wake up a device from a power conservation state
US9536528B2 (en) 2012-07-03 2017-01-03 Google Inc. Determining hotword suitability
JP6131537B2 (ja) 2012-07-04 2017-05-24 セイコーエプソン株式会社 音声認識システム、音声認識プログラム、記録媒体及び音声認識方法
TWI474317B (zh) 2012-07-06 2015-02-21 Realtek Semiconductor Corp 訊號處理裝置以及訊號處理方法
US20140019462A1 (en) * 2012-07-15 2014-01-16 Microsoft Corporation Contextual query adjustments using natural action input
US9058806B2 (en) 2012-09-10 2015-06-16 Cisco Technology, Inc. Speaker segmentation and recognition based on list of speakers
US8983836B2 (en) 2012-09-26 2015-03-17 International Business Machines Corporation Captioning using socially derived acoustic profiles
US8589164B1 (en) * 2012-10-18 2013-11-19 Google Inc. Methods and systems for speech recognition processing using search query information
US20150228274A1 (en) 2012-10-26 2015-08-13 Nokia Technologies Oy Multi-Device Speech Recognition
US8996372B1 (en) 2012-10-30 2015-03-31 Amazon Technologies, Inc. Using adaptation data with cloud-based speech recognition
JP2014092777A (ja) 2012-11-06 2014-05-19 Magic Hand:Kk モバイル通信機器の音声による起動
US9104891B2 (en) * 2012-12-03 2015-08-11 Imation Corp. Recovering from unexpected flash drive removal
US9704486B2 (en) 2012-12-11 2017-07-11 Amazon Technologies, Inc. Speech recognition power management
US9147054B1 (en) * 2012-12-19 2015-09-29 Amazon Technolgies, Inc. Dialogue-driven user security levels
US9349386B2 (en) 2013-03-07 2016-05-24 Analog Device Global System and method for processor wake-up based on sensor data
US9361885B2 (en) 2013-03-12 2016-06-07 Nuance Communications, Inc. Methods and apparatus for detecting a voice command
US9312826B2 (en) 2013-03-13 2016-04-12 Kopin Corporation Apparatuses and methods for acoustic channel auto-balancing during multi-channel signal extraction
US9396320B2 (en) * 2013-03-22 2016-07-19 Nok Nok Labs, Inc. System and method for non-intrusive, privacy-preserving authentication
US8768687B1 (en) 2013-04-29 2014-07-01 Google Inc. Machine translation of indirect speech
US9058805B2 (en) 2013-05-13 2015-06-16 Google Inc. Multiple recognizer speech recognition
WO2015025330A1 (en) 2013-08-21 2015-02-26 Kale Aaditya Kishore A system to enable user to interact with an electronic processing device using voice of the user
JP6502249B2 (ja) 2013-08-29 2019-04-17 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America 音声認識方法及び音声認識装置
CN105453080A (zh) * 2013-08-30 2016-03-30 英特尔公司 用于虚拟个人助理的可扩展上下文感知的自然语言交互
US9343068B2 (en) 2013-09-16 2016-05-17 Qualcomm Incorporated Method and apparatus for controlling access to applications having different security levels
US8775191B1 (en) 2013-11-13 2014-07-08 Google Inc. Efficient utterance-specific endpointer triggering for always-on hotwording
US9373321B2 (en) 2013-12-02 2016-06-21 Cypress Semiconductor Corporation Generation of wake-up words
US8938394B1 (en) 2014-01-09 2015-01-20 Google Inc. Audio triggers based on context
JP6482175B2 (ja) * 2014-01-27 2019-03-13 株式会社ミマキエンジニアリング インクジェット印刷方法
US9286892B2 (en) * 2014-04-01 2016-03-15 Google Inc. Language modeling in speech recognition
US9384738B2 (en) * 2014-06-24 2016-07-05 Google Inc. Dynamic threshold for speaker verification
US9639854B2 (en) 2014-06-26 2017-05-02 Nuance Communications, Inc. Voice-controlled information exchange platform, such as for providing information to supplement advertising
US9257120B1 (en) * 2014-07-18 2016-02-09 Google Inc. Speaker verification using co-location information
US9263042B1 (en) * 2014-07-25 2016-02-16 Google Inc. Providing pre-computed hotword models
US9424841B2 (en) 2014-10-09 2016-08-23 Google Inc. Hotword detection on multiple devices
US9318107B1 (en) * 2014-10-09 2016-04-19 Google Inc. Hotword detection on multiple devices
US9418656B2 (en) * 2014-10-29 2016-08-16 Google Inc. Multi-stage hotword detection
US9812126B2 (en) 2014-11-28 2017-11-07 Microsoft Technology Licensing, Llc Device arbitration for listening devices
JP6754184B2 (ja) 2014-12-26 2020-09-09 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America 音声認識装置及び音声認識方法
US9721566B2 (en) 2015-03-08 2017-08-01 Apple Inc. Competing devices responding to voice triggers
US9881613B2 (en) * 2015-06-29 2018-01-30 Google Llc Privacy-preserving training corpus selection
US10438593B2 (en) * 2015-07-22 2019-10-08 Google Llc Individualized hotword detection models
US9978374B2 (en) * 2015-09-04 2018-05-22 Google Llc Neural networks for speaker verification
US9747926B2 (en) * 2015-10-16 2017-08-29 Google Inc. Hotword recognition
US9928840B2 (en) * 2015-10-16 2018-03-27 Google Llc Hotword recognition
JP6433933B2 (ja) * 2016-03-14 2018-12-05 東芝メモリ株式会社 半導体記憶装置及びメモリシステム
US9972320B2 (en) * 2016-08-24 2018-05-15 Google Llc Hotword detection on multiple devices
US10091195B2 (en) * 2016-12-31 2018-10-02 Nok Nok Labs, Inc. System and method for bootstrapping a user binding
US10237070B2 (en) * 2016-12-31 2019-03-19 Nok Nok Labs, Inc. System and method for sharing keys across authenticators
US10522137B2 (en) 2017-04-20 2019-12-31 Google Llc Multi-user authentication on a device

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170025124A1 (en) * 2014-10-09 2017-01-26 Google Inc. Device Leadership Negotiation Among Voice Interface Devices
US20160174074A1 (en) 2014-12-11 2016-06-16 Samsung Electronics Co., Ltd. Method for providing personal assistant service and electronic device thereof

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210286976A1 (en) * 2019-08-22 2021-09-16 Nice Ltd. Systems and methods for retrieving and presenting information using augmented reality
US11640724B2 (en) * 2019-08-22 2023-05-02 Nice Ltd. Systems and methods for retrieving and presenting information using augmented reality

Also Published As

Publication number Publication date
US11727918B2 (en) 2023-08-15
KR20220148319A (ko) 2022-11-04
KR102458805B1 (ko) 2022-10-25
EP3485492B1 (en) 2021-04-07
US10522137B2 (en) 2019-12-31
US20230335116A1 (en) 2023-10-19
EP4293661A2 (en) 2023-12-20
US20210343276A1 (en) 2021-11-04
US11721326B2 (en) 2023-08-08
KR20190113927A (ko) 2019-10-08
KR102622356B1 (ko) 2024-01-08
US20200082812A1 (en) 2020-03-12
EP3905241A1 (en) 2021-11-03
US20180308491A1 (en) 2018-10-25
EP4293661A3 (en) 2024-02-21
KR20240008405A (ko) 2024-01-18
KR20210134821A (ko) 2021-11-10
US20200118550A1 (en) 2020-04-16
CN117577099A (zh) 2024-02-20
US20220148577A1 (en) 2022-05-12
WO2018195185A1 (en) 2018-10-25
US11087743B2 (en) 2021-08-10
CN110603584A (zh) 2019-12-20
US10497364B2 (en) 2019-12-03
EP3485492A1 (en) 2019-05-22
US11238848B2 (en) 2022-02-01
US20180308472A1 (en) 2018-10-25

Similar Documents

Publication Publication Date Title
KR102321396B1 (ko) 장치에 대한 다중 사용자 인증
JP7044415B2 (ja) ホームアシスタント装置を制御するための方法及びシステム
US11810554B2 (en) Audio message extraction
US20210043210A1 (en) Contextual hotwords
US10586541B2 (en) Communicating metadata that identifies a current speaker
US9875740B1 (en) Using voice information to influence importance of search result categories
CN106415719B (zh) 使用说话者识别的语音信号的稳健端点指示
CN114566161A (zh) 协作性语音控制装置
CN110869904A (zh) 用于提供未播放内容的系统和方法
US10438591B1 (en) Hotword-based speaker recognition
US10841411B1 (en) Systems and methods for establishing a communications session

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant