KR20240065125A - 희귀 단어 스피치 인식을 위한 대규모 언어 모델 데이터 선택 - Google Patents

희귀 단어 스피치 인식을 위한 대규모 언어 모델 데이터 선택 Download PDF

Info

Publication number
KR20240065125A
KR20240065125A KR1020247012077A KR20247012077A KR20240065125A KR 20240065125 A KR20240065125 A KR 20240065125A KR 1020247012077 A KR1020247012077 A KR 1020247012077A KR 20247012077 A KR20247012077 A KR 20247012077A KR 20240065125 A KR20240065125 A KR 20240065125A
Authority
KR
South Korea
Prior art keywords
training
encoder
text samples
model
training text
Prior art date
Application number
KR1020247012077A
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 KR20240065125A publication Critical patent/KR20240065125A/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/06Creation of reference templates; Training of speech recognition systems, e.g. adaptation to the characteristics of the speaker's voice
    • G10L15/063Training
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural 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/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/08Speech classification or search
    • G10L15/18Speech classification or search using natural language modelling
    • G10L15/183Speech classification or search using natural language modelling using context dependencies, e.g. language models
    • G10L15/19Grammatical context, e.g. disambiguation of the recognition hypotheses based on word sequence rules
    • G10L15/197Probabilistic grammars, e.g. word n-grams
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Theoretical Computer Science (AREA)
  • Biomedical Technology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biophysics (AREA)
  • Data Mining & Analysis (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Probability & Statistics with Applications (AREA)
  • Machine Translation (AREA)

Abstract

희귀 단어 스피치 인식을 위한 언어 모델(206)을 트레이닝하는 방법(500)은 트레이닝 텍스트 샘플들의 세트(422)를 획득하는 동작 및 스피치 인식 모델(200)을 트레이닝하는데 사용되는 트레이닝 발화들의 세트(452)를 획득하는 동작을 포함한다. 복수의 트레이닝 발화들의 각각의 트레이닝 발화는 발화에 대응하는 오디오 데이터(454) 및 발화의 대응하는 전사(456)를 포함한다. 상기 방법은 트레이닝 발화들의 세트로부터의 전사에 나타나지 않거나 트레이닝 발화들의 세트로부터의 전사에 임계 횟수 미만으로 나타나는 단어를 포함하는 희귀 단어 트레이닝 텍스트 샘플들의 서브세트를 식별하기 위해 트레이닝 텍스트 샘플들의 세트에 희귀 단어 필터링을 적용하는 동작을 포함한다. 상기 방법은 트레이닝 발화들의 세트로부터의 전사 및 희귀 단어 트레이닝 텍스트 샘플들의 식별된 서브세트에 대해 외부 언어 모델(206)을 트레이닝하는 동작을 포함한다.

Description

희귀 단어 스피치 인식을 위한 대규모 언어 모델 데이터 선택
본 개시는 희귀 단어 스피치 인식을 위한 대규모 언어 모델 데이터 선택에 관한 것이다.
ASR(자동 스피치 인식) 시스템은 각 모델이 단일 신경 네트워크를 사용하여 오디오 파형(예: 입력 시퀀스)을 출력 문장(예: 출력 시퀀스)에 직접 매핑하는 통합 모델 전용 목적을 갖는 다수의 모델들로부터 발전했다. 이 통합은 오디오 피처들의 시퀀스가 주어졌을 때 단어들(또는 자소들)의 시퀀스를 생성하는 시퀀스-투-시퀀스 접근 방식을 초래했다. 통합 구조를 사용하면, 모델의 모든 컴포넌트를 단일 종단 간(E2E) 신경 네트워크로 공동으로 트레이닝할 수 있다. 여기서 E2E 모델은 아키텍처가 완전히 신경 네트워크로 구성된 모델을 의미한다. 완전 신경 네트워크는 외부적으로 및/또는 수동으로 설계된 컴포넌트(예: 유한 상태 트랜스듀서, 어휘 또는 텍스트 정규화 모듈) 없이 작동한다. 또한 E2E 모델을 트레이닝할 때, 이러한 모델은 일반적으로 의사 결정 트리에서 부트스트랩하거나 별도의 시스템에서 시간 정렬을 필요로 하지 않는다. 이러한 E2E 자동 스피치 인식(ASR) 시스템은 단어 오류율(WER)을 포함한 여러 공통 벤치마크에서 기존 ASR 시스템을 능가하는 엄청난 발전을 이루었다. E2E ASR 모델의 아키텍처는 주로 애플리케이션에 따라 다르다. 예를 들어, 음성 검색이나 온-디바이스 받아쓰기와 같은 사용자 인터렉션과 관련된 여러 애플리케이션에서는 모델이 스트리밍 방식으로 인식을 수행해야 한다. 오프라인 비디오 캡션과 같은 다른 애플리케이션에서는 모델의 스트리밍이 필요하지 않으며 향후 컨텍스트를 활용하여 성능을 향상시킬 수 있다. 또한 기존 E2E 모델은 트레이닝 중에 보이지 않는 희귀 단어를 인식하는데 높은 실패율을 경험한다. 대규모 트레이닝 데이터세트에서 외부 언어 모델을 트레이닝하여 희귀 단어 인식이 개선된다.
본 개시의 한 양태는 희귀 단어 스피치 인식을 위한 언어 모델을 트레이닝하는 컴퓨터로 구현되는 방법을 제공한다. 데이터 프로세싱 하드웨어에서 실행될 때 컴퓨터로 구현되는 방법은 데이터 프로세싱 하드웨어로 하여금 트레이닝 텍스트 샘플들의 세트를 획득하는 동작 및 자동 스피치 인식(ASR) 모델을 트레이닝하는데 사용되는 트레이닝 발화들의 세트를 획득하는 동작을 포함하는 동작들을 수행하게 한다. 복수의 트레이닝 발화들의 각각의 트레이닝 발화는 발화에 대응하는 오디오 데이터 및 발화의 대응하는 전사를 포함한다. 상기 동작들은 트레이닝 발화들의 세트로부터의 전사에 나타나지 않거나 트레이닝 발화들의 세트로부터의 전사에 임계 횟수 미만으로 나타나는 단어를 포함하는 희귀 단어 트레이닝 텍스트 샘플들의 서브세트를 식별하기 위해 트레이닝 텍스트 샘플들의 세트에 희귀 단어 필터링을 적용하는 동작을 포함한다. 상기 동작들은 트레이닝 발화들의 세트로부터의 전사 및 희귀 단어 트레이닝 텍스트 샘플들의 식별된 서브세트에 대해 외부 언어 모델을 트레이닝하는 동작을 포함한다.
본 개시의 구현예는 다음 구성들 중 하나 이상을 포함할 수 있다. 일부 구현예에서, 트레이닝 텍스트 샘플들의 세트를 획득하는 동작은 트레이닝 텍스트 샘플들의 코퍼스를 수신하는 동작, 트레이닝 텍스트 샘플들의 코퍼스에서 발생하는 높은 빈도의 텍스트 샘플들을 식별하기 위해 트레이닝 텍스트 샘플들의 코퍼스에 대해 리샘플링 함수를 실행하는 동작, 및 트레이닝 텍스트 샘플들의 코퍼스로부터 식별된 높은 빈도의 텍스트 샘플들을 제거함으로써 트레이닝 텍스트 샘플들의 세트를 획득하는 동작을 포함한다. 일부 예시에서, 상기 리샘플링 함수는 단순 파워 리샘플링 함수, 강제 파워 리샘플링 함수 또는 소프트 로그 리샘플링 함수 중 하나를 포함한다.
일부 구현예에서, 상기 동작들은 트레이닝 발화들의 세트와 연관된 타겟 도메인과 일치하는 타겟 도메인 트레이닝 텍스트 샘플들의 서브세트를 식별하기 위해 트레이닝 텍스트 샘플들의 세트에 대조 필터링을 적용하는 동작을 더 포함한다. 여기서, 트레이닝 발화들의 세트로부터의 전사 및 희귀 단어 트레이닝 텍스트 샘플들의 식별된 서브세트에 대해 외부 언어 모델을 트레이닝하는 동작은 타겟 도메인과 일치하는 타겟 도메인 트레이닝 텍스트 샘플들의 식별된 서브세트에 대해 외부 언어 모델을 트레이닝하는 동작을 더 포함한다. 일부 예에서, 외부 언어 모델은 외부 신경 언어 모델을 포함한다. 이러한 예에서, 외부 신경 언어 모델은 컨포머 레이어들 또는 트랜스포머 레이어들의 스택을 포함할 수 있다.
일부 구현예에서, 동작들은 트레이닝된 외부 언어 모델을 트레이닝된 ASR 모델과 통합하는 것을 더 포함한다. 트레이닝된 외부 언어 모델은 트레이닝된 ASR 모델에 의해 예측된 가능한 스피치 인식 가설에 대한 확률 분포를 재점수화하도록 구성된다. 이러한 구현예에서, ASR 모델은 제1 인코더, 제2 인코더 및 디코더를 포함한다. 제1 인코더는 음향 프레임들의 시퀀스를 입력으로서 수신하고 복수의 출력 단계들 각각에서, 상기 음향 프레임들의 시퀀스에서 대응하는 음향 프레임에 대한 제1 고차 피처 표현을 생성하도록 구성된다. 제2 인코더는 상기 복수의 출력 단계들 각각에서 상기 제1 인코더(210)에 의해 생성된 상기 제1 고차 피처 표현을 제2 인코더(220)에 대한 입력으로서 수신하고 상기 복수의 출력 단계들 각각에서 대응하는 제1 고차 피처 프레임에 대한 제2 고차 피처 표현을 생성하도록 구성된다. 디코더는 복수의 출력 단계들 각각에서 제2 인코더에 의해 생성된 제2 고차 피처 표현을 입력으로서 수신하고 복수의 시간 단계들 각각에서 가능한 스피치 인식 가설에 대한 제1 확률 분포를 생성하도록 구성된다.
일부 구현예에서, 디코더는 복수의 출력 단계들 각각에서 제1 인코더에 의해 생성된 제1 고차 피처 표현을 입력으로서 수신하고 복수의 시간 단계들 각각에서 가능한 스피치 인식 가설에 대한 제2 확률 분포를 생성하도록 더 구성된다. 추가로, 디코더는 예측 네트워크 및 조인트 네트워크를 포함할 수 있다. ASR 모델이 스트리밍 모드에서 동작할 때, 예측 네트워크는 복수의 출력 단계들 각각에서 예측 네트워크에 의해 생성된 평균 임베딩과 복수의 출력 단계들 각각에서 제1 인코더에 의해 생성된 제1 고차 피처 표현을 입력으로 수신하고, 복수의 출력 단계들 각각에서 가능한 스피치 인식 가설에 대한 제2 확률 분포를 생성하도록 구성된다. 대안적으로, ASR 모델이 비-스트리밍 모드에서 동작할 때, 예측 네트워크는 복수의 출력 단계들 각각에서 예측 네트워크에 의해 생성된 평균 임베딩과 복수의 출력 단계들 각각에서 제2 인코더에 의해 생성된 제2 고차 피처 표현을 입력으로 수신하고, 가능한 스피치 인식 가설에 대한 제1 확률 분포를 생성하도록 구성된다.
추가적으로 또는 대안적으로, 제1 인코더는 컨포머 레이어들의 초기 스택을 포함하는 인과(causal) 인코더를 포함할 수 있다. 여기서, 제2 인코더는 컨포머 레이어들의 초기 스택 위에 놓이는 컨포머 레이어들의 최종 스택을 포함하는 비-인과(non-causal) 인코더를 포함할 수 있다. 상기 ASR 모델의 제1 인코더 및 제2 인코더는 트레이닝 발화들의 세트로부터의 전사와 희귀 단어 트레이닝 텍스트 샘플들의 식별된 서브세트를 포함하는 텍스트 전용 데이터에 대해 트레이닝된 외부 언어 모델의 통합을 용이하게 하기 위해 Hybrid Autoregressive Transducer Factorization을 사용하여 트레이닝된다.
본 개시의 다른 양태는 희귀 단어 스피치 인식에 대한 언어 모델을 트레이닝하기 위한 시스템을 제공한다. 시스템은 데이터 프로세싱 하드웨어와 상기 데이터 프로세싱 하드웨어와 통신하는 메모리 하드웨어를 포함한다. 메모리 하드웨어는 데이터 프로세싱 하드웨어에서 실행될 때 데이터 프로세싱 하드웨어로 하여금 동작들을 수행하게 하는 명령어를 저장하며, 상기 동작들은 트레이닝 텍스트 샘플들의 세트를 획득하는 동작 및 자동 스피치 인식(ASR) 모델을 트레이닝하는데 사용되는 트레이닝 발화들의 세트를 획득하는 동작을 포함한다. 복수의 트레이닝 발화들의 각각의 트레이닝 발화는 발화에 대응하는 오디오 데이터 및 발화의 대응하는 전사를 포함한다. 상기 동작들은 트레이닝 발화들의 세트로부터의 전사에 나타나지 않거나 트레이닝 발화들의 세트로부터의 전사에 임계 횟수 미만으로 나타나는 단어를 포함하는 희귀 단어 트레이닝 텍스트 샘플들의 서브세트를 식별하기 위해 트레이닝 텍스트 샘플들의 세트에 희귀 단어 필터링을 적용하는 동작을 포함한다. 상기 동작들은 트레이닝 발화들의 세트로부터의 전사 및 희귀 단어 트레이닝 텍스트 샘플들의 식별된 서브세트에 대해 외부 언어 모델을 트레이닝하는 동작을 포함한다.
본 양태는 다음 구성들 중 하나 이상을 포함할 수 있다. 일부 구현예에서, 트레이닝 텍스트 샘플들의 세트를 획득하는 동작은 트레이닝 텍스트 샘플들의 코퍼스를 수신하는 동작, 트레이닝 텍스트 샘플들의 코퍼스에서 발생하는 높은 빈도의 텍스트 샘플들을 식별하기 위해 트레이닝 텍스트 샘플들의 코퍼스에 대해 리샘플링 함수를 실행하는 동작, 및 트레이닝 텍스트 샘플들의 코퍼스로부터 식별된 높은 빈도의 텍스트 샘플들을 제거함으로써 트레이닝 텍스트 샘플들의 세트를 획득하는 동작을 포함한다. 일부 예시에서, 상기 리샘플링 함수는 단순 파워 리샘플링 함수, 강제 파워 리샘플링 함수 또는 소프트 로그 리샘플링 함수 중 하나를 포함한다.
일부 구현예에서, 상기 동작들은 트레이닝 발화들의 세트와 연관된 타겟 도메인과 일치하는 타겟 도메인 트레이닝 텍스트 샘플들의 서브세트를 식별하기 위해 트레이닝 텍스트 샘플들의 세트에 대조 필터링을 적용하는 동작을 더 포함한다. 여기서, 트레이닝 발화들의 세트로부터의 전사 및 희귀 단어 트레이닝 텍스트 샘플들의 식별된 서브세트에 대해 외부 언어 모델을 트레이닝하는 동작은 타겟 도메인과 일치하는 타겟 도메인 트레이닝 텍스트 샘플들의 식별된 서브세트에 대해 외부 언어 모델을 트레이닝하는 동작을 더 포함한다. 일부 예에서, 외부 언어 모델은 외부 신경 언어 모델을 포함한다. 이러한 예에서, 외부 신경 언어 모델은 컨포머 레이어들 또는 트랜스포머 레이어들의 스택을 포함할 수 있다.
일부 구현예에서, 동작들은 트레이닝된 외부 언어 모델을 트레이닝된 ASR 모델과 통합하는 것을 더 포함한다. 트레이닝된 외부 언어 모델은 트레이닝된 ASR 모델에 의해 예측된 가능한 스피치 인식 가설에 대한 확률 분포를 재점수화하도록 구성된다. 이러한 구현예에서, ASR 모델은 제1 인코더, 제2 인코더 및 디코더를 포함한다. 제1 인코더는 음향 프레임들의 시퀀스를 입력으로서 수신하고 복수의 출력 단계들 각각에서, 상기 음향 프레임들의 시퀀스에서 대응하는 음향 프레임에 대한 제1 고차 피처 표현을 생성하도록 구성된다. 제2 인코더는 상기 복수의 출력 단계들 각각에서 상기 제1 인코더(210)에 의해 생성된 상기 제1 고차 피처 표현을 제2 인코더(220)에 대한 입력으로서 수신하고 상기 복수의 출력 단계들 각각에서 대응하는 제1 고차 피처 프레임에 대한 제2 고차 피처 표현을 생성하도록 구성된다. 디코더는 복수의 출력 단계들 각각에서 제2 인코더에 의해 생성된 제2 고차 피처 표현을 입력으로서 수신하고 복수의 시간 단계들 각각에서 가능한 스피치 인식 가설에 대한 제1 확률 분포를 생성하도록 구성된다.
일부 구현예에서, 디코더는 복수의 출력 단계들 각각에서 제1 인코더에 의해 생성된 제1 고차 피처 표현을 입력으로서 수신하고 복수의 시간 단계들 각각에서 가능한 스피치 인식 가설에 대한 제2 확률 분포를 생성하도록 더 구성된다. 추가로, 디코더는 예측 네트워크 및 조인트 네트워크를 포함할 수 있다. ASR 모델이 스트리밍 모드에서 동작할 때, 예측 네트워크는 복수의 출력 단계들 각각에서 예측 네트워크에 의해 생성된 평균 임베딩과 복수의 출력 단계들 각각에서 제1 인코더에 의해 생성된 제1 고차 피처 표현을 입력으로 수신하고, 복수의 출력 단계들 각각에서 가능한 스피치 인식 가설에 대한 제2 확률 분포를 생성하도록 구성된다. 대안적으로, ASR 모델이 비-스트리밍 모드에서 동작할 때, 예측 네트워크는 복수의 출력 단계들 각각에서 예측 네트워크에 의해 생성된 평균 임베딩과 복수의 출력 단계들 각각에서 제2 인코더에 의해 생성된 제2 고차 피처 표현을 입력으로 수신하고, 가능한 스피치 인식 가설에 대한 제1 확률 분포를 생성하도록 구성된다.
추가적으로 또는 대안적으로, 제1 인코더는 컨포머 레이어들의 초기 스택을 포함하는 인과(causal) 인코더를 포함할 수 있다. 여기서, 제2 인코더는 컨포머 레이어들의 초기 스택 위에 놓이는 컨포머 레이어들의 최종 스택을 포함하는 비-인과(non-causal) 인코더를 포함할 수 있다. 상기 ASR 모델의 제1 인코더 및 제2 인코더는 트레이닝 발화들의 세트로부터의 전사와 희귀 단어 트레이닝 텍스트 샘플들의 식별된 서브세트를 포함하는 텍스트 전용 데이터에 대해 트레이닝된 외부 언어 모델의 통합을 용이하게 하기 위해 Hybrid Autoregressive Transducer Factorization을 사용하여 트레이닝된다.
본 개시의 하나 이상의 구현예의 세부 내용이 첨부 도면과 아래의 설명에서 기술된다. 다른 양태, 구성, 객체 및 이점은 아래의 설명, 도면 및 청구항으로부터 명백해질 것이다.
도 1a 및 도 1b는 자동 스피치 인식을 위한 스피치 인식 모델 및 외부 언어 모델 아키텍처를 사용하는 예시적 스피치 환경의 개략도이다.
도 2는 도 1의 스피치 인식 모델 및 언어 모델 아키텍처의 개략도이다.
도 3은 도 2의 스피치 인식 모델의 예측 네트워크의 예시적 묶음 및 축소 예측 레이어의 개략도이다.
도 4는 언어 모델을 트레이닝하기 위한 데이터 선택 파이프라인의 개략도이다.
도 5는 언어 모델을 트레이닝하는 방법의 예시적 동작 구성의 개략도이다.
도 6는 본 명세서에 기술된 시스템 및 방법을 구현하는데 사용될 수 있는 예시적 컴퓨팅 디바이스의 개략도이다.
다양한 도면들에서 기호들은 동일한 엘리먼트를 표시한다.
E2E(End-to-End) ASR(자동 스피치 인식) 모델은 일반적으로 스트리밍 모드 또는 비-스트리밍 모드에서 동작하도록 구성되어 있다. 기존 E2E ASR 모델은 인코더(Encoder)와 디코더(Decoder)를 주요 컴포넌트로 포함한다. 음성 검색이나 기기 내 받아쓰기와 같은 최종 사용자 인터렉션과 관련된 애플리케이션에서는 모델이 스트리밍 방식으로 인식을 수행해야 할 수 있고, 여기서 단어는 가능한 짧은 레이턴시로 말하면서 출력될 것으로 예상된다. 이는 양방향 LSTM과 같이 정확성을 높이기 위해 미래 컨텍스트를 사용하는 모델의 사용을 방지한다. 대조적으로, 오프라인 비디오 캡션과 같은 애플리케이션은 스트리밍 인식이 필요하지 않으며 향후 사용 가능한 모든 컨텍스트를 최대한 활용하여 성능을 향상시킬 수 있다. 또한 기존 E2E ASR 모델은 기존 모델이 트레이닝한 1,000억 개가 넘는 텍스트 발화에 비해 작은 부분의 오디오-텍스트 쌍에 대해 트레이닝되므로 롱테일 고유 명사와 희귀 단어에 대해서는 성능이 좋지 않다.
본 문서의 구현예는 ASR 모델의 희귀 단어 인식 품질을 향상시키기 위해 선택된 데이터에 대해 트레이닝된 온-디바이스 신경 언어 모델과 결합된 단일 E2E ASR 모델을 지향한다. 보다 구체적으로, 본 명세서의 구현예는 희귀 단어 및 롱테일 고유 명사의 인식 품질을 향상시키기 위해 언어 모델을 트레이닝하는데 적합한 트레이닝 데이터의 충분한 서브세트를 선택하기 위한 데이터 선택 파이프라인에 관한 것이다. ASR 모델은 스트리밍 및 비-스트리밍 인코더를 포함하는 캐스케이드 인코더와 ASR 모델이 스트리밍 또는 비-스트리밍에서 동작할 수 있도록 스트리밍 또는 비-스트리밍 인코더의 출력을 사용하여 디코딩하는 방법을 학습하는 단일 디코더를 사용할 수 있다. ASR 모델 외에도 스트리밍 및 비-스트리밍 모드를 모두 구현하는 기계 번역과 같은 다른 모델에도 아키텍처를 적용할 수 있다.
도 1a 및 도 1b는 스피치 환경(100, 100a-b)의 예이다. 음성 환경(100)에서, 사용자 디바이스(10)와 같은 컴퓨팅 디바이스와 인터렉션하는 사용자(104)의 방식은 음성 입력일 수 있다. 사용자 디바이스(10)(일반적으로 디바이스(10)라고도 함)는 스피치 환경(100) 내의 하나 이상의 사용자(104)로부터 사운드(예를 들어, 스트리밍 오디오 데이터)를 캡처하도록 구성된다. 여기서, 스트리밍 오디오 데이터는 가청 쿼리, 디바이스(10)에 대한 명령, 또는 디바이스(10)에 의해 캡처된 가청 통신으로서 기능하는 사용자(104)에 의한 음성 발화(106)를 지칭할 수 있다. 디바이스(10)의 음성 지원 시스템은 쿼리에 응답하고 및/또는 명령이 하나 이상의 다운스트림 애플리케이션에 의해 수행/이행되게 함으로써 쿼리 또는 명령을 필드에 넣을 수 있다.
사용자 디바이스(10)는 사용자(104)와 연관되고 오디오 데이터를 수신할 수 있는 임의의 컴퓨팅 디바이스에 대응할 수 있다. 사용자 디바이스(10)의 일부 예는 모바일 디바이스(예를 들어, 모바일폰, 태블릿, 랩톱 등), 컴퓨터, 웨어러블 디바이스(예를 들어, 스마트 워치), 스마트 기기, 사물 인터넷(IoT), 차량 정보 시스템, 스마트 디스플레이를 포함하지만 이에 한정되지 않는다. 사용자 디바이스(10)는 데이터 프로세싱 하드웨어(12) 및 상기 데이터 프로세싱 하드웨어(12)와 통신하고 명령어를 저장하는 메모리 하드웨어(14)를 포함하며, 상기 명령어는 상기 데이터 프로세싱 하드웨어(12)에 의해 실행될 때 상기 데이터 프로세싱 하드웨어(12)로 하여금 하나 이상의 동작들을 수행하게 한다. 사용자 디바이스(10)는 스피치 환경(100) 내의 음성 발화(106)를 캡처하고 전기 신호로 변환하기 위한 오디오 캡처 디바이스(예를 들어, 마이크)(16, 16a) 및 가청 오디오 신호(예를 들어, 디바이스(10)로부터의 출력 오디오 데이터로서)를 통신하기 위한 음성 출력 디바이스(예를 들어, 스피커)(16, 16b)를 갖는 오디오 시스템(16)을 더 포함한다. 도시된 예에서 사용자 디바이스(10)가 단일 오디오 캡처 디바이스(16a)를 구현하는 동안, 사용자 디바이스(10)는 본 개시의 범위를 벗어나지 않고 오디오 캡처 디바이스(16a)의 어레이를 구현할 수 있으며, 이에 의해 어레이 내의 하나 이상의 캡처 디바이스(16a)는 사용자 디바이스(10)에 물리적으로 상주하지 않을 수 있지만 오디오 시스템(16)과 통신할 수 있다.
스피치 환경(100)에서, 자동 스피치 인식(ASR) 시스템(109)은 사용자(104)의 사용자 디바이스(102) 및/또는 사용자 디바이스(102)와 네트워크(40)를 통해 통신하는 원격 컴퓨팅 디바이스(60)(예를 들어, 클라우드 컴퓨팅 환경에서 실행되는 분산 시스템의 하나 이상의 원격 서버)에 상주하는 외부 언어 모델(LM)(206)과 통합된 ASR 모델(200)(모델(200)으로도 지칭됨)을 구현한다. 원격 컴퓨팅 디바이스(60)는 원격 데이터 프로세싱 하드웨어(62)(예를 들어, 원격 서버 또는 CPU) 및/또는 원격 메모리 하드웨어(64)(예를 들어, 원격 데이터베이스 또는 기타 저장 하드웨어)와 같은 원격 리소스를 포함할 수 있다. 사용자 디바이스(60) 및/또는 원격 컴퓨팅 디바이스(60)는 사용자(106)가 말하고 오디오 캡처 디바이스(16a)가 캡처한 발화(106)를 수신하고, 상기 발화(12)를 ASR 시스템(109)에 의해 프로세싱될 수 있는 입력 음향 프레임들(110)과 연관된 대응하는 디지털 형식으로 변환하도록 구성된 오디오 서브시스템(108)을 포함한다. 도 1a에 도시된 예에서, 사용자(104)는 각각의 발화(106)를 말하고, 오디오 서브시스템(108)은 ASR 시스템(109)에 입력하기 위해 발화(106)를 대응하는 오디오 데이터(예를 들어, 음향 프레임들)(110)로 변환한다. 그 후, 모델(200)은 발화(106)에 대응하는 오디오 데이터(110)를 입력으로 수신하고, 발화(106)의 대응하는 전사(예를 들어, 인식 결과/가설)(120)를 출력으로서 생성/예측한다.
모델(200)은 또한 모델(200)이 스트리밍 및 비-스트리밍 모드에서 동작할 수 있는 단일 모델이 될 수 있도록 하는 인코더 사이에 공유되는 디코더(204)(도 2)(공유 디코더(204)라고도 함)를 포함한다(예를 들어, 각 모델이 스트리밍 모드 또는 비-스트리밍 모드 전용인 두 개의 별도 모델과 대조적임). 예를 들어, 도 1a에 도시된 바와 같이, 사용자 디바이스(10)에서 실행되는 디지털 어시스턴트 애플리케이션(50)은 단어, 단어 조각 및/또는 개별 문자가 말하자마자 화면에 나타나도록 스트리밍되는 스피치 인식을 요구할 수 있다. 추가적으로, 사용자 디바이스(10)의 사용자(104)는 디지털 어시스턴트 애플리케이션(50)이 수행할 쿼리를 발행할 때 레이턴시에 대한 낮은 인내심을 가질 가능성이 높다. 애플리케이션에 최소 레이턴시를 요구하는 이러한 시나리오에서, 모델(200)은 사용자(104)가 발화(106)할 때 모델(200)이 실시간으로 스트리밍 전사 기능을 제공할 수 있는 스트리밍 모드에서 동작한다. 반면, 사용자(104)가 스피치 인식 레이턴시에 대해 더 높은 인내심을 갖고 및/또는 인식할 발화(106)가 장문 스피치(즉, 전체 문단 또는 여러 문장으로 구성된 스피치를 참조함)과 연관되어 있는 경우, 동일한 모델(200)은 비-스트리밍 모드에서 동작할 수 있고, 예측 네트워크를 활용하여 레이턴시가 증가할 수 있지만 정확한 전사(120)를 제공할 수 있다.
추가적으로, 사용자(104)는 희귀 단어나 고유 명사를 검출하는 경우 사용자 디바이스(10)의 ASR 시스템(109)이 모델(200)의 출력을 편향하는 것을 돕기 위해 모델(200)과 함께 LM(206)을 사용하여 달성될 수 있는 희귀 단어 또는 롱테일 고유 명사를 정확하게 식별할 수 있을 것을 요구한다. 도 4를 참조하여 아래에서 더 자세히 논의된 바와 같이, LM(206)은 희귀 단어 또는 고유 명사를 검출하기 위해 모델(200)의 출력을 정확하게 편향하도록 LM(206)을 트레이닝하는데 필요한 텍스트 전용 트레이닝 데이터의 양을 줄이기 위해 다양한 데이터 선택 전략을 통해 얻은 데이터 세트로 트레이닝될 수 있다. 따라서, ASR 시스템(109)은 발화(106)가 희귀 단어 또는 롱테일 고유 명사를 포함하는 경우 전사(120)의 정확도를 높이기 위해 LM(206)을 사용하는 동시에 작업별로 트레이닝된 ASR 모델을 활용할 필요 없이 스트리밍 및 비-스트리밍 전사 기능을 모두 제공하기 위해 다수의 서로 다른 스피치 인식 작업에 대해 캐스케이드 인코더(210, 220)를 포함하는 단일 ASR 모델을 구현할 수 있다.
일부 구현예에서, 모델(200)은 먼저 오디오 데이터(110)에 대해 스트리밍 인코딩을 수행한 다음 스트리밍 인코더의 출력에 대해 비-스트리밍 인코딩을 수행한다. 예를 들어, 도시된 예에서, 모델(200)은 제1 인코더(즉, 낮은 레이턴시 인코더)를 사용하여 오디오 데이터(110)에 대해 스트리밍 스피치 인식을 수행하여 부분적 스피치 인식 결과(120, 120a)를 생성하고, 제2 인코더(즉, 높은 레이턴시 인코더)를 사용하여 인코딩된 오디오 데이터(110)에 대한 비-스트리밍 스피치 인식을 수행하여 최종 스피치 인식 결과(120, 120b)를 생성한다. 특히, 제1 인코더는 부분적 스피치 인식 결과(120a)를 생성하고, 제2 인코더는 최종 스피치 인식 결과(120b)를 생성하기 위해 제1 인코더의 출력을 기다린다. 따라서, 입력 발화(106)에 대한 최종 스피치 인식 결과(120b)는 입력 발화에 대한 부분적 스피치 인식 결과(120a)보다 일정 시간 지연될 수 있다.
사용자 디바이스(10) 및/또는 원격 컴퓨팅 디바이스(60)는 또한 사용자 디바이스(10)의 사용자(104)에게 발화(106)에 대한 전사(120)의 표현을 제시하도록 구성된 사용자 인터페이스 생성기(107)를 실행한다. 아래에서 더 자세히 설명되는 바와 같이, 사용자 인터페이스 생성기(107)는 시간 1 동안 스트리밍 방식으로 부분적 스피치 인식 결과(120a)를 디스플레이하고 이어서 시간 2 동안 최종 스피치 인식 결과(120b)를 디스플레이할 수 있다. 일부 구성에서, ASR 시스템(109)으로부터 출력된 전사(120)는 예를 들어 발화(106)에 의해 특정된 사용자 명령/쿼리를 실행하기 위해 사용자 디바이스(10) 또는 원격 컴퓨팅 디바이스(60) 상에서 실행되는 자연어 이해(NLU) 모듈에 의해 프로세싱된다. 추가적으로 또는 대안적으로, 텍스트-투-스피치 시스템(미도시)(예를 들어, 사용자 디바이스(10) 또는 원격 컴퓨팅 디바이스(60)의 임의의 조합에서 실행)은 상기 전사(120)를 사용자 디바이스(10) 및/또는 다른 디바이스에 의한 가청 출력을 위한 합성 스피치로 변환할 수 있다.
도 1a의 예에서, 음성 환경(100a)의 사용자(104)는 ASR 시스템(109)을 사용하는 사용자 디바이스(10)의 프로그램 또는 애플리케이션(50)(예를 들어, 디지털 어시스턴트 애플리케이션(50a))과 인터렉션한다. 예를 들어, 도 1a는 사용자(104)가 디지털 어시스턴트 애플리케이션(50a)과 통신하는 것을 도시하며, 디지털 어시스턴트 애플리케이션(50a)은 사용자(10)와 디지털 어시스턴트 애플리케이션(50a)의 디지털 어시스턴트 사이의 대화를 묘사하기 위해 사용자 디바이스(10)의 화면 상에 디지털 어시스턴트 인터페이스(18)를 디스플레이한다. 이 예에서, 사용자(104)는 디지털 어시스턴트 애플리케이션(50a)에 "What year was Serendipity released?"라고 질문한다. 사용자(104)로부터의 이 질문은 오디오 캡처 디바이스(16a)에 의해 캡처되고 사용자 디바이스(10)의 오디오 시스템(16)에 의해 프로세싱되는 음성 발화(106)이다. 이 예에서, 오디오 시스템(16)은 음성 발화(106)를 수신하고 이를 ASR 시스템(109)에 대한 입력을 위해 음향 프레임들(110)로 변환한다.
예시를 계속하면, 모델(200)은 사용자(104)가 말할 때 발화(106)에 대응하는 음향 프레임들(110)을 수신하는 동안 제1 인코더(210)(즉, 도 2)를 사용하여 음향 프레임들(110)을 인코딩하고, 그런 다음 디코더(204)(도 2)를 사용하여 음향 프레임들(110)의 인코딩된 표현을 부분적 스피치 인식 결과(120a)로 디코딩한다. 시간 1 동안, 사용자 인터페이스 생성기(107)는 디지털 어시스턴트 인터페이스(18)를 통해, 발화(106)의 부분적 스피치 인식 결과(120a)의 표현을 사용자 디바이스(10)의 사용자(104)에게 단어, 단어 조각 및/또는 및/또는 개별 문자가 말하자마자 화면에 나타나는 스트리밍 방식으로 제시한다.
발화(106)에 대응하는 음향 프레임들(110)의 전부(또는 일부)가 수신된 후, 제1 인코더(210)가 이러한 음향 프레임들(110)을 인코딩하고, 제2 인코더(220)(즉, 도 2)는 제1 인코더(210)에 의해 이미 인코딩된 발화(106)에 대응하는 음향 프레임들(110) 세트에 대한 인코딩을 생성하기 위해 제1 인코더(210)로부터의 인코딩 출력을 인코딩한다. 그런 다음 디코더(204)는 제2 인코더(220)에 의해 인코딩된 음향 프레임들(110)을 디코딩하고, 디코딩된 음향 프레임들을 다시 스코어링하여 최종 스피치 인식 결과(120b)를 생성하는 LM(206)을 사용하여 디코딩된 음향 프레임들(110)을 프로세싱한다. 예를 들어, 제1 인코더(210)가 발화(106)에 대응하는 모든 음향 프레임들(110)을 인코딩하는 경우(예를 들어, 음향 프레임들(110)이 수신됨에 따라), 제2 인코더(220)는 제1 인코더(210)에 의해 인코딩된 모든 음향 프레임들(110)을 인코딩한다. 이와 관련하여, 다수의 인코딩된 음향 프레임들(110)을 인코딩함으로써, 제2 인코더(210)는 비-스트리밍 방식으로 (예를 들어, 발화(106)에 대한 모든 음향 프레임들(110)의 표현을 수신함으로써) 더 큰 컨텍스트 인식을 제공할 수 있고, 제1 인코더(210)의 스트리밍 특성에 의해 누락되거나 잘못 해석된 발화(106)의 양태(들)을 잠재적으로 조정하거나 정정할 수 있다.
일부 예에서, 사용자(104)가 발화(106) 말하기를 완료했음을 식별하는 엔드포인트와 같은 표시는 모든 음향 프레임들(110)을 인코딩하기 위해 모델(200)의 제2 인코더(220)를 트리거하는 기능을 한다. 다른 예에서, 제2 인코더(220)는 제1 인코더(210)와 병렬로 음향 프레임들(110)을 인코딩하고, 제1 인코더(210)는 발화(106)의 끝에서 엔드포인트를 식별함으로써, 제2 인코더(220)가 최종 스피치 인식 결과(120b)를 방출하도록 트리거한다. 제1 인코더(210)에 의해 식별된 엔드포인트는 동시에 마이크 닫기 이벤트를 트리거할 수 있다. 시간 2 동안, 사용자 인터페이스 생성기(107)는 디지털 어시스턴트 인터페이스(18)를 통해 발화(106)의 최종 스피치 인식 결과(120b)의 표현을 사용자 디바이스(10)의 사용자(104)에게 제시한다. 일부 구현예에서, 사용자 인터페이스 생성기(107)는 부분적 스피치 인식 결과(120a)의 표현을 최종 스피치 인식 결과(120b)의 표현으로 대체(또는 수정)한다. 이 예에서, 사용자(104)의 발화(106)는 모델(200)이 트레이닝되지 않은 희귀한 단어 "Serendipity"를 포함한다. 따라서 모델(200)에 의해 출력되고 시간 1에 화면에 디스플레이된 부분적 스피치 인식 결과(120a)는 사용자(104)의 발화(106)가 "What year was serene released?"라고 잘못 예측한다. 모델(200)이 출력하여 시간 2의 레이턴시를 늘려 화면에 디스플레이되는 최종 스피치 인식 결과(120b)는 사용자(104)가 "Serendipity"라고 말한 것을 식별함으로써 정확도 측면에서 스피치 인식 품질을 향상시킨다. 그러나, 사용자 인터페이스 생성기(107)는 사용자가 발화(106)를 말할 때 부분적 스피치 인식 결과를 디스플레이하기 때문에, 최종 스피치 인식 결과(120b)를 생성하고 궁극적으로 디스플레이하는 것과 연관된 더 높은 레이턴시는 사용자(104)에게 덜 눈에 띈다.
일부 구현예에서, 모델(200)은 최종 스피치 인식 결과(120b)가 사용 가능해지기 전에 스피치 인식 결과를 페치함으로써 레이턴시를 줄이는 프리페칭 기법을 활용한다. 여기서, 부분적 스피치 인식 결과(120a)가 최종 스피치 인식 결과(120b)와 일치하면, 부분적 스피치 인식 결과(120a)에 대해 페치된 응답을 즉시 내보내어 최종 스피치 인식 결과(120b)가 완료된 후 일반적으로 발생하는 실행 레이턴시를 절약할 수 있다.
차례로, 도 1a에 도시된 바와 같이, 디지털 어시스턴트 애플리케이션(50a)은 사용자(104)가 제기한 질문에 자연어 프로세싱을 사용하여 응답할 수 있다. 자연어 프로세싱은 일반적으로 기록된 언어(예를 들어, 부분적 스피치 인식 결과(120a) 및/또는 최종 스피치 인식 결과(120b))를 해석하고 기록된 언어가 어떤 액션을 촉구하는지 여부를 결정하는 프로세스를 의미한다. 이 예에서, 디지털 어시스턴트 애플리케이션(50a)는 자연어 프로세싱을 사용하여 사용자(10)로부터의 질문이 사용자의 환경 보다 구체적으로 사용자 근처에서 재생 중인 노래에 관한 것임을 인식한다. 자동화된 어시스턴트는 자연어 프로세싱으로 이러한 세부 정보를 인식하여 "Serendipity was released in 2001"라는 사용자 쿼리에 대한 응답(19)을 반환한다. 일부 구성에서, 자연어 프로세싱은 사용자 디바이스(10)의 데이터 프로세싱 하드웨어(12)와 통신하는 원격 컴퓨팅 디바이스(60)에서 발생할 수 있다.
도 1b는 스피치 환경(100b)의 ASR 시스템(109)을 사용한 스피치 인식의 또 다른 예이다. 예시에 도시된 바와 같이, 사용자(104)는 Jane Doe가 사용자(104)에게 남긴 음성 메일을 전사하기 위해 사용자 디바이스(10)의 화면 상에 음성 메일 애플리케이션 인터페이스(18, 18b)를 디스플레이하는 음성 메일 애플리케이션(50, 50b)과 인터렉션한다. 이 예에서는 레이턴시는 중요하지 않지만, 롱테일 고유 명사 또는 희귀 단어를 프로세싱할 때 전사의 정확성이 중요하다. ASR 시스템(109)의 모델(200) 및 LM(206)은 음성 메일에 대응하는 모든 음향 프레임들(110)이 생성될 때까지 대기함으로써 오디오의 전체 컨텍스트를 활용할 수 있다. 이 음성 메일 시나리오는 또한 음성 메일이 종종 여러 문장 또는 심지어 여러 단락이기 때문에 모델(200)이 긴 형식의 스피치를 처리할 수 있는 방법을 보여준다. 긴 형식 스피치를 처리하는 기능은 LAS 디코더가 있는 2패스 모델과 같은 다른 ASR 모델에 비해 특히 유리하다. 왜냐하면 이러한 2패스 모델은 긴 형식 조건에 적용되는 경우 종종 긴 형식 문제(예: 긴 형식 스피치에서 더 높은 단어 삭제율)로 인해 어려움을 겪기 때문이다. 예를 들어, 캐스케이드 인코더(202)(예를 들어, 제1 인코더(210) 및 제2 인코더(220))와 결합하여 디코더(204)로서 RNN-T 디코더를 사용함으로써, 모델(200)은 긴 형식 차질없이 장문 스피치 및 단문 스피치 모두에 대해 동작한다.
계속해서 도 1b를 참조하면, 도 1a를 참조하여 논의된 바와 같이, 모델(200)은 음향 프레임들(110)을 수신하면서 제1 인코더(210)를 사용하여 음향 프레임들(110)을 인코딩한다. 모델(200)이 모든 음향 프레임들(110)을 수신하고 이를 제1 인코더(210)로 인코딩한 후, 모델(200)은 제1 인코더 출력을 제2 인코더(220)에 입력으로 제공한다. 제2 인코더(220)는 디코더(204)가 임베딩을 생성하기 전에 제1 인코더 출력을 인코딩하고, LM(206)은 최종 스피치 인식 결과(120b)를 생성하기 위해 디코더(204) 출력을 다시 스코어링한다. 시간 3 동안, 사용자 인터페이스 생성기(107)는 부분적 스피치 인식 결과(120a)를 먼저 디스플레이하지 않고 디지털 어시스턴트 인터페이스(18b)를 통해 최종 스피치 인식 결과(120b)의 표현을 제시한다. 예를 들어, 최종 스피치 인식 결과(120b)는 Jane Doe가 “Do you want to watch Serendipity tonight? Give me a call back when you get this.”라는 장문의 음성 메일을 전사한 것이다.
도 2는 스트리밍 모드와 비-스트리밍 모드의 다양한 조합에서 동작하는 예시적 모델(200)을 포함한다. 구체적으로, 모델(200)은 캐스케이딩 인코더(202), 디코더(204) 및 외부 LM(206)을 포함한다. 캐스케이딩 인코더(202)는 인코딩 경로가 디코딩 전에 하나의 인코더(210)의 출력이 다른 인코더(220)의 입력을 공급하도록 캐스케이딩된 2개의 인코더(210, 220)를 포함하는 모델 구조를 의미한다. 여기서, 인코더(210, 220)는 각 인코더에 대한 기본 아키텍처에 관계없이 캐스케이딩될 수 있다. 일부 예에서, 인코더(210, 220)는 512차원 컨포머 레이어들의 스택을 포함한다. 모델이 향후 입력을 사용하지 않도록 엄격하게 제한하기 위해 각 컨포머 레이어에 대해 인과(causal) 컨벌루션 및 왼쪽 컨텍스트 어텐션 레이어를 사용할 수 있다. 멀티 헤드(예를 들어, 8개의 헤드) 어텐션 메커니즘이 셀프-어텐션 레이어에서 사용될 수 있다. 캐스케이드 인코더(210, 220)는 17개의 컨포머 레이어들을 포함할 수 있다. 여기서, 인과 인코더(210)는 15개의 컨포머 레이어들을 포함할 수 있는 반면, 비-인과 인코더(210)는 추가적인 오른쪽(right) 컨텍스트(예를 들어, 5.04초)를 취하는 2개의 컨포머 레이어들을 포함할 수 있다. 선택적으로, 트랜스포머 레이어는 컨포머 레이어 대신에 사용될 수 있다.
다른 구현예에서, 하나의 인코더는 LSTM 구조로 구성되는 반면, 다른 인코더는 양방향 LSTM 레이어 또는 컨포머 레이어(예를 들어, 컨포머-트랜스듀서)를 사용하여 구성된다. 즉, 인코더(210, 220)는 서로 다른 아키텍처 또는 유사한 아키텍처를 가질 수 있다. 예를 들어, 캐스케이드 인코더(202)는 종래의 ASR 시스템의 음향 모델(AM)과 대략 유사할 수 있고, 적층된 LSTM(Long Short-Term Memory) 레이어(216)의 순환 네트워크를 포함할 수 있다. 여기서, 제1 인코더(210)는 단방향 LSTM(Long Short Term Memory) 레이어를 포함하는 스트리밍 인코더이고, 제2 인코더(220)는 양방향 LSTM 레이어 또는 컨포머 레이어를 포함하는 비-스트리밍 인코더이다. 두 인코더(210, 230) 모두가 LSTM 레이어를 포함하는 캐스케이딩 인코더(202)에서, 제1 인코더(210)의 출력을 수신하는 제2 인코더(220)는 제2 인코더(220)가 제1 인코더(210)보다 더 적은 수의 LSTM 레이어들(그리고 완전 비-스트리밍 모델보다 더 적은 LSTM 레이어들)을 포함하도록 제1 인코더(210)의 LSTM 레이어를 활용할 수 있다. 더 적은 수의 LSTM 레이어들을 가짐으로써, 캐스케이딩 인코더(202)는 전통적인 스트리밍 모델과 전통적인 비-스트리밍 모델을 단순히 결합하는 것보다 모델(200)을 더 간소화하게 만드는 더 많은 계산 비용이 드는 양방향 레이어들의 수를 줄일 수 있다. 일부 구현예에서, 캐스케이드 인코더 모델(200)이 보는 미래 컨텍스트의 양을 제한하기 위해, 제2 인코더(220)는 특정 양의 올바른 컨텍스트(예를 들어, 5초의 올바른 컨텍스트)를 갖는 일부 수의 컨포머 레이어(예를 들어, 2개의 레이어)를 사용하며, 제1 인코더(210)는 계속해서 LSTM 레이어를 사용한다. 이러한 구현예의 경우, 제2 인코더(220)의 각 컨포머 레이어는 LSTM 레이어와 일치하고 약 천만 개의 추가 파라미터를 추가하기 위해 640개의 유닛을 가질 수 있다.
도 2를 참조하면, 제1 인코더(210)는 d차원 피처 벡터들의 시퀀스(예를 들어, 도 1a 및 도 1b에 도시된 음향 프레임들(110)) x = (x 1 , x 2 , · · · , x T )를 판독하고, 여기서 x t ∈ Rd이며 각 시간 단계에서 제1 고차 피처 표현을 생성한다. 이 제1 고차 피처 표현은 e s 로 표시될 수 있다. 유사하게, 제2 인코더(220)는 제1 인코더(210)에 캐스케이드로 연결되고, 제1 고차 피처 e s 를 입력으로 수신하고 제2 고차 피처 표현을 출력하도록 트레이닝된다. 이 고차 피처 표현은 e a 로 표시될 수 있다. 제1 인코더(210)와 제2 인코더(220)는 모두 디코더(204)에 직접 연결되어 공유된다. 따라서, 디코더(204)는 제1 고차 피처 표현 e s 와 제2 고차 피처 표현 e a 모두를 입력으로서 수신한다.
디코더(204)는 조인트 레이어(230) 및 예측 네트워크(300)를 갖는 순환 신경 네트워크-트랜스포머(RNN-T) 아키텍처를 포함할 수 있다. 디코더(204)는 캐스케이드 인코더(202)에 의해 출력된 제1 및 제2 고차 피처 표현들 e s , e a 뿐만 아니라 디코더 출력을 생성하기 위해 이전 예측 y r-1 에 대한 임베딩 룩업(300)으로부터의 임베딩 출력을 결합하는(즉, 모델(200)이 비-스트리밍 모드에서 동작할 때) 조인트 레이어(230)를 사용한다. 디코더 출력은 격자 재-스코어링 또는 n-최적 재-순위화와 같은 기법을 사용하여 디코더(204)로부터의 초기 출력을 다시 스코어링/개선하는 외부 LM(206)에 전달된다. 다시 말해서, 디코더(204)는 예측을 생성하고, 외부 LM(206)은 희귀 단어 또는 롱테일 고유명사에 대한 인식 정확도를 향상시켜 예측을 마무리한다. 모델(200)이 스트리밍 모드에서 동작할 때, 조인트 레이어(230)는 임베딩 룩업(300)의 출력을 수신하고, 제1 인코더(210)로부터 출력된 제1 고차 피처 표현 e s 만을 수신한다.
디코더 출력은 현재 하위 단어 단위 y i 에 대한 확률 분포 P (y i |y i-1 , . . . , y 0 , x)일 수 있고 여기서, N개의 이전 비공백 심볼(301) 이전 단위 {y i-1 , . . . , y i-N } 및 입력 x이다. 도시되지는 않았지만, 모델(200)은 디코더(204)의 출력을 수신하는 소프트맥스 레이어를 포함할 수 있다. 일부 구현예에서, 소프트맥스 레이어는 디코더(204)와 별개이고 디코더(204)로부터의 출력 yr을 프로세싱한다. 그런 다음 소프트맥스 레이어의 출력은 빔 검색 프로세스에서 직교 엘리먼트들을 선택하는데 사용된다. 일부 구현예에서, 소프트맥스 레이어는 디코더(204)와 통합되어, 디코더(204)의 출력 yr은 소프트맥스 레이어의 출력을 나타낸다.
일부 예에서, 예측 네트워크(300)는 두 개의 2,048차원 LSTM 레이어를 가지며, 각 레이어 뒤에는 640차원 투영 레이어도 있으므로 LSTM 기반 임베딩 룩업(300)은 약 2,340만 개의 파라미터를 가질 수 있다. 예측 네트워크(300)가 LSTM 레이어를 포함하는 경우, 모델(200)의 정확도/성능을 희생하지 않고 예측 네트워크(300)의 크기를 줄이는 기법에 기여하기 위해, 예측 네트워크(300)는 최종 소프트맥스 레이어에 의해 출력된 N개의 비-공백 심볼(301)로 제한된 비-공백 심볼의 제한된 히스토리 시퀀스 y ui-n , . . . , y ui-1 을 입력으로 수신하는 무상태 예측 네트워크를 포함할 수 있다. 예를 들어, 도 3은 최종 소프트맥스 레이어에 의해 출력된 N개의 이전 비-공백 심볼(301a-n)로 제한된 비-공백 심볼의 시퀀스 y ui-n , . . . , y ui-1 을 입력으로 수신하는 모델(200)의 무상태 예측 네트워크(300)를 나타낸다. 일부 예에서, N은 2이다. 다른 예에서, N은 5이지만, 본 개시는 비제한적이며 N은 임의의 정수일 수 있다. 비-공백 심볼(301a-n)의 시퀀스는 초기 스피치 인식 결과(120a)를 나타낸다(도 1). 일부 구현예에서, 예측 네트워크(300)는 멀티 헤드 어텐션 메커니즘의 각 헤드(302A-302H)에 걸쳐 공유 임베딩 행렬(304)을 공유하는 멀티 헤드 어텐션 메커니즘(302)을 포함한다. 일 예시에서, 멀티 헤드 어텐션 메커니즘(302)은 4개의 헤드를 포함한다. 그러나, 멀티 헤드 어텐션 메커니즘(302)에 의해 임의의 개수의 헤드가 채용될 수 있다. 특히, 멀티 헤드 어텐션 메커니즘은 모델 크기를 최소한으로 늘리면서 성능을 크게 향상시킨다. 아래에서 더 자세히 설명되는 것처럼, 각 헤드(302A-H)는 자신의 포지션 벡터(308) 행을 포함하고, 모든 헤드로부터의 출력(318A-H)을 연결하여 모델 크기의 증가를 초래하는 대신, 출력(318A-H)은 헤드 평균 모듈(322)에 의해 평균화된다.
멀티 헤드 어텐션 메커니즘(302)의 제1 헤드(302A)를 참조하면, 헤드(302A)는 공유 임베딩 행렬(304)을 사용하여, 복수의 시간 단계들 중 대응하는 시간 단계에서 입력으로 수신된 비-공백 심볼의 시퀀스 y ui-n , . . . , y ui-1 중 각 비-공백 심볼(301)에 대해 대응하는 임베딩(306, 306a-n)(예를 들어, )을 생성한다. 특히, 공유 임베딩 행렬(304)이 멀티 헤드 어텐션 메커니즘(302)의 모든 헤드에 걸쳐 공유되기 때문에, 다른 헤드(302B-H)는 모두 각각의 비-공백 심볼에 대해 동일한 대응 임베딩(306)을 생성한다. 헤드(302A)는 또한 각각의 포지션 벡터 PVAa-An(308, 308Aa-An)(예를 들어, )을 비-공백 심볼의 시퀀스 y ui-n , . . . , y ui-1 에서 대응하는 비-공백 심볼 각각에 할당한다. 각각의 비-공백 심볼에 할당된 각각의 포지션 벡터 PV(308)는 비-공백 심볼의 시퀀스(예를 들어, 최종 소프트맥스 레이어에 의해 출력된 이전의 N개의 비-공백 심볼)의 히스토리 내 포지션을 나타낸다. 예를 들어, 제1 포지션 벡터 PVAa는 히스토리의 가장 최근 포지션에 할당되는 반면, 마지막 포지션 벡터 PVAn은 최종 Softmax 레이어에 의해 출력된 N개의 이전 비-공백 심볼의 히스토리의 마지막 포지션에 할당된다. 특히, 임베딩(306) 각각은 포지션 벡터 PV(308) 각각과 동일한 차원(즉, 차원 크기)을 포함할 수 있다.
비-공백 심볼(301a-n)의 시퀀스 y ui-n , . . . , y ui-1 중 각 비-공백 심볼(301)에 대한 공유 임베딩 행렬(304)에 의해 생성된 대응하는 임베딩이 멀티 헤드 어텐션 메커니즘(302)의 모든 헤드(302A-H)에서 동일하며, 각 헤드(302A-H)는 포지션 벡터(308)의 서로 다른 세트/행을 정의한다. 예를 들어, 제1 헤드(302A)는 포지션 벡터 PVAa-An(308Aa-An)의 행을 정의하고, 제2 헤드(302B)는 포지션 벡터 PVBa-Bn(308Ba-Bn)의 다른 행을 정의하고,... H번째 헤드(302H)는 포지션 벡터 PVHa-Hn(308Ha-Hn)의 다른 행을 정의한다.
수신된 비-공백 심볼의 시퀀스(301a-n)의 비-공백 심볼 각각에 대해, 제1 헤드(302A)는 또한 가중치 레이어(310)을 통해 대응하는 임베딩과 그에 할당된 해당 포지션 벡터 PV(308) 사이의 유사성에 비례하여 대응하는 임베딩(306)에 가중치를 부여한다. 일부 예에서, 유사성은 코사인 유사성(예를 들어, 코사인 거리)을 포함한다. 도시된 예에서, 가중치 레이어(310)는 할당된 각각의 포지션 벡터 PV(308)에 비례하여 가중된 대응하는 임베딩(306)과 각각 연관된 가중 임베딩(312, 312Aa-An)의 시퀀스를 출력한다. 다르게 말하면, 각각의 임베딩(306)에 대해 가중치 레이어(310)에 의해 출력되는 가중 임베딩(312)은 임베딩(306)과 각각의 포지션 벡터 PV(308) 사이의 내적에 대응할 수 있다. 가중 임베딩(312)은 임베딩이 각각의 포지션 벡터 PV(308)와 연관된 포지션에 얼마나 유사한지에 비례하여 임베딩에 관여하는 것으로 해석될 수 있다. 계산 속도를 높이기 위해 예측 네트워크(300)는 비순환 레이어를 포함하므로 가중 임베딩 시퀀스(312Aa-An)는 연결되지 않고 대신 가중 평균 모듈(316)에 의해 평균화되어 제1 헤드(302A)의 출력으로 다음과 같이 표현되는 가중 임베딩(312Aa-An)의 가중 평균(318A)을 생성한다:
식 1에서, h는 헤드(302)의 인덱스를 나타내고, n은 컨텍스트에서의 포지션을 나타내고, e는 임베딩 차원을 나타낸다. 추가적으로, 식 1에서 H, N, d e 는 대응하는 차원의 크기를 포함한다. 포지션 벡터 PV(308)는 트레이닝 가능할 필요는 없으며 임의의 값을 포함할 수 있다. 특히, 가중 임베딩(312)이 평균화되더라도, 포지션 벡터 PV(308)는 잠재적으로 포지션 히스토리 정보를 저장할 수 있어, 예측 네트워크(300)의 각 레이어에서 반복 연결을 제공할 필요성을 완화할 수 있다.
제1 헤드(302A)에 관해 위에서 설명한 동작은 멀티 헤드 어텐션 메커니즘(302)의 서로의 헤드(302B-H)에 의해 유사하게 수행된다. 각 헤드(302)에 의해 정의된 포지션닝된 벡터 PV(308)의 서로 다른 세트로 인해, 가중치 레이어(310)는 제1 헤드(302A)에서 가중 임베딩 시퀀스(312Aa-Aa)와 다른 서로 다른 헤드(302B-H)에서 가중 임베딩 시퀀스(312Ba-Bn, 312Ha-Hn)를 출력한다. 그 후, 가중 평균 모듈(316)은 서로의 대응 헤드(302B-H)로부터의 출력으로서 비-공백 심볼들의 시퀀스의 대응하는 가중 임베딩(312)의 각각의 가중 평균(318B-H)을 생성한다.
도시된 예에서, 예측 네트워크(300)는 대응하는 헤드(302A-H)로부터 출력된 가중 평균(318A-H)을 평균화하는 헤드 평균 모듈(322)을 포함한다. SWISH를 갖는 투영 레이어(326)는 가중 평균(318A-H)의 평균에 대응하는 헤드 평균 모듈(322)로부터 출력(324)을 입력으로 수신하고, 출력으로 투영된 출력(328)을 생성할 수 있다. 최종 레이어 정규화(330)는 투영된 출력(328)을 정규화하여 복수의 시간 단계들 중 대응하는 시간 단계에서 단일 임베딩 벡터 Pui(350)를 제공할 수 있다. 예측 네트워크(300)는 초기 시간 단계 이후의 복수의 시간 단계들 각각에서 단일 임베딩 벡터 Pui(350)만을 생성한다.
일부 구성에서, 예측 네트워크(300)는 멀티 헤드 어텐션 메커니즘(302)을 구현하지 않고 제1 헤드(302A)에 대해 위에서 설명된 동작만 수행한다. 이러한 구성에서, 가중 임베딩(312Aa-An)의 가중 평균(318A)은 단순히 투영 레이어(326)와 레이어 정규화(330)를 통과하여 단일 임베딩 벡터 Pui(350)를 제공한다.
다른 구성에서, 예측 네트워크(300)는 대신에 LSTM 레이어 대신 컨포머 또는 트랜스포머 레이어를 포함할 수 있다. 다른 예에서, 예측 네트워크(300)는 LSTM, 트랜스포머 또는 컨포머 레이어의 네트워크 대신에 V2 임베딩 룩업 테이블을 포함한다. 각각의 시간 단계에서, V2 임베딩 룩업 테이블은 조인트 레이어(230)에 의해 출력된 이전 2개의 예측(예를 들어, 1-핫 벡터)을 입력으로 수신하고, 이전 2개의 예측 각각에 대해 각각의 임베딩 d 1 , d 2 를 계산하고, 연결된 출력 [d 1 , d 2 ]를 조인트 레이어(230)에 제공한다. 이에 비해, V2 임베딩 룩업 테이블은 약 200만 개의 파라미터만 가질 수 있는 반면, LSTM 기반 예측 네트워크는 약 2,340만 개의 파라미터를 포함할 수 있다. 마지막으로, 조인트 레이어(230)는 640개의 히든 유닛을 갖는 1-레이어 신경 네트워크일 수 있다. 소프트맥스 레이어는 복수의 트레이닝 데이터 세트들에서 모든 고유한 단어 조각 또는 자소를 사용하여 생성되는 통합된 단어 조각 또는 자소 세트로 구성될 수 있다.
디코더(204)는 각 출력 단계에서, 가능한 스피치 인식 가설에 대한 확률 분포를 생성하도록 구성된다. 달리 말하면, 조인트 레이어(230)는 각각의 출력 단계(예를 들어, 시간 단계)에서 가능한 스피치 인식 가설에 대한 확률 분포를 생성한다. 여기서, "가능한 스피치 인식 가설"은 지정된 자연어에서 자소(예: 기호/문자) 또는 단어 조각을 각각 나타내는 출력 레이블/심볼의 세트("스피치 유닛"으로도 지칭됨)에 대응한다. 예를 들어, 자연어가 영어인 경우, 출력 레이블의 세트는 27개의 기호, 예를 들어 영어 알파벳의 26자 각각에 대한 하나의 레이블과 공백을 지정하는 하나의 레이블을 포함할 수 있다. 따라서, 조인트 레이어(230)는 미리 결정된 출력 레이블 세트 각각의 발생 가능성을 나타내는 값 세트를 출력할 수 있다. 이 값들의 세트는 벡터(예: 하나의 핫 벡터)일 수 있으며, 출력 레이블들의 세트에 대한 확률 분포를 나타낼 수 있다. 일부 경우에, 출력 레이블이 자소(예: 개별 문자, 잠재적으로 구두점 및 기타 기호)이지만, 출력 레이블 세트는 그렇게 제한되지 않다. 예를 들어, 출력 레이블 세트는 자소에 추가로 또는 대신에 단어 조각 및/또는 전체 단어를 포함할 수 있다. 출력 레이블은 음소나 하위 음소와 같은 다른 유형의 스피치 유닛일 수도 있다. 조인트 레이어(230)의 출력 분포는 상이한 출력 레이블들 각각에 대한 사후 확률 값을 포함할 수 있다. 따라서, 상이한 자소 또는 다른 기호를 나타내는 100개의 상이한 출력 레이블이 있는 경우, 조인트 레이어(230)의 출력은 각 출력 레이블에 대해 하나씩 100개의 상이한 확률 값을 포함할 수 있다. 그 다음, 확률 분포는 전사(120)를 결정하기 위한 빔 검색 프로세스(예를 들어, 소프트맥스 레이어에 의해)에서 후보 정법 엘리먼트(예를 들어, 자소, 단어 조각 및/또는 단어)에 점수를 선택하고 할당하는데 사용될 수 있다.
일부 구현예에서, LM(206)은 각각의 출력 단어 모델 예측에 대해 미리 결정된 수의 토큰(예를 들어, 7개 토큰)을 되돌아보는 단방향 컨포머를 포함한다. 컨포머 LM(206)은 레이어들의 스택(예를 들어, 12개 레이어들)을 가질 수 있으며, 여기서 각 레이어는 768의 모델 차원, 2048의 피드포워드 레이어 차원 및 6-헤드 어텐션을 포함한다. 이러한 구현예에서 컨포머 LM(206)은 4,096개의 단어조각을 예측하도록 트레이닝된다.
ASR 모델을 외부 LM과 통합하려면 일반적으로 얕은 융합이 필요하다. 그러나, 캐스케이딩 인코더(202)와 디코더(204)의 과신은 가중치 부여를 어렵게 만들고 종종 높은 단어 삭제로 이어질 수 있다. 따라서, HAT 모델은 모델(200)의 내부 언어 모델 점수 p ILM (y)를 인수분해하여 모델(200)의 유효 점수가 다음과 같이 표현될 수 있도록 하는 방법을 제안한다.
(2)
따라서, HAT 인수분해는 다음과 같이 커버리지 페널티를 요구하지 않고 모델(200)과 외부 LM(206)의 통합을 허용한다.
(3)
여기서 는 외부 LM(206)과 내부 언어 모델에 각각 할당된 가중치를 나타낸다. 트레이닝 프로세스(300) 동안 HAT 분해를 사용함으로써, LM(206)은 캐스케이딩 인코더(202) 및 디코더(204)와 더 잘 통합된다.
도 2의 예를 계속해서 설명하면, 일부 구현예에서, 모델(200)은 스트리밍 모드와 비-스트리밍 모드 모두에서 병렬로 동작한다. 스트리밍 모드와 비-스트리밍 모드 모두에서 동시에 동작할 때, 모델(200)은 먼저 제1 인코더(210)를 사용하여 오디오 데이터(110)에 대해 스트리밍 스피치 인식을 수행하여 제2 인코더(220)와 디코더(204) 모두에 대한 제1 고차 표현을 생성한다. 그 후 디코더(204)는 부분적 스피치 인식 결과(120, 120a)를 생성한다. 모델(200)은 또한 인코딩된 오디오 데이터(110)에 대해 비-스트리밍 스피치 인식을 수행하며, 여기서 제2 인코더(220)는 제1 인코더(210)로부터 수신된 제1 고차 표현 es를 사용하여 제2 고차 표현 ea를 생성한다. 그런 다음 디코더(204)는 최종 스피치 인식 결과(120, 120b)를 생성하기 위해 LM(206)에 의해 다시 스코어링되는 스피치 인식 결과를 생성한다. 압서 언급한 바와 같이, 제1 인코더(210)는 부분적 스피치 인식 결과(120a)를 생성하고, 제2 인코더(220)는 제1 인코더(210)의 출력을 기다린다. 마지막으로, Lm(206)은 디코더(204)로부터의 출력을 편향하여 최종 스피치 인식 결과(120b)를 생성할 수 있다. 따라서, 입력 발화(106)에 대한 최종 스피치 인식 결과(120b)는 입력 발화에 대한 부분적 스피치 인식 결과(120a)보다 지연될 수 있다. 앞서 언급한 바와 같이, 제1 인코더(210)는 마이크 닫기 이벤트를 트리거하고 최종 스피치 인식 결과(120b)가 방출되도록 트리거하는 발화(106)의 엔드포인트를 식별할 수 있다.
일부 구현예에서, 디코더(204), 즉 예측 네트워크(300)와 조인트 레이어(230)의 크기를 더 줄이기 위해, 예측 네트워크(300)와 조인트 레이어(230) 사이의 파라미터 연결이 적용된다. 특히 어휘 크기 |V| 및 임베딩 차원 d e 인 경우, 예측 네트워크(300)의 공유 임베딩 행렬(304)은 이다. 한편, 마지막 히든 레이어는 조인트 레이어(230)에 차원 크기 d h 를 포함하고, 히든 레이어에서 출력 로짓까지의 피드포워드 투영 가중치는 이 되며, 어휘의 추가 공백 토큰이 있다. 따라서, 조인트 레이어(230)의 마지막 레이어에 대응하는 피드포워드 레이어는 가중치 행렬 [d h , |V]|를 포함한다. 예측 네트워크(300)가 임베딩 차원 d e 의 크기를 조인트 레이어(230)의 마지막 히든 레이어의 차원 d h 와 연결하도록 함으로써, 조인트 레이어(230)의 피드포워드 투영 가중치와 예측 네트워크(300)의 공유 임베딩 행렬(304)은 간단한 전치 변환을 통해 비-공백 모든 심볼에 대한 가중치를 공유할 수 있다. 2개의 행렬이 그 값을 모두 공유하기 때문에, 디코더(204)는 2개의 개별 행렬을 저장하는 대신 메모리에 값을 한 번만 저장하면 된다. 임베딩 차원 d e 의 크기를 히든 레이어 차원 d h 의 크기와 동일하게 설정함으로써, 디코더(204)는 임베딩 차원 d e 와 어휘 크기 |V|의 곱과 동일한 파라미터 수를 감소시킨다. 이 가중치 묶기는 정규화 기법에 대응한다.
도 4는 ASR 시스템(109)의 외부 LM(206)을 트레이닝하기 위한 데이터 선택 파이프라인(400)의 예를 도시한다. 일반적으로, 트레이닝 텍스트 샘플들의 코퍼스(412, 412a-n)와 같은 대규모 트레이닝 데이터 세트는 프로세싱, 메모리/저장 및 전력 제한에 의해 제한되지 않는 컴퓨팅 환경(예: 클라우드)에서 실행되는 언어 모델을 트레이닝하는데 사용된다. 그러나 일부 구성에서, ASR 시스템(109)은 사용자(104)의 사용자 디바이스(10)에 상주하므로 LM(206)의 파라미터 수와 결과적으로 LM(206)을 트레이닝하는데 사용되는 트레이닝 세트의 트레이닝 샘플들의 수가 제한된다. 이를 해결하기 위해, 데이터 선택 파이프라인(400)은 트레이닝 텍스트 샘플들의 코퍼스(412)를 프로세싱하여 LM(206)이 희귀 단어를 정확하게 인식하도록 트레이닝하는데 필요한 트레이닝 데이터(즉, 트레이닝 텍스트 샘플들)의 양을 줄임으로써 외부 Lm(206)을 포함하는 ASR 시스템(109)이 프로세싱 및/또는 메모리/스토리지 리소스가 제한된 온-디바이스에서 실행되게 한다. 즉, 데이터 선택 파이프라인(400)은 희귀 단어 인식을 향상시키기에 충분한 트레이닝 샘플의 서브세트를 식별하기 위해 코퍼스로부터 트레이닝 텍스트 샘플을 필터링한다. 트레이닝 텍스트 샘플들의 코퍼스(412)는 약 12테라바이트 크기의 2,130억 개의 문장을 포함할 수 있으며, 여기서 72억 개의 샘플이 서로 구별된다. 파이프라인(400)은 LM(206)을 트레이닝하기 위해 코퍼스의 샘플들(412) 수를 단지 약 40억 문장으로 줄일 수 있으며, 이는 원래 코퍼스보다 53배 더 작고 단어 오류율(WER) 측면에서 LM(206)의 전체 성능이 저하되지 않는다.
도 4에 도시된 바와 같이, 데이터 선택 파이프라인(400)은 리샘플링 필터(420), 희귀 단어 필터(430) 및 대조 필터(440)를 사용하여 LM(206)을 트레이닝하기 위한 트레이닝 텍스트 샘플들의 코퍼스(412)에서 트레이닝 텍스트 발화들의 수를 감소시킨다. 데이터 선택 파이프라인(400)은 트레이닝 텍스트 데이터 저장소(410)에 저장된 트레이닝 텍스트 샘플들의 코퍼스(412, 412a-n)와 트레이닝 발화 데이터 저장소(450)에 저장된 복수의 트레이닝 발화들(452, 452a-n)을 획득한다. 트레이닝 발화 데이터 저장소(450)에 저장된 트레이닝 발화(452)는 ASR 모델(200)을 트레이닝하는데 사용되며 각각의 트레이닝 발화(452)는 발화에 대응하는 오디오 데이터(454) 및 발화의 대응 전사(456)를 포함한다. 도 4는 트레이닝 텍스트 데이터를 선택하기 위해 리샘플링 필터(420), 희귀 단어 필터(430) 및 대조 필터(440)를 각각 사용하는 파이프라인(400)을 도시하고 있으며, 파이프라인은 트레이닝 텍스트 데이터를 선택하기 위한 리샘플링 필터(420), 희귀 단어 필터(430) 및 대조 필터(440) 중 하나만 또는 둘만을 사용할 수 있다.
리샘플링 필터(420)는 트레이닝 텍스트 데이터 저장소(410)에 저장된 트레이닝 텍스트 샘플들의 코퍼스(412)를 수신하고, 희귀 단어를 포함하는 트레이닝 텍스트 샘플들의 코퍼스(412)로부터 샘플들에 대응하는 저빈도 트레이닝 텍스트 샘플들(‘트레이닝 텍스트 샘플들의 세트’로 지칭됨)(422)를 출력하기 위해 코퍼스로부터 고빈도 트레이닝 텍스트 샘플을 식별하고 제거함으로써 코퍼스에서 희귀 단어(예를 들어, 덜 자주 발생하는 단어)를 식별하는 리샘플링 함수를 실행한다. 도시된 예에서, 리샘플링 필터(420)는 단순화를 위해 단어 레벨이 아닌 문장 레벨에서 빈도를 측정한다. 그러나 리샘플링 필터(420)는 본 발명의 범위를 벗어나지 않으면서 자신의 단어 집합으로부터 문장의 희소성을 측정할 수 있다. 본 문서에 사용된 단어나 문장은 다른 단어나 문장에 비해 코퍼스에서 빈도가 낮을 때(발생 횟수가 적을 때) 더 희귀하다. “테일링성(tailedness)"이라는 용어는 트레이닝 텍스트 샘플들의 코퍼스(412)에서 발생하는 희귀 단어의 상대적인 양을 설명하는데 사용될 수 있다. 전체적으로 트레이닝 텍스트 샘플들의 코퍼스(412)의 빈도 분포는 로그-로그 플롯에서 선형이며 다음과 같이 표현된다.
(4)
여기서 f는 빈도를 나타내고 A는 개별 트레이닝 텍스트 샘플들(412)의 수(즉, 빈도 f가 1임)를 나타낸다. 파워 α를 변경하면 분포가 변경된다. 예를 들어, α가 클수록 희귀 단어의 빈도가 높은 분포가 생성된다. α가 무한대에 접근하는 예는 복수의 트레이닝 텍스트 샘플들(412)에 중복된 트레이닝 텍스트(412)가 없음을 나타낸다. 그러나, 트레이닝 텍스트 데이터 저장소(410)에 저장된 복수의 트레이닝 텍스트 샘플들(412)은 1.1~2.5의 α를 포함한다. 또한, 과도한 빈도 비율(예: 지도 도메인의 "집")에서 발생하는 트레이닝 텍스트 샘플들(412)은 빈도 분포의 선형 분포에서 벗어난다.
트레이닝 텍스트 샘플들의 코퍼스(412)로부터 고빈도 트레이닝 텍스트를 필터링하여 저빈도 트레이닝 텍스트 샘플들의 세트(422)에서 희귀 단어의 수를 증가시키기 위해, 리샘플링 필터(420)는 단순 파워 리샘플링 함수, 강제 파워 리샘플링 함수 또는 소프트 로그 리샘플링 함수 중 하나를 포함하는 리샘플링 함수를 실행할 수 있다. 단순 파워 리샘플링은 파라미터 β를 적용하여 빈도 분포 distinct_count(f)의 희소성을 조정하는 것을 포함할 수 있다. 그러면 단순 파워 빈도 분포는 Af -αβ로 표현될 수 있다. 다른 구현예에서, 강제 파워 리샘플링은 각 트레이닝 텍스트(412)를 라인 핏에 맞추도록 함으로써 트레이닝 텍스트 샘플들의 코퍼스(412)에서 과도한 빈도 트레이닝 텍스트 샘플을 관리하는데 사용된다. 예를 들어, 지도 도메인에 대한 라인 핏은 빈도 106에 대응하는 distinct¬1을 나타낼 수 있다. 이러한 예에서, distinct¬가 1인 각 트레이닝 텍스트 샘플의 경우 리샘플링된 빈도 f1은 원래 빈도 f0에 관계없이 106이 된다. 이 예에서, 높은 원래 빈도 f0(예: 108)을 가진 트레이닝 텍스트 샘플은 106의 리샘플링된 빈도 f1로 강제된다. 이 강제 파워 리샘플링 동작은 다음과 같이 표현된다.
(5).
대안적으로, 리샘플링 필터(420)는 트레이닝 텍스트 샘플들의 코퍼스(412)의 원래의 빈도 분포 distinct_count(f)와 일치하는 소프트 로그 리샘플링 함수를 실행하고, 임계값을 초과하는 코퍼스로부터 트레이닝 텍스트를 제거한다. 소프트 로그 함수는 다음과 같이 표현된다.
(6)
여기서 fc는 임계 빈도를 나타낸다.
리샘플링 필터(420)가 트레이닝 텍스트 샘플들의 코퍼스(412)로부터 고빈도 트레이닝 텍스트를 제거하여 희귀 단어를 포함하는 트레이닝 텍스트 샘플들의 세트(422)를 출력하면, 트레이닝 텍스트 샘플들의 세트(422)는 희귀 단어 필터(430) 및 대조 필터(440)에 대한 입력으로서 제공된다. 특히, 코퍼스에서 고빈도 트레이닝 텍스트 샘플을 제거하는 것은 이러한 샘플이 LM(206)이 많은 희귀 단어를 포함하는 코퍼스로부터 긴 꼬리를 학습하는 것을 방지할 수 있는 분포 편향을 제공할 것이기 때문에 바람직하다. 희귀 단어 필터(430)는 트레이닝 발화들의 세트(452)로부터의 전사(456)에 나타나지 않거나 트레이닝 발화들의 세트(452)로부터의 전사(456)에 임계 횟수 미만으로 나타나는 단어를 포함하는 희귀 단어 트레이닝 텍스트 샘플들의 서브세트(432)를 식별한다. 마찬가지로, 대조 필터(440)는 ASR 모델(200)을 트레이닝하는데 사용되는 트레이닝 발화(452)와 연관된 타겟 도메인과 일치하는 트레이닝 텍스트 샘플들의 세트(422) 내의 타겟 도메인 트레이닝 텍스트 샘플들의 서브세트(442)를 식별한다. 트레이닝 발화(452)는 각각 대응하는 ASR 전사(456)와 페어링된 ASR 오디오 데이터(454)를 포함하는 ASR 트레이닝 발화(452)로 지칭될 수 있다. 그런 다음 데이터 선택 파이프라인(400)은 ASR 전사(456), 희귀 단어 트레이닝 텍스트 샘플(432) 및 타겟 도메인 트레이닝 텍스트 샘플(442)을 언어 모델 트레이너(480)를 사용하여 LM(206)을 트레이닝시키는 미니 배치로 결합한다. 미니 배치는 샘플링 비율(예를 들어, ASR 전사(456)/희귀 단어 트레이닝 텍스트 샘플(432)/타겟 도메인 트레이닝 텍스트 샘플(442)의 경우 20%/40%/40%)에 따라 결합될 수 있다.
희귀 단어 필터(430)는 빈도 임계값 ft(예를 들어, 15)를 사용하여 트레이닝 텍스트 샘플들의 세트(422)에 나타나는 단어를 포함하는 ASR 트레이닝 발화들의 세트(452)로부터 전사(456)를 직접 필터링하여, 희귀 단어 트레이닝 텍스트 샘플들의 서브세트(432)에 포함시키기 위한 트레이닝 텍스트 샘플을 식별한다. 희귀 단어 필터(420)는 또한 희귀 단어 트레이닝 텍스트 샘플들의 서브세트(432)에 포함시키기 위해 전사(456)에 나타나지 않는 임의의 트레이닝 텍스트 샘플들(422)을 식별한다. 대조 필터(440)는 리샘플링 필터(420)에 의해 출력된 저빈도 트레이닝 텍스트 샘플들의 세트(422)에 대조 선택/필터링을 적용하여 ASR 모델(200)을 트레이닝하는데 사용된 트레이닝 발화들의 세트(452)와 연관된 타겟 도메인과 일치하는 타겟 도메인 트레이닝 텍스트 샘플들(442)의 서브세트를 식별한다. 트레이닝 텍스트 샘플들(412)의 코퍼스는 ASR 모델(200)이 스피치를 인식하도록 트레이닝되는 도메인과 다른 도메인으로부터 수집된 텍스트 샘플을 포함할 수 있다. 예를 들어, 텍스트 샘플은 ASR 모델(200)의 타겟 도메인이 더 많은 음성 명령을 포함하는 음성 검색에 대응하는 동안 더 많은 웹사이트 이름을 포함하는 유형의 검색 쿼리로부터 수집될 수 있다. 이러한 대조 선택은 다음과 같이 저빈도 트레이닝 텍스트 샘플들의 세트(422)의 각 트레이닝 텍스트 샘플에 대해 계산된다.
(7)
여기서 L은 트레이닝 텍스트 샘플(422)의 로그 복잡도를 나타내고, target은 타겟 LM(206)을 나타내며, background는 완전히 중복 제거된 트레이닝 데이터 세트에 대해 트레이닝된 배경 언어 모델을 나타낸다. 그런 다음 대조 선택은 트레이닝 발화(452)의 전사(456)에서 조정되어 타겟 LM(206)을 생성한다. 트레이닝 텍스트 샘플이 ASR 모델(200)을 트레이닝하는데 사용되는 트레이닝 발화(452)의 전사(456)에 더 가까울수록 트레이닝 텍스트 샘플에 대한 점수는 더 낮아질 것이다. 그러면 대조 필터(440)는 임계값 아래에 있는 저빈도 트레이닝 텍스트 샘플들의 세트(422)로부터 타겟 도메인 트레이닝 텍스트들의 서브세트(442)를 식별하기 위해 임계값 위에 있는 트레이닝 텍스트 샘플(422)을 폐기할 수 있다. 본 명세서에서 사용된 바와 같이, 트레이닝 발화와 연관된 타겟 도메인은 어시스턴트 쿼리, 음성 검색 쿼리, 내비게이션 쿼리, 또는 임의의 다른 도메인과 연관된 발화를 포함할 수 있다. 특히, 도 1 내지 도 3의 ASR 모델(200)은 대응하는 발화의 오디오 데이터(454) 및 오디오 데이터(454)에 대한 실측 라벨 역할을 하는 발화의 대응하는 전사(456)를 각각 포함하는 트레이닝 발화(452)에 대해 트레이닝된다.
도 5는 희귀 단어 스피치 인식에 대한 언어 모델(206)을 트레이닝하는 방법(500)의 예시적 동작 구성의 흐름도이다. 방법(500)은 동작(502)에서 트레이닝 샘플들의 세트(412)를 획득하는 동작을 포함한다. 동작(504)에서, 방법(500)은 ASR 모델(200)을 트레이닝하는데 사용되는 트레이닝 발화들의 세트(452)를 획득하는 동작을 포함하며, 상기 복수의 트레이닝 발화들(452)의 각 트레이닝 발화(452)는 발화에 대응하는 오디오 데이터(454) 및 상기 발화에 대응하는 전사(456)를 포함한다.
동작(506)에서, 방법(500)은 희귀 단어 트레이닝 텍스트 샘플들의 서브세트(432)를 식별하기 위해 트레이닝 텍스트 샘플들의 세트(412)에 희귀 단어 필터링을 적용하는 동작을 포함한다. 희귀 단어 트레이닝 텍스트 샘플들의 서브세트(432)는 트레이닝 발화들의 세트(452)로부터의 전사(456)에 나타나지 않거나 트레이닝 발화들의 세트(452)로부터의 전사(456)에 임계 횟수 미만으로 나타나는 단어를 포함한다. 방법(500)은 동작(508)에서, 트레이닝 발화들의 세트(452)로부터의 전사(456) 및 희귀 단어 트레이닝 텍스트 샘플들의 식별된 서브세트(432)에 대해 외부 언어 모델(206)을 트레이닝하는 동작을 포함한다.
도 6는 본 문서에 기술된 시스템 및 방법을 구현하는데 사용될 수 있는 예시적 컴퓨팅 디바이스(600)의 개략도이다. 컴퓨팅 디바이스(600)는 랩톱, 데스크톱, 워크 스테이션, 개인 휴대 정보 단말기, 서버, 블레이드 서버, 메인 프레임 및 다른 적절한 컴퓨터와 같은 다양한 형태의 디지털 컴퓨터들을 나타내기 위한 것이다. 여기에 도시된 컴포넌트들, 그들의 연결 및 관계, 및 그들의 기능은 단지 예시적인 것을 의미하며, 본 명세서에 기술된 및/또는 청구된 구현예의 구현을 제한하는 것을 의미하지는 않는다.
컴퓨팅 디바이스(600)는 프로세서(610), 메모리(620), 저장 디바이스(630), 메모리(620) 및 고속 확장 포트(650)에 연결되는 고속 인터페이스/제어기(640) 및 저속 버스(670) 및 저장 디바이스(630)에 연결되는 저속 인터페이스/제어기(660)를 포함한다. 컴포넌트들(610, 620, 630, 640, 650 및 660) 각각은 다양한 버스들을 사용하여 상호 연결되고, 공통 마더 보드 상에 또는 적절한 다른 방식으로 장착될 수 있다. 프로세서(610)(즉, 사용자 디바이스(10)의 데이터 프로세싱 하드웨어(10) 또는 원격 컴퓨팅 디바이스(60)의 데이터 프로세싱 하드웨어(62)를 포함할 수 있는 “데이터 프로세싱 하드웨어(610)”로 지칭됨)는 메모리(620) 또는 저장 디바이스(630)에 저장된 명령어들을 포함하는, 컴퓨팅 디바이스(600) 내에서 실행하기 위한 명령어들을 프로세싱하여, 고속 인터페이스(640)에 연결된 디스플레이(680)와 같은 외부 입/출력 디바이스상에 그래픽 사용자 인터페이스(GUI)에 대한 그래픽 정보를 디스플레이할 수 있다. 다른 구현예에서, 다수의 프로세서들 및/또는 다수의 버스들이 다수의 메모리들 및 다수의 유형의 메모리와 함께, 적절하게 사용될 수 있다. 또한, 다수의 컴퓨팅 디바이스들(600)은 필요한 동작의 부분들을 제공하는 각 디바이스와 연결될 수 있다(예를 들어, 서버 뱅크, 블레이드 서버 그룹 또는 멀티 프로세서 시스템).
메모리(620)(사용자 컴퓨팅 디바이스(10)의 메모리 하드웨어(14) 또는 원격 컴퓨팅 디바이스(60)의 메모리 하드웨어(64)를 포함할 수 있는 "메모리 하드웨어(620)"라고도 지칭됨)는 컴퓨팅 디바이스(600) 내에 정보를 비일시적으로 저장한다. 메모리(620)는 컴퓨터 판독가능 매체, 휘발성 메모리 유닛(들), 비휘발성 메모리 유닛(들)일 수 있다. 비일시적 메모리(620)는 컴퓨팅 디바이스(600)에 의해 사용하기 위해 일시적 또는 영구적으로 프로그램(예를 들어, 명령어 시퀀스) 또는 데이터(예를 들어, 프로그램 상태 정보)를 저장하는데 사용되는 물리적 디바이스일 수 있다. 비휘발성 메모리의 예는 플래시 메모리 및 읽기 전용 메모리(ROM)/프로그래밍 가능한 읽기 전용 메모리(PROM)/지울 수 있는 프로그램 가능한 읽기 전용 메모리(EPROM)/전자적으로 지울 수 있는 프로그래밍 가능한 읽기 전용 메모리(EEPROM)(예: 일반적으로 부팅 프로그램과 같은 펌웨어에 사용됨)를 포함하지만, 이에 한정되지 않는다. 휘발성 메모리의 예는 RAM(Random Access Memory), DRAM(Dynamic Random Access Memory), SRAM(Static Random Access Memory), PCM(Phase Change Memory), 디스크 또는 테이프 등을 포함하지만, 이에 한정되지 않는다.
저장 디바이스(630)는 컴퓨팅 디바이스(600)에 대한 대형 스토리지를 제공할 수 있다. 일부 구현예에서, 저장 디바이스(630)는 컴퓨터 판독가능 매체이다. 다양한 상이한 구현예에서, 저장 디바이스(630)는 플로피 디스크 디바이스, 하드 디스크 디바이스, 광 디스크 디바이스 또는 테이프 디바이스, 플래시 메모리 또는 다른 유사한 고체 상태 메모리 디바이스, 또는 저장 영역 네트워크 또는 다른 구성의 디바이스를 포함하는 디바이스의 어레이일 수 있다. 일 구현예에서, 컴퓨터 프로그램 제품은 정보 캐리어에 유형적으로 수록된다. 컴퓨터 프로그램 제품은 또한 실행될 때 상기 기술된 바와 같은 하나 이상의 방법을 수행하는 명령어들을 포함한다. 정보 캐리어는 메모리(620), 저장 디바이스(630) 또는 프로세서(610)상의 메모리와 같은 컴퓨터 또는 기계 판독가능 매체이다.
고속 제어기(640)는 컴퓨팅 디바이스(600)에 대한 대역폭 집중 동작들을 관리하는 반면, 저속 제어기(660)는 낮은 대역폭 집중 동작들을 관리한다. 이러한 기능들의 할당은 단지 예시적인 것이다. 일부 구현예에서, 고속 제어기(640)는 메모리(620), 디스플레이(680)(예를 들어, 그래픽 프로세서 또는 가속기를 통해) 및 다양한 확장 카드(도시되지 않음)를 수용할 수 있는 고속 확장 포트(650)에 연결된다. 일부 구현예에서, 저속 제어기(660)는 저장 디바이스(630) 및 저속 확장 포트(690)에 연결된다. 다양한 통신 포트(예를 들어, USB, 블루투스, 이더넷, 무선 이더넷)를 포함할 수 있는 저속 확장 포트(690)는 키보드, 포인팅 디바이스, 스캐너와 같은 하나 이상의 입력/출력 디바이스 또는 예를 들어 네트워크 어댑터를 통해 스위치 또는 라우터와 같은 네트워킹 디바이스에 결합될 수 있다.
컴퓨팅 디바이스(600)는 도면에 도시된 바와 같이 다수의 상이한 형태로 구현될 수 있다. 예를 들어, 표준 서버(600a)로서 또는 그러한 서버(600a)의 그룹에서 여러 번, 랩톱 컴퓨터(600b)로서 또는 랙 서버 시스템(600c)의 일부로서 구현될 수 있다.
본 명세서에 기술된 시스템들 및 기법들의 다양한 구현예들은 디지털 전자 및/또는 광학 회로, 집적 회로, 특수하게 설계된 ASIC들(application specific integrated circuits), 컴퓨터 하드웨어, 펌웨어, 소프트웨어 및/또는 이들의 조합으로 구현될 수 있다. 이들 다양한 구현예들은 적어도 하나의 프로그래머블 프로세서를 포함하는 프로그래머블 시스템 상에서 실행가능하고 및/또는 인터프리트가능한 하나 이상의 컴퓨터 프로그램들에서의 구현예를 포함할 수 있고, 이는 전용 또는 범용일 수 있고, 저장 시스템, 적어도 하나의 입력 디바이스 및 적어도 하나의 출력 디바이스로부터 데이터 및 명령어들을 수신하고 그에 데이터 및 명령어들을 전송하기 위해 연결될 수 있다.
소프트웨어 애플리케이션(즉, 소프트웨어 리소스)은 컴퓨팅 디바이스가 작업을 수행하게 하는 컴퓨터 소프트웨어를 지칭할 수 있다. 일부 예에서, 소프트웨어 애플리케이션은 "애플리케이션", "앱" 또는 "프로그램"으로 지칭될 수 있다. 예시적 애플리케이션은 시스템 진단 애플리케이션, 시스템 관리 애플리케이션, 시스템 유지보수 애플리케이션, 워드 프로세싱 애플리케이션, 스프레드시트 애플리케이션, 메시징 애플리케이션, 미디어 스트리밍 애플리케이션, 소셜 네트워킹 애플리케이션 및 게임 애플리케이션을 포함하지만 이에 한정되지는 않는다.
이들 컴퓨터 프로그램들(프로그램, 소프트웨어, 소프트웨어 애플리케이션 또는 코드로도 알려짐)은 프로그래머블 프로세서에 대한 기계 명령어들을 포함하며, 하이레벨 절차어 및/또는 객체 지향 프로그래밍 언어 및/또는 어셈블리/기계어에서 구현될 수 있다. 본 명세서에서 사용된 바와 같이, 용어 "기계 판독가능 매체", "컴퓨터 판독가능 매체"는 기계 판독가능 신호로서 기계 명령어들을 수신하는 기계 판독가능 매체를 포함하여, 기계 명령어들 및/또는 데이터를 프로그래머블 프로세서에 제공하는데 사용되는 임의의 컴퓨터 프로그램 물, 장치 및/또는 디바이스 예를 들어, 자기 디스크, 광학 디스크, 메모리, 비일시적 컴퓨터 판독가능 매체, 프로그래머블 로직 디바이스(PLD)를 지칭한다. 용어 "기계 판독가능 신호"는 기계 명령어들 및/또는 데이터를 프로그래머블 프로세서에 제공하는데 사용되는 임의의 신호를 지칭한다.
본 명세서에 기술된 프로세스들 및 논리 흐름들은 입력 데이터를 동작하고 출력을 생성함으로써 기능들을 수행하기 위해 하나 이상의 컴퓨터 프로그램들을 실행하는 데이터 프로세싱 하드웨어로도 지칭되는 하나 이상의 프로그래머블 프로세서들에 의해 수행될 수 있다. 프로세스들 및 논리 흐름들은 또한 FPGA 또는 ASIC와 같은 특수 목적 논리 회로에 의해 수행될 수 있다. 컴퓨터 프로그램의 실행에 적절한 프로세서들은, 예시로서, 범용 및 전용 마이크로프로세서들과 임의의 종류의 디지털 컴퓨터의 임의의 하나 이상의 프로세서들을 포함한다. 일반적으로, 프로세서는 읽기-전용 메모리 또는 랜덤 액세스 메모리 또는 둘 모두로부터 명령어들 및 데이터를 수신할 것이다. 컴퓨터의 필수 엘리먼트들은 명령어들을 수행하기 위한 프로세서 및 명령어들 및 데이터를 저장하기 위한 하나 이상의 메모리 디바이스들이다. 일반적으로, 컴퓨터는 데이터를 저장하기 위한 하나 이상의 대형 저장 디바이스들 예를 들면, 자기적, 자기-광학 디스크들 또는 광학적 디스크들 또한 포함하거나 또는 그로부터 데이터를 수신하거나 그에 데이터를 전송하기 위해 동작적으로 결합될 수 있다. 그러나, 컴퓨터는 상기 디바이스들을 반드시 가져야 하는 것은 아니다. 컴퓨터 프로그램 명령어들 및 데이터를 저장하기에 적합한 컴퓨터 판독가능 매체는 예를 들어, EPROM, EEPROM 및 플래시 메모리 디바이스들과 같은 반도체 메모리 디바이스들; 예를 들어, 내부 하드 디스크들 또는 이동식 디스크들과 같은 자기 디스크들; 및 CD-ROM 및 DVD-ROM 디스크들을 포함하는 모든 형태의 비휘발성 메모리, 매체 및 메모리 디바이스들을 포함한다. 프로세서 및 메모리는 특수 목적 논리 회로에 의해 보충되거나 그 안에 통합될 수 있다.
사용자와의 인터렉션을 제공하기 위해, 본 개시의 하나 이상의 양태는 사용자에게 정보를 디스플레이하기 위해 예를 들어, CRT(cathode ray tube) 또는 LCD(liquid crystal display) 모니터 또는 터치 스크린과 같은 디스플레이 디바이스 및 선택적으로 사용자가 컴퓨터에 입력을 제공할 수 있는 키보드 및 포인팅 디바이스 예를 들어, 마우스 또는 트랙볼을 갖는 컴퓨터에서 구현될 수 있다. 다른 종류의 디바이스들도 사용자와의 인터렉션을 제공하는데 사용될 수 있다. 예를 들어, 사용자에게 제공되는 피드백은 시각 피드백, 청각 피드백 또는 촉각 피드백과 같은 임의의 형태의 감각적 피드백일 수 있고, 사용자로부터의 입력은 음향, 스피치 또는 촉각 입력을 포함하는 임의의 형태로 수신될 수 있다. 추가로, 컴퓨터는 사용자에 의해 사용되는 디바이스에 문서를 송수신함으로써 예를 들어, 웹브라우저로부터 수신된 요청에 응답하여, 사용자의 사용자 디바이스상의 웹브라우저에 웹페이지를 전송함으로써 사용자와 인터렉션할 수 있다.
다수의 구현예들이 기술되었다. 그럼에도 불구하고, 다양한 수정들이 본 발명의 정신과 범위로부터 벗어나지 않고 이루어질 수 있다는 것이 이해될 것이다. 따라서, 다른 구현예들도 다음의 청구항들의 범위 내에 있다.

Claims (24)

  1. 스피치에서 희귀 단어를 인식하기 위해 외부 언어 모델(206)을 트레이닝하기 위한 컴퓨터로 구현되는 방법(500)으로서, 상기 컴퓨터로 구현되는 방법(500)은 데이터 프로세싱 하드웨어(610)에서 실행될 때 상기 데이터 프로세싱 하드웨어(610)로 하여금 동작들을 수행하게 하며, 상기 동작들은:
    트레이닝 텍스트 샘플들의 세트(422)를 획득하는 동작;
    자동 스피치 인식(ASR) 모델(200)을 트레이닝하는데 사용되는 트레이닝 발화들의 세트(452)를 획득하는 동작, 상기 복수의 트레이닝 발화들(452)의 각 트레이닝 발화(452)는 발화에 대응하는 오디오 데이터(454) 및 상기 발화에 대응하는 전사(456)를 포함하며;
    트레이닝 발화들의 세트(452)로부터의 전사(456)에 나타나지 않거나 트레이닝 발화들의 세트(452)로부터의 전사(456)에 임계 횟수 미만으로 나타나는 단어를 포함하는 희귀 단어 트레이닝 텍스트 샘플들의 서브세트(432)를 식별하기 위해 트레이닝 텍스트 샘플들의 세트(422)에 희귀 단어 필터링을 적용하는 동작; 및
    트레이닝 발화들의 세트(452)로부터의 전사(456) 및 희귀 단어 트레이닝 텍스트 샘플들의 식별된 서브세트(432)에 대해 외부 언어 모델(206)을 트레이닝하는 동작을 포함하는, 컴퓨터로 구현되는 방법.
  2. 청구항 1에 있어서, 상기 트레이닝 텍스트 샘플들의 세트(422)를 획득하는 동작은:
    트레이닝 텍스트 샘플들의 코퍼스(412)를 수신하는 동작;
    트레이닝 텍스트 샘플들의 코퍼스(412)에서 발생하는 높은 빈도의 텍스트 샘플들을 식별하기 위해 트레이닝 텍스트 샘플들의 코퍼스(412)에 대해 리샘플링 함수를 실행하는 동작; 및
    트레이닝 텍스트 샘플들의 코퍼스(412)로부터 식별된 높은 빈도의 텍스트 샘플들을 제거함으로써 트레이닝 텍스트 샘플들의 세트(422)를 획득하는 동작을 포함하는, 컴퓨터로 구현되는 방법.
  3. 청구항 1 또는 청구항 2에 있어서, 상기 리샘플링 함수는 단순 파워 리샘플링 함수, 강제 파워 리샘플링 함수 또는 소프트 로그 리샘플링 함수 중 하나를 포함하는, 컴퓨터로 구현되는 방법.
  4. 청구항 1 내지 3 중 어느 한 항에 있어서,
    트레이닝 발화들의 세트(452)와 연관된 타겟 도메인과 일치하는 타겟 도메인 트레이닝 텍스트 샘플들(442)의 서브세트를 식별하기 위해 트레이닝 텍스트 샘플들의 세트(422)에 대조 필터링을 적용하는 동작을 더 포함하며,
    트레이닝 발화들의 세트(452)로부터의 전사(456) 및 희귀 단어 트레이닝 텍스트 샘플들의 식별된 서브세트(432)에 대해 외부 언어 모델(206)을 트레이닝하는 동작은 타겟 도메인과 일치하는 타겟 도메인 트레이닝 텍스트 샘플들의 식별된 서브세트(442)에 대해 외부 언어 모델(206을 트레이닝하는 동작을 더 포함하는, 컴퓨터로 구현되는 방법.
  5. 청구항 1 내지 4 중 어느 한 항에 있어서, 상기 외부 언어 모델(206)은 외부 신경 언어 모델을 포함하는, 컴퓨터로 구현되는 방법.
  6. 청구항 5에 있어서, 상기 외부 신경 언어 모델은 컨포머 레이어들 또는 트랜스포머 레이어들의 스택을 포함하는, 컴퓨터로 구현되는 방법.
  7. 청구항 1 내지 6 중 어느 한 항에 있어서, 상기 동작들은 상기 트레이닝된 외부 언어 모델(206)을 ASR 모델(200)과 통합하는 동작을 더 포함하고, 상기 트레이닝된 외부 언어 모델(206)은 트레이닝된 ASR 모델(200)에 의해 예측된 가능한 스피치 인식 가설에 대한 확률 분포를 재점수화하도록 구성되는, 컴퓨터로 구현되는 방법.
  8. 청구항 7에 있어서, 상기 ASR 모델(200)은:
    제1 인코더(210), 상기 제1 인코더는:
    음향 프레임들(110)의 시퀀스를 입력으로서 수신하고; 그리고
    복수의 출력 단계들 각각에서, 상기 음향 프레임들(110)의 시퀀스에서 대응하는 음향 프레임(110)에 대한 제1 고차 피처 표현을 생성하도록 구성되며;
    제2 인코더(220), 상기 제2 인코더는:
    상기 복수의 출력 단계들 각각에서 상기 제1 인코더(210)에 의해 생성된 상기 제1 고차 피처 표현을 입력으로서 수신하고; 그리고
    상기 복수의 출력 단계들 각각에서 대응하는 제1 고차 피처 프레임에 대한 제2 고차 피처 표현을 생성하도록 구성되며; 및
    디코더(204), 상기 디코더는:
    상기 복수의 출력 단계들 각각에서 상기 제2 인코더(220)에 의해 생성된 상기 제2 고차 피처 표현을 입력으로서 수신하고; 그리고
    상기 복수의 시간 단계들 각각에서, 가능한 스피치 인식 가설에 대한 제1 확률 분포(120a)를 생성하도록 구성되는, 컴퓨터로 구현되는 방법.
  9. 청구항 7 또는 8에 있어서, 상기 디코더(204)는:
    상기 복수의 출력 단계들 각각에서 상기 제1 인코더(210)에 의해 생성된 상기 제1 고차 피처 표현을 입력으로서 수신하고; 그리고
    상기 복수의 시간 단계들 각각에서, 가능한 스피치 인식 가설에 대한 제2 확률 분포(120b)를 생성하도록 구성되는, 컴퓨터로 구현되는 방법.
  10. 청구항 7 내지 9 중 어느 한 항에 있어서, 상기 디코더(204)는:
    예측 네트워크(300), 상기 예측 네트워크는 상기 복수의 시간 단계들 각각에서:
    최종 소프트맥스 레이어에 의해 출력된 N개의 이전 비-공백 심볼들의 시퀀스를 입력으로 수신하고;
    N개의 이전 비-공백 심볼들의 시퀀스의 각각의 비-공백 심볼에 대해, 각각의 임베딩(306)을 생성하고; 그리고
    상기 각각의 임베딩(306)을 평균하여 평균 임베딩(312)을 생성하도록 구성되며; 및
    조인트 네트워크(230)를 포함하며, 상기 조인트 네트워크는:
    상기 복수의 출력 단계들 각각에서 상기 예측 네트워크(300)에 의해 생성된 평균 임베딩(312) 및 다음 중 하나를 입력으로서 수신하고:
    상기 ASR 모델(200)이 스트리밍 모드에서 동작하는 경우, 상기 복수의 출력 단계들 각각에서 상기 제1 인코더(210)에 의해 생성된 제1 고차 피처 표현 또는
    상기 ASR 모델(200)이 비-스트리밍 모드에서 동작하는 경우, 상기 복수의 출력 단계들 각각에서 상기 제2 인코더(220)에 의해 생성된 제2 고차 피처 표현; 그리고
    상기 복수의 출력 단계 각각에서, 다음 중 하나를 생성하도록 구성되는, 컴퓨터로 구현되는 방법:
    상기 ASR 모델(200)이 스트리밍 모드에서 동작하는 경우, 가능한 스피치 인식 가설에 대한 제2 확률 분포(120b); 또는
    상기 ASR 모델(200)이 비-스트리밍 모드에서 동작하는 경우, 가능한 스피치 인식 가설에 대한 제1 확률 분포(120a).
  11. 청구항 8 내지 10 중 어느 한 항에 있어서,
    상기 제1 인코더(210)는 컨포머 레이어들의 초기 스택을 포함하는 인과(causal) 인코더를 포함하며; 그리고
    상기 제2 인코더(220)는 컨포머 레이어들의 초기 스택 위에 놓이는 컨포머 레이어들의 최종 스택을 포함하는 비-인과(non-causal) 인코더를 포함하는, 컴퓨터로 구현되는 방법.
  12. 청구항 8 내지 11 중 어느 한 항에 있어서, 상기 ASR 모델(200)의 제1 인코더(210) 및 제2 인코더(220)는 트레이닝 발화들의 세트(452)로부터의 전사(456)와 희귀 단어 트레이닝 텍스트 샘플들의 식별된 서브세트(432)를 포함하는 텍스트 전용 데이터에 대해 트레이닝된 외부 언어 모델(206)의 통합을 용이하게 하기 위해 Hybrid Autoregressive Transducer Factorization을 사용하여 트레이닝되는, 컴퓨터로 구현되는 방법.
  13. 시스템으로서,
    데이터 프로세싱 하드웨어(610); 및
    상기 데이터 프로세싱 하드웨어(610)에서 실행될 때 상기 데이터 프로세싱 하드웨어(610)로 하여금 동작을 수행하게 하는 명령어를 저장하는 메모리 하드웨어(620)를 포함하며, 상기 동작은:
    트레이닝 텍스트 샘플들의 세트(422)를 획득하는 동작;
    자동 스피치 인식(ASR) 모델(200)을 트레이닝하는데 사용되는 트레이닝 발화들의 세트(452)를 획득하는 동작, 상기 복수의 트레이닝 발화들(452)의 각 트레이닝 발화(452)는 발화에 대응하는 오디오 데이터(454) 및 상기 발화에 대응하는 전사(456)를 포함하며;
    트레이닝 발화들의 세트(452)로부터의 전사(456)에 나타나지 않거나 트레이닝 발화들의 세트(452)로부터의 전사(456)에 임계 횟수 미만으로 나타나는 단어를 포함하는 희귀 단어 트레이닝 텍스트 샘플들의 서브세트(432)를 식별하기 위해 트레이닝 텍스트 샘플들의 세트(422)에 희귀 단어 필터링을 적용하는 동작; 및
    트레이닝 발화들의 세트(452)로부터의 전사(456) 및 희귀 단어 트레이닝 텍스트 샘플들의 식별된 서브세트(432)에 대해 외부 언어 모델(206)을 트레이닝하는 동작을 포함하는, 시스템.
  14. 청구항 13에 있어서, 상기 트레이닝 텍스트 샘플들의 세트(422)를 획득하는 동작은:
    트레이닝 텍스트 샘플들의 코퍼스(412)를 수신하는 동작;
    트레이닝 텍스트 샘플들의 코퍼스(412)에서 발생하는 높은 빈도의 텍스트 샘플들을 식별하기 위해 트레이닝 텍스트 샘플들의 코퍼스(412)에 대해 리샘플링 함수를 실행하는 동작; 및
    트레이닝 텍스트 샘플들의 코퍼스(412)로부터 식별된 높은 빈도의 텍스트 샘플들을 제거함으로써 트레이닝 텍스트 샘플들의 세트(422)를 획득하는 동작을 포함하는, 시스템.
  15. 청구항 13 또는 청구항 14에 있어서, 상기 리샘플링 함수는 단순 파워 리샘플링 함수, 강제 파워 리샘플링 함수 또는 소프트 로그 리샘플링 함수 중 하나를 포함하는, 시스템.
  16. 청구항 13 내지 15 중 어느 한 항에 있어서, 상기 동작들은:
    트레이닝 발화들의 세트(452)와 연관된 타겟 도메인과 일치하는 타겟 도메인 트레이닝 텍스트 샘플들(442)의 서브세트를 식별하기 위해 트레이닝 텍스트 샘플들의 세트(422)에 대조 필터링을 적용하는 동작을 더 포함하며,
    트레이닝 발화들의 세트(452)로부터의 전사(456) 및 희귀 단어 트레이닝 텍스트 샘플들의 식별된 서브세트(432)에 대해 외부 언어 모델(206)을 트레이닝하는 동작은 타겟 도메인과 일치하는 타겟 도메인 트레이닝 텍스트 샘플들의 식별된 서브세트(442)에 대해 외부 언어 모델(206을 트레이닝하는 동작을 더 포함하는, 시스템.
  17. 청구항 13 내지 16 중 어느 한 항에 있어서, 상기 외부 언어 모델(206)은 외부 신경 언어 모델을 포함하는, 시스템.
  18. 청구항 17에 있어서, 상기 외부 신경 언어 모델은 컨포머 레이어들 또는 트랜스포머 레이어들의 스택을 포함하는, 시스템.
  19. 청구항 13 내지 18 중 어느 한 항에 있어서, 상기 동작들은 상기 트레이닝된 외부 언어 모델(206)을 트레이닝된 ASR 모델(200)과 통합하는 동작을 더 포함하고, 상기 트레이닝된 외부 언어 모델(206)은 트레이닝된 ASR 모델(200)에 의해 예측된 가능한 스피치 인식 가설에 대한 확률 분포를 재점수화하도록 구성되는, 시스템.
  20. 청구항 19에 있어서, 상기 ASR 모델(200)은:
    제1 인코더(210), 상기 제1 인코더는:
    음향 프레임들(110)의 시퀀스를 입력으로서 수신하고; 그리고
    복수의 출력 단계들 각각에서, 상기 음향 프레임들(110)의 시퀀스에서 대응하는 음향 프레임(110)에 대한 제1 고차 피처 표현을 생성하도록 구성되며;
    제2 인코더(220), 상기 제2 인코더는:
    상기 복수의 출력 단계들 각각에서 상기 제1 인코더(210)에 의해 생성된 상기 제1 고차 피처 표현을 입력으로서 수신하고; 그리고
    상기 복수의 출력 단계들 각각에서 대응하는 제1 고차 피처 프레임에 대한 제2 고차 피처 표현을 생성하도록 구성되며; 및
    디코더(204), 상기 디코더는:
    상기 복수의 출력 단계들 각각에서 상기 제2 인코더(220)에 의해 생성된 상기 제2 고차 피처 표현을 입력으로서 수신하고; 그리고
    상기 복수의 시간 단계들 각각에서, 가능한 스피치 인식 가설에 대한 제1 확률 분포(120a)를 생성하도록 구성되는, 시스템.
  21. 청구항 19 또는 20에 있어서, 상기 디코더(204)는:
    상기 복수의 출력 단계들 각각에서 상기 제1 인코더(210)에 의해 생성된 상기 제1 고차 피처 표현을 입력으로서 수신하고; 그리고
    상기 복수의 시간 단계들 각각에서, 가능한 스피치 인식 가설에 대한 제2 확률 분포(120b)를 생성하도록 구성되는, 시스템.
  22. 청구항 19 내지 21 중 어느 한 항에 있어서, 상기 디코더(204)는:
    예측 네트워크(300), 상기 예측 네트워크는 상기 복수의 시간 단계들 각각에서:
    최종 소프트맥스 레이어에 의해 출력된 N개의 이전 비-공백 심볼들의 시퀀스를 입력으로 수신하고;
    N개의 이전 비-공백 심볼들의 시퀀스의 각각의 비-공백 심볼에 대해, 각각의 임베딩(306)을 생성하고; 그리고
    상기 각각의 임베딩(306)을 평균하여 평균 임베딩(312)을 생성하도록 구성되며; 및
    조인트 네트워크를 포함하며, 상기 조인트 네트워크는:
    상기 복수의 출력 단계들 각각에서 상기 예측 네트워크(300)에 의해 생성된 평균 임베딩(312) 및 다음 중 하나를 입력으로서 수신하고:
    상기 ASR 모델(200)이 스트리밍 모드에서 동작하는 경우, 상기 복수의 출력 단계들 각각에서 상기 제1 인코더(210)에 의해 생성된 제1 고차 피처 표현 또는
    상기 ASR 모델(200)이 비-스트리밍 모드에서 동작하는 경우, 상기 복수의 출력 단계들 각각에서 상기 제2 인코더(220)에 의해 생성된 제2 고차 피처 표현; 그리고
    상기 복수의 출력 단계 각각에서, 다음 중 하나를 생성하도록 구성되는, ASR 시스템:
    상기 ASR 모델(200)이 스트리밍 모드에서 동작하는 경우, 가능한 스피치 인식 가설에 대한 제2 확률 분포(120b); 또는
    상기 ASR 모델(200)이 비-스트리밍 모드에서 동작하는 경우, 가능한 스피치 인식 가설에 대한 제1 확률 분포(120a).
  23. 청구항 20 내지 22 중 어느 한 항에 있어서,
    상기 제1 인코더(210)는 컨포머 레이어들의 초기 스택을 포함하는 인과(causal) 인코더를 포함하며; 그리고
    상기 제2 인코더(220)는 컨포머 레이어들의 초기 스택 위에 놓이는 컨포머 레이어들의 최종 스택을 포함하는 비-인과(non-causal) 인코더를 포함하는, 시스템.
  24. 청구항 20 내지 23 중 어느 한 항에 있어서, 상기 ASR 모델(200)의 제1 인코더(210) 및 제2 인코더(220)는 트레이닝 발화들의 세트(452)로부터의 전사(456)와 희귀 단어 트레이닝 텍스트 샘플들의 식별된 서브세트(432)를 포함하는 텍스트 전용 데이터에 대해 트레이닝된 외부 언어 모델(206)의 통합을 용이하게 하기 위해 Hybrid Autoregressive Transducer Factorization을 사용하여 트레이닝되는, 시스템.
KR1020247012077A 2021-09-30 2021-12-13 희귀 단어 스피치 인식을 위한 대규모 언어 모델 데이터 선택 KR20240065125A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US202163261946P 2021-09-30 2021-09-30
US63/261,946 2021-09-30
PCT/US2021/063004 WO2023055409A1 (en) 2021-09-30 2021-12-13 Large-scale language model data selection for rare-word speech recognition

Publications (1)

Publication Number Publication Date
KR20240065125A true KR20240065125A (ko) 2024-05-14

Family

ID=79287697

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020247012077A KR20240065125A (ko) 2021-09-30 2021-12-13 희귀 단어 스피치 인식을 위한 대규모 언어 모델 데이터 선택

Country Status (5)

Country Link
US (1) US12014725B2 (ko)
EP (1) EP4388527A1 (ko)
KR (1) KR20240065125A (ko)
CN (1) CN118076997A (ko)
WO (1) WO2023055409A1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116612750A (zh) * 2023-05-23 2023-08-18 苏州科帕特信息科技有限公司 一种语言模型自动训练方法
CN118155638B (zh) * 2024-05-07 2024-07-19 武汉人工智能研究院 基于大语言模型的语音生成和理解***、方法和电子设备

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6622119B1 (en) * 1999-10-30 2003-09-16 International Business Machines Corporation Adaptive command predictor and method for a natural language dialog system
JP7280382B2 (ja) * 2019-05-03 2023-05-23 グーグル エルエルシー 数字列のエンドツーエンド自動音声認識
KR20220008309A (ko) * 2019-05-10 2022-01-20 구글 엘엘씨 음성 인식을 위한 종단 간 모델과 함께 컨텍스트 정보 사용
US11527238B2 (en) * 2020-10-30 2022-12-13 Microsoft Technology Licensing, Llc Internal language model for E2E models

Also Published As

Publication number Publication date
US12014725B2 (en) 2024-06-18
US20230096821A1 (en) 2023-03-30
EP4388527A1 (en) 2024-06-26
CN118076997A (zh) 2024-05-24
WO2023055409A1 (en) 2023-04-06

Similar Documents

Publication Publication Date Title
JP7436760B1 (ja) サブワードエンドツーエンド自動音声認識のための学習ワードレベルコンフィデンス
JP7351018B2 (ja) エンド・ツー・エンド音声認識における固有名詞認識
US20220122622A1 (en) Cascaded Encoders for Simplified Streaming and Non-Streaming ASR
JP2023545988A (ja) トランスフォーマトランスデューサ:ストリーミング音声認識と非ストリーミング音声認識を統合する1つのモデル
KR20230158608A (ko) 종단 간 자동 음성 인식 신뢰도 및 삭제 추정을 위한 멀티태스크 학습
KR20240065125A (ko) 희귀 단어 스피치 인식을 위한 대규모 언어 모델 데이터 선택
US11715458B2 (en) Efficient streaming non-recurrent on-device end-to-end model
US20230343332A1 (en) Joint Segmenting and Automatic Speech Recognition
US20220310097A1 (en) Reducing Streaming ASR Model Delay With Self Alignment
KR20240069763A (ko) 캐스케이드 인코더를 위한 트랜스듀서 기반 스트리밍 심의
KR20230156427A (ko) 연결 및 축소된 rnn-t
US12051404B2 (en) Efficient streaming non-recurrent on-device end-to-end model
US20230326461A1 (en) Unified Cascaded Encoder ASR model for Dynamic Model Sizes
US20240135923A1 (en) Universal Monolingual Output Layer for Multilingual Speech Recognition
KR20240068723A (ko) Rnn-T로 구현된 자동 음성 인식 시스템에서 음향과 텍스트 표현의 융합
EP4399704A1 (en) Predicting word boundaries for on-device batching of end-to-end speech recognition models
KR20230156795A (ko) 단어 분할 규칙화
WO2023205367A1 (en) Joint segmenting and automatic speech recognition
WO2024019859A1 (en) Context-aware neural confidence estimation for rare word speech recognition
JP2024512071A (ja) 自動音声認識のための多言語再スコアリングモデル