KR20240028298A - 다수의 소스로부터 가상 개인 비서 디바이스를 향해 지향된 명령을 승인하고 우선순위화하기 위한 기술 - Google Patents

다수의 소스로부터 가상 개인 비서 디바이스를 향해 지향된 명령을 승인하고 우선순위화하기 위한 기술 Download PDF

Info

Publication number
KR20240028298A
KR20240028298A KR1020230106548A KR20230106548A KR20240028298A KR 20240028298 A KR20240028298 A KR 20240028298A KR 1020230106548 A KR1020230106548 A KR 1020230106548A KR 20230106548 A KR20230106548 A KR 20230106548A KR 20240028298 A KR20240028298 A KR 20240028298A
Authority
KR
South Korea
Prior art keywords
speech
cluster
speaker
clusters
voice
Prior art date
Application number
KR1020230106548A
Other languages
English (en)
Inventor
니트야 탠던
지가르 미스트리
Original Assignee
하만인터내셔날인더스트리스인코포레이티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 하만인터내셔날인더스트리스인코포레이티드 filed Critical 하만인터내셔날인더스트리스인코포레이티드
Publication of KR20240028298A publication Critical patent/KR20240028298A/ko

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L17/00Speaker identification or verification techniques
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/16Sound input; Sound output
    • G06F3/167Audio in a user interface, e.g. using voice commands for navigating, audio feedback
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/02Feature extraction for speech recognition; Selection of recognition unit
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/04Segmentation; Word boundary detection
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/06Creation of reference templates; Training of speech recognition systems, e.g. adaptation to the characteristics of the speaker's voice
    • G10L15/063Training
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L17/00Speaker identification or verification techniques
    • G10L17/02Preprocessing operations, e.g. segment selection; Pattern representation or modelling, e.g. based on linear discriminant analysis [LDA] or principal components; Feature selection or extraction
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L17/00Speaker identification or verification techniques
    • G10L17/04Training, enrolment or model building
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L17/00Speaker identification or verification techniques
    • G10L17/06Decision making techniques; Pattern matching strategies
    • G10L17/14Use of phonemic categorisation or speech recognition prior to speaker recognition or verification
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L17/00Speaker identification or verification techniques
    • G10L17/06Decision making techniques; Pattern matching strategies
    • G10L17/08Use of distortion metrics or a particular distance between probe pattern and reference templates
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L17/00Speaker identification or verification techniques
    • G10L17/22Interactive procedures; Man-machine interfaces
    • G10L17/24Interactive procedures; Man-machine interfaces the user being prompted to utter a password or a predefined phrase
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/06Creation of reference templates; Training of speech recognition systems, e.g. adaptation to the characteristics of the speaker's voice
    • G10L15/063Training
    • G10L2015/0631Creating reference templates; Clustering
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • G10L2015/223Execution procedure of a spoken command

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Human Computer Interaction (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Health & Medical Sciences (AREA)
  • Acoustics & Sound (AREA)
  • Computational Linguistics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Business, Economics & Management (AREA)
  • Game Theory and Decision Science (AREA)
  • Artificial Intelligence (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Navigation (AREA)
  • Telephonic Communication Services (AREA)

Abstract

개시된 실시형태는 가상 개인 비서에 대한 오디오 명령을 프로세싱하기 위한 기술을 포함한다. 음성 프로세싱 시스템은 오디오 입력 신호에서 검출된 음성을 주어진 음성 세그먼트에 포함된 음성이 단일 화자에 의해 발화되는 복수의 음성 세그먼트로 분할한다. 음성 프로세싱 시스템은 복수의 음성 세그먼트에 포함된 음성 세그먼트를 복수의 클러스터로 클러스터링하고, 복수의 클러스터에 포함된 각각의 클러스터는 상이한 화자에 의해 발화된다. 음성 프로세싱 시스템은 복수의 클러스터에 포함된 제1 클러스터가 제1 승인된 화자에 의해 발화된다고 결정한다. 음성 프로세싱 시스템은 가상 개인 비서로 하여금 제1 클러스터에 포함된 제1 오디오 명령을 실행하게 한다.

Description

다수의 소스로부터 가상 개인 비서 디바이스를 향해 지향된 명령을 승인하고 우선순위화하기 위한 기술{TECHNIQUES FOR AUTHORIZING AND PRIORITIZING COMMANDS DIRECTED TOWARDS A VIRTUAL PRIVATE ASSISTANT DEVICE FROM MULTIPLE SOURCES}
본 발명의 실시형태는 일반적으로, 음성 프로세싱 시스템에 관한 것으로, 더 구체적으로 다수의 소스로부터 가상 개인 비서 디바이스를 향해 지향된 명령을 승인하고 우선순위화하기 위한 기술에 관한 것이다.
가상 개인 비서(virtual private assistant: VPA)는 사용자에 의해 언급된 청취 가능한 명령의 프로세싱을 제공하기 위해 많은 최신 디바이스에 배치된다. 가상 개인 비서는 또한 지능형 가상 비서(intelligent virtual assistant: IVA), 지능형 개인 비서(intelligent personal assistant: IPA) 등과 같은 상이한 이름에 의해 또한 언급된다. VPA는 독립형 스마트 스피커 디바이스, 스마트폰 또는 다른 컴퓨터 디바이스에서 실행되는 소프트웨어 응용 프로그램, 차량 내비게이션, 운전자 지원 및/또는 인포테인먼트 등을 특징으로 하는 자동차 시스템의 내장된 구성요소를 포함하는 다양한 형태로 구현될 수 있다. VPA를 사용하는 사용자는 일반적으로, VPA의 마이크로폰 또는 다른 오디오 입력 디바이스 범위 내에 있는 오디오 명령을 말한다. VPA는 오디오 음파를 수신하고, 오디오 음파를 디지털화하고, 오디오 음파로부터 오디오 명령을 추출한다. VPA는 다양한 언급된 단어에 응답하도록 VPA가 프로그래밍되는 방법에 기초하여 오디오 명령을 수행한다. 예를 들면, VPA는 작업 목록 추적, 사용자의 연락처 목록에 포함된 사람에게 전화하기 또는 문자 메시지 보내기, 매체 저장 장치로부터의 비디오 및/또는 오디오 콘텐트 재생, 질문에 답하기, 등과 같은 사용자를 위한 일상적인 작업을 수행하기 위해 다양한 오디오 명령에 응답하도록 프로그래밍될 수 있다.
VPA의 하나의 잠재적인 단점은 VPA가 오디오 입력을 통해 수신된 모든 오디오 명령에 무차별적으로 응답한다는 점이다. 일부 경우에, 다수의 사람이 말하고 있을 수 있거나, VPA 근처에서 또 다른 오디오 소스가 재생되고 있을 수 있다. 응답하여, VPA는 모든 스피커 및 오디오 소스로부터 수신된 오디오 입력을 프로세싱하려고 시도한다. VPA는 오디오 입력으로부터 추출된 모든 단어를 해석하고 VPA가 추출된 단어로부터 결정하는 임의의 오디오 명령을 수행한다. 이것은 신뢰 가능하지 않은, 모호한, 바람직하지 않은, 의도되지 않은 그리고/또는 모순된 결과를 야기할 수 있다.
위에서 예시한 바와 같이, 가상 개인 비서 디바이스에 대한 음성 입력을 프로세싱하기 위한 개선된 기술이 유용할 것이다.
본 발명의 다양한 실시형태는 가상 개인 비서에 대한 오디오 명령을 프로세싱하기 위한 컴퓨터 구현 방법을 제시한다. 방법은 오디오 입력 신호에서 검출된 음성을 주어진 복수의 음성 세그먼트로 분할하는 단계를 포함하고, 음성 세그먼트에 포함된 음성은 단일 스피커에 의해 발화된다. 방법은 복수의 음성 세그먼트에 포함된 음성 세그먼트를 복수의 클러스터로 클러스터링하는 단계를 더 포함하고, 복수의 클러스터에 포함된 각각의 클러스터는 상이한 화자에 의해 발화된다. 방법은 복수의 클러스터에 포함된 제1 클러스터가 제1 승인된 화자에 의해 발화된다고 결정하는 단계를 더 포함한다. 방법은 제1 클러스터에 포함된 제1 오디오 명령으로 하여금 실행되게 하는 단계를 더 포함한다.
다른 실시형태는 제한 없이, 개시된 기술의 하나 이상의 양태를 구현하는 시스템, 및 개시된 기술의 하나 이상의 양태를 수행하기 위한 명령어를 포함하는 하나 이상의 컴퓨터 판독 가능한 매체를 포함한다.
종래 기술에 비해 개시된 기술의 적어도 하나의 기술적 장점은 개시된 기술로, 음성 프로세싱 시스템이 의도되지 않은 소스에 의해 발화된 오디오 명령을 제거할 수 있다는 것이다. 결과적으로, 음성 프로세싱 시스템이 의도되지 않거나 바람직하지 않는 오디오 명령을 실행할 가능성은 종래의 시스템에 비해 감소된다. 게다가, 음성 프로세싱 시스템은 승인되지 않은 사용자로부터의 음성을 폐기할 수 있고, 이는 종래의 시스템에 비해 승인된 사용자에게 개선된 보안 및 안전성을 제공한다. 이 기술적 장점은 선행 기술 접근법에 대한 하나 이상의 기술적 개선을 표현한다.
다양한 실시형태의 상기 인용된 특징이 상세하게 이해될 수 있는 방식으로, 상기 간략하게 요약된 독창적인 개념의 더 특정한 설명은 다양한 실시형태를 참조함으로써 취해질 수 있고, 이중 일부는 첨부된 도면에 예시된다. 그러나, 첨부된 도면이 단지 독창적인 개념의 전형적인 실시형태만 예시하고, 따라서 임의의 방식으로 범위를 제한하는 것으로 간주되어서는 안되며, 다른 동등하게 효과적인 실시형태가 존재한다는 점에 유의해야 한다.
도 1은 다양한 실시형태의 하나 이상의 양태를 구현하도록 구성된 컴퓨팅 디바이스의 블록도이고;
도 2는 다양한 실시형태에 따른, 도 1의 컴퓨팅 디바이스에 구현된 음성 프로세싱 시스템의 블록도이고;
도 3은 다양한 실시형태에 따른, 도 2의 음성 프로세싱 시스템을 향해 지향된 오디오 입력 신호를 예시하고;
도 4는 다양한 실시형태에 따른, 도 2의 음성 프로세싱 시스템에 의해 생성된 분리된 오디오를 예시하고;
도 5는 다양한 실시형태에 따른, 도 2의 음성 프로세싱 시스템에 의해 생성된 오디오 명령 대기열을 예시하고;
도 6은 다양한 실시형태에 따른, 음성 프로세싱 시스템의 승인된 사용자를 등록하기 위한 방법 단계의 흐름도이고; 그리고
도 7은 다양한 실시형태에 따른, 가상 개인 비서 디바이스를 향해 지향된 음성 입력을 프로세싱하기 위한 방법 단계의 흐름도이다.
다음의 설명에서, 다양한 실시형태의 더 철저한 이해를 제공하기 위해 다수의 특정 상세가 제시된다. 그러나, 독창적인 개념이 이 특정 상세 중 하나 이상 없이 실시될 수 있다는 것은 당업자에게 명백해질 것이다.
본 명세서에서 논의된 바와 같이, 종래의 VPA는 모든 인간 화자 및 오디오 소스로부터 수신된 오디오 입력을 프로세싱하려고 시도한다. 이 거동은 다양한 문제를 야기할 수 있다. 제1 문제는 VPA가 단어의 소스에 관계 없이 검출된 단어에 응답한다는 것이다. 일부 경우에, 2명의 사람이 말하고 있을 수 있고, 여기서 제1 사람은 VPA에 대한 음성 명령을 말하려고 한다. 제2 사람은 VPA에 대한 음성 명령을 말하려고 하지 않으면서, 또한 말하고 있을 수 있지만, VPA는 두 화자에 의해 언급된 단어를 명령으로서 해석한다. 제2 문제는 2명의 사람이 동시에 말하고 있을 수 있고, 여기서 VPA가 두 화자에 의해 언급된 단어를 단일 명령으로서 해석한다는 것이다. 결과적으로, VPA는 어느 화자도 의도되지 않은 명령을 수행한다. 제3 문제는 VPA가 명령의 일부인 단어를 해석할 수 있고 명령의 일부가 되는 명령의 일부로서 의도되지 않은 단어를 또한 해석할 수 있다는 것이다. 이들 경우는, 다른 시나리오와 함께, VPA의 신뢰 가능하지 않은, 모호한, 바람직하지 않은, 의도되지 않은 그리고/또는 모순된 거동을 야기할 수 있다.
이 바람직하지 않거나 모호한 결과는 심각한 보안 문제를 야기할 수 있다. 하나의 특정한 예에서, 사용자는 강도(mugger)가 될 사람이 사용자를 강탈 및/또는 폭행하려고 시도할 때 교통 신호에서 기다리는 보행자 또는 차량의 운전자일 수 있다. 사용자는 VPA에 음성 명령을 말하여 경찰을 호출하지만, 이어서, 강도는 제2 음성 명령을 말하여 통화를 취소하거나 이의 연결을 끊는다. VPA는 강도의 명령을 유효한 사용자 명령으로서 해석할 수 있다. 결과적으로, VPA는 경찰에 통화를 개시하고, 이어서, 후속적으로 통화를 취소하거나 이의 연결을 끊음으로써 응답할 수 있다. 이러한 상황에서, 사용자에 의해 언급된 오디오 명령은 강도에 의해 언급된 오디오 명령에 의해 무시될 것이고, 경찰은 진행 중인 범죄에 대해 통지받지 못할 것이다.
이 문제를 해결하기 위해, 개시된 실시형태는 오디오 입력 신호를 프로세싱하는 가상 프로세싱 비서를 갖는 음성 프로세싱 시스템을 포함하고, 여기서 오디오 신호는 가상 개인 비서 디바이스를 향해 지향된 음성 입력을 포함한다. 음성 프로세싱 시스템은 오디오 입력 신호를 수신하고 디지털화한다. 음성 프로세싱 시스템은 디지털화된 오디오 입력 신호의 음성 구성요소를 검출하고, 음성 구성요소를 본 명세서에서 사용자로서 또한 언급된, 상이한 화자에 의해 별개의 음성 세그먼트로 분할하고, 음성 세그먼트를 각각의 사용자에 대한 상이한 클러스터로 클러스터링한다. 음성 프로세싱 시스템은 승인되지 않은 사람에 대응하는 클러스터를 식별하고 폐기한다. 음성 프로세싱 시스템은 나머지 클러스터를 우선순위화하고 클러스터를 우선순위 순서로 제공하는 오디오 명령 대기열을 생성한다. 음성 프로세싱 시스템은 오디오 명령 대기열을 프로세싱하고 그 안에 포함된 명령을 실행한다.
도 1은 다양한 실시형태의 하나 이상의 양태를 구현하도록 구성된 컴퓨팅 디바이스(100)의 블록도이다. 도시된 바와 같이, 컴퓨팅 디바이스(100)는 제한 없이, 프로세서(102), 저장 장치(104), 입력/출력(I/O) 디바이스 인터페이스(106), 네트워크 인터페이스(108), 상호 접속부(110) 및 시스템 메모리(112)를 포함한다.
프로세서(102)는 시스템 메모리(112)에 저장된 프로그래밍 명령어를 검색하고 실행한다. 유사하게, 프로세서(102)는 시스템 메모리(112)에 상주하는 애플리케이션 데이터를 저장하고 검색한다. 상호 접속부(110)는 프로세서(102), I/O 디바이스 인터페이스(106), 저장 장치(104), 네트워크 인터페이스(108) 및 시스템 메모리(112) 사이에서, 예를 들면, 프로그래밍 명령어 및 애플리케이션 데이터의 송신을 용이하게 한다. I/O 디바이스 인터페이스(106)는 사용자 I/O 디바이스(122)로부터 입력 데이터를 수신하도록 구성된다. 사용자 I/O 디바이스(122)의 예는 하나 이상의 버튼, 키보드, 마우스, 및/또는 다른 포인팅 디바이스, 등을 포함할 수 있다. I/O 디바이스 인터페이스(106)는 또한 전기 오디오 출력 신호를 생성하도록 구성된 오디오 출력 유닛을 포함하고, 사용자 I/O 디바이스(122)는 전기 오디오 출력 신호에 응답하여 음향 출력을 생성하도록 구성된 스피커를 더 포함한다. I/O 디바이스 인터페이스(106)는 또한 전기 오디오 입력 신호를 수신하도록 구성된 오디오 입력 유닛을 포함하고, 사용자 I/O 디바이스(122)는 전기 오디오 입력 신호를 수신한 것에 응답하여 음향 출력의 아날로그 및/또는 디지털 신호 표현을 생성하도록 구성된 오디오 입력 디바이스를 더 포함한다. 오디오 입력 디바이스는 마이크로폰, 헤드셋, 입력 변환기, 등일 수 있다. 사용자 I/O 디바이스(122)의 또 다른 예는 일반적으로, 디스플레이를 위한 이미지를 생성하기 위한 임의의 기술적으로 실현 가능한 수단을 표현하는 디스플레이 디바이스이다. 예를 들면, 디스플레이 디바이스는 액정 디스플레이(LCD) 디스플레이, 유기 발광 다이오드(OLED) 디스플레이, 또는 디지털 광 프로세싱(DLP) 디스플레이일 수 있다.
프로세서(102)는 단일 중앙 처리 장치(CPU), 다수의 CPU, 다수의 프로세싱 코어를 가지는 단일 CPU, 디지털 신호 프로세서(DSP), 필드 프로그래밍 가능한 게이트 어레이(FPGA), 그래픽 처리 장치(GPU), 텐서 처리 장치, 등을 대표하도록 포함된다. 그리고, 시스템 메모리(112)는 일반적으로, 랜덤 액세스 메모리를 대표하도록 포함된다. 저장 장치(104)는 디스크 드라이브 저장 디바이스일 수 있다. 단일 유닛으로서 도시될지라도, 저장 장치(104)는 고정된 디스크 드라이브, 플로피 디스크 드라이브, 테이프 드라이브, 착탈 가능한 메모리 카드, 또는 광학 저장 장치, 네트워크 부착 저장 장치(NAS), 또는 저장 영역 네트워크(SAN)와 같은 고정된 및/또는 착탈 가능한 저장 디바이스의 조합일 수 있다. 프로세서(102)는 네트워크 인터페이스(108)를 통해 다른 컴퓨팅 디바이스 및 시스템과 통신하고, 여기서 네트워크 인터페이스(108)는 통신 네트워크를 통해 데이터를 송신 및 수신하도록 구성된다.
시스템 메모리(112)는 제한 없이, 등록 모듈(132), 음성 분리 모듈(134), 승인 및 우선순위화 모듈(136), 가상 개인 비서 모듈(138), 및 데이터 저장 장치(142)를 포함한다. 등록 모듈(132), 음성 분리 모듈(134), 승인 및 우선순위화 모듈(136), 및 가상 개인 비서 모듈(138)은 프로세서(102)에 의해 실행될 때, 본 명세서에서 또한 설명된 기술과 연관된 하나 이상의 동작을 수행한다. 개시된 기술과 연관된 동작을 수행할 때, 등록 모듈(132), 음성 분리 모듈(134), 승인 및 우선순위화 모듈(136), 및 가상 개인 비서 모듈(138)은 데이터 저장 장치(142)에 데이터를 저장하고 이로부터 데이터를 검색한다.
도 2는 다양한 실시형태에 따른, 도 1의 컴퓨팅 디바이스(100)에 구현된 음성 프로세싱 시스템(200)의 블록도이다. 도시된 바와 같이, 음성 프로세싱 시스템(200)은 제한 없이, 도 1의 등록 모듈(132), 음성 분리 모듈(134), 승인 및 우선순위화 모듈(136), 및 가상 개인 비서 모듈(138)을 포함한다. 음성 프로세싱 시스템(200)은 2개의 상이한 단계: 등록 단계 및 전개 단계에서 실행된다.
등록 단계 동안, 등록 모듈(132)은 사용자의 특정한 음성 특징에 대해 음성 분리 모듈(134)을 트레이닝시키기 위해, 사용자에게 4개 또는 5개의 발화와 같은 다수의 발화를 말하도록 촉구한다. 등록 모듈(132)은 사용자의 음성의 이 고유 음성 특징에 기초하여 이 음성 풋프린트(voice footprint)를 생성한다. 등록 모듈(132)은 음성 풋프린트를 생성하고 후속적으로, 승인된 사용자 중에서 특정 사용자를 식별하기 위해 MFCC(mel-frequency cepstrum coefficient)와 같은 다양한 엔트로피 기술을 이용한다. 등록 모듈(132)은 사용자의 음성을 특징짓기 위해 발화 내의 음성 상세 및 평균 음성 특징을 분석함으로써 음성 풋프린트를 미세 조정한다. 등록 모듈(132)은 2개의 유형의 등록: 텍스트 종속 등록 및 텍스트 독립 등록 중 하나 또는 둘 모두를 이용한다. 텍스트 의존 등록으로, 등록 모듈(132)은 사용자에게 고정된 발화로서 특정한 문구를 다수회 말하도록 촉구한다. 사용자가 동일한 발화를 다수회 반복한 후에, 등록 모듈(132)은 사용자의 음성 풋프린트를 확립하고 저장한다. 텍스트 독립 등록으로, 등록 모듈(132)은 사용자에게 일정 시간 기간 동안 말하도록 촉구한다. 사용자는 등록 모듈(132)이 사용자의 음성을 특징짓기 위해 충분한 시간 동안 말하는 한, 임의의 발화를 말할 수 있다. 사용자가 충분한 시간 동안 말한 후에, 등록 모듈(132)은 사용자의 음성 풋프린트를 확립하고 저장한다. 등록 모듈(132)은 고유 사용자 식별자를 음성 풋프린트에 할당하고 사용자 식별자를 음성 풋프린트와 함께 저장한다. 이후에, 인입하는 음성 세그먼트가 음성 풋프린트와 매칭할 때, 대응하는 음성 풋프린트에 할당된 사용자 식별자를 통해 음성 세그먼트를 말한 사용자가 식별된다. 일단 사용자가 등록 단계를 완료하면, 사용자는 본 명세서에서 등록된 사용자로서 또한 언급된 승인된 사용자로 고려된다.
일부 예에서, 음성 프로세싱 시스템(200)은 처음 전원이 켜질 때 자동으로 등록 단계에 진입할 수 있다. 제1 사용자는 등록 단계를 거쳐 승인된 사용자가 된다. 이어서, 승인된 사용자는 제2 사용자에 대한 등록 단계를 시작하기 위해 "또 다른 사용자 등록", "등록 개시" 등과 같은 등록 명령을 말할 수 있다. 이어서, 제2 사용자는 등록 단계를 거쳐서 진행하여, 또한, 승인된 사용자가 된다. 후속적으로, 임의의 승인된 사용자는 부가적인 사용자를 승인하기 위해 또 다른 등록 명령을 말할 수 있다. 일부 예에서, 후속 등록은 음성 등록 명령으로 또는 음성 등록 명령 없이 진행될 수 있다. 하나의 예에서, 승인된 사용자가 그래픽 사용자 인터페이스(GUI)에서 등록 옵션을 선택한 것에 응답하여 후속 등록이 진행될 수 있다. 보안 이유로 인해, 일부 예에서, 승인된 사용자만 부가적인 사용자를 등록할 수 있다.
전개 단계 동안, 음성 분리 모듈(134)은 다양한 사용자의 음성 사이를 구별한다. 음성 분리 모듈(134)은 음성 분리 모듈(134)에 의해 검출된 다양한 명령 및/또는 다른 음성의 화자를 식별한다. 음성 분리 모듈(134)은 상이한 사용자에 의해 언급된 검출된 음성을 상이한 발화로 분리한다. 예를 들면, 제1 사용자가 말하고 있고 제2 사용자가 제1 사용자가 언급한 직후에 말하면, 이러한 2개의 발화는 가상 개인 비서 모듈(138)이 2명의 상이한 사용자로부터의 2개의 별개의 발화로서 음성을 식별하기 위해 이 사이에 충분한 무음 간격이 없을 수 있다. 오디오 입력 신호(210)의 음성 특징을 분석함으로써, 음성 분리 모듈(134)은 오디오 입력 신호(210)를 음성 세그먼트로 분리하고 오디오 입력 신호(210)의 음성 세그먼트가 상이한 사용자에 의해 언급되었다고 결정한다. 이 데이터에 기초하여, 음성 분리 모듈(134)은 오디오 입력 신호(210)를 사용자의 각각에 대한 별개의 발화인 상이한 발화로 분리한다. 후속적으로, 가상 개인 비서 모듈(138)은 2개의 발화를 별개로 프로세싱한다.
음성 분리 모듈(134)은 제한 없이, 음성 검출 모듈(202), 분할 모듈(204), 및 클러스터링 모듈(206)을 포함한다. 음성 검출 모듈(202)은 마이크로폰과 같은 오디오 입력 디바이스로부터 오디오 입력 신호(210)를 수신한다. 음성 검출 모듈(202)은 인간 음성을 포함하는 오디오 입력 신호(210)의 부분을 배경 잡음, 바람, 차량 잡음, 등과 같은 다른 오디오를 포함하는 오디오 입력 신호(210)의 부분과 구별한다. 음성 검출 모듈(202)은 오디오 입력 신호(210)로부터 인간 음성을 분리하고 인간 음성을 포함하지 않는 오디오 입력 신호(210)의 부분을 폐기한다. 게다가, 음성 검출 모듈(202)은 인간 음성의 간격을 표현하는 무음 기간을 식별한다. 이 무음 기간은 하나의 음성 세그먼트가 끝나고 또 다른 음성 세그먼트가 시작되는 곳을 식별하는데 도움이 된다. 음성 검출 모듈(202)은 인간이 아닌 오디오 소스와 배경 잡음이 제거되고, 무음 기간을 식별하는 데이터가 있는 검출된 인간 음성을 포함하는 출력을 생성한다.
분할 모듈(204)은 인간 음성 및 음성 검출 모듈(202)로부터 무음 기간을 식별하는 데이터를 수신한다. 분할 모듈(204)은 인간 음성을 음성 세그먼트로 분리하고, 여기서 각각의 음성 세그먼트는 단일 사용자로부터의 인간 음성을 표현한다. 분할 모듈(204)은 수신된 인간 음성의 특성 및 무음 기간에 기초하여 인간 음성을 음성 세그먼트로 분리한다. 분할 모듈(204)이 수신된 인간 음성을 프로세싱함에 따라, 분할 모듈(204)은 수신된 인간 음성의 음성 특징이 실질적으로 동일하게 유지되어, 동일한 사용자가 말하고 있음을 나타내는지의 여부, 또는 수신된 인간 음성의 음성 특징이 충분히 변경되어, 상이한 사용자가 지금 말하고 있음을 나타내는지의 여부를 결정한다. 분할 모듈(204)이 음성 특징이 충분히 변경되었다고 결정하면, 분할 모듈(204)은 음성 특징이 변경된 시간에 현재 음성 세그먼트의 끝을 표시한다. 분할 모듈(204)은 음성 특징의 변경이 검출된 시간에 새로운 음성 세그먼트를 시작한다. 분할 모듈(204)은 각각의 음성 세그먼트를 특정한 사용자와 연관시킨다. 분할 모듈(204)이 음성 세그먼트가 이전에 등록되었고 승인된 사용자와 연관된다고 결정하면, 분할 모듈(204)은 음성 세그먼트를 이 승인된 사용자의 사용자 식별자와 연관시킨다. 그러나, 분할 모듈(204)이 음성 세그먼트가 이전에 등록되지 않았고 승인된 사용자와 연관된다고 결정하면, 분할 모듈(204)은 음성 세그먼트를 이 승인되지 않은 사용자의 일반적이지만 고유 사용자 식별자와 연관시킨다. 부가적으로, 분할 모듈(204)이 음성 입력이 최소 시간 기간 동안 중단되었다고 결정하면, 분할 모듈(204)은 인간 음성이 더 이상 검출되지 않은 시간에 현재 음성 세그먼트의 끝을 표시한다. 분할 모듈(204)은 인간 음성이 다시 검출될 때 새로운 세그먼트를 시작한다.
인간 음성은 승인된 사용자 및/또는 승인되지 않은 사용자로부터 나올 수 있다. 승인된 사용자의 경우에, 분할 모듈(204)은 등록 단계 동안 확립된 승인된 사용자로부터의 음성 풋프린트 데이터에 대해 음성을 비교한 것에 기초하여 사용자를 식별한다. 분할 모듈(204)이 수신된 인간 음성으로부터 추출된 음성 특징이 승인된 사용자의 음성 풋프린트에 대한 저장된 음성 특징과의 매치라고 결정하면, 분할 모듈(204)은 수신된 인간 음성이 이 승인된 사용자에 의해 언급되었다고 결정한다. 수신된 인간 음성으로부터 추출된 음성 특징은 수신된 인간 음성으로부터 추출된 음성 특징이 저장된 음성 특징과의 높은 정도의 유사성을 가지면 음성 풋프린트에 대한 저장된 음성 특징과의 매치이다. 본 명세서에서 설명된 바와 같이, 수신된 인간 음성으로부터 추출된 음성 특징이 저장된 음성 특징과 10%, 20%, 25%, 등과 같은 임계 레벨 미만만큼 상이할 때 높은 정도의 유사성이 결정된다. 부가적으로 또는 대안적으로, 수신된 인간 음성으로부터 추출된 음성 특징과 저장된 음성 특징 사이의 코사인 유사성이 0.75, 0.8, 0.9, 등과 같은 임계 레벨보다 클 때 높은 정도의 유사성이 결정된다. 분할 모듈(204)은 클러스터에 승인된 사용자의 사용자 식별자를 할당하고 클러스터를 승인된 사용자의 사용자 식별자와 연관시킨다. 분할 모듈(204)이 수신된 인간 음성으로부터 추출된 음성 특징이 임의의 승인된 사용자의 음성 풋프린트에 대한 저장된 음성 특징과의 높은 유사성을 갖지 않는다고 결정하면, 분할 모듈(204)은 수신된 인간 음성이 승인되지 않은 사용자에 의해 언급되었다고 결정한다. 승인되지 않은 사용자의 경우에, 분할 모듈(204)은 인간 음성이 수신된 것으로서 식별된 음성 특징에 기초하여 인간 음성을 음성 세그먼트로 분리한다. 특정한 클러스터가 승인되지 않은 사용자에 의해 언급되면, 분할 모듈(204)은 클러스터에 승인되지 않은 사용자의 일반적이지만 고유 사용자 식별자를 할당하고 클러스터를 일반적인 사용자 식별자와 연관시킨다. 분할 모듈(204)은 음성 세그먼트를 클러스터링 모듈(206)로 송신한다.
클러스터링 모듈(206)은 분할 모듈(204)로부터 음성 세그먼트를 수신한다. 클러스터링 모듈(206)은 음성 세그먼트를 클러스터로 그룹화하고, 여기서 클러스터는 특정한 사용자에 의해 언급된 모든 음성 세그먼트를 포함한다. 일반적으로, 말하고 있는 사용자의 수는 분할 모듈에 의해 생성된 음성 세그먼트의 수 미만이다. 예를 들면, 특정한 사용자는 다수회 말하고 있을 수 있거나, 2명의 사용자는 시간이 지남에 따라 2명의 사용자의 음성 세그먼트가 산재되는 대화를 하고 있을 수 있다. 클러스터링 모듈(206)은 제1 사용자에 의해 언급된 음성 세그먼트를 제1 클러스터로 그룹화한다. 클러스터링 모듈(206)은 제2 사용자에 의해 언급된 음성 세그먼트를 제2 클러스터로 그룹화한다. 클러스터링 모듈(206)은 부가적인 사용자에 의해 언급된 음성 세그먼트를 부가적인 클러스터로 그룹화하고, 여기서 각각의 클러스터는 단일 사용자에 대응한다. 클러스터를 생성할 때, 클러스터링 모듈(206)은 무음 기간을 식별하는 데이터를 포함한다. 일부 예에서, 클러스터에 포함된 데이터는 2개의 상이한 유형의 무음을 식별한다. 제1 무음 유형은 어떠한 사용자도 말하고 있지 않은 시간 기간을 식별한다. 이 유형의 무음은 음성 검출 모듈(202)에 의해 식별된 무음 기간에 대응한다. 제2 무음은 클러스터와 연관된 사용자가 말하고 있지 않지만, 한 명 이상의 다른 사용자가 말하고 있는 시간 기간을 식별한다.
클러스터링 모듈(206)은 분할 모듈(204)로부터 수신된 데이터에 기초하여 사용자에 의해 각각의 클러스터를 식별한다. 클러스터링 모듈(206)은 클러스터를 분리된 오디오(212)로서 승인 및 우선순위화 모듈(136)로 송신한다.
승인 및 우선순위화 모듈(136)은 클러스터링 모듈(206)로부터 분리된 오디오(212)를 수신한다. 분리된 오디오(212)에 포함된 각각의 클러스터에 대해, 승인 및 우선순위화 모듈(136)은 클러스터가 승인된 사용자 또는 승인되지 않은 사용자에 의해 언급된 것으로서 식별되는지의 여부를 결정한다. 승인 및 우선순위화 모듈(136)은 승인된 사용자에 의해 언급된 것으로서 식별된 클러스터가 오디오 명령 대기열(214)의 일부로서 가상 개인 비서 모듈(138)을 거쳐 이로 송신되는 것을 허용한다. 승인 및 우선순위화 모듈(136)은 음성 프로세싱 시스템(200)의 모드에 기초하여 승인되지 않은 사용자에 의해 언급된 것으로서 식별된 클러스터를 프로세싱한다. 일부 예에서, 음성 프로세싱 시스템(200)은 2개의 모드: 게스트 모드 및 승인된 사용자 모드 중 하나로 동작한다. 게스트 모드에서, 승인 및 우선순위화 모듈(136)은 화자에 관계 없이, 분리된 오디오(212)의 모든 클러스터가 오디오 명령 대기열(214)의 일부로서 가상 개인 비서 모듈(138)을 거쳐 이로 송신되는 것을 허용한다. 결과적으로, 승인 및 우선순위화 모듈(136)은 승인된 사용자에 의해 언급된 것으로서 식별된 클러스터 및 승인되지 않은 사용자에 의해 언급된 것으로서 식별된 클러스터가 가상 개인 비서 모듈(138)을 거쳐 이로 송신되는 것을 허용한다. 승인된 사용자 모드에서, 승인 및 우선순위화 모듈(136)은 승인된 사용자에 의해 언급된 것으로서 식별된 클러스터가 오디오 명령 대기열(214)의 일부로서 가상 개인 비서 모듈(138)을 거쳐 이로 송신되는 것을 허용한다. 그러나, 승인 및 우선순위화 모듈(136)은 승인되지 않은 사용자에 의해 언급된 것으로서 식별된 클러스터를 차단하고 이 클러스터가 통과하는 것을 허용하지 않는다. 승인되지 않은 사용자에 의해 언급된 클러스터를 차단함으로써, 음성 프로세싱 시스템(200)은 클러스터에 포함된 오디오 명령이 실행되는 것을 차단한다. 승인된 사용자는 음성 프로세싱 시스템(200)을 게스트 모드와 승인된 사용자 모드 사이에 전환시키는 명령을 말할 수 있다.
일부 예에서, 음성 프로세싱 시스템(200)은 전원이 켜질 때, 시스템 재설정 후에, 등과 같은 특정 조건 하에서 기본 모드로 개시된다. 기본 모드는 음성 프로세싱 시스템(200)의 유형, 음성 프로세싱 시스템(200)의 설치 장소, 음성 프로세싱 시스템(200)에 의해 실행된 소프트웨어 애플리케이션, 등과 같은 음성 프로세싱 시스템(200)의 하나 이상의 특성에 기초한다. 음성 프로세싱 시스템(200)이 일반적인 사용을 위해 주거용 가정에 설치된 스마트 스피커이면, 기본 모드는 게스트 모드일 수 있어서 모든 주변 사용자로부터 수신된 모든 음성 명령이 또 다른 분석 및 실행을 위해 가상 개인 비서 모듈(138)로 전달되게 한다. 그러나, 음성 프로세싱 시스템(200)이 일반적인 사용을 위해 주거용 가정에 설치된 가정 보안 시스템을 위한 오디오 입력 디바이스이면, 기본 모드는 승인된 사용자 모드일 수 있어서 음성 프로세싱 시스템(200)이 승인된 사용자에 의해 발화된 음성 명령을 단지 프로세싱하고 실행하게 한다. 승인 및 우선순위화 모듈(136)은 도둑이 되려고 하는 것과 같은 승인되지 않은 사용자에 의해 언급된 명령을 차단한다. 음성 프로세싱 시스템(200)이 차량에 설치된 내비게이션 및 보안 시스템이면, 기본 모드는 승인된 사용자 모드일 수 있어서 음성 프로세싱 시스템(200)이 승인된 사용자에 의해 언급된 음성 명령을 단지 프로세싱하고 실행하게 한다. 승인 및 우선순위화 모듈(136)은 차량 절도범, 차량 도둑, 및 강도가 되려고 하는 것과 같은 승인되지 않은 사용자에 의해 언급된 명령을 차단한다. 유사하게, 스마트폰이 내비게이션 소프트웨어 애플리케이션을 실행하고 있으면, 기본 모드는 승인된 사용자 모드일 수 있어서 음성 프로세싱 시스템(200)이 승인된 사용자에 의해 언급된 음성 명령을 단지 프로세싱하고 실행하게 한다.
일부 예에서, 승인 및 우선순위화 모듈(136)은 클러스터에 대한 우선순위를 설정한다. 일반적으로, 가상 개인 비서 모듈(138)은 연대순으로 클러스터를 프로세싱한다. 이전에 언급된 오디오 명령을 표현하는 클러스터는 나중에 언급된 오디오 명령을 표현하는 클러스터 전에 프로세싱된다. 승인 및 우선순위화 모듈(136)은 클러스터에 대한 우선순위를 설정함으로써 프로세싱 순서를 변경할 수 있다. 가정 기반 시스템에서, 승인 및 우선순위화 모듈(136)은 부모에 의해 언급된 것으로서 식별된 클러스터의 우선순위를 더 높은 우선순위로 설정할 수 있다. 승인 및 우선순위화 모듈(136)은 어린이에 의해 언급된 것으로서 식별된 클러스터의 우선순위를 더 낮은 우선순위로 설정할 수 있다. 차량 기반 시스템에서, 승인 및 우선순위화 모듈(136)은 운전자에 의해 언급된 것으로서 식별된 클러스터의 우선순위를 더 높은 우선순위로 설정할 수 있다. 승인 및 우선순위화 모듈(136)은 승객에 의해 언급된 것으로서 식별된 클러스터의 우선순위를 더 낮은 우선순위로 설정할 수 있다. 클러스터의 우선순위는 임의의 기술적으로 실현 가능한 방식으로 할당될 수 있다. 일부 예에서, 제1 승인된 사용자는 음성 프로세싱 시스템(200)의 각각의 승인된 사용자의 우선순위를 할당한다. 그렇게 함으로써, 제1 승인된 사용자는 승인된 사용자의 성숙도, 승인된 사용자의 역할, 승인된 사용자와의 승인된 사용자의 관계, 등과 같은 다양한 인자에 기초하여 각각의 승인된 사용자의 우선순위를 할당한다. 일부 예에서, 음성 프로세싱 시스템(200)은 등록 시에 각각의 사용자에게 기본 우선순위를 할당한다. 등록할 제1 승인된 사용자에게 상대적으로 높은 우선순위가 할당될 수 있다. 등록할 제2 승인된 사용자에게 다소 더 낮은 우선순위가 할당될 수 있다. 등록할 제3 승인된 사용자에게 심지어 더 낮은 우선순위가 할당될 수 있고, 등이다. 승인되지 않은 사용자에게 매우 낮은 우선순위가 할당될 수 있다. 각각의 사용자에게 할당된 우선순위는 예를 들면, 음성 프로세싱 시스템(200)에 우선순위 변경 명령을 말함으로써 언제든지 변경될 수 있다. 이 미리 결정된 우선순위에 기초하여, 승인 및 우선순위화 모듈(136)은 클러스터에 포함된 음성 세그먼트를 말한 승인되거나 승인되지 않은 사용자를 식별하는 클러스터에 대한 식별자에 기초하여 각각의 클러스터에 대한 우선순위를 설정한다.
어떤 클러스터가 통과하도록 허용되고 어떤 클러스터가 차단되는지를 결정한 후에, 및 각각의 클러스터의 우선순위를 설정한 후에, 승인 및 우선순위화 모듈(136)은 허용된 클러스터를 포함하는 오디오 명령 대기열(214)을 생성한다. 승인 및 우선순위화 모듈(136)은 오디오 명령 대기열(214)을 가상 개인 비서 모듈(138)로 송신한다.
가상 개인 비서 모듈(138)은 승인 및 우선순위화 모듈(136)로부터 오디오 명령 대기열(214)을 수신한다. 가상 개인 비서 모듈(138)은 오디오 명령 대기열(214)로부터 클러스터를 추출하고 각각의 클러스터를 별개로 프로세싱한다. 각각의 클러스터가 다른 클러스터와 별개로 프로세싱되기 때문에, 그리고 각각의 클러스터가 단일 사용자로부터의 음성 세그먼트를 표현하기 때문에, 가상 개인 비서 모듈(138)은 2명 이상의 사용자에 의해 언급된 음성 세그먼트를 단일 명령으로서 프로세싱하지 않는다. 게다가, 승인 및 우선순위화 모듈(136)은 승인된 사용자 모드에 있을 때 승인되지 않은 사용자로부터 클러스터를 차단한다. 결과적으로, 승인된 사용자 모드에서, 가상 개인 비서 모듈(138)은 승인된 사용자에 의해 언급된 명령만을 프로세싱하고, 그에 의해 승인된 사용자에게 개선된 보안 및 안전성을 제공한다.
가상 개인 비서 모듈(138)은 오디오 명령 대기열(214)에서 클러스터를 프로세싱한다. 일부 예에서, 가상 개인 비서 모듈(138)은 클러스터가 승인 및 우선순위화 모듈(136)로부터 수신되는 순서에 기초하여 선입 선출 순서로 클러스터를 프로세싱한다. 가상 개인 비서 모듈(138)은 언급된 단어의 맥락, 어떠한 사용자도 말하고 있지 않는 무음 기간의 지속기간, 다른 사용자만 말하고 있는 시간 기간의 지속기간, 등을 포함하는 다양한 인자에 기초하여 클러스터에 존재하는 하나의 오디오 명령이 종료되고 동일한 클러스터에 존재하는 또 다른 오디오 명령이 시작되는 때를 결정한다. 일부 예에서, 가상 개인 비서 모듈(138)은 가상 개인 비서의 다수의 인스턴스(instance)를 동시에 실행한다. 이러한 예에서, 가상 개인 비서 모듈(138)은 오디오 명령 대기열(214)에 표현된 각각의 클러스터에 대해 가상 개인 비서의 상이한 인스턴스를 실행한다. 결과적으로, 가상 개인 비서 모듈(138)은 음성 프로세싱 시스템(200)의 각각의 사용자에 대해 별개의 가상 개인 비서를 제공한다.
일부 예에서, 가상 개인 비서 모듈(138)은 오디오 명령 대기열(214)의 클러스터에 존재하는 오디오 명령을 실행하기 위해 하나 이상의 클라우드 서비스를 이용한다. 이러한 예에서, 가상 개인 비서 모듈(138)은 유선 또는 무선 네트워크를 통해, 클러스터의 음성 세그먼트, 또는 클러스터의 음성 세그먼트의 서브세트를 가상 개인 비서 클라우드 서비스로 전달한다. 가상 개인 비서 클라우드 서비스는 음성 세그먼트로부터 하나 이상의 오디오 명령을 추출하기 위해 음성 세그먼트를 프로세싱한다. 가상 개인 비서 클라우드 서비스는 하나 이상의 오디오 명령에 응답하는 출력 데이터 스트림을 생성한다. 가상 개인 비서 클라우드 서비스는 출력 데이터를 유선 또는 무선 네트워크를 통해 가상 개인 비서 모듈(138)로 송신한다.
도 3은 다양한 실시형태에 따른, 도 2의 음성 프로세싱 시스템(200)을 향해 지향된 오디오 입력 신호(210)를 예시한다. 나타낸 바와 같이, 오디오 입력 신호(210)는 제1 사용자로부터의 음성 세그먼트(310(0))로 시작한다. 음성 세그먼트(310(0))의 종료 이전에, 오디오 입력 신호(210)는 제2 사용자로부터의 음성 세그먼트(312(0))를 포함한다. 결과적으로, 음성 세그먼트(310(0)) 및 음성 세그먼트(312(0))는 제1 사용자 및 제2 사용자가 동시에 말하고 있는 곳에서 중첩된다. 제1 사용자가 말하는 것을 중단한 후에, 음성 세그먼트(310(0))가 종료되고 음성 세그먼트(312(0))의 나머지 동안에, 제2 사용자만이 말하고 있다. 제2 사용자가 말하는 것을 중단한 후에, 오디오 입력 신호(210)는 어떠한 사용자도 말하고 있지 않은 무음 기간(316(0))을 포함한다. 음성 세그먼트(314(0))에 의해 도시된 바와 같이, 제3 사용자가 이어서 말한다. 제3 사용자가 말하는 것을 중단한 후에, 오디오 입력 신호(210)는 어떠한 사용자도 말하고 있지 않은 제2 무음 기간(316(1))을 포함한다. 이어서, 오디오 입력 신호(210)는 제1 사용자에 의해 언급된 음성 세그먼트(310(1)) 및 제3 사용자에 의해 언급된 음성 세그먼트(314(1))에 이어서 제3 무음 기간(316(2))을 포함한다. 이어서, 오디오 입력 신호(210)는 제2 사용자에 의해 언급된 음성 세그먼트(312(1))를 포함한다.
도 4는 다양한 실시형태에 따른, 도 2의 음성 프로세싱 시스템(200)에 의해 생성된 분리된 오디오(212)를 예시한다. 나타낸 바와 같이, 도 3의 오디오 입력 신호(210)에 포함된 음성 세그먼트는 3명의 사용자의 각각에 대해 하나씩 3개의 클러스터로 분할 및 클러스터링되었다. 나타낸 바와 같이, 제1 클러스터는 오디오 입력 신호(210)의 음성 세그먼트(310(0)) 및 음성 세그먼트(310(1))에 대응하는, 제1 사용자에 의해 언급된 음성 세그먼트(410(0) 및 410(1))를 포함한다. 제1 사용자에 의해 언급된 음성 세그먼트(310(0))의 일부가 제2 사용자에 의해 언급된 음성 세그먼트(312(0))의 일부와 중첩될지라도, 음성 세그먼트(410(0))는 제1 사용자에 의해 발화된 음성만을 포함한다. 무음 기간(416(0), 416(1), 및 416(2))은 사용자 중 아무도 말하고 있지 않는 무음 기간(316(0), 316(1), 및 316(2))에 각각 대응한다. 기간(412(0) 및 412(1))은 제2 사용자가 말하고 있지만 제1 사용자가 말하고 있지 않은 시간 기간을 표현한다. 유사하게, 기간(414(0) 및 414(1))은 제3 사용자가 말하고 있지만 제1 사용자가 말하고 있지 않은 시간 기간을 표현한다. 결과적으로, 제1 클러스터는 제1 사용자에 의해 언급된 음성 세그먼트만 포함한다. 제1 클러스터는 제1 사용자가 말하고 있지 않지만 한 명 이상의 다른 사용자가 말하고 있는 시간 기간뿐만 아니라, 어떠한 사용자도 말하고 있지 않은 무음 기간을 식별하는 데이터를 더 포함한다.
더욱 나타낸 바와 같이, 제2 클러스터는 오디오 입력 신호(210)의 음성 세그먼트(312(0)) 및 음성 세그먼트(312(1))에 대응하는, 제2 사용자에 의해 언급된 음성 세그먼트(422(0) 및 422(1))를 포함한다. 제2 사용자에 의해 언급된 음성 세그먼트(312(0))의 일부가 제1 사용자에 의해 언급된 음성 세그먼트(310(0))의 일부와 중첩될지라도, 음성 세그먼트(422(0))는 제2 사용자에 의해 발화된 음성만을 포함한다. 무음 기간(426(0), 426(1), 및 426(2))은 사용자 중 아무도 말하고 있지 않는 무음 기간(316(0), 316(1), 및 316(2))에 각각 대응한다. 기간(420(0) 및 420(1))은 제1 사용자가 말하고 있지만 제2 사용자가 말하고 있지 않은 시간 기간을 표현한다. 유사하게, 기간(424(0) 및 424(1))은 제3 사용자가 말하고 있지만 제2 사용자가 말하고 있지 않은 시간 기간을 표현한다. 결과적으로, 제2 클러스터는 제2 사용자에 의해 언급된 음성 세그먼트만 포함한다. 제2 클러스터는 제2 사용자가 말하고 있지 않지만 한 명 이상의 다른 사용자가 말하고 있는 시간 기간뿐만 아니라, 어떠한 사용자도 말하고 있지 않은 무음 기간을 식별하는 데이터를 더 포함한다.
더욱 나타낸 바와 같이, 제3 클러스터는 오디오 입력 신호(210)의 음성 세그먼트(314(0)) 및 음성 세그먼트(314(1))에 대응하는, 제3 사용자에 의해 언급된 음성 세그먼트(434(0) 및 434(1))를 포함한다. 무음 기간(436(0), 436(1), 및 436(2))은 사용자 중 아무도 말하고 있지 않는 무음 기간(316(0), 316(1), 및 316(2))에 각각 대응한다. 기간(430(0) 및 430(1))은 제1 사용자가 말하고 있지만 제3 사용자가 말하고 있지 않은 시간 기간을 표현한다. 유사하게, 기간(432(0) 및 432(1))은 제2 사용자가 말하고 있지만 제3 사용자가 말하고 있지 않은 시간 기간을 표현한다. 결과적으로, 제3 클러스터는 제3 사용자에 의해 언급된 음성 세그먼트만 포함한다. 제3 클러스터는 제3 사용자가 말하고 있지 않지만 한 명 이상의 다른 사용자가 말하고 있는 시간 기간뿐만 아니라, 어떠한 사용자도 말하고 있지 않은 무음 기간을 식별하는 데이터를 더 포함한다.
도 5는 다양한 실시형태에 따른, 도 2의 음성 프로세싱 시스템(200)에 의해 생성된 오디오 명령 대기열(214)을 예시한다. 나타낸 바와 같이, 오디오 명령 대기열(214)은 제1 사용자에 의해 언급되고 도 4의 제1 클러스터에 포함된, 음성 세그먼트(410(0) 및 410(1))에 대응하는 음성 세그먼트(510(0)) 및 음성 세그먼트(510(1))를 포함한다. 제1 클러스터는 제1 승인된 사용자에 의해 언급된다. 따라서, 제1 클러스터는 제1 승인된 사용자의 사용자 식별자를 할당받는다. 유사하게, 오디오 명령 대기열(214)은 제2 사용자에 의해 언급되고 도 4의 제2 클러스터에 포함된, 음성 세그먼트(422(0)) 및 음성 세그먼트(422(1))에 대응하는 음성 세그먼트(512(0)) 및 음성 세그먼트(512(1))를 더 포함한다. 제2 클러스터는 제2 승인된 사용자에 의해 언급된다. 따라서, 제2 클러스터는 제2 승인된 사용자의 사용자 식별자를 할당받는다. 도 4의 음성 세그먼트(434(0)) 및 음성 세그먼트(434(1))는 승인되지 않은 사용자로서 식별된 제3 사용자에 의해 언급되었다. 따라서, 제2 클러스터는 제3 승인되지 않은 사용자의 일반적이지만 고유 사용자 식별자를 할당받는다. 음성 프로세싱 시스템(200)이 승인된 사용자 모드로 동작하고 있기 때문에, 음성 세그먼트(434(0)) 및 음성 세그먼트(434(1))는 차단되고 오디오 명령 대기열(214)에 나타나지 않는다. 무음 기간(516(0))은 아무도 말하고 있지 않는 무음 기간(416(0) 및 416(1)), 제2 사용자가 말하고 있는 시간 기간(412(0)), 및 제3 사용자가 말하고 있는 시간 기간(414(0)) 중 임의의 하나 이상을 포함한다. 무음 기간(516(1))은 제1 사용자에 의해 언급된 음성 세그먼트와 제2 사용자에 의해 언급된 음성 세그먼트 사이의 경계를 표현한다. 무음 기간(516(2))은 아무도 말하고 있지 않는 무음 기간(426(0), 426(1), 및 426(2)), 제1 사용자가 말하고 있는 시간 기간(420(0)), 및 제3 사용자가 말하고 있는 시간 기간(424(0) 및 424(1)) 중 임의의 하나 이상을 포함한다. 도시된 바와 같이, 오디오 명령 대기열은 제3 사용자에 의해 언급된 오디오 명령을 제외하면서 제1 사용자 및 제2 사용자에 의해 언급된 오디오 명령을 포함한다. 게다가, 오디오 명령 대기열(214)은 무음 기간(516)을 포함하여 제1 사용자 및 제2 사용자에 의해 언급된 오디오 명령이 적절하게 프로세싱될 수 있게 한다.
일부 예에서, 무음 기간(516(0), 516(1), 및 516(2)) 중 하나 이상은 이전 클러스터의 세트가 완전하다는 것을 나타내기 위해 충분히 길 수 있고, 음성 프로세싱 시스템(200)은 클러스터의 현재 세트의 프로세싱을 완료하고 후속 클러스터의 세트에 대한 음성 세그먼트를 식별해야 한다. 이러한 경우에, 음성 프로세싱 시스템(200)은 이전 클러스터의 세트로부터의 음성 세그먼트가 완전하고 명령의 제1 세트를 포함한다고 결정한다. 게다가, 음성 프로세싱 시스템(200)은 후속 클러스터의 세트로부터의 음성 세그먼트가 시작되었다고 결정한다. 음성 프로세싱 시스템(200)은 따라서, 어떠한 오디오 명령도 이전 클러스터의 세트 및 후속 클러스터의 세트 둘 모두로부터의 음성 세그먼트를 포함하지 않는다고 결정한다.
하나의 예에서, 무음 기간(516)은 어떠한 사용자도 말하고 있지 않고 음성 프로세싱 시스템(200)이 임의의 인간 음성을 검출하지 않는 시간 기간을 포함할 수 있다. 무음 기간(516)의 지속기간이 제1 임계량보다 작으면, 음성 프로세싱 시스템(200)은 가까운 미래에 한 명 이상의 사용자가 말할 가능성이 있고 가능하게, 음성 명령의 제2 부분을 발행한다고 결정하고, 여기서 사용자는 무음 기간(516) 이전에 음성 명령의 제1 부분을 말했다. 따라서, 무음 기간(516)의 지속기간이 제1 임계량보다 작으면, 음성 프로세싱 시스템(200)은 클러스터의 현재 세트가 완료되지 않았다고 결정하고, 부가적인 음성 명령이 곧 나올 수 있다.
그러나, 무음 기간(516)의 지속기간이 제2 임계량을 초과하면, 음성 프로세싱 시스템(200)은 사용자가 가까운 미래에 음성 명령의 제2 부분을 말할 가능성이 없다고 결정한다. 전형적으로, 제2 임계량은 제1 임계량보다 크다. 무음 기간(516)의 지속기간이 제2 임계량을 초과하면, 사용자는 말하는 것을 중단했을 수 있다. 따라서, 무음 기간(516)의 지속기간이 제2 임계량보다 크면, 음성 프로세싱 시스템(200)은 클러스터의 현재 세트가 완료되었다고 결정하고, 어떠한 부가적인 음성 명령도 곧 나오지 않을 가능성이 있다. 이어서, 음성 프로세싱 시스템(200)은 클러스터의 현재 세트에 존재하는 음성 명령을 프로세싱한다. 음성 프로세싱 시스템(200)이 후속적으로 인간 음성을 검출하면, 음성 프로세싱 시스템(200)은 이 인간 음성을 클러스터의 새로운 세트의 일부로 고려한다. 이 방식으로, 음성 프로세싱 시스템(200)은 다양한 사용자로부터의 음성 명령을 적시에 프로세싱하기 위해 시간이 지남에 따라 지속적으로 클러스터의 세트를 형성하고 완성한다.
도 6은 다양한 실시형태에 따른, 음성 프로세싱 시스템의 승인된 사용자를 등록하기 위한 방법 단계의 흐름도이다. 방법 단계가 도 1 내지 도 5의 시스템과 결부하여 설명될지라도, 당업자는 임의의 순서로 방법 단계를 수행하도록 구성된 임의의 시스템이 본 발명의 범위 내에 있음을 이해할 것이다.
도시된 바와 같이, 방법(600)은 등록 모듈(132)이 등록 모드에 진입하기 위해 입력을 수신하는 단계(602)에서 시작한다. 일부 예에서, 등록 모듈(132)은 전원이 켜질 때, 시스템 재설정 후에, 등과 같은 특정 조건 하에서 등록 모드에 진입하기 위해 입력을 수신한다. 이와 관련하여, 등록 모듈(132)은 처음으로 전원이 켜질 때 자동으로 등록 단계에 진입할 수 있다. 부가적으로 또는 대안적으로, 등록 모듈(132)은 기존의 승인된 사용자가 부가적인 사용자에 대한 등록 단계를 시작하기 위해 "또 다른 사용자 등록", "등록 개시", 등과 같은 등록 명령을 말할 때 등록 단계에 진입할 수 있다.
단계(604)에서, 등록 모듈(132)은 사용자에게 하나 이상의 발화를 말하도록 촉구한다. 등록 모듈(132)은 2개의 유형의 등록: 텍스트 종속 등록 및 텍스트 독립 등록 중 하나 또는 둘 모두를 이용한다. 텍스트 의존 등록으로, 등록 모듈(132)은 사용자에게 고정된 발화로서 특정한 문구를 다수회 말하도록 촉구한다. 텍스트 독립 등록으로, 등록 모듈(132)은 사용자에게 일정 시간 기간 동안 말하도록 촉구한다. 사용자는 등록 모듈(132)이 사용자의 음성을 특징짓기 위해 충분한 시간 동안 말하는 한, 임의의 발화를 말할 수 있다.
단계(606)에서, 등록 모듈(132)은 사용자가 요청된 발화를 말할 때, 마이크로폰과 같은 오디오 입력 디바이스를 통해 오디오 입력 신호를 수신한다. 등록 모듈(132)은 수신된 오디오 입력 신호를 프로세싱한다.
단계(608)에서, 등록 모듈(132)은 단계(606)에서 수신된 오디오 입력 신호의 음성 특징을 결정한다. 등록 모듈(132)은 오디오 입력 신호의 이 고유 음성 특징에 기초하여 이 음성 특징을 결정한다.
단계(610)에서, 등록 모듈(132)은 고유 음성 오디오 입력 신호에 기초하여 음성 풋프린트를 생성한다. 등록 모듈(132)은 음성 풋프린트를 생성하고 후속적으로, 승인된 사용자 중에서 특정 사용자를 식별하기 위해 MFCC(mel-frequency cepstrum coefficient)와 같은 다양한 엔트로피 기술을 이용한다. 등록 모듈(132)은 사용자의 음성을 특징짓기 위해 발화 내의 음성 상세 및 평균 음성 특징을 분석함으로써 음성 풋프린트를 미세 조정한다.
단계(612)에서, 등록 모듈(132)은 음성 풋프린트를 승인된 사용자 식별자와 연관시킨다. 등록 모듈(132)은 음성 풋프린트를 등록 과정에 있는 특정한 사용자와 연관시킨다. 그렇게 함으로써, 등록 모듈(132)은 고유 사용자 식별자를 음성 풋프린트에 할당하고 사용자 식별자를 음성 풋프린트와 함께 저장한다. 이후에, 인입하는 음성 세그먼트가 음성 풋프린트와 매칭할 때, 대응하는 음성 풋프린트에 할당된 사용자 식별자를 통해 음성 세그먼트를 말한 사용자가 식별된다.
단계(614)에서, 등록 모듈(132)은 새로 승인된 사용자의 음성 풋프린트를 저장했다. 사용자가 필수 문구를 충분한 횟수만큼 말한 후에 또는 사용자가 충분한 시간 지속기간 동안 말했다면, 등록 모듈(132)은 사용자의 음성 풋프린트를 확립하고 저장한다. 일단 사용자가 등록 단계를 완료하면, 사용자는 본 명세서에서 등록된 사용자로서 또한 언급되고, 본 명세서에서 승인된 사용자로서 또한 언급된 승인된 사용자로 고려된다.
이어서, 방법(600)은 종료된다. 대안적으로, 방법(600)은 부가적인 승인된 사용자를 등록하기 위해 단계(604)로 되돌아간다.
도 7은 다양한 실시형태에 따른, 가상 개인 비서 디바이스를 향해 지향된 음성 입력을 프로세싱하기 위한 방법 단계의 흐름도이다. 방법 단계가 도 1 내지 도 5의 시스템과 결부하여 설명될지라도, 당업자는 임의의 순서로 방법 단계를 수행하도록 구성된 임의의 시스템이 본 발명의 범위 내에 있음을 이해할 것이다.
도시된 바와 같이, 방법(700)은 도 2의 음성 프로세싱 시스템(200)과 같은 음성 프로세싱 시스템에서 실행되는 음성 분리 모듈(134)이 마이크로폰과 같은 오디오 입력 디바이스를 통해 오디오 입력 신호를 수신하는 단계(702)에서 시작한다. 음성 분리 모듈(134)은 음성 분리 모듈(134)에 포함된 음성 검출 모듈(202), 분할 모듈(204), 및 클러스터링 모듈(206)을 통해 수신된 오디오 입력 신호를 프로세싱한다.
단계(704)에서, 음성 검출 모듈(202)은 단계(702)에서 수신된 오디오 입력 신호에 포함된 인간 음성을 검출한다. 음성 검출 모듈(202)은 인간 음성을 포함하는 오디오 입력 신호의 부분을 배경 잡음, 바람, 차량 잡음, 등과 같은 다른 오디오를 포함하는 오디오 입력 신호의 부분과 구별한다. 음성 검출 모듈(202)은 오디오 입력 신호로부터 인간 음성을 분리하고 인간 음성을 포함하지 않는 오디오 입력 신호(210)의 부분을 폐기한다. 게다가, 음성 검출 모듈(202)은 인간 음성의 간격을 표현하는 무음 기간을 식별한다. 이 무음 기간은 하나의 음성 세그먼트가 끝나고 또 다른 음성 세그먼트가 시작되는 곳을 식별하는데 도움이 된다. 음성 검출 모듈(202)은 인간이 아닌 오디오 소스와 배경 잡음이 제거되고, 무음 기간을 식별하는 데이터가 있는 검출된 인간 음성을 포함하는 출력을 생성한다.
단계(706)에서, 분할 모듈(204)은 상이한 사용자로부터의 음성을 음성 세그먼트로 분할한다. 분할 모듈(204)은 인간 음성 및 음성 검출 모듈(202)로부터 무음 기간을 식별하는 데이터를 수신한다. 분할 모듈(204)은 인간 음성을 음성 세그먼트로 분리하고, 여기서 각각의 음성 세그먼트는 단일 사용자로부터의 인간 음성을 표현한다. 분할 모듈(204)은 수신된 인간 음성의 특성 및 무음 기간에 기초하여 인간 음성을 음성 세그먼트로 분리한다. 분할 모듈(204)이 수신된 인간 음성을 프로세싱함에 따라, 분할 모듈(204)은 인간 음성의 음성 특징을 결정한다. 분할 모듈(204)이 음성 특징이 충분히 변경되었다고 결정하면, 분할 모듈(204)은 음성 특징의 변경이 검출된 시간에 현재 음성 세그먼트의 끝을 표시한다. 분할 모듈(204)은 음성 특징의 변경이 검출된 시간에 새로운 세그먼트를 시작한다. 부가적으로, 분할 모듈(204)이 음성 입력이 최소 시간 기간 동안 중단되었다고 결정하면, 분할 모듈(204)은 인간 음성이 더 이상 검출되지 않은 시간에 현재 음성 세그먼트의 끝을 표시한다. 분할 모듈(204)은 인간 음성이 다시 검출될 때 새로운 세그먼트를 시작한다. 분할 모듈(204)은 현재 음성 세그먼트로부터 추출된 음성 특징이 승인된 사용자 중 하나와 연관된 음성 풋프린트와 매칭하는지의 여부를 결정한다. 수신된 인간 음성으로부터 추출된 음성 특징은 수신된 인간 음성으로부터 추출된 음성 특징이 저장된 음성 특징과의 높은 정도의 유사성을 가지면, 음성 풋프린트에 대한 저장된 음성 특징과의 매치이다. 본 명세서에서 설명된 바와 같이, 수신된 인간 음성으로부터 추출된 음성 특징이 저장된 음성 특징과 10%, 20%, 25%, 등과 같은 임계 레벨 미만만큼 상이할 때 높은 정도의 유사성이 결정된다. 부가적으로 또는 대안적으로, 수신된 인간 음성으로부터 추출된 음성 특징과 저장된 음성 특징 사이의 코사인 유사성이 0.75, 0.8, 0.9, 등과 같은 임계 레벨보다 클 때 높은 정도의 유사성이 결정된다. 분할 모듈(204)이 현재 음성 세그먼트로부터 추출된 음성 특징이 음성 세그먼트를 승인된 사용자와 연관된 것으로서 식별한다고 결정하면, 분할 모듈(204)은 음성 세그먼트에 승인된 사용자의 사용자 식별자를 할당한다. 분할 모듈(204)이 현재 음성 세그먼트로부터 추출된 음성 특징이 승인된 사용자 중 임의의 사용자의 음성 풋프린트와 매칭하지 않는다고 결정하면, 분할 모듈(204)은 수신된 인간 음성이 승인되지 않은 사용자에 의해 언급된 것이라고 결정한다. 이러한 경우에, 분할 모듈(204)은 음성 세그먼트에 승인되지 않은 사용자의 일반적이지만 고유 사용자 식별자를 할당하고 음성 세그먼트를 일반적인 사용자 식별자와 연관시킨다.
단계(708)에서, 클러스터링 모듈(206)은 단계(706)에서 생성된 음성 세그먼트로부터 각각의 사용자에 대한 클러스터를 생성한다. 클러스터링 모듈(206)은 분할 모듈(204)로부터 음성 세그먼트를 수신한다. 클러스터링 모듈(206)은 음성 세그먼트를 클러스터로 그룹화하고, 여기서 클러스터는 특정한 사용자에 의해 언급된 모든 음성 세그먼트를 포함한다. 일반적으로, 말하고 있는 사용자의 수는 분할 모듈에 의해 생성된 음성 세그먼트의 수 미만이다. 예를 들면, 특정한 사용자는 다수회 말하고 있을 수 있거나, 2명의 사용자는 시간이 지남에 따라 2명의 사용자의 음성 세그먼트가 산재되는 대화를 하고 있을 수 있다. 클러스터링 모듈(206)은 상이한 사용자에 의해 언급된 음성 세그먼트를 상이한 클러스터로 그룹화하고, 여기서 각각의 클러스터는 단일 사용자에 대응한다. 클러스터를 생성할 때, 클러스터링 모듈(206)은 무음 기간을 식별하는 데이터를 포함한다. 일부 예에서, 클러스터에 포함된 데이터는 2개의 상이한 유형의 무음을 식별한다. 제1 무음 유형은 어떠한 사용자도 말하고 있지 않는 시간 기간을 식별한다. 이 유형의 무음은 음성 검출 모듈(202)에 의해 식별된 무음의 무음 기간에 대응한다. 제2 무음은 클러스터와 연관된 사용자가 말하고 있지 않지만, 한 명 이상의 다른 사용자가 말하고 있는 시간 기간을 식별한다.
단계(710)에서, 음성 프로세싱 시스템에서 실행되는 승인 및 우선순위화 모듈(136)은 승인되지 않은 사용자로부터 클러스터를 차단한다. 승인되지 않은 사용자에 의해 언급된 클러스터를 차단함으로써, 음성 프로세싱 시스템(200)은 클러스터에 포함된 오디오 명령이 실행되는 것을 차단한다. 단계(708)에서 클러스터링 모듈(206)에 의해 생성된 클러스터는 특정한 사용자에 의해 언급되는 것으로서 식별된다. 각각의 클러스터에 대해, 승인 및 우선순위화 모듈(136)은 클러스터가 승인된 사용자 또는 승인되지 않은 사용자에 의해 언급된 것으로서 식별되는지의 여부를 결정한다. 클러스터링 모듈(206)은 클러스터에 포함된 음성 세그먼트의 사용자 식별자에 기초하여 사용자 식별자를 할당받는다. 클러스터에 할당된 사용자 식별자가 승인된 사용자 식별자와 매칭하면, 클러스터는 승인된 사용자에 의해 언급된 것으로서 식별된다. 클러스터에 할당된 사용자 식별자가 임의의 승인된 사용자 식별자와 매칭하지 않고, 대신에 일반 사용자 식별자이면, 클러스터는 승인되지 않은 사용자에 의해 언급된 것으로서 식별된다. 승인 및 우선순위화 모듈(136)은 승인된 사용자에 의해 언급된 것으로서 식별된 클러스터가 가상 개인 비서 모듈(138)을 거쳐 이로 송신되는 것을 허용한다. 승인 및 우선순위화 모듈(136)은 음성 프로세싱 시스템의 모드에 기초하여 승인되지 않은 것에 의해 언급된 것으로서 식별된 클러스터를 프로세싱한다. 게스트 모드에서, 승인 및 우선순위화 모듈(136)은 모든 클러스터가 가상 개인 비서 모듈(138)을 거쳐 이로 송신되는 것을 허용한다. 결과적으로, 승인 및 우선순위화 모듈(136)은 승인된 사용자에 의해 언급된 것으로서 식별된 클러스터 및 승인되지 않은 사용자에 의해 언급된 것으로서 식별된 클러스터가 가상 개인 비서 모듈(138)을 거쳐 이로 송신되는 것을 허용한다. 승인된 사용자 모드에서, 승인 및 우선순위화 모듈(136)은 승인된 사용자에 의해 언급된 것으로서 식별된 클러스터가 가상 개인 비서 모듈(138)로 통과하는 것을 허용한다. 그러나, 승인된 사용자 모드에 있을 때, 승인 및 우선순위화 모듈(136)은 승인되지 않은 사용자에 의해 언급된 클러스터가 가상 개인 비서 모듈(138)로 통과하는 것을 허용하지 않는다.
단계(712)에서, 승인 및 우선순위화 모듈(136)은 나머지(차단되지 않은) 클러스터로부터 오디오 명령 대기열(214)을 생성한다. 어떤 클러스터가 통과하도록 허용되고 어떤 클러스터가 차단되는지를 결정한 후에, 승인 및 우선순위화 모듈(136)은 허용된 클러스터를 포함하는 오디오 명령 대기열(214)을 생성한다. 일부 예에서, 승인 및 우선순위화 모듈(136)은 오디오 명령 대기열에 포함된 클러스터에 대한 우선순위를 설정한다. 승인 및 우선순위화 모듈(136)은 클러스터가 수신되는 순서(FIFO 순서), 클러스터에 포함된 음성 세그먼트가 언급된 시간에 기초한 연대순, 각각의 클러스터에 할당된 우선순위에 기초한 순서, 등을 포함하지만 이로 제한되지 않는 임의의 기술적으로 실현 가능한 방식으로 오디오 명령 대기열(214)의 클러스터를 시퀀싱할 수 있다.
단계(714)에서, 음성 프로세싱 시스템 상에서 실행되는 가상 개인 비서 모듈(138)은 오디오 명령 대기열(214)의 오디오 명령을 실행한다. 가상 개인 비서 모듈(138)은 오디오 명령 대기열로부터 클러스터를 추출하고 각각의 클러스터를 별개로 프로세싱한다. 가상 개인 비서 모듈(138)은 언급된 단어의 맥락, 어떠한 사용자도 말하고 있지 않는 무음 기간의 지속기간, 다른 사용자만 말하고 있는 시간 기간의 지속기간, 등을 포함하는 다양한 인자에 기초하여 클러스터에 존재하는 하나의 오디오 명령이 종료되고 동일한 클러스터에 존재하는 또 다른 오디오 명령이 시작되는 때를 결정한다. 각각의 클러스터가 다른 클러스터와 별개로 프로세싱되기 때문에, 그리고 각각의 클러스터가 단일 사용자로부터의 음성 세그먼트를 표현하기 때문에, 가상 개인 비서 모듈(138)은 2명 이상의 사용자에 의해 언급된 음성 세그먼트를 단일 명령으로서 프로세싱하지 않는다. 게다가, 승인 및 우선순위화 모듈(136)은 승인된 사용자 모드에 있을 때 승인되지 않은 사용자로부터 클러스터를 차단한다. 결과적으로, 승인된 사용자 모드에서, 가상 개인 비서 모듈(138)은 승인된 사용자에 의해 언급된 명령만을 프로세싱하고, 그에 의해 승인된 사용자에게 개선된 보안 및 안전성을 제공한다.
이어서, 방법(700)은 종료된다. 대안적으로, 방법(700)은 부가적인 오디오 입력 신호를 수신하고 결과적인 오디오 명령 대기열에서 부가적인 오디오 명령을 실행하기 위해 단계(702)로 복귀한다.
요컨대, 음성 프로세싱 시스템은 오디오 입력 신호를 프로세싱하는 가상 프로세싱 비서를 포함하고, 여기서 오디오 신호는 가상 개인 비서 디바이스를 향해 지향된 음성 입력을 포함한다. 음성 프로세싱 시스템은 오디오 입력 신호를 수신하고 디지털화한다. 음성 프로세싱 시스템은 디지털화된 오디오 입력 신호의 음성 구성요소를 검출하고, 음성 구성요소를 상이한 사용자로부터 비롯되는 별개의 음성 세그먼트로 분할하고, 음성 세그먼트를 각각의 사용자에 대한 상이한 클러스터로 클러스터링한다. 음성 프로세싱 시스템은 승인되지 않은 사용자에 대응하는 클러스터를 식별하고 폐기한다. 음성 프로세싱 시스템은 나머지 클러스터를 우선순위화하고 또 다른 프로세싱을 위해 우선순위 순서로 클러스터를 제공하는 오디오 명령 대기열을 생성한다. 음성 프로세싱 시스템은 오디오 명령 대기열을 프로세싱하고 그 안에 포함된 명령을 실행한다.
종래 기술에 비해 개시된 기술의 적어도 하나의 기술적 장점은 개시된 기술로, 음성 프로세싱 시스템이 의도되지 않은 소스에 의해 발화된 오디오 명령을 제거할 수 있다는 것이다. 결과적으로, 음성 프로세싱 시스템이 의도되지 않거나 바람직하지 않은 오디오 명령을 실행할 가능성은 종래의 시스템에 비해 감소된다. 게다가, 음성 프로세싱 시스템은 승인되지 않은 사용자로부터의 음성을 폐기할 수 있고, 이는 종래의 시스템에 비해 승인된 사용자에게 개선된 보안 및 안전성을 제공한다. 이 기술적 장점은 선행 기술 접근법에 대한 하나 이상의 기술적 개선을 표현한다.
1. 일부 실시형태에서, 가상 개인 비서에 대한 오디오 명령을 프로세싱하기 위한 컴퓨터 구현 방법은, 오디오 입력 신호에서 검출된 음성을 주어진 음성 세그먼트에 포함된 상기 음성이 단일 화자에 의해 발화되는 복수의 음성 세그먼트로 분할하는 단계; 상기 복수의 음성 세그먼트에 포함된 상기 음성 세그먼트를 복수의 클러스터로 클러스터링하는 단계로서, 상기 복수의 클러스터에 포함된 각각의 클러스터는 상이한 화자에 의해 발화되는, 상기 클러스터링하는 단계; 상기 복수의 클러스터에 포함된 제1 클러스터가 제1 승인된 화자에 의해 발화된다고 결정하는 단계; 및 상기 제1 클러스터에 포함된 제1 오디오 명령으로 하여금 실행되게 하는 단계를 포함한다.
2. 조항 1에 있어서, 상기 복수의 클러스터에 포함된 제2 클러스터가 제2 승인된 화자에 의해 발화된다고 결정하는 단계; 및 상기 제2 클러스터에 존재하는 제2 오디오 명령으로 하여금 실행되게 하는 단계를 더 포함하는, 컴퓨터 구현 방법.
3. 조항 1 또는 조항 2에 있어서, 상기 복수의 클러스터에 포함되고 제2 승인된 화자에 의해 발화된 제2 클러스터가 상기 제1 클러스터보다 높은 우선순위를 갖는다고 결정하는 단계; 및 상기 제2 클러스터에 존재하는 제2 오디오 명령으로 하여금 상기 제1 오디오 명령이 실행되기 전에 실행되게 하는 단계를 더 포함하는, 컴퓨터 구현 방법.
4. 조항 1 내지 3 중 어느 하나에 있어서, 상기 복수의 클러스터에 포함된 제2 클러스터가 승인되지 않은 화자에 의해 발화된다고 결정하는 단계; 및 상기 제2 클러스터에 포함된 제2 오디오 명령이 실행되는 것을 방지하는 단계를 더 포함하는, 컴퓨터 구현 방법.
5. 조항 1 내지 4 중 어느 하나에 있어서, 상기 복수의 클러스터에 포함된 제2 클러스터가 승인되지 않은 화자에 의해 발화된다고 결정하는 단계; 승인되지 않은 화자로부터의 오디오 명령이 실행되도록 허용하는 모드가 활성화된다고 결정하는 단계; 및 상기 제2 클러스터에 포함된 제2 오디오 명령으로 하여금 실행되게 하는 단계를 더 포함하는, 컴퓨터 구현 방법.
6. 조항 1 내지 5 중 어느 하나에 있어서, 상기 제1 클러스터가 상기 제1 승인된 화자에 의해 발화된다고 결정하는 단계는, 상기 제1 클러스터에 포함된 제1 음성 세그먼트와 연관된 하나 이상의 음성 특징을 복수의 승인된 화자와 연관된 복수의 음성 풋프린트와 비교하는 단계; 및 상기 제1 음성 세그먼트와 연관된 상기 하나 이상의 음성 특징이 상기 제1 승인된 화자와 연관되는 상기 복수의 음성 풋프린트에 포함된 제1 음성 풋프린트와 매칭한다고 결정하는 단계를 포함하는, 컴퓨터 구현 방법.
7. 조항 1 내지 6 중 어느 하나에 있어서, 상기 제1 승인된 화자에게 하나 이상의 발화를 말하도록 촉구하는 단계; 상기 하나 이상의 발화를 말하는 상기 제1 승인된 화자의 오디오 입력 신호를 수신하는 단계; 상기 오디오 입력 신호에 기초하여 상기 제1 승인된 화자의 하나 이상의 음성 특징을 결정하는 단계; 상기 하나 이상의 음성 특징에 기초하여 상기 제1 승인된 화자와 연관된 음성 풋프린트를 생성하는 단계; 및 상기 제1 승인된 화자의 음성 풋프린트를 저장하는 단계를 더 포함하는, 컴퓨터 구현 방법.
8. 조항 1 내지 7 중 어느 하나에 있어서, 상기 제1 승인된 화자에 대한 사용자 식별자를 생성하는 단계; 및 상기 사용자 식별자를 상기 음성 풋프린트와 연관시키는 단계를 더 포함하는, 컴퓨터 구현 방법.
9. 조항 1 내지 8 중 어느 하나에 있어서, 상기 하나 이상의 발화는 상기 제1 승인된 화자에 의해 명시된 횟수만큼 언급된 고정된 발화를 포함하는, 컴퓨터 구현 방법.
10. 조항 1 내지 9 중 어느 하나에 있어서, 상기 하나 이상의 발화는 명시된 시간 지속기간 동안 상기 제1 승인된 화자에 의해 언급된 발화를 포함하는, 컴퓨터 구현 방법.
11. 일부 실시형태에서, 디바이스는, 마이크로폰; 명령어를 저장하는 하나 이상의 메모리; 및 상기 하나 이상의 메모리에 결합된 하나 이상의 프로세서를 포함하되, 상기 하나 이상의 프로세서는, 상기 명령어를 실행할 때, 상기 마이크로폰을 통해 수신된 오디오 입력 신호에서 검출된 음성을 주어진 음성 세그먼트에 포함된 상기 음성이 단일 화자에 의해 발화되는 복수의 음성 세그먼트로 분할하고; 상기 복수의 음성 세그먼트에 포함된 상기 음성 세그먼트를 복수의 클러스터로 클러스터링하는 것으로서, 상기 복수의 클러스터에 포함된 각각의 클러스터는 상이한 화자에 의해 발화되는, 상기 복수의 클러스터로 클러스터링하고; 상기 복수의 클러스터에 포함된 제1 클러스터가 제1 승인된 화자에 의해 발화된다고 결정하고; 그리고 상기 제1 클러스터에 포함된 제1 오디오 명령으로 하여금 실행되게 하는, 디바이스.
12. 조항 11에 있어서, 상기 하나 이상의 프로세서는 또한 상기 복수의 클러스터에 포함된 제2 클러스터가 제2 승인된 화자에 의해 발화된다고 결정하고; 그리고 상기 제2 클러스터에 존재하는 제2 오디오 명령으로 하여금 실행되게 하는, 디바이스.
13. 조항 11 또는 조항 12에 있어서, 상기 하나 이상의 프로세서는 또한 상기 복수의 클러스터에 포함되고 제2 승인된 화자에 의해 발화된 제2 클러스터가 상기 제1 클러스터보다 높은 우선순위를 갖는다고 결정하고; 그리고 상기 제2 클러스터에 존재하는 제2 오디오 명령으로 하여금 상기 제1 오디오 명령이 실행되기 전에 실행되게 하는, 디바이스.
14. 조항 11 내지 13 중 어느 하나에 있어서, 상기 하나 이상의 프로세서는 또한 상기 복수의 클러스터에 포함된 제2 클러스터가 승인되지 않은 화자에 의해 발화된다고 결정하고; 그리고 상기 제2 클러스터에 포함된 제2 오디오 명령이 실행되는 것을 방지하는, 디바이스.
15. 조항 11 내지 14 중 어느 하나에 있어서, 상기 하나 이상의 프로세서는 또한 상기 복수의 클러스터에 포함된 제2 클러스터가 승인되지 않은 화자에 의해 발화된다고 결정하고; 승인되지 않은 화자로부터의 오디오 명령이 실행되도록 허용하는 모드가 활성화된다고 결정하고; 그리고 상기 제2 클러스터에 포함된 제2 오디오 명령으로 하여금 실행되게 하는, 디바이스.
16. 조항 11 내지 15 중 어느 하나에 있어서, 상기 제1 클러스터가 상기 제1 승인된 화자에 의해 발화된다고 결정하기 위해, 상기 하나 이상의 프로세서는 또한 상기 제1 클러스터에 포함된 제1 음성 세그먼트와 연관된 하나 이상의 음성 특징을 복수의 승인된 화자와 연관된 복수의 음성 풋프린트와 비교하고; 그리고 상기 제1 음성 세그먼트와 연관된 상기 하나 이상의 음성 특징이 상기 제1 승인된 화자와 연관되는 상기 복수의 음성 풋프린트에 포함된 제1 음성 풋프린트와 매칭한다고 결정하는, 디바이스.
17. 조항 11 내지 16 중 어느 하나에 있어서, 상기 하나 이상의 프로세서는 또한, 상기 제1 승인된 화자에게 하나 이상의 발화를 말하도록 촉구하고; 상기 하나 이상의 발화를 말하는 상기 제1 승인된 화자의 오디오 입력 신호를 수신하고; 상기 오디오 입력 신호에 기초하여 상기 제1 승인된 화자의 하나 이상의 음성 특징을 결정하고; 상기 하나 이상의 음성 특징에 기초하여 상기 제1 승인된 화자와 연관된 음성 풋프린트를 생성하고; 그리고 상기 제1 승인된 화자의 음성 풋프린트를 저장하는, 디바이스.
18. 일부 실시형태에서, 하나 이상의 비일시적 컴퓨터 판독 가능한 매체는 프로그램 명령어를 저장하되, 상기 프로그램 명령어는 하나 이상의 프로세서에 의해 실행될 때, 상기 하나 이상의 프로세서로 하여금, 오디오 입력 신호에서 검출된 음성을 주어진 음성 세그먼트에 포함된 상기 음성이 단일 화자에 의해 발화되는 복수의 음성 세그먼트로 분할하는 단계; 상기 복수의 음성 세그먼트에 포함된 상기 음성 세그먼트를 복수의 클러스터로 클러스터링하는 단계로서, 상기 복수의 클러스터에 포함된 각각의 클러스터는 상이한 화자에 의해 발화되는, 상기 클러스터링하는 단계; 상기 복수의 클러스터에 포함된 제1 클러스터가 제1 승인된 화자에 의해 발화된다고 결정하는 단계; 및 상기 제1 클러스터에 포함된 제1 오디오 명령으로 하여금 실행되게 하는 단계를 수행하게 하는, 하나 이상의 비일시적 컴퓨터 판독 가능한 매체.
19. 조항 18에 있어서, 상기 단계는, 상기 복수의 클러스터에 포함된 제2 클러스터가 제2 승인된 화자에 의해 발화된다고 결정하는 단계; 및 상기 제2 클러스터에 존재하는 제2 오디오 명령으로 하여금 실행되게 하는 단계를 더 포함하는, 하나 이상의 비일시적 컴퓨터 판독 가능한 매체.
20. 조항 18 또는 조항 19에 있어서, 상기 단계는, 상기 복수의 클러스터에 포함되고 제2 승인된 화자에 의해 발화된 제2 클러스터가 상기 제1 클러스터보다 높은 우선순위를 갖는다고 결정하는 단계; 및 상기 제2 클러스터에 존재하는 제2 오디오 명령으로 하여금 상기 제1 오디오 명령이 실행되기 전에 실행되게 하는 단계를 더 포함하는, 하나 이상의 비일시적 컴퓨터 판독 가능한 매체.
임의의 방식으로, 청구항 중 임의의 것에 인용된 청구항 요소 중 임의의 것 및/또는 본 명세서에서 설명된 임의의 요소의 임의의 및 모든 조합은 본 발명 및 보호의 고려된 범위 내에 있다.
다양한 실시형태의 설명은 예시의 목적을 위해 제공되었지만, 완전한 것으로 또는 개시된 실시형태로 제한되도록 의도되지 않는다. 설명된 실시형태의 범위 및 사상을 벗어나지 않고 많은 수정 및 변형이 당업자에게 명백할 것이다.
본 실시형태의 양태는 시스템, 방법, 또는 컴퓨터 프로그램 제품으로서 구현될 수 있다. 그에 따라, 본 발명의 양태는 전체 하드웨어 실시형태, 전체 소프트웨어 실시형태(펌웨어, 상주 소프트웨어, 마이크로코드, 등을 포함함) 또는 전부 일반적으로 본 명세서에서 "모듈", "시스템" 또는 "컴퓨터"로서 언급될 수 있는 소프트웨어 및 하드웨어 양태를 조합하는 일 실시형태의 형태를 취할 수 있다. 게다가, 본 발명에서 설명된 임의의 하드웨어 및/또는 소프트웨어 기술, 프로세스, 기능, 구성요소, 엔진, 모듈 또는 시스템은 회로 또는 회로의 세트로서 구현될 수 있다. 또한, 본 발명의 양태는 컴퓨터 판독 가능한 프로그램 코드가 구현된 하나 이상의 컴퓨터 판독 가능한 매체(들)에 구현된 컴퓨터 프로그램 제품의 형태를 취할 수 있다.
하나 이상의 컴퓨터 판독 가능한 매체(들)의 임의의 조합이 활용될 수 있다. 컴퓨터 판독 가능한 매체는 컴퓨터 판독 가능한 신호 매체 또는 컴퓨터 판독 가능한 저장 매체일 수 있다. 컴퓨터 판독 가능한 저장 매체는, 예를 들면, 전자, 자기, 광학, 전자기, 적외선 또는 반도체 시스템, 장치 또는 디바이스, 또는 상기 언급한 것의 임의의 적합한 조합일 수 있지만 이로 제한되지 않는다. 컴퓨터 판독 가능한 저장 매체의 더 특정한 예(완전하지 않은 목록)는 다음을 포함할 것이다: 하나 이상의 와이어를 가지는 전기 연결부, 휴대용 컴퓨터 디스켓, 하드 디스크, 랜덤 액세스 메모리(RAM), 판독 전용 메모리(ROM), 삭제 가능한 프로그래밍 가능한 판독 전용 메모리(EPROM 또는 플래시 메모리), 광섬유, 휴대용 컴팩트 디스크 판독 전용 메모리(CD-ROM), 광학 저장 디바이스, 자기 저장 디바이스, 또는 상기 언급한 것의 임의의 적합한 조합. 이 문서의 맥락에서, 컴퓨터 판독 가능한 저장 매체는 명령어 실행 시스템, 장치, 또는 디바이스에 의해 또는 이와 관련하여 사용하기 위한 프로그램을 포함하거나, 저장할 수 있는 임의의 유형의 매체일 수 있다.
본 발명의 양태는 본 발명의 실시형태에 따른 방법, 장치(시스템) 및 컴퓨터 프로그램 제품의 흐름도 예시 및/또는 블록도를 참조하여 상기 설명된다. 흐름도 예시 및/또는 블록도의 각각의 블록, 및 흐름도 예시 및/또는 블록도의 블록의 조합이 컴퓨터 프로그램 명령어에 의해 구현될 수 있음이 이해될 것이다. 이 컴퓨터 프로그램 명령어는 기계를 생산하기 위해 범용 컴퓨터, 특수 목적 컴퓨터, 또는 다른 프로그래밍 가능한 데이터 프로세싱 장치의 프로세서에 제공될 수 있다. 컴퓨터의 프로세서 또는 다른 프로그래밍 가능한 데이터 프로세싱 장치를 통해 실행될 때, 명령어는 흐름도 및/또는 블록도 블록 또는 블록들에 명시된 기능/동작의 구현을 가능하게 한다. 이러한 프로세서는 제한 없이, 범용 프로세서, 특수 목적 프로세서, 애플리케이션 특정 프로세서, 또는 필드 프로그래밍 가능한 게이트 어레이일 수 있다.
도면의 흐름도 및 블록도는 본 발명의 다양한 실시형태에 따른 시스템, 방법, 및 컴퓨터 프로그램 제품의 가능한 구현예의 아키텍처, 기능 및 동작을 예시한다. 이와 관련하여, 흐름도 또는 블록도의 각각의 블록은 모듈, 세그먼트, 또는 명시된 논리 기능(들)을 구현하기 위한 하나 이상의 실행 가능한 명령어를 포함하는 코드의 일부를 표현할 수 있다. 일부 대안적인 구현에서, 블록에 언급된 기능이 도면에 언급된 순서와 다르게 발생할 수 있다는 점에 또한 유의해야 한다. 예를 들면, 연속적으로 도시된 2개의 블록은 실제로, 실질적으로 동시에 실행될 수 있거나, 블록은 관련된 기능에 의존하여, 때때로 역순으로 실행될 수 있다. 블록도 및/또는 흐름도 예시의 각각의 블록, 및 블록도 및/또는 흐름도 예시의 블록의 조합이 명시된 기능 또는 동작을 수행하는 특수 목적 하드웨어 기반 시스템, 또는 특수 목적 하드웨어와 컴퓨터 명령어의 조합에 의해 구현될 수 있음을 또한 유의해야 할 것이다
상기 내용이 본 발명의 실시형태에 관한 것이지만, 본 발명의 다른 및 추가의 실시형태는 이의 기본 범위를 벗어나지 않고 고안될 수 있고, 이의 범위는 다음의 청구범위에 의해 결정된다.

Claims (20)

  1. 가상 개인 비서(virtual personal assistant)에 대한 오디오 명령을 프로세싱하기 위한 컴퓨터 구현 방법으로서,
    오디오 입력 신호에서 검출된 음성을 복수의 음성 세그먼트로 분할하는 단계로서, 주어진 음성 세그먼트에 포함된 상기 음성은 단일 화자에 의해 발화되는, 상기 분할하는 단계;
    상기 복수의 음성 세그먼트에 포함된 상기 음성 세그먼트를 복수의 클러스터로 클러스터링하는 단계로서, 상기 복수의 클러스터에 포함된 각각의 클러스터는 상이한 화자에 의해 발화되는, 상기 클러스터링하는 단계;
    상기 복수의 클러스터에 포함된 제1 클러스터가 제1 승인된 화자에 의해 발화된다고 결정하는 단계; 및
    상기 제1 클러스터에 포함된 제1 오디오 명령으로 하여금 실행되게 하는 단계
    를 포함하는, 컴퓨터 구현 방법.
  2. 제1항에 있어서,
    상기 복수의 클러스터에 포함된 제2 클러스터가 제2 승인된 화자에 의해 발화된다고 결정하는 단계; 및
    상기 제2 클러스터에 존재하는 제2 오디오 명령으로 하여금 실행되게 하는 단계
    를 더 포함하는, 컴퓨터 구현 방법.
  3. 제1항에 있어서,
    상기 복수의 클러스터에 포함되고 제2 승인된 화자에 의해 발화된 제2 클러스터가 상기 제1 클러스터보다 높은 우선순위를 갖는다고 결정하는 단계; 및
    상기 제2 클러스터에 존재하는 제2 오디오 명령으로 하여금 상기 제1 오디오 명령이 실행되기 전에 실행되게 하는 단계
    를 더 포함하는, 컴퓨터 구현 방법.
  4. 제1항에 있어서,
    상기 복수의 클러스터에 포함된 제2 클러스터가 승인되지 않은 화자에 의해 발화된다고 결정하는 단계; 및
    상기 제2 클러스터에 포함된 제2 오디오 명령이 실행되는 것을 방지하는 단계
    를 더 포함하는, 컴퓨터 구현 방법.
  5. 제1항에 있어서,
    상기 복수의 클러스터에 포함된 제2 클러스터가 승인되지 않은 화자에 의해 발화된다고 결정하는 단계;
    승인되지 않은 화자로부터의 오디오 명령이 실행되도록 허용하는 모드가 활성화된다고 결정하는 단계; 및
    상기 제2 클러스터에 포함된 제2 오디오 명령으로 하여금 실행되게 하는 단계
    를 더 포함하는, 컴퓨터 구현 방법.
  6. 제1항에 있어서, 상기 제1 클러스터가 상기 제1 승인된 화자에 의해 발화된다고 결정하는 단계는,
    상기 제1 클러스터에 포함된 제1 음성 세그먼트와 연관된 하나 이상의 음성 특징을 복수의 승인된 화자와 연관된 복수의 음성 풋프린트(voice footprint)와 비교하는 단계; 및
    상기 제1 음성 세그먼트와 연관된 상기 하나 이상의 음성 특징이 상기 제1 승인된 화자와 연관되는 상기 복수의 음성 풋프린트에 포함된 제1 음성 풋프린트와 매칭한다고 결정하는 단계
    를 포함하는, 컴퓨터 구현 방법.
  7. 제1항에 있어서,
    상기 제1 승인된 화자에게 하나 이상의 발화를 말하도록 촉구하는 단계;
    상기 하나 이상의 발화를 말하는 상기 제1 승인된 화자의 오디오 입력 신호를 수신하는 단계;
    상기 오디오 입력 신호에 기초하여 상기 제1 승인된 화자의 하나 이상의 음성 특징을 결정하는 단계;
    상기 하나 이상의 음성 특징에 기초하여 상기 제1 승인된 화자와 연관된 음성 풋프린트를 생성하는 단계; 및
    상기 제1 승인된 화자의 상기 음성 풋프린트를 저장하는 단계
    를 더 포함하는, 컴퓨터 구현 방법.
  8. 제7항에 있어서,
    상기 제1 승인된 화자에 대한 사용자 식별자를 생성하는 단계; 및
    상기 사용자 식별자를 상기 음성 풋프린트와 연관시키는 단계
    를 더 포함하는, 컴퓨터 구현 방법.
  9. 제7항에 있어서, 상기 하나 이상의 발화는 상기 제1 승인된 화자에 의해 명시된 횟수만큼 언급된 고정된 발화를 포함하는, 컴퓨터 구현 방법.
  10. 제7항에 있어서, 상기 하나 이상의 발화는 명시된 시간 지속기간 동안 상기 제1 승인된 화자에 의해 언급된 발화를 포함하는, 컴퓨터 구현 방법.
  11. 디바이스로서,
    마이크로폰;
    명령어를 저장하는 하나 이상의 메모리; 및
    상기 하나 이상의 메모리에 결합된 하나 이상의 프로세서
    를 포함하되, 상기 하나 이상의 프로세서는, 상기 명령어를 실행할 때,
    상기 마이크로폰을 통해 수신된 오디오 입력 신호에서 검출된 음성을 복수의 음성 세그먼트로 분할하는 것으로서, 주어진 음성 세그먼트에 포함된 상기 음성은 단일 화자에 의해 발화되는, 상기 복수의 음성 세그먼트로 분할하고;
    상기 복수의 음성 세그먼트에 포함된 상기 음성 세그먼트를 복수의 클러스터로 클러스터링하는 것으로서, 상기 복수의 클러스터에 포함된 각각의 클러스터는 상이한 화자에 의해 발화되는, 상기 복수의 클러스터로 클러스터링하고;
    상기 복수의 클러스터에 포함된 제1 클러스터가 제1 승인된 화자에 의해 발화된다고 결정하고; 그리고
    상기 제1 클러스터에 포함된 제1 오디오 명령으로 하여금 실행되게 하는, 디바이스.
  12. 제11항에 있어서, 상기 하나 이상의 프로세서는 또한
    상기 복수의 클러스터에 포함된 제2 클러스터가 제2 승인된 화자에 의해 발화된다고 결정하고; 그리고
    상기 제2 클러스터에 존재하는 제2 오디오 명령으로 하여금 실행되게 하는, 디바이스.
  13. 제11항에 있어서, 상기 하나 이상의 프로세서는 또한
    상기 복수의 클러스터에 포함되고 제2 승인된 화자에 의해 발화된 제2 클러스터가 상기 제1 클러스터보다 높은 우선순위를 갖는다고 결정하고; 그리고
    상기 제2 클러스터에 존재하는 제2 오디오 명령으로 하여금 상기 제1 오디오 명령이 실행되기 전에 실행되게 하는, 디바이스.
  14. 제11항에 있어서, 상기 하나 이상의 프로세서는 또한
    상기 복수의 클러스터에 포함된 제2 클러스터가 승인되지 않은 화자에 의해 발화된다고 결정하고; 그리고
    상기 제2 클러스터에 포함된 제2 오디오 명령이 실행되는 것을 방지하는, 디바이스.
  15. 제11항에 있어서, 상기 하나 이상의 프로세서는 또한
    상기 복수의 클러스터에 포함된 제2 클러스터가 승인되지 않은 화자에 의해 발화된다고 결정하고;
    승인되지 않은 화자로부터의 오디오 명령이 실행되도록 허용하는 모드가 활성화된다고 결정하고; 그리고
    상기 제2 클러스터에 포함된 제2 오디오 명령으로 하여금 실행되게 하는, 디바이스.
  16. 제11항에 있어서, 상기 제1 클러스터가 상기 제1 승인된 화자에 의해 발화된다고 결정하기 위해, 상기 하나 이상의 프로세서는 또한
    상기 제1 클러스터에 포함된 제1 음성 세그먼트와 연관된 하나 이상의 음성 특징을 복수의 승인된 화자와 연관된 복수의 음성 풋프린트와 비교하고; 그리고
    상기 제1 음성 세그먼트와 연관된 상기 하나 이상의 음성 특징이 상기 제1 승인된 화자와 연관되는 상기 복수의 음성 풋프린트에 포함된 제1 음성 풋프린트와 매칭한다고 결정하는, 디바이스.
  17. 제11항에 있어서, 상기 하나 이상의 프로세서는 또한,
    상기 제1 승인된 화자에게 하나 이상의 발화를 말하도록 촉구하고;
    상기 하나 이상의 발화를 말하는 상기 제1 승인된 화자의 오디오 입력 신호를 수신하고;
    상기 오디오 입력 신호에 기초하여 상기 제1 승인된 화자의 하나 이상의 음성 특징을 결정하고;
    상기 하나 이상의 음성 특징에 기초하여 상기 제1 승인된 화자와 연관된 음성 풋프린트를 생성하고; 그리고
    상기 제1 승인된 화자의 상기 음성 풋프린트를 저장하는, 디바이스.
  18. 프로그램 명령어를 저장하는 하나 이상의 비일시적 컴퓨터 판독 가능한 매체로서, 상기 프로그램 명령어는 하나 이상의 프로세서에 의해 실행될 때, 상기 하나 이상의 프로세서로 하여금,
    오디오 입력 신호에서 검출된 음성을 복수의 음성 세그먼트로 분할하는 단계로서, 주어진 음성 세그먼트에 포함된 상기 음성은 단일 화자에 의해 발화되는, 상기 분할하는 단계;
    상기 복수의 음성 세그먼트에 포함된 상기 음성 세그먼트를 복수의 클러스터로 클러스터링하는 단계로서, 상기 복수의 클러스터에 포함된 각각의 클러스터는 상이한 화자에 의해 발화되는, 상기 클러스터링하는 단계;
    상기 복수의 클러스터에 포함된 제1 클러스터가 제1 승인된 화자에 의해 발화된다고 결정하는 단계; 및
    상기 제1 클러스터에 포함된 제1 오디오 명령으로 하여금 실행되게 하는 단계
    를 포함하는 단계들을 수행하게 하는, 하나 이상의 비일시적 컴퓨터 판독 가능한 매체.
  19. 제18항에 있어서, 상기 단계들은,
    상기 복수의 클러스터에 포함된 제2 클러스터가 제2 승인된 화자에 의해 발화된다고 결정하는 단계; 및
    상기 제2 클러스터에 존재하는 제2 오디오 명령으로 하여금 실행되게 하는 단계
    를 더 포함하는, 하나 이상의 비일시적 컴퓨터 판독 가능한 매체.
  20. 제18항에 있어서, 상기 단계들은,
    상기 복수의 클러스터에 포함되고 제2 승인된 화자에 의해 발화된 제2 클러스터가 상기 제1 클러스터보다 높은 우선순위를 갖는다고 결정하는 단계; 및
    상기 제2 클러스터에 존재하는 제2 오디오 명령으로 하여금 상기 제1 오디오 명령이 실행되기 전에 실행되게 하는 단계
    를 더 포함하는, 하나 이상의 비일시적 컴퓨터 판독 가능한 매체.
KR1020230106548A 2022-08-24 2023-08-14 다수의 소스로부터 가상 개인 비서 디바이스를 향해 지향된 명령을 승인하고 우선순위화하기 위한 기술 KR20240028298A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
IN202241048208 2022-08-24
IN202241048208 2022-08-24

Publications (1)

Publication Number Publication Date
KR20240028298A true KR20240028298A (ko) 2024-03-05

Family

ID=87557750

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020230106548A KR20240028298A (ko) 2022-08-24 2023-08-14 다수의 소스로부터 가상 개인 비서 디바이스를 향해 지향된 명령을 승인하고 우선순위화하기 위한 기술

Country Status (4)

Country Link
US (1) US20240071384A1 (ko)
EP (1) EP4328904A1 (ko)
KR (1) KR20240028298A (ko)
CN (1) CN117636844A (ko)

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA3184478A1 (en) * 2020-04-15 2021-10-21 Pindrop Security, Inc. Passive and continuous multi-speaker voice biometrics

Also Published As

Publication number Publication date
CN117636844A (zh) 2024-03-01
EP4328904A1 (en) 2024-02-28
US20240071384A1 (en) 2024-02-29

Similar Documents

Publication Publication Date Title
US11978440B2 (en) Wakeword detection
US20220093108A1 (en) Speaker identification
US20200234706A1 (en) Promoting voice actions to hotwords
TWI697793B (zh) 用於關鍵詞組識別的系統和方法
US9818407B1 (en) Distributed endpointing for speech recognition
KR102371697B1 (ko) 음성 기능 운용 방법 및 이를 지원하는 전자 장치
CN109376521B (zh) 用于发言人验证的方法和系统
US11551685B2 (en) Device-directed utterance detection
US10566012B1 (en) Direction based end-pointing for speech recognition
US10997971B2 (en) Wakeword detection using a secondary microphone
US10916249B2 (en) Method of processing a speech signal for speaker recognition and electronic apparatus implementing same
US11361764B1 (en) Device naming-indicator generation
US20210312911A1 (en) Wakeword detection using a secondary microphone
US11514900B1 (en) Wakeword detection
US11568878B2 (en) Voice shortcut detection with speaker verification
KR20230118643A (ko) 화자 의존적인 후속 액션들 및 웜 워드들
JP6459330B2 (ja) 音声認識装置、音声認識方法、及び音声認識プログラム
CN117378006A (zh) 混合多语种的文本相关和文本无关说话者确认
KR20230116908A (ko) 프리즈 워드
JP2018116206A (ja) 音声認識装置、音声認識方法及び音声認識システム
KR20240028298A (ko) 다수의 소스로부터 가상 개인 비서 디바이스를 향해 지향된 명령을 승인하고 우선순위화하기 위한 기술
JP2020148805A (ja) 音声認識システム、及び、音声認識方法
WO2020167385A1 (en) Wakeword detection using a secondary microphone
US20150039312A1 (en) Controlling speech dialog using an additional sensor
US20240212689A1 (en) Speaker-specific speech filtering for multiple users