KR20230018534A - 화자 임베딩(들)과 트레이닝된 생성 모델을 이용한 화자 분리 - Google Patents

화자 임베딩(들)과 트레이닝된 생성 모델을 이용한 화자 분리 Download PDF

Info

Publication number
KR20230018534A
KR20230018534A KR1020237002422A KR20237002422A KR20230018534A KR 20230018534 A KR20230018534 A KR 20230018534A KR 1020237002422 A KR1020237002422 A KR 1020237002422A KR 20237002422 A KR20237002422 A KR 20237002422A KR 20230018534 A KR20230018534 A KR 20230018534A
Authority
KR
South Korea
Prior art keywords
audio data
speaker
processing
additional
version
Prior art date
Application number
KR1020237002422A
Other languages
English (en)
Other versions
KR102535338B1 (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 구글 엘엘씨
Publication of KR20230018534A publication Critical patent/KR20230018534A/ko
Application granted granted Critical
Publication of KR102535338B1 publication Critical patent/KR102535338B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • 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
    • G10L15/00Speech recognition
    • G10L15/20Speech recognition techniques specially adapted for robustness in adverse environments, e.g. in noise, of stress induced speech
    • 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/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
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/16Speech classification or search using artificial neural networks
    • 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
    • G10L15/00Speech recognition
    • G10L15/26Speech to text systems
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/28Constructional details of speech recognition systems
    • G10L15/30Distributed recognition, e.g. in client-server systems, for mobile phones or network applications
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • 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
    • G10L25/00Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
    • G10L25/78Detection of presence or absence of voice signals
    • G10L2015/063
    • 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/225Feedback of the input speech
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L21/00Speech or voice signal processing techniques to produce another audible or non-audible signal, e.g. visual or tactile, in order to modify its quality or its intelligibility
    • G10L21/02Speech enhancement, e.g. noise reduction or echo cancellation
    • G10L21/0208Noise filtering

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Acoustics & Sound (AREA)
  • Computational Linguistics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Signal Processing (AREA)
  • Soundproofing, Sound Blocking, And Sound Damping (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Telephonic Communication Services (AREA)

Abstract

오디오 데이터의 처리를 가능하게 하는 화자 분리 기술은 오디오 데이터의 세분화 버전 각각이 단일 개별 인간 화자의 하나 이상의 발화를 분리하는 오디오 데이터의 하나 이상의 세분화 버전을 생성한다. 다양한 구현은 단일 인간 화자에 대한 화자 임베딩을 생성하고, 트레이닝된 생성 모델을 사용하여 오디오 데이터를 처리하고, 처리하는 동안 상기 트레이닝된 생성 모델의 은닉 계층들에 대한 활성화를 결정하는데 화자 임베딩을 사용함으로써 단일 화자의 발화(들)를 분리하는 오디오 데이터의 세분화 버전을 생성한다. 처리에 기초하여 상기 트레이닝된 생성 모델을 통해 출력이 생상되고 그 출력은 오디오 데이터의 세분화 버전이다.

Description

화자 임베딩(들)과 트레이닝된 생성 모델을 이용한 화자 분리{SPEAKER DIARIZATION USING SPEAKER EMBEDDING(S) AND TRAINED GENERATIVE MODEL}
화자 분리(speaker diarization)는 입력 오디오 스트림을 화자 신원에 따라 동종 세그먼트로 분할하는 프로세스이다. 다중 화자 환경에서 "누가 언제 말했지"라는 질문에 답변한다. 예를 들어, 화자 분리는 입력 오디오 스트림의 제1 세그먼트가 제1 인간 화자에 기인하고(특히 제1 인간 화자가 누구인지 식별하지 않음), 입력 오디오 스트림의 제2 세그먼트가 이질적인 제2 인간 화자에 기인하며(특히 제1 인간 화자가 누구인지 식별하지 않음), 입력 오디오 스트림의 제3 세그먼트가 제1 인간 화자에 기인함을 식별하는데 사용될 수 있다. 화자 분리에는 멀티미디어 정보 검색, 화자 턴(turn) 분석 및 오디오 처리를 포함하는 다양한 애플리케이션이 있다.
전형적인 화자 분리 시스템은 일반적으로 4 단계 즉 (1) 음성 분할(speech segmentation) : 입력 오디오가 단일 화자를 갖는다고 가정되는 짧은 섹션으로 분할되고 비-음성 섹션은 필터링되며; (2) 오디오 임베딩 추출 : 분할된 섹션으로부터 특정 특징이 추출되고; (3) 클러스터링 : 화자의 수가 결정되고 추출된 오디오 임베딩이 이들 화자로 클러스터링되고; 및 선택적으로 (4) 재분할 : 최종 분리 결과를 생성하기 위해 클러스터링 결과가 더욱 세분화된다.
이러한 전형적인 화자 분리 시스템에서, 분리는 주어진 세그먼트 동안 말하는 다수의 화자의 발생을 정확하게 인식하지 못한다. 오히려, 이러한 전형적인 시스템은 주어진 세그먼트를 화자 중 한 명에게만 귀속시키거나 지정된 세그먼트를 화자 중 하나로 귀속시키지 않을 것이다. 이는 부정확한 분리를 유발하고 분리 결과에 의존할 수 있는 다른 애플리케이션에 악영향을 미칠 수 있다.
더욱이, 이러한 전형적인 화자 분리 시스템을 사용하면, 오류가 각 단계에서 유발되어 추가 단계로 전파될 수 있으며, 이오 인해 잘못된 분리 결과가 발생하여 잘못된 분리 결과에 의존할 수 있는 추가 애플리케이션에 악영향을 미칠 수 있다. 예를 들어, 긴 세그먼트의 저해상도 및/또는 정확한 오디오 임베딩을 생성하기에 오디오가 충분치 않은 짧은 세그먼트의 결과로 음성 분할에 오류가 유발될 수 있다. 다른 예로, 오디오 임베딩은 임의의 글로벌 정보를 사용하지 않고 로컬에서 생성될 수 있는데, 이는 추가로 또는 대안적으로 오류를 유발할 수 있다. 또 다른 예로서, 오디오 임베딩의 클러스터링은 정확도가 낮아야 하는 비지도 학습을 포함하므로 추가로 또는 대안적으로 오류를 유발할 수 있다.
오디오 데이터의 하나 이상의 세분화(refined) 버전을 생성하기 위해 오디오 데이터 시퀀스의 처리를 가능하게 하는 화자 분리 기술이 본 명세서에 설명되어 있으며, 오디오 데이터의 세분화 버전 각각은 단일 개별 인간 화자의 하나 이상의 발화를 분리하여, 이에 의해 오디오 데이터 시퀀스의 어느 부분(들)이 개별 인간 화자(들)에 대응하는지 결정할 수 있게 한다. 예를 들어, 제1 인간 화자의 제1 발화(들), 제2 인간 화자의 제2 발화(들) 및 다양한 배경 소음 발생을 포함하는 오디오 데이터 시퀀스를 가정한다. 본 명세서에 개시된 구현은 제1 인간 화자의 제1 발화(들)만을 포함하고 제2 발화(들)와 배경 소음을 배제하는 제1 세분화 오디오 데이터를 생성하는데 이용될 수 있다. 더욱이, 제2 인간 화자의 제2 발화(들)만을 포함하고 제1 발화(들)와 배경 소음을 배제하는 제2 세분화 오디오 데이터가 생성될 수 있다. 또한, 이러한 구현에서, 제1 발화(들) 및 제2 발화(들)는 오디오 데이터 시퀀스에서 제1 및 제2 발화(들) 중 하나 이상이 오버랩되는 경우에도 분리될 수 있다.
다양한 구현은 단일 인간 화자에 대한 화자 임베딩을 생성하고, 트레이닝된 생성 모델(generative model)을 사용하여 오디오 데이터를 처리하고, 처리 중에 상기 트레이닝된 생성 모델의 은닉 계층들에 대한 활성화를 결정하는데 화자 임베딩을 사용함으로써 단일 인간 화자의 발화(들)를 분리하는 오디오 데이터의 세분화 버전을 생성한다. 출력은 처리에 기초하여 상기 트레이닝된 생성 모델을 통해 순차적으로 생성되며 출력은 오디오 데이터의 세분화 버전이다.
단일 인간 화자에 대한 화자 임베딩을 생성할 때, 인간 화자에 대응하는 화자 오디오 데이터의 하나 이상의 인스턴스는 트레이닝된 화자 임베딩 모델을 사용하여 처리되어 하나 이상의 개별 출력 인스턴스를 생성할 수 있다. 화자 임베딩은 출력의 하나 이상의 개별 인스턴스에 기초하여 생성될 수 있다. 트레이닝된 화자 임베딩 모델은 임의의 길이의 개별 오디오 데이터 프레임의 특징 시퀀스를 입력으로 받아들이고, 그 입력에 기초하여 출력으로 개별 임베딩을 생성하는데 사용될 수 있는 순환 신경망(RNN) 모델과 같은 기계 학습 모델일 수 있다. 개별 임베딩을 생성하기 위해 트레이닝된 화자 임베딩 모델을 사용하여 처리되는 시퀀스의 오디오 데이터 프레임의 각 특징은 25 밀리 초 또는 다른 지속 시간 부분과 같은 오디오 데이터의 개별 인스턴스의 개별 부분에 기초할 수 있다. 오디오 데이터 프레임의 특징은 예를 들어 MFCC(Mel-Frequency Cepstral) 계수 및/또는 오디오 데이터 프레임의 다른 특징일 수 있다. 트레이닝된 화자 임베딩 모델이 RNN 모델인 경우, RNN 모델은 입력이 순차적으로 적용될 수 있는 하나 이상의 메모리 유닛을 각각 포함하는 하나 이상의 메모리 계층을 포함하고, 적용된 입력의 각 반복에서, 메모리 유닛(들)은 해당 반복의 입력에 기초하고 현재의 은닉 상태(이전 반복(들)의 입력(들)에 기초할 수 있음)에 기초하여 새로운 은닉 상태를 계산하는데 이용될 수 있다. 일부 구현에서, 메모리 유닛은 장단기(LSTM) LSTM 유닛일 수 있다. 일부 구현에서, 게이트된 순환 유닛("GRU")과 같은 추가 또는 대체 메모리 유닛(들)이 이용될 수 있다.
주어진 화자에 대한 화자 임베딩을 생성하는 일 예로서, 화자 임베딩은 주어진 화자가 다수의 발화를 말하는 등록 프로세스 동안 생성될 수 있다. 각 발화는 (텍스트 종속적인) 동일한 문구이거나 (텍스트 독립적인) 상이한 문구일 수 있다. 개별 발화를 말하는 주어진 화자의 각 인스턴스에 대응하는 오디오 데이터의 특징은 화자 임베딩 모델을 통해 처리되어 개별 값 벡터인 개별 출력을 생성할 수 있다. 예를 들어, 제1 발화에 대한 제1 오디오 데이터는 처리되어 제1 값 벡터를 생성할 수 있고, 제2 발화에 대한 제2 오디오 데이터는 처리되어 제2 값 벡터를 생성할 수 있다. 그런 다음 화자 임베딩이 값 벡터에 기초하여 생성될 수 있다. 예를 들어, 화자 임베딩은 그 자체로 개별 값 벡터의 중심 또는 기타 함수와 같은 값 벡터일 수 있다.
사전 생성된(예를 들어, 등록 프로세스 동안) 주어진 화자에 대한 화자 임베딩을 이용하는 구현에서, 본 명세서에 설명된 기술은 주어진 화자의 발화(들)를 분리하는 오디오 데이터의 세분화 버전을 생성하는데 사전 생성된 화자 임베딩을 이용할 수 있으며, 오디오 데이터는 등록 프로세스와 관련된 클라이언트 디바이스 및/또는 디지털 시스템(예를 들어, 자동화 어시스턴트)을 통해 사용자로부터 수신된다. 예를 들어, 오디오 데이터가 주어진 사용자의 클라이언트 디바이스를 통해 수신되고 및/또는 주어진 사용자의 검증(예를 들어, 이전 발화(들)의 음성 지문 및/또는 다른 생체 인식 검증(들) 사용) 후에 수신되는 경우, 주어진 사용자에 대한 화자 임베딩은 실시간으로 오디오 데이터의 세분화 버전을 생성하는데 활용될 수 있다. 이러한 세분화 버전은 세분화된 오디오 데이터의 음성-텍스트 변환, 오디오 데이터의 세그먼트(들)가 사용자로부터의 것인지 검증 및/또는 본 명세서에 설명된 다른 용도(들)와 같은 다양한 용도을 위해 활용될 수 있다.
일부 추가적 또는 대안적 구현에서, 오디오 데이터의 세분화 버전을 생성하는데 사용되는 화자 임베딩은 (세분화될) 오디오 데이터 자체의 하나 이상의 인스턴스에 기초할 수 있다. 예를 들어, 음성 활동 검출기(VAD)는 오디오 데이터에서 음성 활동의 제1 인스턴스를 결정하는데 활용될 수 있으며, 제1 인스턴스의 일부(들)는 제1 인간 화자에 대한 제1 화자 임베딩을 생성하는데 활용될 수 있다. 예를 들어, 제1 화자 임베딩은 화자 임베딩 모델을 사용하여, 음성 활동의 제1 인스턴스(음성 활동의 제1 인스턴스는 단일 화자로부터 발생된 것으로 가정될 수 있음)의 제1 X(예를 들어, 0.5, 1.0, 1.5, 2.0) 초(들)의 특징을 처리하는 것에 기초하여 생성될 수 있다. 예를 들어, 처리에 기초하여 출력으로서 생성된 값들의 벡터는 제1 화자 임베딩으로서 이용될 수 있다. 그런 다음 제1 화자 임베딩은 본 명세서에 설명된 바와 같이, 제1 화자의 발화(들)를 분리하는 오디오 데이터의 제1 세분화 버전을 생성하는데 이용될 수 있다. 이러한 구현 중 일부에서, 오디오 데이터의 제1 세분화 버전은 제1 화자의 발화(들)에 대응하는 오디오 데이터의 해당 세그먼트(들)를 결정하는데 이용될 수 있으며, VAD는 해당 세그먼트의 외부에서 발생하는 오디오 데이터에서 음성 활동의 추가 인스턴스(있는 경우)를 결정하는데 이용될 수 있다. 추가 인스턴스가 결정되는 경우, 화자 임베딩 모델을 사용하는 추가 인스턴스의 처리 부분(들)에 기초하여 제2 인간 화자에 대해 제2 화자 임베딩이 생성될 수 있다. 그런 다음 제2 화자 임베딩은 본 명세서에 기술된 바와 같이 제2 화자의 발화(들)를 분리하는 오디오 데이터의 제2 세분화 버전을 생성하는데 사용될 수 있다. 이 프로세스는 예를 들어 추가 인간 화자로부터 발생한 추가 발화가 오디오 데이터에서 더 이상 식별되지 않을 때까지 계속될 수 있다. 따라서, 이들 구현에서, 오디오 데이터의 세분화 버전(들)을 생성하는데 사용되는 화자 임베딩은 오디오 데이터 자체로부터 생성될 수 있다.
화자 임베딩을 생성하는데 사용되는 기술(들)에 관계없이, 본 명세서에 개시된 구현들은 트레이닝된 생성 모델을 사용하여 오디오 데이터 및 화자 임베딩을 처리하여, 화자 임베딩에 대응하는 화자의 발화(있는 경우)를 분리하는 오디오 데이터의 세분화 버전을 생성한다. 예를 들어, 오디오 데이터는 트레이닝된 생성 모델을 사용하여 순차적으로 처리될 수 있으며, 화자 임베딩은 순차적으로 처리되는 동안 상기 트레이닝된 생성 모델의 계층들에 대한 활성화를 결정하는데 사용된다. 트레이닝된 생성 모델은 시퀀스 대 시퀀스 모델일 수 있으며, 오디오 데이터의 세분화 버전은 트레이닝된 생성 모델의 직접 출력으로서 순차적으로 생성될 수 있다. 트레이닝된 생성 모델의 계층들은 은닉 계층이며, 예를 들어 확장된 인과 컨볼루션 계층의 스택을 포함할 수 있다. 확장된 인과 컨볼루션 계층의 스택은 컨볼루션 계층들의 수용 필드가 깊이에 따라 지수적으로 증가할 수 있게 하여, 오디오 신호의 장거리 시간 종속성을 모델링하는데 유용할 수 있다. 다양한 구현에서, 트레이닝된 생성 모델을 사용하여 처리된 오디오 데이터는 파형 레벨에 있을 수 있고 트레이닝된 생성 모델을 사용하여 생성된 세분화된 오디오 데이터는 또한 파형 레벨에 있을 수 있다. 일부 구현에서, 트레이닝된 생성 모델은 WaveNet 모델 아키텍처를 가지며 본 명세서에 설명된 기술에 따라 트레이닝되었다.
다양한 구현에서 트레이닝된 생성 모델은 조건부 분포 p(x|h)를 모델링하도록 트레이닝되며, 여기서 x는 오디오 데이터의 세분화 버전을 나타내고, h는 화자 임베딩을 나타낸다. 보다 공식적으로, p(x|h)는 다음과 같이 나타낼 수 있다.
Figure pat00001
여기서 x1… xt-1은 (소스 오디오 데이터에 컨디셔닝될 수 있는) T개의 세분화된 오디오 샘플 예측의 시퀀스를 나타내고, xt는 다음의 세분화된 오디오 샘플 예측(즉, 오디오 데이터의 세분화 버전에 대한 다음 오디오 샘플 예측)을 나타낸다. 위에서 언급한 바와같이, h는 화자 임베딩을 나타내고 크기가 고정된 실제값의 벡터일 수 있다.
또한 다양한 구현에서 트레이닝된 생성 모델의 하나 이상의 계층 각각에서(예를 들어, 각각의 인과적 컨벌루션 계층에서) 출력 필터는 다음의 방정식으로 나타낼 수 있다.
Figure pat00002
여기서 W는 필터를 나타내고 V는 다른 필터를 나타낸다. 따라서, 화자 임베딩(h)과 오디오 샘플(x)의 결합은, h를 필터(V)로 변환하고, 오디오 샘플(x)을 필터(W)로 변환하고, 두 연산의 결과를 합산함으로써 수행된다. 두 연산의 결과(z)는 다음 계층의 입력(x)이 된다. 생성 모델의 트레이닝 중에 학습된 생성 모델의 가중치에는 필터(W 및 V)의 가중치가 포함될 수 있다. 생성 모델 및 그의 트레이닝에 대한 추가 설명이 본 명세서에 제공된다.
주어진 화자의 주어진 화자 임베딩을 고려하여 주어진 오디오 데이터를 처리하기 위해 트레이닝된 생성 모델을 이용하는 것은, 주어진 오디오 데이터가 주어진 화자의 발화(들)만 포함된 경우 주어진 오디오 데이터와 동일한 세분화된 오디오 데이터가 생성될 것이다. 또한, 주어진 오디오 데이터에 주어진 화자의 임의의 발화가 없는 경우 널(null)/제로(zero)인 세분화된 오디오 데이터가 생성될 것이다. 더 나아가, 주어진 오디오 데이터가 주어진 화자의 발화(들) 및 추가 사운드(들) (예를 들어, 다른 인간화자(들)의 오버랩/비-오버랩하는 발화(들))를 포함하는 경우, 주어진 화자의 발화(들)를 분리하는 동안 추가 사운드(들)를 배제하는 세분화된 오디오 데이터를 생성될 것이다.
오디오 데이터의 세분화 버전(들)은 다양한 컴포넌트에 의해 다양한 목적을 위해 사용될 수 있다. 하나의 예로서, 음성-텍스트 변환 처리가 단일 인간 화자의 발화(들)를 분리하는 오디오 데이터의 세분화 버전에 대해 수행될 수 있다. 오디오 데이터의 세분화 버전에 대해 음성-텍스트 변환 처리를 수행하는 것은 예를 들어 배경 소음, 다른 사용자의 발화(들)(오버랩하는 발화들)가 없는 세분화 버전으로 인해, 오디오 데이터(또는 오디오 데이터의 대체 전처리된 버전)에 대한 처리를 수행하는 것에 비해 음성-텍스트 변환 처리의 정확도를 향상시킬 수 있다. 게다가, 오디오 데이터의 세분화 버전에 대한 음성-텍스트 변환 처리는 결과 텍스트가 단일 화자에 속하도록 보장할 수 있다. 향상된 정확도 및 결과 텍스트가 단일 화자에게 속하도록 보장하는 것은 추가적인 기술적 이점을 직접적으로 얻을 수 있다. 예를 들어, 텍스트의 향상된 정확도는 결과 텍스트에 의존하는 하나 이상의 다운 스트림 컴포넌트(예를 들어, 자연어 처리기(들), 텍스트의 자연어 처리에 근거하여 결정된 의도(들) 및 파라미터(들)에 기초하여 응답을 생성하는 모듈(들))의 정확도를 높일 수 있다. 또한, 예를 들어, 자동화 어시스턴트 및/또는 기타 대화형 대화 시스템과 결합하여 구현되는 경우, 텍스트의 향상된 정확도는 대화형 대화 시스템이 음성 발화를 텍스트로 변환하지 못하거나 및/또는 대화형 대화 시스템이 음성 발화를 텍스트로 잘못 변환하여, 이에 의해 대화 시스템에 의해 발화에 대한 잘못된 응답을 제공하게 될 가능성을 줄일 수 있어, 이것은 사용자가 대화형 대화 시스템에 음성 발화 및/또는 다른 설명(clarification, 해명)(들)을 다시 제공하는데 필요한 대화 턴의 양을 줄일 수 있다.
추가적으로 또는 대안적으로, 오디오 데이터의 세분화 버전(들)은 대응하는 인간 화자(들)에 오디오 데이터의 세그먼트(들)를 할당하는데 이용될 수 있다. 인간 화자에게 세그먼트를 할당하는 것은 의미론적으로 의미가 있거나(예를 들어, 화자의 속성을 식별함), 단순히 하나 이상의 의미론적으로 의미가 없는 화자 라벨들 중 어느 것이 세그먼트가 속하는 라벨인지를 나타낼 수 있다. 본 명세서에 개시된 구현들은 다른 화자 분리 기술에 비해 더 강력하고 및/또는 보다 정확한 할당을 생성할 수 있다. 예를 들어, 배경란에서 언급된 것과 같은 다른 기술을 사용하여 유발된 다양한 오류는 본 명세서에 개시된 구현들의 사용을 통해 완화될 수 있다. 추가적으로 또는 대안적으로, 본 명세서에 개시된 구현들의 사용은 다양한 다른 화자 분리 기술로 달성될 수 없는 둘 이상의 인간 화자 각각의 개별 발화를 포함하는 세그먼트(들)의 결정을 가능하게 할 수 있다. 또한, 추가적으로 또는 대안적으로, 본 명세서에 개시된 구현들은 이전의 화자 분리 기술과 비교하여 더욱 계산적으로 효율적인 방식으로 화자 분리가 수행되도록 할 수 있다. 예를 들어, 이전 기술의 계산 집약적 클러스터링은 본 명세서에 개시된 다양한 구현에서 제거될 수 있다.
다양한 구현에서, 본 명세서에 설명된 기술들은 화자 분리 결과를 생성하고, 자동 음성 인식(ASR)(예를 들어, 음성-텍스트 변환 처리) 및/또는 음성 처리 요청의 일부로서 (예를 들어, 애플리케이션 프로그래밍 인터페이스(API)를 통해) 제출된 오디오 데이터에 대한 다른 처리를 수행하는데 사용된다. 이들 구현 중 일부에서, 오디오 데이터에 대한 처리 결과는 음성 처리 요청에 응답하여 생성되고, 음성 처리 요청을 전송한 컴퓨팅 디바이스로 다시 전송되거나 관련 컴퓨팅 디바이스로 다시 전송된다.
다양한 구현에서, 본 명세서에 설명된 기술들은 자동화 어시스턴트를 위한 자동화 어시스턴트 인터페이스를 포함하는 클라이언트 디바이스의 마이크로폰(들)에 의해 캡처된 오디오 데이터에 대한 화자 분리 결과를 생성하는데 사용된다. 예를 들어, 오디오 데이터는 하나 이상의 화자(들)로부터의 음성 발화(들)를 캡처하는 오디오 데이터의 스트림일 수 있으며, 본 명세서에 설명된 기술들은 화자 분리 결과를 생성하고, 자동 음성 인식(ASR) 및/또는 오디오 데이터 스트림에 대한 다른 처리를 수핸하는데 사용될 수 있다.
위의 설명은 본 명세서에 개시된 다양한 구현의 개요로서 제공된다. 이러한 다양한 구현 및 추가 구현이 본 명세서에서 보다 자세히 설명된다.
일부 구현에서, 인간 화자에 대한 화자 임베딩을 생성하는 단계를 포함하는 방법이 제공된다. 인간 화자에 대한 화자 임베딩을 생성하는 단계는 트레이닝된 화자 임베딩 모델을 사용하여 인간 화자에 대응하는 화자 오디오 데이터의 하나 이상의 인스턴스를 처리하는 단계와, 트레이닝된 화자 임베딩 모델을 사용하여 화자 오디오 데이터의 하나 이상의 인스턴스 각각을 처리하는 것에 근거하여 각각 생성된 하나 이상의 출력 인스턴스에 기초하여 화자 임베딩을 생성하는 단계를 포함한다. 방법은 인간 화자의 하나 이상의 발화를 캡처하고 또한 인간 화자로부터 발생되지 않은(not from) 하나 이상의 추가 사운드를 캡처하는 오디오 데이터를 수신하는 단계와; 오디오 데이터의 세분화 버전을 생성하는 단계와, 상기 오디오 데이터의 세분화 버전은 인간 화자로부터 발생되지 않은 하나 이상의 추가 사운드로부터 인간 화자의 하나 이상의 발화를 분리하며; 그리고 오디오 데이터의 세분화 버전에 대해 추가 처리를 수행하는 단계를 더 포함한다.
이들 및 다른 구현은 다음 특징 중 하나 이상을 포함할 수 있다.
일부 구현에서, 오디오 데이터의 세분화 버전을 생성하는 단계는, 트레이닝된 생성 모델을 사용하여 오디오 데이터를 순차적으로 처리하고 순차적으로 처리하는 동안 상기 트레이닝된 생성 모델의 계층들에 대한 활성화를 결정하는데 화자 임베딩을 사용하는 단계와; 그리고 순차적 처리에 기초하여 트레이닝된 생성 모델의 직접 출력으로서, 오디오 데이터의 세분화 버전을 순차 생성하는 단계를 포함한다.
일부 구현에서, 추가 처리를 수행하는 단계는 인간 화자의 하나 이상의 발화에 대한 예측(된) 텍스트를 생성하기 위해 오디오 데이터의 세분화 버전에 대해 음성-텍스트 변환 처리를 수행하는 단계; 및/또는 오디오 데이터의 세분화 버전에서 적어도 오디오의 임계 레벨에 대응하는 하나 이상의 시간(temporal) 부분에 기초하여 오디오 데이터의 하나 이상의 시간 부분에 단일의 주어진 화자 라벨을 할당하는 단계를 포함한다.
일부 구현에서, 방법은 클라이언트 디바이스에서 자동화 어시스턴트 클라이언트를 호출하는 단계를 포함하는 것으로 제공되고, 자동화 어시스턴트 클라이언트를 호출하는 것은 수신된 사용자 인터페이스 입력에서 하나 이상의 호출 큐를 검출하는 것에 응답한다. 방법은 자동화 어시스턴트 클라이언트를 호출하는 것에 응하여: 클라이언트 디바이스의 하나 이상의 마이크로폰을 통해 수신된 초기 음성 입력의 특정 처리를 수행하는 단계; 초기 음성 입력의 특정 처리에 기초하여 응답 액션을 생성하는 단계; 응답 액션의 수행을 야기하는 단계; 및 클라이언트 디바이스에서 자동화 어시스턴트 클라이언트에 대해 계속 청취 모드(continued listening mode)가 활성화되었는지 결정하는 단계를 더 포함한다. 방법은 계속 청취 모드가 활성화되어 있다는 것에 응답하여: 응답 액션의 적어도 일부의 수행을 유발한 후 추가 음성 입력을 자동으로 모니터링하는 단계; 자동으로 모니터링하는 동안 오디오 데이터를 수신하는 단계; 및 오디오 데이터가 초기 음성 입력을 제공한 동일한 인간 화자의 임의의 추가 음성 입력을 포함하는지 여부를 결정하는 단계를 더 포함한다. 오디오 데이터가 동일한 인간 화자로부터의 추가 음성 입력을 포함하는지 여부를 결정하는 단계는 초기 음성 입력을 제공한 인간 화자에 대한 화자 임베딩을 식별하는 단계와; 인간 화자로부터의 임의의 오디오 데이터를 분리하는 오디오 데이터의 세분화 버전을 생성하는 단계로서, 상기 오디오 데이터의 세분화 버전을 생성하는 단계는, 트레이닝된 생성 모델을 사용하여 오디오 데이터를 처리하고 그 처리 중에 상기 트레이닝된 생성 모델의 계층들에 대한 활성화를 결정하는데 화자 임베딩을 사용하는 단계, 및 처리에 기초하여 상기 트레이닝된 생성 모델의 직접 출력으로서, 오디오 데이터의 세분화 버전을 생성하는 단계를 포함하고; 그리고 오디오 데이터의 세분화 버전의 임의의 부분이 적어도 오디오의 임계 레벨에 대응하는지 여부에 기초하여, 오디오 데이터가 동일한 인간 화자로부터의 임의의 추가 음성 입력을 포함하는지 여부를 결정하는 단계를 포함한다. 방법은 오디오 데이터가 동일한 인간 화자로부터의 임의의 추가 음성 입력을 포함하지 않는다는 결정에 응답하여: 오디오 데이터에 대한 특정 처리의 적어도 일부의 수행; 및 오디오 데이터에 맞춰진 임의의 추가 응답 액션의 생성 중 하나 또는 둘 모두를 억제하는 단계를 더 포함한다.
일부 구현에서, 방법은 클라이언트 디바이스의 하나 이상의 마이크로폰을 통해 캡처된 오디오 데이터 스트림을 수신하는 단계; 클라이언트 디바이스의 로컬 저장소로부터, 클라이언트 디바이스의 인간 사용자에 대한 이전에 생성된 화자 임베딩을 검색하는 단계; 오디오 데이터의 스트림을 수신하는 동안, 오디오 데이터의 세분화 버전을 생성하는 단계, 상기 오디오 데이터의 세분화 버전은 인간 화자로부터 발생되지 않은 임의의 추가 사운드로부터 인간 사용자의 하나 이상의 발화를 분리하고, 상기 오디오 데이터의 세분화 버전을 생성하는 단계는: 트레이닝된 생성 모델을 사용하여 오디오 데이터를 처리하고 (처리 중에 상기 트레이닝된 생성 모델의 계층들에 대한 활성화를 결정하는데) 화자 임베딩을 사용하는 단계와, 그리고 처리에 기초하여 상기 트레이닝된 생성 모델의 직접 출력으로서, 오디오 데이터의 세분화 버전을 생성하는 단계를 포함하는 것으로 제공된다. 방법은 오디오 데이터의 세분화 버전에 대해 로컬 음성-텍스트 변환 처리 수행하는 단계 및/또는 오디오 데이터의 세분화 버전에 대해 원격 음성-텍스트 변환 처리가 수행되도록하기 위해 오디오 데이터의 세분화 버전을 원격 시스템으로 전송하는 단계를 더 포함한다.
일부 구현에서, 타겟 인간 화자의 임의의 발화를 분리하는 오디오 데이터의 세분화 버전을 생성하기 위해 기계 학습 모델을 트레이닝하는 방법이 제공된다. 이 방법은 제1 인간 화자만의 음성 입력을 포함하는 오디오 데이터의 인스턴스를 식별하는 단계; 제1 인간 화자에 대한 화자 임베딩을 생성하는 단계; 제1 인간 화자의 임의의 음성 입력은 없고 적어도 하나의 추가 인간 화자의 음성 입력을 포함하는 오디오 데이터의 추가 인스턴스를 식별하는 단계; 오디오 데이터의 인스턴스와 오디오 데이터의 추가 인스턴스를 결합하는 오디오 데이터의 혼합 인스턴스를 생성하는 단계; 기계 학습 모델을 사용하여 오디오 데이터의 혼합 인스턴스를 처리하고 처리 중에 기계 학습 모델의 계층들에 대한 활성화를 결정하는데 화자 임베딩을 사용하는 단계; 처리에 기초하여 기계 학습 모델의 직접 출력으로서, 오디오 데이터의 예측 세분화 버전을 생성하는 단계; 오디오 데이터의 예측 세분화 버전을 제1 인간 화자만의 음성 입력을 포함하는 오디오 데이터의 인스턴스와 비교하는 것에 기초하여 손실을 생성하는 단계; 및 손실에 기초하여 기계 학습 모델의 하나 이상의 가중치를 업데이트하는 단계를 포함한다.
또한, 일부 구현은 하나 이상의 컴퓨팅 디바이스의 하나 이상의 프로세서를 포함하며, 하나 이상의 프로세서는 관련 메모리에 저장된 명령들을 실행하도록 작동 가능하며, 명령들은 본 명세서에 설명된 방법들 중 임의의 방법의 수행을 유발하도록 구성된다. 일부 구현은 또한 본 명세서에 설명된 방법들 중 임의의 방법을 수행하기 위해 하나 이상의 프로세서에 의해 실행 가능한 컴퓨터 명령들을 저장하는 하나 이상의 비-일시적 컴퓨터 판독 가능 저장 매체를 포함한다.
전술한 개념들 및 본 명세서에 더 상세히 설명된 추가 개념의 모든 조합은 본 명세서에 개시된 주제의 일부인 것으로 고려된다는 것을 이해해야 한다. 예를 들어, 본 개시의 끝에 나타나는 청구된 주제의 모든 조합은 본 명세서에 개시된 주제의 일부인 것으로 고려된다.
도 1은 본 명세서에 개시된 다양한 구현에 따른 생성 모델을 트레이닝시키는 예를 도시한다.
도 2는 도 1의 생성 모델을 트레이닝하는데 사용되는 트레이닝 인스턴스에서 사용하기 위해 혼합 오디오 데이터를 생성하기 위해 지상 실측 오디오 데이터 및 추가 오디오 데이터를 사용하는 예를 도시한다.
도 3은 본 명세서에 개시된 다양한 구현에 따른 생성 모델을 트레이닝하기 위한 트레이닝 인스턴스를 생성하는 예시적인 방법을 나타내는 흐름도를 도시한다.
도 4는 본 명세서에 개시된 다양한 구현에 따른 생성 모델을 트레이닝시키는 예시적인 방법을 나타내는 흐름도를 도시한다.
도 5는 오디오 데이터, 화자 임베딩 및 생성 모델을 사용하여 오디오 데이터의 세분화 버전을 생성하는 예를 도시한다.
도 6a는 본 명세서에 개시된 다양한 구현에 따른 오디오 데이터, 화자 임베딩 및 생성 모델을 사용하여 오디오 데이터의 세분화 버전을 생성하는 예시적인 방법을 나타내는 흐름도를 도시한다.
도 6b는 에시적인 오디오 데이터 및 도 6a의 예시적인 방법에 기초하여 생성될 수 있는 오디오 데이터의 세분화 버전을 도시한다.
도 7a는 본 명세서에 개시된 다양한 구현에 따른 오디오 데이터, 화자 임베딩 및 생성 모델을 사용하여 오디오 데이터의 다수의 세분화 버전을 생성하는 예시적인 방법을 나타내는흐름도를 도시한다.
도 7b는 예시적인 오디오 데이터 및 도 7b의 예시적인 방법에 기초하여 생성될 수 있는 오디오 데이터의 세분화 버전을 도시한다.
도 8은 본 명세서에 개시된 다양한 구현이 수행될 수 있는 예시적인 환경의 블록도이다.
도 9는 본 명세서에 개시된 다양한 구현이 수행될 수 있는 다른 예시적인 환경의 블록도이다.
도 10은 본 명세서에 개시된 다양한 구현에 따른 트레이닝된 생성 모델에 의해 수행될 수 있는 처리의 예를 예시한다.
도 11은 컴퓨팅 디바이스의 예시적인 아키텍처를 도시한다.
처음 도 1로 돌아 가면, 생성 모델(156)을 트레이닝하는 예가 도시되어 있다. 생성 모델(156)은 확장된 인과(dilated casual) 컨벌루션 계층의 스택을 포함하는 은닉층들을 갖는 시퀀스-투-시퀀스 모델일 수 있다. 확장된 인과 컨볼루션 계층의 스택은 컨볼루션 계층의 수용 필드가 깊이에 따라 지수적으로 증가할 수 있게 하여 오디오 신호의 장거리 시간 종속성을 모델링하는데 유용할 수 있다. 일부 구현에서 트레이닝된 생성 모델에는 WaveNet 모델 아키텍처가 있다.
생성 모델(156)은 오디오 데이터 처리 및 타겟 인간 화자의 화자 임베딩에 기초하여, 타겟 화자의 발화(있는 경우)를 분리하는 오디오 데이터의 세분화 버전을 생성하는데 사용되도록 트레이닝된다. 본 명세서에 설명된 바와 같이, 생성 모델(156)은 각 반복에서 입력으로서 해당 반복에 대한 오디오 데이터의 개별 시퀀스를 수용하고(여기서 시퀀스에서 오디오 데이터의 시간 단계의 수는 생성 모델의 수용 필드의 크기에 따라 달라짐), 각 반복에서 출력으로서 오디오 데이터의 세분화 (refined) 버전의 시퀀스의 대응하는 시간 단계를 생성하는데 사용되도록 드레이닝될 수 있다. 오디오 데이터의 세분화 버전 시퀀스의 대응하는 시간 단계는 오디오 데이터의 대응하는 시간 단계 및 수용 필드에서 캡처된 오디오 데이터의 이전 시간 단계들에 기초할 수 있지만 오디오 데이터의 미래 시간 단계들에 기초하지는 않을 것이다. 본 명세서에 더 설명된 바와 같이, 출력은 또한 타겟 화자의 화자 임베딩을 사용하여 생성된다. 예를 들어, 오디오 데이터 시퀀스를 처리하는 동안 생성 모델(156)의 계층들에 대한 활성화는 화자 임베딩에 기초할 수 있다. 따라서, 일단 트레이닝되면 생성 모델(156)은 생성 모델(156)의 직접 출력으로서 오디오 데이터의 세분화 버전을 생성하는데 사용될 수 있으며, 오디오 데이터의 처리 및 타겟 화자의 화자 임베딩에 기초하여 세분화 버전을 생성하는데 사용된다. 생성 모델(156)은 원시(raw) 파형 포멧으로 오디오 데이터를 수용할 수 있고, 마찬가지로 원시 파형 포멧으로 세분화된 오디오 데이터를 생성할 수 있다.
트레이닝된 생성 모델(156)은 조건부 분포 p(x|h)를 모델링하도록 트레이닝될 수 있으며, 여기서 x는 오디오 데이터의 세분화 버전을 나타내고, h는 화자 임베딩을 나타낸다. 보다 공식적으로 p(x|h, s)는 다음과 같이 나타낼 수 있다.
Figure pat00003
여기서 x1… xt-1은 (소스 오디오 데이터에 컨디셔닝될 수 있는) T개의 세분화된 오디오 샘플 예측의 시퀀스를 나타내고, xt는 다음의 세분화된 오디오 샘플 예측(즉, 오디오 데이터의 세분화 버전에 대한 다음 오디오 샘플 예측)을 나타내고, h는 화자 임베딩을 나타내며 크기가 고정된 실제값의 벡터일 수 있다. 더욱이, 다양한 구현에서, 트레이닝된 생성 모델의 하나 이상의 계층 각각에 있는 출력 필터는 다음과 같이 나타낼 수 있다.
Figure pat00004
여기서 W는 필터를 나타내고 V는 다른 필터를 나타낸다.
도 10을 참조하면, 트레이닝된 생성 모델에 의해 수행될 수 있는 처리의 예가 도시된다. 도 10에서, 입력 오디오 데이터(1070)(소스 오디오 데이터)의 현재 시간 단계(1070t)는 세분화된 오디오 데이터의 현재 시간 단계(1073t)를 직접 생성하기 위해 입력 오디오 데이터의 이전 15개의 시간 단계(1070t-15는 단순화를 위해 도 10에서 번호가 매겨진 이전의 유일한 하나임)와 함께 상기 트레이닝된 생성 모델의 은닉 계층(157A, 157B 및 157C)를 통해 처리되고있다. 계층들(157A-C)의 스택된 인과 컨볼루션 특성(nature)으로 인해, 세분화된 오디오의 현재 시간 단계 (1073t)의 처리는 입력 오디오(1070)의 현재 시간 단계(1070t)뿐만 아니라 입력 오디오(1070)의 이전 15개의 시간 단계의 처리에 의해서도 영향을 받는다. 이전 시간 단계들의 영향은 계층들(157A-C)의 스택된 인과 컨볼루션 특성에 의해 제공되는 수용 필드 증가의 결과이며, 다른 실선 화살표는 세분화된 오디오 데이터(1073t)의 현재 시간 단계를 생성할 때 입력 오디오 데이터(1070)의 이전 15개의 시간 단계의 영향을 시각화한 것이다. 또한, 도 10에는 처리의 이전 반복에서 생성된 세분화된 오디오 데이터(1073)의 이전 15개의 시간 단계(1073t-15는 단순함을 위해 도 10에서 번호가 매겨진 유일한 이전 시간 단계임)가 도시되어 있다. 세분화된 오디오 데이터(1073)의 이러한 이전 시간 단계들은 마찬가지로 이러한 시간 단계를 생성하기 전에 발생된 입력 오디오(1070)의 이전 처리에 의해 영향을 받을 수 있다(점선은 이러한 이전 영향을 나타냄). 본 명세서에 설명된 바와 같이, 각각의 은닉 계층(157A-C)를 사용하여 수행되는 처리는 세분화된 오디오 데이터(1073)가 생성되는 화자 임베딩에 의해 영향을 받을 수 있다. 예를 들어, 이러한 은닉 계층(157A-C)에 의해 모델링된 필터들 중 하나 이상은 화자 임베딩에 의해 영향을 받을 수 있다. 특정 예가 도 10에 도시되어 있지만, 추가 계층, 더 큰 수용 필드 등의 변화와 같은 변화가 고려된다.
다시 도 1을 참조하면, 생성 모델(156)을 트레이닝하는데 사용하기 위해 트레이닝 인스턴스 데이터베이스(170)에 저장되는 복수의 트레이닝 인스턴스(170A-N)를 생성하는 트레이닝 인스턴스 엔진(130)이 또한 도시되어 있다. 트레이닝 인스턴스(170A)는 도 1에 상세하게 도시되어 있다. 트레이닝 인스턴스(170A)는 오디오 데이터(171A)의 혼합 인스턴스, 주어진 화자(172A)의 임베딩 및 임베딩(172A)에 대응하는 주어진 화자의 발화(들)만을 갖는 오디오 데이터의 인스턴스인 지상 실측 오디오 데이터(173A)(본 명세서에서 "기준 오디오 데이터"라고도 함)를 포함한다.
트레이닝 인스턴스 엔진(130)은 오디오 데이터 데이터베이스(160)의 인스턴스로부터의 오디오 데이터의 인스턴스에 기초하여 화자 임베딩 엔진(125)과의 상호 작용을 통해 트레이닝 인스턴스(170A-N)를 생성할 수 있다. 예를 들어, 트레이닝 인스턴스 엔진(130)은 오디오 데이터 데이터베이스(160)의 인스턴스로부터 지상 실측 오디오 데이터(173A)를 검색할 수 있고, 이를 트레이닝 인스턴스(170A)에 대한 지상 실측 오디오 데이터로서 사용할 수 있다.
또한, 트레이닝 인스턴스 엔진(130)은 화자 임베딩 엔진(125)으로부터 주어진 화자(172A)의 임베딩을 수신하기 위해 지상 실측 오디오 데이터(173A)를 화자 임베딩 엔진(125)에 제공할 수 있다. 화자 임베딩 엔진(125)은 주어진 화자(172A)의 임베딩을 생성하기 위해 화자 임베딩 모델(152)을 사용하여 지상 실측 오디오 데이터(173A)의 하나 이상의 세그먼트를 처리할 수 있다. 예를 들어, 화자 임베딩 엔진(125)은 VAD를 이용하여 음성 활동을 포함하는 지상 실측 오디오 데이터(173A)의 하나 이상의 세그먼트를 결정할 수 있고, 화자 임베딩 모델(152)을 사용하여 이들 세그먼트 중 하나 이상을 처리하는 것에 기초하여 주어진 화자(172A)의 임베딩을 결정할 수 있다. 예를 들어, 모든 세그먼트는 화자 임베딩 모델(152)을 사용하여 처리될 수 있고, 그 처리에 기초하여 생성된 최종 출력은 주어진 화자(172A)의 임베딩으로 사용될 수 있다. 또한, 예를 들어, 제1 세그먼트는 제1 출력을 생성하도록 화자 임베딩 모델(152)을 사용하여 처리될 수 있고, 제2 세그먼트는 제2 출력을 생성하도록 화자 임베딩 모델(152)을 사용하여 처리될 수 잇으며, 주어진 화자 (172A)의 임베딩으로서 이용되는 출력의 중심을 생성할 수 있다.
트레이닝 인스턴스 엔진(130)은 지상 실측 오디오 데이터(173A)를 오디오 데이터 데이터베이스(160)의 인스턴스로부터의 오디오 데이터의 추가 인스턴스와 결합함으로써 오디오 데이터(171A)의 혼합 인스턴스를 생성한다. 예를 들어, 오디오 데이터의 추가 인스턴스는 하나 이상의 다른 인간 화자(들) 및/또는 배경 소음을 포함하는 것일 수 있다.
도 2를 참조하면. 지상 실측 오디오 데이터(173A)가 개략적으로 도시되어 있다. 화살표는 시간을 나타내고 지상 실측 오디오 데이터(173A)의 3개의 수직 음영 영역은 "화자 A"가 개별 발화를 제공하는 오디오 데이터의 세그먼트를 나타낸다. 특히, 지상 실측 오디오 데이터(173A)는 추가 사운드를 포함하지 않는다(또는 최소). 전술한 바와 같이, 지상 실측 오디오 데이터는 트레이닝 인스턴스(170A)에서 이용될 수 있다. 또한, 트레이닝 인스턴스(170A)에서 주어진 화자(172A)의 임베딩은 화자 임베딩 엔진(125)에 의해, 지상 실측 오디오 데이터(173A)의 하나 이상의 세그먼트의 처리에 기초하여 생성될 수 있다.
또한, 오디오 데이터 데이터베이스(160)(도 1)의 인스턴스로부터 검색될 수 있는 추가 오디오 데이터 A(164A)가 도 2에 개략적으로 도시되어 있다. 화살표는 시간을 나타내고 추가 오디오 데이터 A(164A)의 2개의 대각선 음영 영역은 "화자 C"가 개별 발화를 제공하는 오디오 데이터의 세그먼트(들)를 나타낸다. 특히, "화자 C"는 지상 실측 오디오 데이터(173A)의 발화를 제공하는 "화자 A"와 상이하다.
또한, 도 2에는 지상 실측 오디오 데이터(163A)와 추가 오디오 데이터 A(164A)를 결합함으로써 생성된 혼합 오디오 데이터 A(171A)가 개략적으로 도시되어 있다. 혼합 오디오 데이터 A(171A)는 지상 실측 오디오 데이터(173A)로부터의 음영 영역(수직 음영) 및 추가 오디오 데이터 A(164A)로부터의 음영 영역(대각 음영)을 포함한다. 따라서, 혼합 오디오 데이터 A(171A)에는 "화자 A" 및 "화자 C" 발화가 모두 포함되고, "화자 A" 발화의 일부는 "화자 B" 발화의 일부와 오버랩된다. 전술한 바와 같이, 혼합 오디오 데이터 A(171A)는 트레이닝 인스턴스(170A)에서 활용될 수 있다.
또한, 주어진 화자(172A), 지상 실측 오디오 데이터(173A) 및 혼합 오디오 데이터 B(171B)의 임베딩을 포함하는 트레이닝 인스턴스(170A-N)의 추가 트레이닝 인스턴스가 생성될 수 있다. 혼합 오디오 데이터 B(171B)는 도 2에 개략적으로 도시되어 있으며, 지상 실측 오디오 데이터(163A)와 추가 오디오 데이터 B(164B)를 결합함으로써 생성된다. 추가 오디오 데이터 B(164B)는 "화자 B"(점묘된 음영)의 발화를 포함하고 배경 소음(해칭된 음영)을 포함한다. 혼합 오디오 데이터 B(171B)는 지상 실측 오디오 데이터(173A)로부터의 음영 영역(수직 음영) 및 추가 오디오 데이터 A(164B)로부터의 음영 영역(점묘 음영 및 해칭 음영)을 포함한다. 따라서, 혼합 오디오 데이터 B(171B)에는 "화자 A" 및 "화자 B" 발화 모두뿐만 아니라 "배경 소음"이 포함된다. 또한 "화자 A" 발화의 일부는 "배경 소음" 및 "화자 B" 발화의 일부와 오버랩된다.
도 2와 관련하여 2 개의 트레이닝 인스턴스만이 설명되었지만, 더 많은 트레이닝 인스턴스가 생성될 수 있음을 알 수 있다. 예를 들어, (예를 들어, 추가 오디오 데이터 인스턴스에 기초하여 추가 혼합 오디오 데이터를 생성함으로써) 지상 실측 오디오 데이터(173A)를 이용하는 추가 트레이닝 인스턴스가 생성될 수 있다. 또한, 예를 들어, 대체 지상 실측 오디오 데이터를 각각 이용하고(대체 화자를 각각 포함하고), (지상 실측 오디오 데이터의 대체 화자에 대응하는) 대체 화자 임베딩을 각각 포함하는 추가 트레이닝 인스턴스가 생성될 수 있다.
트레이닝 인스턴스(170A)에 기초하여 생성 모델(156)을 트레이닝할 때, 세분화 엔진(120)은 생성 모델(156)의 계층들에 대한 활성화 결정시 주어진 화자(172A)의 임베딩을 이용하여 생성 모델(156)에 대한 입력으로서 오디오 데이터(171A)의 혼합 인스턴스를 순차적으로 적용하여, 예측된 오디오 데이터(175A)의 시간 단계들을 순차적으로 생성한다. 예를 들어, 세분화 엔진(120)은 초기 반복에서 생성 모델(156)에 대한 입력으로서 오디오 데이터(171A)의 혼합 인스턴스의 제1 시간 단계를 적용하여, 모델(156)을 통한 입력 처리에 기초하여(및 임베딩(172A)에 기초하여), 예측된 오디오 데이터의 제1 시간 단계를 생성할 수 있다. 이 예를 계속하면, 세분화 엔진(120)은 다음으로 오디오 데이터(171A)의 혼합 인스턴스의 제1 시간 단계 및 제2 시간 단계를 제2 반복에서 생성 모델(156)에 대한 입력으로 적용하여, 모델(156)을 통한 입력 처리에 기초하여(및 임베딩(172A), 예측된 오디오 데이터의 제2 시간 단계를 생성할 수 있다. 이것은 오디오 데이터(171A)의 혼합된 인스턴스의 모든 시간 단계가 처리될 때까지 계속될 수 있다(오디오 데이터의 현재 시간 단계 및 최대 N개의 이전 시간 단계를 포함하는 이후 반복으로 계속되며, 여기서 N은 모델(156)의 수용 필드에 따라 다름).
손실 모듈(132)은 예측 오디오 데이터(175A) 및 지상 실측 오디오 데이터(173A)의 함수로서 손실(174A)을 생성한다. 손실(174A)은 그 손실에 기초하여 생성 모델(156)을 업데이트하는 업데이트 모듈(134)에 제공된다. 예를 들어, 업데이트 모듈(134)은 손실에 기초하고 역전파(예를 들어, 경사 하강법)를 사용하여 생성 모델(156)(위의 방정식에서 필터들을 모델링함)의 인과 컨볼루션 계층들을 업데이트할 수 있다.
도 1은 단일 트레이닝 인스턴스(170A)만을 상세하게 예시하지만, 트레이닝 인스턴스 데이터베이스(170)는 많은 양의 추가 트레이닝 인스턴스를 포함할 수 있음이 이해된다. 추가 트레이닝 인스턴스는 다양한 길이의 트레이닝 인스턴스(예를 들어, 오디오 데이터의 다양한 지속 시간에 기초함), 다양한 지상 실측 오디오 데이터 및 화자 임베딩을 갖는 트레이닝 인스턴스, 및 오디오 데이터의 개별 혼합 인스턴스에 다양한 추가 사운드를 갖는 트레이닝 인스턴스를 포함할 수 있다. 더욱이, 생성 모델(156)을 트레이닝시키기 위해 많은 양의 추가 트레이닝 인스턴스가 이용될 것이라는 것이 이해된다.
이제 도 3으로 돌아가면, 본 명세서에 개시된 다양한 구현에 따른 생성 모델을 트레이닝하기 위한 트레이닝 인스턴스를 생성하는 예시적인 방법(300)이 도시되어 있다. 편의상, 도 3의 흐름도의 동작들은 그 동작들을 수행하는 시스템을 참조하여 설명한다. 이 시스템은 트레이닝 인스턴스 엔진(130) 및/또는 하나 이상의 GPU(들), CPU(들) 및/또는 TPU(들)와 같은 다양한 컴퓨터 시스템의 다양한 컴포넌트를 포함할 수 있다. 더욱이, 방법(300)의 동작들이 특정 순서로 도시되지만, 이는 제한하는 것을 의미하지 않는다. 하나 이상의 동작들은 재정렬하거나 생략하거나 추가될 수 있다.
블록(302)에서, 시스템은 단일 인간 화자의 음성 입력을 포함하는 오디오 데이터의 지상 실측 인스턴스를 선택한다.
블록(304)에서, 시스템은 단일 인간 화자를 위한 화자 임베딩을 생성한다. 예를 들어, 화자 임베딩은 화자 임베딩 모델을 사용하여 오디오 데이터의 지상 실측 인스턴스의 하나 이상의 세그먼트를 처리함으로써 생성될 수 있다.
블록(306)에서, 시스템은 단일 인간 화자의 음성 입력이 없는 오디오 데이터의 추가 인스턴스를 선택한다. 예를 들어, 오디오 데이터의 추가 인스턴스는 다른 화자(들)의 음성 입력 및/또는 배경 소음(예를 들어, 음악, 사이렌, 에어컨 소음 등)을 포함할 수 있다.
블록(308)에서, 시스템은 오디오 데이터의 지상 실측 인스턴스와 오디오 데이터의 추가 인스턴스를 결합하는 오디오 데이터의 혼합 인스턴스를 생성한다.
블록(310)에서, 시스템은 오디오 데이터의 혼합 인스턴스, 화자 임베딩 및 오디오 데이터의 실측 인스턴스를 포함하는 트레이닝 인스턴스를 생성 및 저장한다.
블록(312)에서, 시스템은 오디오 데이터의 동일한 지상 실측 인스턴스 및 동일한 화자 임베딩을 사용하지만 다른 추가 인스턴스에 기초한 오디오 데이터의 상이한 혼합 인스턴스를 사용하여 추가 트레이닝 인스턴스를 생성할지 여부를 결정한다. 만약 그런 경우, 시스템은 블록(306)으로 돌아가서 상이한 추가 인스턴스를 선택하고, 블록(308)로 진행하여 오디오 데이터의 동일한 지상 실측 인스턴스와 상이한 추가 인스턴스를 결합하는 오디오 데이터의 다른 혼합 인스턴스를 생성한 다음, 블록 (310)으로 진행하여 대응하는 트레이닝 인스턴스를 생성하고 저장한다.
만약, 블록(312)의 반복에서, 시스템은 오디오 데이터의 동일한 지상 실측 인스턴스 및 동일한 화자 임베딩을 사용하여 추가 트레이닝 인스턴스를 생성하지 않기로 결정한 경우, 시스템은 블록(314)로 진행하여 오디오 데이터의 다른 지상 실측 인스턴스를 사용하여 추가 트레이닝 인스턴스를 생성할지 여부를 결정한다. 만약 그런 경우, 시스템은 상이한 인간 화자와 함께 오디오 데이터의 상이한 지상 실측 인스턴스를 사용하고, 상이한 인간 화자에 대해 상이한 화자 임베딩을 사용하고, 선택적으로 오디오 데이터의 상이한 추가 인스턴스를 사용하여 블록(302, 304, 306, 308, 310 및 312)의 또 다른 반복을 수행한다.
블록(314)의 반복에서, 시스템이 오디오 데이터의 다른 지상 실측 인스턴스를 사용하여 추가 트레이닝 인스턴스를 생성하지 않기로 결정하는 경우, 시스템은 블록(316)으로 진행하여 트레이닝 인스턴스 생성을 종료한다.
이제 도 4로 돌아 가면, 본 명세서에 개시된 다양한 구현에 따라 생성 모델을 트레이닝시키는 예시적인 방법(400)이 도시된다. 편의상, 도 4의 흐름도의 동작들은 그 동작들을 수행하는 시스템을 참조하여 설명된다. 이 시스템은 세분화 엔진(120) 및/또는 하나 이상의 GPU(들), CPU(들) 및/또는 TPU(들)와 같은 다양한 컴퓨터 시스템의 다양한 컴포넌트를 포함할 수 있다. 더욱이, 방법(400)의 동작들이 특정 순서로 도시되어 있지만, 이는 제한하는 것을 의미하지 않는다. 하나 이상의 동작들은 재정렬되거나 생략되거나 추가될 수 있다.
블록(402)에서, 시스템은 오디오 데이터, 화자 임베딩 및 지상 실측 오디오 데이터의 혼합 인스턴스를 포함하는 트레이닝 인스턴스를 선택한다. 예를 들어, 시스템은 도 3의 방법(300)에 따라 생성된 트레이닝 인스턴스를 선택할 수 있다.
블록(404)에서, 시스템은 기계 학습 모델(예를 들어, 생성 모델(156))을 사용하고, 기계 학습 모델의 계층들에 대한 활성화를 결정하는데 화자 임베딩을 사용하여 오디오 데이터의 혼합 인스턴스를 순차적으로 처리한다.
블록(406)에서, 시스템은 블록(404)의 순차적 처리에 기초하여, 기계 학습 모델의 직접 출력으로서 오디오 데이터의 혼합 인스턴스의 예측된 세분화 버전을 순차적으로 생성한다.
블록(408)에서, 시스템은 오디오 데이터의 혼합 인스턴스의 예측된 세분화 버전을 오디오 데이터의 지상 실측 인스턴스와 비교하는 것에 기초하여 손실을 생성한다.
블록(410)에서, 시스템은 생성된 손실에 기초하여 기계 학습 모델의 가중치를 업데이트한다.
블록(412)에서, 시스템은 기계 학습 모델의 더 많은 트레이닝을 수행할지 여부를 결정한다. 그렇다면, 시스템은 블록(402)로 돌아가서 추가 트레이닝 인스턴스를 선택한 다음, 추가 트레이닝 인스턴스에 기초하여 블록(404, 406, 408 및 410)의 반복을 수행 한 다음 블록(412)의 추가 반복을 수행한다. 일부 구현에서, 시스템은 하나 이상의 추가 미처리 트레이닝 인스턴스가 있는 경우 및/또는 다른 표준/기준이 아직 충족되지 않은 경우 더 많은 트레이닝을 수행하기로 결정할 수 있다. 다른 표준/기준은 예를 들어 임계 수의 에포크가 발생했는지 및/또는 임계 트레이닝 기간이 발생했는지 여부를 포함할 수 있다. 방법(400)이 비-배치(non-batch) 학습 기술과 관련하여 설명되었지만, 배치 학습이 추가적으로 및/또는 대안적으로 이용될 수 있다.
블록(412)의 반복에서 시스템이 더 많은 트레이닝을 수행하지 않기로 결정하면, 시스템은 시스템이 트레이닝된 기계 학습 모델을 고려하고 사용할 기계 학습 모델을 제공하는 블록(416)으로 진행할 수 있다. 예를 들어, 시스템은 본 명세서에 설명된 방법 600(도 6A) 및 700(7A) 중 하나 또는 둘 모두에서 사용할 트레이닝된 기계 학습 모델을 제공할 수 있다.
도 5는 오디오 데이터, 화자 임베딩 및 생성 모델을 사용하여 오디오 데이터의 세분화 버전을 생성하는 예를 도시한다. 생성 모델(156)은 도 1의 생성 모델(156)과 동일할 수 있지만 트레이닝되었다(예를 들어, 도 1 및/또는 도 3에 대해 설명된 바와 같이 트레이닝됨).
도 5에서, 세분화 엔진(120)은 오디오 데이터(570)의 시퀀스를 수신한다. 오디오 데이터(570)는 예를 들어, 온라인 방식(예를 들어, 실시간 또는 거의 실시간)으로 처리되는 스트리밍 오디오 데이터 또는 이전에 기록되어 세분화 엔진(120)에 제공된 비스트리밍 오디오 데이터일 수 있다. 세분화 엔진(120)은 또한 화자 임베딩 엔진(125)으로부터 화자 임베딩(126)을 수신한다. 화자 임베딩(126)은 주어진 인간 화자를 위한 임베딩이고, 화자 임베딩 엔진(125)은 화자 임베딩 모델(152)을 사용하여 주어진 화자로부터, 오디오 데이터의 하나 이상의 인스턴스를 처리하는 것에 기초하여 화자 임베딩(126)을 생성할 수 있다. 본 명세서에 설명된 바와 같이, 일부 구현에서, 화자 임베딩(126)은 주어진 화자로부터의 오디오 데이터의 이전 인스턴스(들)에 기초하여 화자 임베딩 엔진(125)에 의해 이전에 생성된다. 이들 구현 중 일부에서, 화자 임베딩(126)은 주어진 화자 및/또는 주어진 화자의 클라이언트 디바이스의 계정과 연관되고, 화자 임베딩(126)은 클라이언트 디바이스 및/또는 계정이 승인된 디지털 시스템으로부터 오는 오디오 데이터(570)에 기초하여 오디오 데이터(570)와 함께 활용하기 위해 제공될 수 있다. 또한 본 명세서에 설명된 바와 같이, 일부 구현에서, 화자 임베딩(126)은 오디오 데이터(570) 자체에 기초하여 화자 임베딩 엔진(125)에 의해 생성된다. 예를 들어, VAD는 오디오 데이터에서 음성 활동의 제1 인스턴스를 결정하기 위해 오디오 데이터(570)에 대해 수행될 수 있고, 제1 인스턴스의 일부(들)는 화자 임베딩(126)을 생성할 때 화자 임베딩 엔진(125)에 의해 이용될 수 있다.
세분화 엔진(120)은 세분화된 오디오 데이터(573)의 시간 단계들을 순차적으로 생성하기 위해 생성 모델(156)의 계층들에 대한 활성화를 결정하는데 화자 임베딩(126)을 이용하여, 생성 모델(156)에 대한 입력으로서 오디오 데이터(570)를 순차적으로 적용한다. 세분화된 오디오 데이터(573)는 오디오 데이터(570)가 화자 임베딩(126)에 대응하는 화자의 발화(들)만을 포함할 때 오디오 데이터(570)와 동일할 수 있고; 오디오 데이터(570)가 화자 임베딩(126)에 대응하는 화자의 어떠한 발화도 없을 때 널/제로일 수 있고; 또는 오디오 데이터(570)가 화자의 발화(들) 및 추가 사운드(들)(예를 들어, 다른 인간 화자(들)의 오버랩하는 발화(들))를 포함하는 경우, 화자 임베딩(126)에 대응하는 화자의 발화(들)를 분리하는 동안 추가 사운드(들)를 제외할 수 있다.
그런 다음, 세분화 엔진(120)은 세분화된 오디오 데이터(573)를 하나 이상의 추가 컴포넌트(들)(135)에 제공한다. 도 5는 단일 화자 임베딩(126)에 기초하여 세분화된 오디오 데이터(573)의 단일 인스턴스를 생성하는 것을 예시하지만, 다양한 구현에서 세분화된 오디오 데이터의 다중 인스턴스가 생성될 수 있으며, 각 인스턴스는 오디오 데이터(570) 및 고유한 인간 화자를 위한 고유 화자 임베딩에 기초한다.
전술한 바와 같이, 세분화 엔진(120)은 세분화된 오디오 데이터(573)를 하나 이상의 추가 컴포넌트(들)(135)에 제공한다. 일부 구현에서, 세분화 엔진(120)은 온라인 방식으로 상기 세분화된 오디오 데이터(573)를 제공한다(예를 들어, 세분화된 오디오 데이터(573)의 일부는 나머지 부분이 여전히 생성되는 동안 제공될 수 있다). 일부 구현에서, 추가 컴포넌트(들)(135)는 클라이언트 디바이스 또는 다른 컴퓨팅 디바이스(예를 들어, 서버 디바이스)를 포함하고, 오디오 데이터(570)는 컴퓨팅 디바이스(또는 관련 컴퓨팅 디바이스(들))에 의해 제출된 음성 처리 요청의 일부로서 수신된다. 이러한 구현에서, 세분화된 오디오 데이터(573)는 음성 처리 요청을 수신하는 것에 응답하여 생성되고, 음성 처리 요청을 수신하는 것에 응답하여 컴퓨팅 디바이스로 전송된다. 선택적으로 다른(미도시) 음성 처리는 음성 처리 요청(예를 들어, 음성-텍스트 변환 처리, 자연어 이해)에 응답하여 추가로 수행될 수 있으며, 이러한 음성 처리의 결과는 요청에 응답하여 추가로 또는 대안적으로 전송될 수 있다.
일부 구현에서, 추가 컴포넌트(들)(135)는 자동 음성 인식(ASR) 컴포넌트(예를 들어, 음성-텍스트 변환을 수행함) 및/또는 자연어 이해 컴포넌트와 같은 자동화 어시스턴트의 하나 이상의 컴포넌트를 포함한다. 예를 들어, 오디오 데이터 (570)는 자동화 어시스턴트와 인터페이스하기 위한 자동화 어시스턴트 인터페이스를 포함하는 클라이언트 디바이스의 하나 이상의 마이크로폰의 출력에 기초한 스트리밍 오디오 데이터일 수 있다. 자동화 어시스턴트는 세분화 엔진(120)을 포함할 수 있고(또는 그와 통신할 수 있음), 세분화된 오디오 데이터(573)를 전송하는 것은 이를 자동화 어시스턴트의 하나 이상의 다른 컴포넌트로 전송하는 것을 포함할 수 있다.
이제 도 6a-6b 및 7a-7b로 돌아 가면, 오디오 데이터의 세분화 버전(들)을 생성하고 이러한 세분화 버전(들)을 이용하는 것에 대한 추가 설명이 제공된다.
도 6a는 본 명세서에 개시된 다양한 구현에 따른 오디오 데이터, 화자 임베딩 및 생성 모델을 사용하여 오디오 데이터의 세분화 버전을 생성하는 예시적인 방법(600)을 도시한다. 편의를 위해, 도 6a의 흐름도의 특정 양태의 동작들은 도 6b에 개략적으로 표현된 오디오 데이터(670) 및 세분화된 오디오 데이터(675)를 참조하여 설명된다. 또한, 편의상 도 6a의 흐름도의 동작들은 그 동작들을 수행하는 시스템을 참조하여 설명된다. 이 시스템은 화자 임베딩 엔진(125), 세분화 엔진(120) 및/또는 하나 이상의 GPU(들), CPU(들) 및/또는 TPU(들)와 같은 다양한 컴퓨터 시스템의 다양한 컴포넌트를 포함할 수 있다. 다양한 구현에서, 도 6a의 하나 이상의 블록은 화자 임베딩 및 클라이언트 디바이스에 로컬로 저장된 기계 학습 모델을 사용하여 클라이언트 디바이스에 의해 수행될 수 있다. 더욱이, 방법(600)의 동작들이 특정 순서로 도시되지만, 이는 제한하는 것을 의미하지 않는다. 하나 이상의 동작들은 재정렬되거나 생략되거나 추가될 수 있다.
블록(602)에서, 시스템은 인간 화자의 발화(들) 및 인간 화자로부터 발생되지 않는 추가 사운드(들)를 캡처하는 오디오 데이터를 수신한다. 일부 구현에서, 오디오 데이터는 스트리밍 오디오 데이터이다. 일 예로서, 블록 602에서 시스템은 "화자 A"(수직 음영)의 발화뿐만 아니라 "화자 B"(점묘된 음영)의 발화 및 "배경 소음"(해칭된 음영)을 포함하는 도 6b의 오디오 데이터(670)를 수신할 수 있다.
블록(604)에서, 시스템은 인간 화자를 위해 이전에 생성된 화자 임베딩을 선택한다. 예를 들어, 시스템은 "화자 A"에 대해 이전에 생성된 화자 임베딩을 선택할 수 있다. 예를 들어, 화자 임베딩은 오디오 데이터를 생성한 클라이언트 디바이스에서 수신되었던 "화자 A"의 바로 이전(직전) 발화에 기초하여 생성되었을 수 있으며, "화자 A"가 직전 발화의 화자라는 것에 기초하여 선택될 수 있다. 또한, 예를 들어, 화자 임베딩은 자동화 어시스턴트, 클라이언트 디바이스 및/또는 다른 디지털 시스템에 대해 "화자 A"에 의해 수행된 등록 프로세스 동안 이전에 생성되었을 수 있다. 그러한 인스턴스에서, 화자 임베딩은 클라이언트 디바이스에 의해 생성되는 오디오 데이터에 기초하여 및/또는 디지털 시스템에 대한 "화자 A"의 계정을 통해 선택될 수 있다. 하나의 특정 인스턴스로서, 블록(602)에서 수신된 오디오 데이터는 디지털 시스템에 대한 활성 사용자로서 최근에 검증된 "화자 A"에 기초하여 "화자 A"로부터 온 것으로 결정될 수 있다. 예를 들어, 음성 지문, 이미지 인식, 패스코드(passcode) 및/또는 다른 검증은 "화자 A"가 현재 활성화되어 있고 결과적으로 "화자 A"에 대한 화자 임베딩이 선택될 수 있음을 결정하는데 활용되었을 수 있다.
블록(606)에서, 시스템은 기계 학습 모델(예를 들어, 생성 모델(156))을 사용하고, 기계 학습 모델의 계층들에 대한 활성화를 결정하는데 화자 임베딩을 사용하여 오디오 데이터를 순차적으로 처리한다.
블록(608)에서, 시스템은 블록(606)의 순차적 처리에 기초하여, 기계 학습 모델의 직접 출력으로서 오디오 데이터의 세분화 버전을 순차적으로 생성한다. 예를 들어, 시스템은 "화자 A"의 발언만이 남아 있는 도 6b에 개략적으로 도시된 세분화된 오디오 데이터(675)를 생성할 수 있다.
그런 다음, 시스템은 선택적으로 선택적(optional) 블록(610, 612, 614) 및/또는 선택적 블록(616, 618, 및/또는 620)을 수행한다.
블록(610)에서, 시스템은 블록(608)에서 생성된 세분화된 오디오 데이터에 기초하여, 오디오 데이터가 블록(604)의 화자 임베딩에 대응하는 인간 화자로부터의 음성 입력을 포함하는지 여부를 결정한다. 예를 들어, 세분화된 오디오 데이터가 널/제로인 경우(예를 들어, 모든 오디오 데이터가 임계값 레벨보다 작음), 시스템은 오디오 데이터가 화자 임베딩에 대응하는 인간 화자의 음성 입력을 포함하지 않는다고 결정할 수 있다. 다른 한편으로, 세분화된 오디오 데이터가 하나 이상의 비널(non-null) 세그먼트를 포함하는 경우(예를 들어, 임계 레벨 초과), 시스템은 오디오 데이터가 화자 임베딩에 대응하는 인간 화자의 음성 입력을 포함한다고 결정할 수 있다.
블록(610)의 반복에서, 시스템이 오디오 데이터가 화자 임베딩에 대응하는 인간 화자의 임의의 음성 입력을 포함하지 않는다고 결정하면, 블록(612)에서 시스템은 블록(614)으로 진행하여 ASR 및/또는 오디오 데이터 및 세분화된 오디오 데이터의 다른 처리를 억제하기로 결정한다. 따라서 이러한 구현에서 자원들은 ASR 및/또는 다른 처리의 수행시에 소비될 계산 자원 및/또는 ASR 및/또는 다른 처리가 원격 시스템(들)에 의해 수행될 때 오디오 데이터(또는 세분화된 오디오 데이터)를 전송하는데 사용되는 네트워크 자원과 같은 자원들이 ASR 및/또는 다른 처리를 수행하는데 불필요하게 소비되지 않는다.
일부 구현에서, 블록(610, 612 및 614)은 다양한 상황에서 수행되어, 수신된 오디오 데이터의 임의의 음성 입력이 그러한 오디오 데이터에 대해 다양한 처리(예를 들어, ASR 및/또는 의도 결정)를 수행하기 전 및/또는 처음 생성된 디바이스에서 이러한 오디오 데이터를 전송하기 전에 특정 인간 화자로부터 발생된 것인지 확인할 수 있다. 계산 자원 및 네트워크 자원 절약 외에도, 이것은 또한 특정 인간 화자로부터 발생된 것이 아니고 자동화 어시스턴트 및/또는 기타 디지털 시스템에 의한 추가 처리를 위한 것이 아닌 오디오 데이터의 프라이버시를 촉진할 수 있다. 이들 구현 중 일부에서, 블록(610, 612 및 614)은 오디오 데이터를 수신하는 클라이언트 디바이스가 계속 청취 모드에서 오디오 데이터를 수신할 때 적어도 수행될 수 있다. 예를 들어, 특정 인간 화자가 이전에 클라이언트 디바이스를 통해 자동화 어시스턴트를 명시적으로 호출하고, 음성 입력을 제공하고, 자동화 어시스턴트로부터 응답 컨텐츠를 수신한 후 디바이스는 계속 청취 모드에 있을 수 있다. 예를 들어, 자동화 어시스턴트는 응답 컨텐츠의 적어도 일부를 제공한 후 일정 시간 기간 동안오디오 데이터의 제한된 처리를 계속 수행할 수 있다. 이러한 구현에서, 제한된 처리는 블록(602, 604, 606, 608, 610, 612 및 614)을 포함(또는 이에 제한될 수 있음)할 수 있고, 오디오 데이터의 추가 처리가 블록(612)에서 "예" 결정에 응답해서만 수행되는 것을 보장하기 위해 수행될 수 있다. 예를 들어, 블록(604)의 화자 임베딩은 이전에 자동화 어시스턴트를 명시적으로 호출한 특정 인간 화자에 기초한 특정 인간 화자에 대한 임베딩일 수 있으며, 따라서 동일한 특정 인간 화자가 추가 발화를 제공하는 경우에만 추가 처리가 수행되도록 보장한다. 이는 위에서 설명한 바와 같이 자원 낭비를 방지할 수 있으며, 오디오 데이터에 의해 캡처될 수 있는 다른 인간 화자(들)(예를 들어, 특정 인간 화자와 공존하는 다른 인간 화자(들), 오디오 데이터에 갭처된 TV 또는 라디오에 대한 다른 인간 화자(들))의 발화(들)에 기초하여 잘못된 액션이 취해지는 것을 추가로 방지할 수 있다.
블록(616)에서, 시스템은 세분화된 오디오 데이터에 대해 음성-텍스트 변환 처리를 수행함으로써 텍스트를 생성한다. 위에서 언급한 바와 같이, 블록(616)은 일부 구현에서 블록(608) 이후에 수행될 수 있거나, 일부 구현에서 블록(610)의 수행 및 블록(612)에서 "예" 결정 후에 만 수행될 수 있다.
블록(618)에서, 시스템은 블록(616)에서 생성된 텍스트에 대해 자연어 처리 (NLP)를 수행한다. 예를 들어, 시스템은 NLP를 수행하여 텍스트의 의도(및 인간 화자의 발화의 결과)를 결정하고 선택적으로 의도에 대한 하나 이상의 파라미터를 결정할 수 있다.
블록(620)에서, 시스템은 블록(620)의 NLP에 기초하여 응답을 생성하고 제공한다. 예를 들어, 만약 텍스트가 "Weather in Los Angeles"인 경우 NLP의 의도는 "캘리포니아주, 로스엔젤러스"라는 파라미터를 갖는 "날씨 예보"일 수 있으며, 시스템은 로스앤젤러스의 일기 예보에 대한 구조화된 요청(structured request)을 원격 시스템으로 제공할 수 있다. 시스템은 구조화된 요청에 응답하여 응답을 수신하고, 인간 화자의 발화에 대한 청각적 및/또는 시각적 렌더링 응답에 대해 응답을 제공할 수 있다.
도 7a는 본 명세서에 개시된 다양한 구현에 따른 오디오 데이터, 화자 임베딩 및 생성 모델을 사용하여 오디오 데이터의 다수의 세분화 버전을 생성하는 예시적인 방법(700)을 도시한다. 편의상, 도 7a의 흐름도의 특정 양태의 동작들은 도 7b에 개략적으로 표현된 오디오 데이터(770), 제1 세분화 오디오 데이터(775A) 및 제2 세분화 오디오 데이터(775B)를 참조하여 설명된다. 또한, 편의상도 7a의 흐름도의 동작들은 그 동작들을 수행하는 시스템을 참조하여 설명한다. 이 시스템은 화자 임베딩 엔진(125), 세분화 엔진(120) 및/또는 하나 이상의 GPU(들), CPU(들) 및/또는 TPU(들)와 같은 다양한 컴퓨터 시스템의 다양한 컴포넌트를 포함할 수 있다. 다양한 구현에서, 도 7a의 하나 이상의 블록은 화자 임베딩 및 클라이언트 디바이스에 로컬로 저장된 기계 학습 모델을 사용하여 클라이언트 디바이스에 의해 수행될 수 있다. 더욱이, 방법(700)의 동작들이 특정 순서로 도시되지만, 이는 제한하는 것을 의미하지 않는다. 하나 이상의 동작들은 재정렬되거나 생략되거나 추가될 수 있다.
블록(702)에서, 시스템은 하나 이상의 인간 화자의 발화(들)를 캡처하는 오디오 데이터를 수신한다. 일 예로서, 블록(702)에서 시스템은 "화자 A"(수직 음영)의 발화뿐만 아니라 "화자 B"(점묘된 음영)의 발화 및 "배경 소음"(해칭된 음영)을 포함하는 도 7b의 오디오 데이터(770)를 수신할 수 있다.
블록(704)에서, 시스템은 오디오 데이터에서 음성 활동 검출의 초기 발생으로부터 발생된 부분(일부)에 기초하여 오디오 데이터의 부분을 선택한다. 예를 들어, 시스템은 부분(777A)이 음성 활동의 제1 세그먼트(즉, "화자 A"의 제1 발화)로부터 발생된 것에 기초하여 도 7b의 오디오 데이터(770)의 부분(777A)을 선택할 수 있다.
블록(706)에서, 시스템은 블록(704)에서 선택된 오디오 데이터의 부분에 기초하여 제1 화자 임베딩을 생성한다. 예를 들어, 시스템은 트레이닝된 화자 임베딩 모델을 사용하여 부분(777A)(도 7b)을 처리하는 것에 기초하여 제1 화자 임베딩을 생성할 수 있다.
블록(708)에서, 시스템은 기계 학습 모델(예를 들어, 생성 모델(156))을 사용하고 기계 학습 모델의 계층들에 대한 활성화를 결정하는데 제1 화자 임베딩을 사용하여 오디오 데이터를 순차적으로 처리한다.
블록(710)에서, 시스템은 블록(708)의 순차적 처리에 기초하여, 기계 학습 모델의 직접 출력으로서 오디오 데이터의 제1 세분화 버전을 순차적으로 생성한다. 예를 들어, 시스템은 "화자 A"의 발언만이 남아 있는 도 7b에 개략적으로 도시된 제1 세분화 오디오 데이터(775A)를 생성할 수 있다.
블록(712)에서, 시스템은 오디오 데이터의 제1 세분화 버전에 기초하여, 제1 인간 화자가 말하고 있는 오디오 데이터의 세그먼트(들)를 결정한다. 예를 들어, 시스템은 제1 세분화 오디오 데이터(775A)의 비널(non-null) 세그먼트(들)가 제1 인간 화자가 말하고 있는 오디오 데이터의 개별 세그먼트(들)에 시간적으로 대응한다고 결정할 수 있다.
블록(714)에서, 시스템은 제1 인간 화자가 말하고 있는 오디오 데이터의 세그먼트(들) 외부에서 음성 활동 검출의 하나 이상의 발생이 있는지를 결정한다. 그렇지 않은 경우, 시스템은 블록(728)(아래에서 더 자세히 설명됨)으로 진행할 수 있다. 그러 경우, 시스템은 블록(716)으로 진행할 수 있다. 예를 들어, 오디오 데이터(770)(도 7b)에 대해, 블록(714)에서 시스템은 "화자 A" 발화와 오버랩되지 않는 "화자 B" 발화의 일부와 같이, 제1 인간 화자가 말하고 있는 세그먼트(들) 외부에서 음성 활동 검출의 발생이 있는지 결정할 수 있다.
블록(716)에서, 시스템은 제1 세그먼트 외부의 오디오 데이터에서 음성 활동 검출의 발생으로부터 발생하는(나오는) 오디오 데이터의 추가 부분에 기초하여 제2 화자 임베딩을 생성한다. 예를 들어, 시스템은 부분(777B)이 음성 활동의 발생으로부터 발생되고 제1 세그먼트의 외부에서 있다는 것에 기초하여, 도 7b의 오디오 데이터(770)의 부분(777B)을 선택할 수 있다(여기서, 제1 세그먼트(들)는 전술한 바와같이 제1 세분화 오디오 데이터(775A)에 기초하여 결정됨). 또한, 예를 들어, 시스템은 (예를 들어, 화자 임베딩 모델을 사용하여) 부분(777B)에 기초하여 제2 화자 임베딩을 생성할 수 있다.
블록(718)에서, 시스템은 기계 학습 모델(예를 들어, 생성 모델(156))을 사용하여 오디오 데이터를 순차적으로 처리하고, 기계 학습 모델의 계층들에 대한 활성화를 결정하는데 제2 화자 임베딩을 사용하여 오디오 데이터를 순차적으로 처리한다.
블록(720)에서, 시스템은 블록(718)의 순차적 처리에 기초하여 기계 학습 모델의 직접 출력으로서 오디오 데이터의 제2 세분화 버전을 순차적으로 생성한다. 예를 들어, 시스템은 "화자 B"의 발언만이 남아 있는 도 7b에 개략적으로 도시된 제2 세분화 오디오 데이터(775B)를 생성할 수 있다.
블록(722)에서, 시스템은 오디오 데이터의 제2 세분화 버전에 기초하여, 제2 인간 화자가 말하고 있는 오디오 데이터의 세그먼트(들)를 결정한다. 예를 들어, 시스템은 제2 세분화 오디오 데이터(775B)의 비널 세그먼트(들)가 제2 인간 화자가 말하고 있는 오디오 데이터의 개별 세그먼트(들)에 시간적으로 대응한다고 결정할 수 있다.
블록(724)에서, 시스템은 제1 인간 화자가 말하고 있는 세그먼트 외부 및 제2 인간 화자가 말하고 있는 세그먼트 외부에서 하나 이상의 음성 활동 검출 발생이 있는지를 결정한다. 그렇지 않은 경우, 시스템은 블록(728)(아래에서 더 자세히 설명됨)으로 진행할 수 있다. 그런 경우, 시스템은 블록(726)으로 진행하여 블록 (716, 718, 720, 722 및 724)의 변화를 반복할 수 있다(변화에서, 오디오 데이터의 제3 화자 임베딩 및 제3 세분화 버전이 생성됨). 이것은 블록(724)에서 "아니오" 결정이 이루어질 때까지 계속될 수 있다. 블록(724)의 예로서, 오디오 데이터 (770)(도 7b)에 대해, 블록(724)에서 시스템은 다른 인간 화자(들)의 다른 발화가 없기 때문에(배경 소음만 있음) 제1 인간 화자가 말하고 있고 제2 화자가 말하고 잇는 세그먼트(들) 외부에서 음성 활동 검출의 발생이 없다고 결정할 수 있다. 따라서, 이러한 예에서 시스템은 블록(724)의 제1 반복에서 블록(728)으로 진행할 수 있다.
블록(728)에서, 시스템은 오디오 데이터의 생성된 세분화 버전(예를 들어, 제1 세분화 버전, 제2 세분화 버전, 추가 세분화 버전(들)) 중 하나 이상에 기초하고 및/또는 식별된 화자 세그먼트(들)에 기초하여 추가 처리를 수행한다(즉, 어떤 화자가 오디오 데이터의 어느 시간(적) 세그먼트에 대응하는지의 식별). 일부 구현에서, 블록(728)은 오디오 데이터의 세분화 버전(들) 및/또는 식별된 화자 세그먼트 (들)의 표시를 하나 이상의 원격 시스템으로 전송하는 것을 포함한다. 일부 구현에서, 블록(728)은 추가적으로 또는 대안적으로 ASR, NLP 및/또는 다른 처리를 수행하는 것을 포함한다. 이러한 구현의 일부 버전에서, ASR이 수행되어, 오디오 데이터는 시청각 컨텐츠로부터 발생된 것이며, 블록(728)은 시청각 컨텐츠에 대한 시간적으로 동기화된 폐쇄 자막을 생성하는 것을 포함한다.
이제 도 8 및 도 9로 돌아 가면, 다양한 구현이 수행될 수 있는 2개의 예시적인 환경이 예시된다. 도 8은 처음에 설명되고 자동화 어시스턴트 클라이언트(107)의 인스턴스를 실행하는 클라이언트 컴퓨팅 디바이스(106)를 포함한다. 하나 이상의 클라우드 기반 자동화 어시스턴트 컴포넌트(180)는 일반적으로 110으로 표시된 하나 이상의 로컬 및/또는 광역 네트워크(예를 들어, 인터넷)를 통해 클라이언트 디바이스(106)에 통신적으로 결합된 하나 이상의 컴퓨팅 시스템(통칭하여 "클라우드" 컴퓨팅 시스템으로 지칭함)에서 구현될 수 있다.
자동화 어시스턴트 클라이언트(107)의 인스턴스는 하나 이상의 클라우드 기반 자동화 어시스턴트 컴포넌트(180)와의 상호 작용을 통해, 사용자의 관점에서 사용자가 인간 대 컴퓨터 대화에 참여할 수 있는 자동화 어시스턴트(140)의 논리적 인스턴스인 것처럼 보이는 것을 형성할 수 있다. 그러한 자동 어시스턴트(140)의 예가 도 8에 도시되어 있다. 따라서, 일부 구현에서, 클라이언트 디바이스(106)에서 실행되는 자동화 어시스턴트 클라이언트(107)와 교감하는 사용자는 사실상 자신의 자동화 어시스턴트(140)의 논리적 인스턴스와 교감할 수 있음을 이해해야 한다. 간결함과 간결함을 위해, 본 명세서에서 특정 사용자를 "서빙하는" 것으로 사용되는 "자동화 어시스턴트"라는 용어는 종종 사용자에 의해 작동되는 클라이언트 디바이스(106)에서 실행되는 자동화 어시스턴트 클라이언트(107)와 하나 이상의 클라우드 기반 자동화 어시스턴트 컴포넌트(180)(다수의 클라이언트 컴퓨팅 디바이스의 다수의 자동화 어시스턴트 클라이언트 사이에서 공유될 수 있음)의 조합을 지칭할 것이다. 또한, 일부 구현에서, 자동화 어시스턴트(140)는 사용자가 자동화 어시스턴트(140)의 특정 인스턴스에 의해 실제로 "서빙"되는지 여부에 관계없이 임의의 사용자로부터의 요청에 응답할 수 있음을 이해해야 한다.
클라이언트 컴퓨팅 디바이스(106)는 예를 들어 데스크탑 컴퓨팅 디바이스, 랩탑 컴퓨팅 디바이스, 태블릿 컴퓨팅 디바이스, 모바일 전화 컴퓨팅 디바이스, 사용자 차량의 컴퓨팅 디바이스(예를 들어, 차량용 통신 시스템, 차량용 엔터테인먼트 시스템, 차량용 내비게이션 시스템), 독립형 대화형 스피커, 스마트 TV와 같은 스마트 기기 및/또는 컴퓨팅 디바이스를 포함하는 사용자의 웨어러블 장치(예를 들어, 컴퓨팅 디바이스를 가진 사용자의 시계, 컴퓨팅 디바이스를 가진 사용자의 안경, 가상 또는 증강 현실 컴퓨팅 디바이스)일 수 있다. 추가 및/또는 대체 클라이언트 컴퓨팅 디바이스가 제공될 수 있다. 다양한 구현에서, 클라이언트 컴퓨팅 디바이스(106)는 메시지 교환 클라이언트(예를 들어, SMS, MMS, 온라인 채팅), 브라우저 등과 같이 자동화 어시스턴트 클라이언트(107)에 추가되는 하나 이상의 다른 애플리케이션을 선택적으로 운영할 수 있다. 이러한 다양한 구현 중 일부에서, 다른 애플리케이션 중 하나 이상은 (예를 들어, 애플리케이션 프로그래밍 인터페이스를 통해) 선택적으로 자동화 어시스턴트(140)와 인터페이스할 수 있거나, (또한 클라우드 기반 자동화 어시스턴트 컴포넌트(들)(180)와 인터페이스할 수 있는) 자동화 어시스턴트 애플리케이션의 그들 자신의 인스턴스를 포함할 수 있다.
자동화 어시스턴트(140)는 클라이언트 디바이스(106)의 사용자 인터페이스 입력 및 출력 디바이스를 통해 사용자와의 인간 대 컴퓨터 대화 세션에 참여한다. 사용자 프라이버시를 보호하고 및/또는 자원을 보존하기 위해, 많은 상황에서 사용자는 자동화 어시스턴트가 음성 발화를 완전히 처리하기 전에 종종 명시적으로 자동화 어시스턴트(140)를 호출해야 한다. 자동화 어시스턴트(140)의 명시적 호출은 클라이언트 디바이스(106)에서 수신된 특정 사용자 인터페이스 입력에 응답하여 발생할 수 있다. 예를 들어, 클라이언트 디바이스(106)를 통해 자동화 어시스턴트(140)를 호출할 수 있는 사용자 인터페이스 입력은 선택적으로 클라이언트 디바이스(106)의 하드웨어 및/또는 가상 버튼의 작동을 포함할 수 있다. 더욱이, 자동화 어시스턴트 클라이언트는 하나 이상의 음성 호출 문구의 존재를 검출하도록 동작할 수 있는 호출 엔진과 같은 하나 이상의 로컬 엔진(108)을 포함할 수 있다. 호출 엔진은 음성 호출 문구 중 하나의 검출에 응답하여 자동화 어시스턴트(140)를 호출할 수 있다. 예를 들어, 호출 엔진은 "헤이 어시스턴트", "OK 어시스턴트" 및/또는 "어시스턴트"와 같은 음성 호출 문구를 검출하는 것에 응답하여 자동화 어시스턴트(140)를 호출할 수 있다. 호출 엔진은 음성 호출 문구의 발생을 모니터링하기 위해, 클라이언트 디바이스(106)의 하나 이상의 마이크로폰의 출력에 기초한 오디오 데이터 프레임의 스트림을 연속적으로 처리할 수 있다(예를 들어, "비활성"모드에 있지 않은 경우). 음성 호출 문구의 발생을 모니터링하는 동안, 호출 엔진은 음성 호출 문구를 포함하지 않는 임의의 오디오 데이터 프레임을 폐기한다(예를 들어, 버퍼에 임시 저장 후). 그러나, 호출 엔진이 처리된 오디오 데이터 프레임에서 음성 호출 문구의 발생을 검출할 때, 호출 엔진은 자동화 어시스턴트(140)를 호출할 수 있다. 본 명세서에서 사용되는 바와 같이, 자동화 어시스턴트(140)를 "호출"하는 것은 자동화 어시스턴트(140)의 하나 이상의 이전에 비활성된 기능들이 활성화되도록 하는 것을 포함할 수 있다. 예를 들어, 자동화 어시스턴트(140)를 호출하는 것은 하나 이상의 로컬 엔진(108) 및/또는 클라우드 기반 자동 어시스턴트 컴포넌트(180)로 하여금 호출 문구가 검출된 것에 기초하여 오디오 데이터 프레임 및/또는 하나 이상의 후속 오디오 데이터 프레임을 추가로 처리하게 하는 것을 포함할 수 있다(반면에 호출하기 전에 오디오 데이터 프레임의 추가 처리는 발생하지 않음). 예를 들어, 로컬 및/또는 클라우드 기반 컴포넌트는 오디오 데이터의 세분화 버전을 생성하고 및/또는 자동화 어시스턴트(140)의 호출에 응답하여 다른 처리를 수행할 수 있다. 일부 구현에서, 음성 호출 문구는 그 음성 호출 문구를 따르는 오디오 데이터의 세분화 버전을 생성하는데 사용되는 화자 임베딩을 생성하도록 처리될 수 있다. 일부 구현에서, 음성 호출 문구는 그 음성 호출 문구의 화자와 관련된 계정, 및 음성 호출 문구를 따르는 오디오 데이터의 세분화 버전을 생성하는데 사용되는 계정과 관련된 저장된 화자 임베딩을 식별하도록 처리될 수 있다.
자동화 어시스턴트(140)의 하나 이상의 로컬 엔진(들)(108)은 선택 사항 (optional)이며, 예를 들어 전술한 호출 엔진, (캡처된 오디오를 텍스트로 변환하는) 로컬 음성-텍스트("STT") 엔진, (텍스트를 음성으로 변환하는) 로컬 텍스트-음성("TTS") 엔진, (오디오 및/또는 오디오에서 변환된 텍스트의 시맨틱 의미를 결정하는) 로컬 자연어 프로세서 및/또는 기타 로컬 컴포넌트들을 포함할 수 있다. 클라이언트 디바이스(106)가 컴퓨팅 자원(예를 들어, 프로세서 사이클, 메모리, 배터리 등) 측면에서 상대적으로 제한되기 때문에, 로컬 엔진(108)은 클라우드 기반 자동화 어시스턴트 컴포넌트(180)에 포함된 임의의 대응물(counterparts)에 비해 제한된 기능을 가질 수 있다. .
클라우드 기반 자동 어시스턴트 컴포넌트(180)는 로컬 엔진(들)(108)의 임의의 대응물에 비해 오디오 데이터 및/또는 다른 사용자 인터페이스 입력의 더 강력하고 및/또는 더 정확한 처리를 수행하기 위해 사실상 무한한 클라우드 자원을 활용한다. 다시, 다양한 구현에서, 클라이언트 디바이스(106)는 호출 엔진이 음성 호출 문구를 검출하거나 자동화 어시스턴트(140)의 일부 다른 명시적 호출을 검출하는 것에 응답하여 클라우드 기반 자동 어시스턴트 컴포넌트(180)에 오디오 데이터 및/또는 다른 데이터를 제공할 수 있다.
도시된 클라우드 기반 자동 어시스턴트 컴포넌트(180)는 클라우드 기반 TTS 모듈(181), 클라우드 기반 STT 모듈(182), 자연어 프로세서(183), 대화 상태 추적기(184) 및 대화 관리자(185)를 포함한다. 도시된 클라우드 기반 자동화 어시스턴트 컴포넌트(180)는 또한 오디오 데이터의 세분화 버전(들)을 생성할 때 생성 모델(156)을 이용하고, 세분화 버전(들)을 하나 이상의 다른 클라우드 기반 자동화 어시스턴트 컴포넌트(180)(예를 들어, STT 모듈(182), 자연어 프로세서(183), 대화 상태 추적기(184) 및/또는 대화 관리자(185)))에 제공할 수 있는 세분화 엔진(120)을 포함한다. 또한, 클라우드 기반 자동 어시스턴트 컴포넌트(180)는 본 명세서에 설명된 다양한 목적을 위해 화자 임베딩 모델을 이용하는 화자 임베딩 엔진(125)을 포함한다.
일부 구현에서, 자동화 어시스턴트(140)의 엔진 및/또는 모듈 중 하나 이상은 생략, 결합 및/또는 자동화 어시스턴트(140)와 분리된 컴포넌트에서 구현될 수 있다. 예를 들어, 일부 구현에서, 세분화 엔진(120), 생성 모델(156), 화자 임베딩 엔진(125) 및/또는 화자 임베딩 모델(152)은 클라이언트 디바이스(106)에서 전체적으로 또는 부분적으로 구현될 수 있다. 또한, 일부 구현에서 자동화 어시스턴트(140)는 추가 및/또는 대안 엔진 및/또는 모듈을 포함할 수 있다.
클라우드 기반 STT 모듈(182)은 오디오 데이터를 텍스트로 변환할 수 있으며, 이는 자연어 처리기(183)로 제공될 수 있다. 다양한 구현에서, 클라우드 기반 STT 모듈(182)은 세분화 엔진(120)에 의해 제공되는 오디오 데이터의 세분화 버전(들)에 적어도 부분적으로 기초하여 오디오 데이터를 텍스트로 변환할 수 있다.
클라우드 기반 TTS 모듈(181)은 텍스트 데이터(예를 들어, 자동화 어시스턴트(140)에 의해 공식화된 자연어 응답)를 컴퓨터 생성 음성 출력으로 변환할 수 있다. 일부 구현에서, TTS 모듈(181)은 예를 들어 하나 이상의 스피커를 사용하여 직접 출력되도록 컴퓨터 생성 음성 출력을 클라이언트 디바이스(106)에 제공할 수 있다. 다른 구현에서, 자동화 어시스턴트(140)에 의해 생성된 텍스트 데이터(예를 들어, 자연어 응답)는 로컬 엔진(들)(108) 중 하나에 제공될 수 있으며, 이는 텍스트 데이터를 로컬로 출력되는 컴퓨터 생성 음성으로 변환할 수 있다.
자동화 어시스턴트(140)의 자연어 프로세서(183)는 자유 형식의 자연어 입력을 처리하고, 자연어 입력에 기초하여 자동화 어시스턴트(140)의 하나 이상의 다른 컴포넌트에 의해 사용하기 위한 주석이 달린 출력을 생성한다. 예를 들어, 자연어 프로세서(183)는 클라이언트 디바이스(106)를 통해 사용자에 의해 제공된 오디오 데이터의 STT 모듈(182)에 의한 변환인 텍스트 입력인 자유 형식의 자연어 입력을 처리할 수 있다. 생성된 주석이 달린 출력은 자연어 입력의 하나 이상의 주석 및 선택적으로 자연어 입력의 용어들 중 하나 이상(예를 들어, 모두)을 포함할 수 있다.
일부 구현에서, 자연어 프로세서(183)는 자연어 입력에서 다양한 유형의 문법 정보를 식별하고 주석을 달도록 구성된다. 일부 구현에서, 자연어 프로세서(183)는 추가적으로 및/또는 대안적으로 사람에 대한 참조(예를 들어, 문학 인물, 유명인, 공인등을 포함함), 조직, 위치(실제 및 가상)와 같은 하나 이상의 세그먼트에서 엔티티 참조에 주석을 달도록 구성된 엔티티 태거(미도시)를 포함할 수 있다. 일부 구현에서, 자연어 프로세서(183)는 추가적으로 및/또는 대안적으로 하나 이상의 컨텍스트 단서에 기초하여 동일한 엔티티에 대한 참조를 그룹화하거나 "클러스터"하도록 구성된 상호 참조 해석기(미도시)를 포함할 수 있다. 예를 들어, 상호 참조 해석기는 "나는 우리가 거기서 먹었던 지난번 가상 카페가 좋았어"에서 "거기"라는 자연어 입력에서 "거기"라는 용어를 "가상 카페"로 해석하는데 이용될 수 있다. 일부 구현에서, 자연어 프로세서(183)의 하나 이상의 컴포넌트는 자연어 프로세서(183)의 하나 이상의 다른 컴포넌트로부터의 주석에 의존할 수 있다. 일부 구현에서, 특정 자연어 입력을 처리할 때, 자연어 프로세서(183)의 하나 이상의 컴포넌트는 하나 이상의 주석을 결정하기 위해 특정 자연어 입력 외부의 관련된 이전 입력 및/또는 다른 관련 데이터를 사용할 수 있다
일부 구현에서, 대화 상태 추적기(184)는 예를 들어 인간 대 컴퓨터 대화 세션 및/또는 다수의 대화 세션의 과정에서 하나 이상의 사용자의 목표(또는 "의도")에 대한 빌리프(belief,믿음) 상태를 포함하는 "대화 상태"를 추적하도록 구성될 수 있다. 대화 상태를 결정할 때, 일부 대화 상태 추적기는 대화 세션의 사용자 및 시스템 발화에 기초하여, 대화에서 인스턴스화되는 슬롯(들)에 대한 가장 가능성있는 값을 결정하려고 할 수 있다. 일부 기술은 슬롯 세트 및 해당 슬롯과 연관된 값 세트를 정의하는 고정 온톨로지를 이용한다. 일부 기술은 추가적으로 또는 대안적으로 개별 슬롯 및/또는 도메인에 맞춰질 수 있다. 예를 들어, 일부 기술은 각 도메인의 각 슬롯 유형에 대한 모델 트레이닝이 필요할 수 있다.
대화 관리자(185)는 예를 들어 대화 상태 추적기(184)에 의해 제공되는 현재 대화 상태를 자동화 어시스턴트(140)에 의해 수행되는 복수의 후보 응답 액션의 하나 이상의 "응답 액션"에 매핑하도록 구성될 수 있다. 응답 액션은 현재 대화 상태에 따라 다양한 형태로 제공될 수 있다. 예를 들어, 마지막 턴 이전에 발생하는 대화 세션의 턴들에 대응하는 초기 및 중간 대화 상태(예를 들어, 사용자가 원하는 최종 작업이 수행될 때)는 추가 자연어 대화를 출력하는 자동화 어시스턴트(140)를 포함하는 다양한 응답 액션에 매핑될 수 있다. 이 응답 대화는 예를 들어, 대화 상태 추적기(184)가 사용자가 수행하고자 한다고 믿는 일부 액션(즉, 슬롯 채우기)에 대한 파라미터를 사용자가 제공하라는 요청을 포함할 수 있다. 일부 구현에서, 응답 액션은 "요청"(예를 들어, 슬롯 채우기를 위한 파라미터 검색), "제안(offer)"(예를 들어, 사용자에게 액션 또는 액션 과정 제안), "선택", "알림"(예를 들어, 사용자에게 요청된 정보 제공), "일치하지 않음(no match)"(예를 들어, 사용자의 마지막 입력이 이해되지 않음을 사용자에게 통지), 주변 디바이스에 대한 명령(예를 들어, 전구 끄기) 등과 같은 액션을 포함할 수 있다.
이제 도 9로 돌아 가면, 본 명세서에 개시된 구현이 수행될 수 있는 다른 예시적인 환경이 도시된다. 자동화 어시스턴트는 도 9에 포함되지 않는다. 오히려,도 9에서 클라이언트 디바이스(106)는 자동화 어시스턴트 클라이언트를 포함하지 않는다. 또한,도 9에서 원격 음성 처리 시스템(190)이 클라우드 기반 자동 어시스턴트 컴포넌트(들) 대신에 포함된다.
도 9에서, 클라이언트 디바이스(106)는 일반적으로 110으로 표시된 하나 이상의 로컬 및/또는 광역 네트워크(예를 들어, 인터넷)를 통해 요청(970)을 제출한다. 요청(970)은 음성 처리 요청이고 원격 음성 처리 시스템(170)에 대해 정의된 API를 통해 제출될 수 있다. 요청(970)은 오디오 데이터를 포함할 수 있고, 요청(970)에 응답하여 오디오 데이터에 대해 수행될 음성 처리의 유형(들)을 선택적으로 정의할 수 있다. 원격 음성 처리 시스템(170)은 클라이언트 디바이스(106)로부터의 요청뿐만 아니라 다양한 다른 컴퓨팅 디바이스로부터의 요청을 처리할 수 있다. 원격 음성 처리 시스템(170)은 예를 들어, 하나 이상의 서버 디바이스의 클러스터상에서 구현될 수 있다.
요청(970)을 수신하는 것에 응답하여, 원격 음성 처리 시스템(190)은 본 명세서에 설명된 것과 같은 요청에 포함된 오디오 데이터에 대해 하나 이상의 음성 처리 기능을 수행하고, 네트워크(110)를 통해 클라이언트 디바이스(106)로 다시 전송되는 응답(971)의 형태로 음성 처리 결과를 반환한다. 예를 들어, 원격 음성 처리 시스템(190)은 오디오 데이터의 세분화 버전을 생성할 때 생성 모델(156)을 이용하는 세분화 엔진(120) 및 화자 임베딩을 생성할 때 화자 임베딩 모델(152)을 이용하는 화자 임베딩 엔진(125)을 포함한다. 이들 엔진은 협력적으로 이용되어 응답(971)에 포함된 화자 분리 결과 및/또는 응답(971)에 포함된 오디오 데이터의 세분화 버전(들)을 생성할 수 있다. 게다가, 원격 음성 처리 시스템(190)은 또한 STT 모듈(182) 및 자연어 처리기(183)를 포함한다. 이러한 컴포넌트들은 도 8과 관련하여 위에서 설명한 것과 동일하고 및/또는 유사한 기능을 가질 수 있다. 일부 구현에서, 이러한 컴포넌트를 사용하여 생성된 출력은 응답(971)에 추가로 포함될 수 있다.
도 11은 본 명세서에 설명된 기술의 하나 이상의 양태를 수행하기 위해 선택적으로 이용될 수 있는 예시적인 컴퓨팅 디바이스(1110)의 블록도이다. 예를 들어, 클라이언트 디바이스(106)는 예시적인 컴퓨팅 디바이스(1110)의 하나 이상의 컴포넌트 및/또는 클라우드 기반 자동화 어시스턴트 컴포넌트(180)를 구현하는 하나 이상의 서버 디바이스를 포함할 수 있고 및/또는 원격 음성 처리 시스템(190)은 예시적인 컴퓨팅 디바이스(1110)의 하나 이상의 컴포넌트를 포함할 수 있다.
컴퓨팅 디바이스(1110)는 일반적으로 버스 서브 시스템(1112)을 통해 다수의 주변 디바이스와 통신하는 적어도 하나의 프로세서(1114)를 포함한다. 이러한 주변 디바이스는 예를 들어 메모리 서브 시스템(1125) 및 파일 저장 서브 시스템(1126), 사용자 인터페이스 출력 디바이스(1120), 사용자 인터페이스 입력 디바이스(1122) 및 네트워크 인터페이스 서브 시스템(1116)을 포함하는 저장 서브 시스템(1124)을 포함할 수 있다. 입력 및 출력 디바이스는 컴퓨팅 디바이스(1110)와 사용자 상호 작용을 허용한다. 네트워크 인터페이스 서브 시스템(1116)은 외부 네트워크에 대한 인터페이스를 제공하고 다른 컴퓨팅 디바이스의 대응하는 인터페이스 디바이스에 결합된다.
사용자 인터페이스 입력 디바이스(1122)는 키보드, 포인팅 디바이스(예를 들어, 마우스, 트랙볼, 터치 패드 또는 그래픽 태블릿), 스캐너, 디스플레이에 통합된 터치 스크린, 음성 인식 시스템과 같은 오디오 입력 디바이스, 마이크로폰 및/또는 다른 유형의 입력 디바이스를 포함할 수 있다. 일반적으로, "입력 디바이스"라는 용어의 사용은 컴퓨팅 디바이스(1110) 또는 통신 네트워크에 정보를 입력하는모든 가능한 유형의 디바이스 및 방법을 포함하도록 의도된다.
사용자 인터페이스 출력 디바이스(1120)는 디스플레이 서브 시스템, 프린터, 팩스 기계, 또는 오디오 출력 디바이스와 같은 비-시각적 디스플레이를 포함할 수 있다. 디스플레이 서브 시스템은 음극선 관(CRT), 액정 디스플레이(LCD)와 같은 평판 디바이스, 프로젝션 디바이스, 또는 가시적 이미지를 생성하기 위한 다른 메커니즘을 포함할 수 있다. 디스플레이 서브 시스템은 또한 오디오 출력 디바이스를 통해 비-시각적 디스플레이를 제공할 수 있다. 일반적으로, "출력 디바이스"라는 용어의 사용은 컴퓨팅 디바이스(1110)로부터 사용자 또는 다른 기계 또는 컴퓨팅 디바이스로 정보를 출력하는 모든 가능한 유형의 디바이스 및 방법을 포함하도록 의도된다.
저장(storage) 서브 시스템(1124)은 본 명세서에 설명된 모듈의 일부 또는 전부의 기능을 제공하는 프로그래밍 및 데이터 구성을 저장한다. 예를 들어, 저장 서브 시스템(1124)은 본 명세서에 설명된 방법의 선택된 측면을 수행하고 및/또는 본 명세서에 설명된 다양한 컴포넌트를 구현하는 로직을 포함할 수 있다.
이러한 소프트웨어 모듈은 일반적으로 프로세서(1114)에 의해 단독으로 또는 다른 프로세서와 결합하여 실행된다. 저장 서브 시스템(1124)에서 사용되는 메모리(1125)는 프로그램 실행 동안 명령들 및 데이터를 저장하기 위한 메인 랜덤 액세스 메모리(RAM)(1130) 및 고정 명령들이 저장되는 판독기 전용 메모리(ROM)(1132)를 포함하는 다수의 메모리를 포함할 수 있다. 파일 저장 서브 시스템(1126)은 프로그램 및 데이터 파일을 위한 영구 저장을 제공할 수 있으며, 하드 디스크 드라이브, 플로피 디스크 드라이브와 관련된 이동식 미디어, CD-ROM 드라이브, 광학 드라이브 또는 이동식 미디어 카트리지를 포함할 수 있다. 특정 구현의 기능을 구현하는 모듈은 저장 서브 시스템(1124)의 파일 저장 서브 시스템(1126)에 의해 저장되거나 또는 프로세서(들)(1114)에 의해 액세스 가능한 다른 기계에 저장될 수 있다.
버스 서브 시스템(1112)은 컴퓨팅 디바이스(1110)의 다양한 컴포넌트 및 서브 시스템이 의도한 대로 서로 통신하게 하는 메커니즘을 제공한다. 버스 서브 시스템(1112)이 단일 버스로 개략적으로 도시되어 있지만, 버스 서브 시스템의 대안적인 구현은 다수의 버스를 사용할 수 있다.
컴퓨팅 디바이스(1110)는 워크 스테이션, 서버, 컴퓨팅 클러스터, 블레이드 서버, 서버 팜, 또는 임의의 다른 데이터 처리 시스템 또는 컴퓨팅 디바이스를 포함하는 다양한 유형일 수 있다. 컴퓨터 및 네트워크의 끊임없이 변화하는 특성으로 인해, 도 11에 도시된 컴퓨팅 디바이스(1110)의 설명은 일부 구현을 설명하기 위한 특정 예로서만 의도된다. 컴퓨팅 디바이스(1110)의 많은 다른 구성은 도 11에 도시된 컴퓨팅 디바이스보다 더 많거나 적은 컴포넌트를 가질 수 있다.
본 명세서에 논의된 특정 구현이 사용자에 관한 개인 정보(예를 들어, 다른 전자 통신에서 추출된 사용자 데이터, 사용자의 소셜 네트워크에 관한 정보, 사용자의 위치, 사용자의 시간, 사용자의 생체 정보, 사용자의 활동 및 인구 통계 정보, 사용자 간의 관계 들)를 수집하거나 사용할 수 있는 상황에서, 사용자에게는 정보 수집 여부, 개인 정보 저장 여부, 개인 정보 사용 여부 및 사용자에 대한 정보 수집, 저장 및 사용 방법을 제어할 수 있는 하나 이상의 기회를 제공된다. 즉, 본 명세서에 설명된 시스템 및 방법은 관련 사용자로부터 명시적인 승인을 받은 경우에만 사용자 개인 정보를 수집, 저장 및/또는 사용한다.
예를 들어, 사용자는 프로그램 또는 기능이 특정 사용자 또는 프로그램 또는 기능과 관련된 다른 사용자에 관한 사용자 정보를 수집하는지 여부를 제어할 수 있다. 개인 정보가 수집될 각 사용자에게는 해당 사용자와 관련된 정보 수집에 대한 제어를 허용하고 정보 수집 여부 및 정보의 수집 부분에 대한 승인 또는 권한을 제공하는 하나 이상의 옵션이 제공된다. 예를 들어, 사용자는 통신 네트워크를 통해 이러한 제어 옵션을 하나 이상 제공받을 수 있다. 또한 특정 데이터는 저장 또는 사용되기 전에 하나 이상의 방식으로 처리되어 개인 식별 정보가 제거될 수 있다. 예를 들어, 사용자의 신원은 개인 식별 정보가 결정되지 않도록 처리될 수 있다. 다른 예로서, 사용자의 특정 위치가 결정되지 않도록 사용자의 지리적 위치는 더 큰 지역으로 일반화될 수 있다.

Claims (19)

  1. 하나 이상의 프로세서에 의해 구현되는 방법으로서, 상기 방법은,
    클라이언트 디바이스에서 자동화 어시스턴트 클라이언트를 호출하는 단계와, 상기 자동화 어시스턴트 클라이언트를 호출하는 단계는 수신된 사용자 인터페이스 입력에서 하나 이상의 호출 큐(queues)를 검출하는 것에 응답하고;
    자동화 어시스턴트 클라이언트를 호출하는 것에 응답하여:
    클라이언트 디바이스의 하나 이상의 마이크로폰을 통해 수신된 초기 음성 입력을 처리하는 단계와;
    초기 음성 입력의 처리에 기초하여 응답 액션(action)을 생성하는 단계와;
    응답 액션의 수행을 야기하는 단계와;
    응답 액션의 적어도 일부의 수행을 야기한 후 추가 음성 입력을 자동으로 모니터링하는 단계와;
    자동으로 모니터링하는 동안 오디오 데이터를 수신하는 단계와;
    오디오 데이터의 세분화(refined) 버전을 생성하는 단계와, 상기 세분화 버전은 인간 화자로부터의 임의의 오디오 데이터를 분리(isolates)하고, 상기 오디오 데이터의 세분화 버전을 생성하는 단계는:
    초기 음성 입력을 제공한 인간 화자에 대한 화자 임베딩을 식별하는 단계; 및
    트레이닝된 생성 모델을 사용하여 오디오 데이터 및 화자 임베딩을 처리하는 단계를 포함하고; 그리고
    오디오 데이터의 세분화 버전에 기초하여, 오디오 데이터에 초기 음성 발화를 제공한 동일한 인간 화자로부터의 추가 음성 입력이 포함되어 있는지 여부를 결정하는 단계와; 그리고
    오디오 데이터에 동일한 인간 화자로부터의 추가 음성 입력이 포함되어 있다고 결정하는 것에 응답하여, 추가 음성 입력에 기초하여 특정 추가 처리를 수행하는 단계를 포함하는 하나 이상의 프로세서에 의해 구현되는 방법.
  2. 제1항에 있어서,
    상기 특정 추가 처리는,
    오디오 데이터의 세분화 버전에 대해 음성-텍스트 변환 처리를 수행하는 것을 포함하는 하나 이상의 프로세서에 의해 구현되는 방법.
  3. 제1항에 있어서,
    상기 특정 추가 처리는,
    오디오 데이터의 세분화 버전의 음성-텍스트 변환 처리에 기초하여 생성된 텍스트에 대해 자연어 처리를 수행하는 것을 포함하는 하나 이상의 프로세서에 의해 구현되는 방법.
  4. 제1항에 있어서,
    특정 추가 처리는 추가 음성 입력에 기초한 응답을 제공하는 것을 포함하는 하나 이상의 프로세서에 의해 구현되는 방법.
  5. 제1항에 있어서,
    오디오 데이터에 동일한 인간 화자로부터의 임의의 추가 음성 입력이 포함되어 있지 않다고 결정하는 것에 응답하여, 오디오 데이터에 대해, 특정 처리의 적어도 일부의 수행을 억제하는 단계를 더 포함하는 하나 이상의 프로세서에 의해 구현되는 방법.
  6. 제1항에 있어서,
    오디오 데이터에 동일한 인간 화자로부터의 임의의 추가 음성 입력이 포함되어 있지 않다고 결정하는 것에 응답하여. 오디오 데이터에 맞춰진(tailored) 임의의 추가 응답 액션의 생성을 억제하는 단계를 더 포함하는 하나 이상의 프로세서에 의해 구현되는 방법.
  7. 클라이언트 디바이스의 하나 이상의 프로세서에 의해 구현되는 방법으로서, 상기 방법은,
    클라이언트 디바이스의 하나 이상의 마이크로폰을 통해 검출된 오디오 데이터를 수신하는 단계와, 상기 오디오 데이터는 인간 화자의 발화를 캡처하고 또한 인간 화자로부터가 아닌 하나 이상의 추가 사운드를 캡처하고;
    서로 다른 화자를 위한 로컬로 저장된 다수의 화자 임베딩으로부터, 특정 화자 임베딩을 선택하는 단계와, 상기 특정 화자 임베딩을 선택하는 단계는 인간 화자에 대응하는 특정 화자 임베딩에 기초하고 인간 화자가 현재 클라이언트 디바이스의 활성 사용자라고 결정하는 것에 기초하며;
    오디오 데이터의 세분화 버전을 생성하는 단계와, 상기 오디오 데이터의 세분화 버전은 인간 화자의 하나 이상의 발화를 인간 화자로부터가 아닌 하나 이상의 추가 사운드로부터 분리하고, 그리고 상기 오디오 데이터의 세분화 버전을 생성하는 단계는:
    신경망 모델의 직접 출력으로서 세분화된 오디오 데이터를 생성하기 위해 신경망 모델을 사용하여 오디오 데이터 및 특정 화자 임베딩을 처리하는 단계를 포함하고, 상기 특정 화자 임베딩은 특정 화자 임베딩을 선택하는 것에 응답하여, 임의의 다른 다수의 로컬로 저장된 화자 임베딩 대신에 사용되며; 그리고
    오디오 데이터의 세분화 버전에 대해 추가 처리를 수행하는 단계를 포함하고, 상기 추가 처리를 수행하는 단계는,
    인간 화자의 하나 이상의 발화에 대한 예측 텍스트를 생성하기 위해 오디오 데이터의 세분화 버전에 대해 음성-텍스트 변환 처리를 수행하는 단계를 포함하는 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법.
  8. 제7항에 있어서,
    오디오 데이터가 캡처되기 전에, 디지털 시스템에 등록하는 동안 인간 화자에 의해 발화된 하나 이상의 등록 발화에 기초하여 특정 화자 임베딩을 생성하는 단계를 더 포함하는 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법.
  9. 제7항에 있어서,
    오디오 데이터의 시퀀스에 선행하는 추가 오디오 데이터를 처리하는 것에 기초하여 인간 화자가 현재 클라이언트 디바이스의 활성 사용자라고 결정하는 단계를 더 포함하는 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법.
  10. 제9항에 있어서,
    상기 추가 오디오 데이터는 자동화 어시스턴트를 호출하기 위한 호출 문구이고, 상기 오디오 데이터는 자동화 어시스턴트의 자동화 어시스턴트 인터페이스를 통해 수신되는 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법.
  11. 제10항에 있어서,
    예측된 텍스트에 기초하여 자동화 어시스턴트 응답을 생성하는 단계 및 자동화 어시스턴트 응답이 클라이언트 디바이스에서 렌더링되게 하는 단계를 더 포함하는 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법.
  12. 제7항에 있어서,
    예측된 텍스트가 클라이언트 디바이스의 디스플레이를 통해 렌더링되게 하는 단계를 더 포함하는 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법.
  13. 제7항에 있어서,
    이미지 인식을 수행하는 것에 기초하여, 인간 화자가 현재 클라이언트 디바이스의 활성 사용자라고 결정하는 단계를 더 포함하는 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법.
  14. 클라이언트 디바이스로서,
    하나 이상의 마이크로폰;
    명령들을 저장하는 메모리; 및
    동작들을 수행하도록 메모리에 저장된 명령을 실행하는 하나 이상의 프로세서를 포함하고, 상기 동작들은:
    클라이언트 디바이스에서 자동화 어시스턴트 클라이언트를 호출하는 동작과, 상기 자동화 어시스턴트 클라이언트를 호출하는 동작은 수신된 사용자 인터페이스 입력에서 하나 이상의 호출 큐를 검출하는 것에 응답하고;
    자동화 어시스턴트 클라이언트를 호출하는 것에 응답하여:
    하나 이상의 마이크로폰을 통해 수신된 초기 음성 입력을 처리하는 동작과;
    초기 음성 입력의 처리에 기초하여 응답 액션을 수행하는 동작과;
    응답 액션의 적어도 일부의 수행을 야기한 후 추가 음성 입력을 자동으로 모니터링하는 동작과;
    자동으로 모니터링하는 동안 하나 이상의 마이크로폰을 통해 오디오 데이터를 수신하는 동작과;
    오디오 데이터의 세분화 버전을 생성하는 동작과, 상기 세분화 버전은 인간 화자로부터의 임의의 오디오 데이터를 분리(isolates)하고, 상기 오디오 데이터의 세분화 버전을 생성할 때 하나 이상의 프로세서는,
    초기 음성 입력을 제공한 인간 화자에 대한 로컬로 저장된 화자 임베딩을 식별하고; 그리고
    로컬로 저장된 트레이닝된 생성 모델을 사용하여 오디오 데이터 및 화자 임베딩을 처리하며; 그리고
    오디오 데이터의 세분화 버전에 기초하여, 오디오 데이터에 초기 음성 발화를 제공한 동일한 인간 화자로부터의 추가 음성 입력이 포함되어 있는지 여부를 결정하는 동작과; 그리고
    오디오 데이터에 동일한 인간 화자로부터의 추가 음성 입력이 포함되어 있다고 결정하는 것에 응답하여, 추가 음성 입력에 기초하여 특정 추가 처리를 수행하는 동작을 포함하는 것을 특징으로 하는 클라이언트 디바이스.
  15. 제14항에 있어서,
    상기 특정 추가 처리는,
    오디오 데이터의 세분화 버전에 대해 음성-텍스트 변환 처리를 수행하는 것을 포함하는 클라이언트 디바이스.
  16. 제14항에 있어서,
    상기 특정 추가 처리는,
    오디오 데이터의 세분화 버전의 음성-텍스트 변환 처리에 기초하여 생성된 텍스트에 대해 자연어 처리를 수행하는 것을 포함하는 클라이언트 디바이스.
  17. 제14항에 있어서,
    상기 특정 추가 처리는,
    추가 음성 입력에 기초한 응답을 제공하는 것을 포함하는 클라이언트 디바이스.
  18. 제14항에 있어서,
    상기 명령들을 실행할 때, 하나 이상의 프로세서는 추가로,
    오디오 데이터에 동일한 인간 화자로부터의 임의의 추가 음성 입력이 포함되어 있지 않다고 결정하는 것에 응답하여, 오디오 데이터에 대해, 특정 처리의 적어도 일부의 수행을 억제하는 것을 특징으로 하는 클라이언트 디바이스.
  19. 제14항에 있어서,
    상기 명령들을 실행할 때, 하나 이상의 프로세서는 추가로,
    오디오 데이터에 동일한 인간 화자로부터의 임의의 추가 음성 입력이 포함되어 있지 않다고 결정하는 것에 응답하여, 오디오 데이터에 맞춰진 임의의 추가 응답 액션의 생성을 억제하는 것을 특징으로 하는 클라이언트 디바이스.
KR1020237002422A 2018-09-25 2018-09-25 화자 임베딩(들)과 트레이닝된 생성 모델을 이용한 화자 분리 KR102535338B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020207035754A KR102492783B1 (ko) 2018-09-25 2018-09-25 화자 임베딩(들)과 트레이닝된 생성 모델을 이용한 화자 분리
PCT/US2018/052724 WO2020068056A1 (en) 2018-09-25 2018-09-25 Speaker diarization using speaker embedding(s) and trained generative model

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020207035754A Division KR102492783B1 (ko) 2018-09-25 2018-09-25 화자 임베딩(들)과 트레이닝된 생성 모델을 이용한 화자 분리

Publications (2)

Publication Number Publication Date
KR20230018534A true KR20230018534A (ko) 2023-02-07
KR102535338B1 KR102535338B1 (ko) 2023-05-26

Family

ID=63858134

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020207035754A KR102492783B1 (ko) 2018-09-25 2018-09-25 화자 임베딩(들)과 트레이닝된 생성 모델을 이용한 화자 분리
KR1020237002422A KR102535338B1 (ko) 2018-09-25 2018-09-25 화자 임베딩(들)과 트레이닝된 생성 모델을 이용한 화자 분리

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020207035754A KR102492783B1 (ko) 2018-09-25 2018-09-25 화자 임베딩(들)과 트레이닝된 생성 모델을 이용한 화자 분리

Country Status (6)

Country Link
US (3) US10978059B2 (ko)
EP (2) EP3655947B1 (ko)
JP (2) JP7191987B2 (ko)
KR (2) KR102492783B1 (ko)
CN (1) CN112262431A (ko)
WO (1) WO2020068056A1 (ko)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9633650B2 (en) * 2013-08-28 2017-04-25 Verint Systems Ltd. System and method of automated model adaptation
KR102544250B1 (ko) * 2018-07-03 2023-06-16 삼성전자주식회사 소리를 출력하는 디바이스 및 그 방법
WO2020068056A1 (en) * 2018-09-25 2020-04-02 Google Llc Speaker diarization using speaker embedding(s) and trained generative model
US11250838B2 (en) * 2018-11-16 2022-02-15 Deepmind Technologies Limited Cross-modal sequence distillation
US11853812B2 (en) * 2018-12-20 2023-12-26 Here Global B.V. Single component data processing system and method utilizing a trained neural network
US11217254B2 (en) * 2018-12-24 2022-01-04 Google Llc Targeted voice separation by speaker conditioned on spectrogram masking
KR20220025058A (ko) * 2019-07-01 2022-03-03 구글 엘엘씨 적응형 분리 모델 및 사용자 인터페이스
US11514911B2 (en) * 2019-09-12 2022-11-29 Oracle International Corporation Reduced training for dialog systems using a database
US11521592B2 (en) * 2019-09-24 2022-12-06 Baidu Usa Llc Small-footprint flow-based models for raw audio
GB2595222A (en) * 2020-05-18 2021-11-24 Waves Audio Ltd Digital audio workstation with audio processing recommendations
US11328733B2 (en) * 2020-09-24 2022-05-10 Synaptics Incorporated Generalized negative log-likelihood loss for speaker verification
KR102482827B1 (ko) * 2020-11-30 2022-12-29 네이버 주식회사 화자 임베딩 기반 음성 활동 검출을 이용한 화자 분할 방법, 시스템, 및 컴퓨터 프로그램
US11557278B2 (en) * 2020-12-10 2023-01-17 Google Llc Speaker dependent follow up actions and warm words
KR102560019B1 (ko) * 2021-01-15 2023-07-27 네이버 주식회사 화자 식별과 결합된 화자 분리 방법, 시스템, 및 컴퓨터 프로그램
EP4292079A1 (en) * 2021-02-11 2023-12-20 Nuance Communications, Inc. Multi-channel speech compression system and method
JP2024516815A (ja) * 2021-04-30 2024-04-17 ドルビー ラボラトリーズ ライセンシング コーポレイション エピソード的コンテンツをサポートする話者ダイアライゼーション
US20230069049A1 (en) * 2021-08-23 2023-03-02 Robert Bosch Gmbh System and method for a natural language understanding system based on iterative intent detection and slot filling neural layers
US20230169988A1 (en) * 2021-11-30 2023-06-01 Samsung Electronics Co., Ltd. Method and apparatus for performing speaker diarization based on language identification
WO2024035424A1 (en) * 2022-08-08 2024-02-15 Google Llc Dynamically determining whether to perform candidate automated assistant action determined from spoken utterance
CN116631406B (zh) * 2023-07-21 2023-10-13 山东科技大学 基于声学特征生成的身份特征提取方法、设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101247578B1 (ko) * 2008-12-09 2013-03-26 노키아 코포레이션 자동 음성 인식 음향 모델들의 적응
KR101330328B1 (ko) * 2010-12-14 2013-11-15 한국전자통신연구원 음성 인식 방법 및 이를 위한 시스템
KR20160088446A (ko) * 2011-03-21 2016-07-25 애플 인크. 음성 인증을 사용하는 디바이스 액세스
US20180201226A1 (en) * 2017-01-17 2018-07-19 NextEv USA, Inc. Voice Biometric Pre-Purchase Enrollment for Autonomous Vehicles
KR20180111310A (ko) * 2017-03-31 2018-10-11 엘지전자 주식회사 홈 어플라이언스, 음성 인식 모듈 및 홈 어플라이언스 시스템

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040122672A1 (en) * 2002-12-18 2004-06-24 Jean-Francois Bonastre Gaussian model-based dynamic time warping system and method for speech processing
US8756062B2 (en) * 2010-12-10 2014-06-17 General Motors Llc Male acoustic model adaptation based on language-independent female speech data
US9368116B2 (en) 2012-09-07 2016-06-14 Verint Systems Ltd. Speaker separation in diarization
US9460722B2 (en) 2013-07-17 2016-10-04 Verint Systems Ltd. Blind diarization of recorded calls with arbitrary number of speakers
US20160293167A1 (en) * 2013-10-10 2016-10-06 Google Inc. Speaker recognition using neural networks
US9324320B1 (en) * 2014-10-02 2016-04-26 Microsoft Technology Licensing, Llc Neural network-based speech processing
US9978374B2 (en) * 2015-09-04 2018-05-22 Google Llc Neural networks for speaker verification
US10706873B2 (en) * 2015-09-18 2020-07-07 Sri International Real-time speaker state analytics platform
US10733979B2 (en) * 2015-10-09 2020-08-04 Google Llc Latency constraints for acoustic modeling
US9747926B2 (en) 2015-10-16 2017-08-29 Google Inc. Hotword recognition
CN107016999B (zh) 2015-10-16 2022-06-14 谷歌有限责任公司 热词识别
US20180018973A1 (en) * 2016-07-15 2018-01-18 Google Inc. Speaker verification
CN108320732A (zh) * 2017-01-13 2018-07-24 阿里巴巴集团控股有限公司 生成目标说话人语音识别计算模型的方法和装置
US10460727B2 (en) * 2017-03-03 2019-10-29 Microsoft Technology Licensing, Llc Multi-talker speech recognizer
WO2020068056A1 (en) * 2018-09-25 2020-04-02 Google Llc Speaker diarization using speaker embedding(s) and trained generative model

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101247578B1 (ko) * 2008-12-09 2013-03-26 노키아 코포레이션 자동 음성 인식 음향 모델들의 적응
KR101330328B1 (ko) * 2010-12-14 2013-11-15 한국전자통신연구원 음성 인식 방법 및 이를 위한 시스템
KR20160088446A (ko) * 2011-03-21 2016-07-25 애플 인크. 음성 인증을 사용하는 디바이스 액세스
US20180201226A1 (en) * 2017-01-17 2018-07-19 NextEv USA, Inc. Voice Biometric Pre-Purchase Enrollment for Autonomous Vehicles
KR20180111310A (ko) * 2017-03-31 2018-10-11 엘지전자 주식회사 홈 어플라이언스, 음성 인식 모듈 및 홈 어플라이언스 시스템

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Subhadeep Dey 외, 'DNN BASED SPEAKER EMBEDDING USING CONTENT INFORMATION FOR TEXT-DEPENDENT SPEAKER VERIFICATION', ICASSP 2018, pp.5344-5348, 2018.04. *

Also Published As

Publication number Publication date
US20210217411A1 (en) 2021-07-15
WO2020068056A1 (en) 2020-04-02
EP3655947B1 (en) 2022-03-09
US20230395069A1 (en) 2023-12-07
KR102535338B1 (ko) 2023-05-26
CN112262431A (zh) 2021-01-22
JP7191987B2 (ja) 2022-12-19
EP4009321A1 (en) 2022-06-08
JP2023029973A (ja) 2023-03-07
EP4009321B1 (en) 2024-05-01
JP2021533397A (ja) 2021-12-02
KR20210008520A (ko) 2021-01-22
EP3655947A1 (en) 2020-05-27
US10978059B2 (en) 2021-04-13
KR102492783B1 (ko) 2023-01-27
US11735176B2 (en) 2023-08-22
US20200342857A1 (en) 2020-10-29

Similar Documents

Publication Publication Date Title
KR102535338B1 (ko) 화자 임베딩(들)과 트레이닝된 생성 모델을 이용한 화자 분리
US11545157B2 (en) Speaker diartzation using an end-to-end model
US11423885B2 (en) Utilizing pre-event and post-event input streams to engage an automated assistant
US11922951B2 (en) Targeted voice separation by speaker conditioned on spectrogram masking
KR102609430B1 (ko) 호출 구문 검출에서 노이즈 감소 기술의 선택적 적응 및 활용
CN113614825A (zh) 用于自动语音识别的字词网格扩增
US11854533B2 (en) Speaker awareness using speaker dependent speech model(s)
CN114365216A (zh) 按讲话者进行语音识别的目标话音分离
CN112381989A (zh) 排序方法、装置、系统和电子设备
US11756533B2 (en) Hot-word free pre-emption of automated assistant response presentation
US20230156248A1 (en) Ephemeral learning of machine learning model(s)

Legal Events

Date Code Title Description
A107 Divisional application of patent
E701 Decision to grant or registration of patent right
GRNT Written decision to grant