KR20230156795A - 단어 분할 규칙화 - Google Patents
단어 분할 규칙화 Download PDFInfo
- Publication number
- KR20230156795A KR20230156795A KR1020237036313A KR20237036313A KR20230156795A KR 20230156795 A KR20230156795 A KR 20230156795A KR 1020237036313 A KR1020237036313 A KR 1020237036313A KR 20237036313 A KR20237036313 A KR 20237036313A KR 20230156795 A KR20230156795 A KR 20230156795A
- Authority
- KR
- South Korea
- Prior art keywords
- subword
- input word
- units
- subword units
- speech recognition
- Prior art date
Links
- 230000011218 segmentation Effects 0.000 title claims abstract description 47
- 238000000034 method Methods 0.000 claims abstract description 55
- 230000015654 memory Effects 0.000 claims description 35
- 238000012549 training Methods 0.000 claims description 26
- 238000012545 processing Methods 0.000 claims description 24
- 230000000306 recurrent effect Effects 0.000 claims description 7
- 230000001537 neural effect Effects 0.000 claims description 6
- 238000005070 sampling Methods 0.000 claims description 5
- 230000007246 mechanism Effects 0.000 claims description 4
- 230000006403 short-term memory Effects 0.000 claims description 3
- 239000012634 fragment Substances 0.000 abstract description 10
- 230000000875 corresponding effect Effects 0.000 description 25
- 230000008569 process Effects 0.000 description 11
- 238000013518 transcription Methods 0.000 description 11
- 230000035897 transcription Effects 0.000 description 11
- 238000004590 computer program Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 238000013528 artificial neural network Methods 0.000 description 6
- 239000013598 vector Substances 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 238000003058 natural language processing Methods 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 4
- PCHJSUWPFVWCPO-UHFFFAOYSA-N gold Chemical compound [Au] PCHJSUWPFVWCPO-UHFFFAOYSA-N 0.000 description 3
- 239000010931 gold Substances 0.000 description 3
- 229910052737 gold Inorganic materials 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000006855 networking Effects 0.000 description 2
- 206010068829 Overconfidence Diseases 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000001143 conditioned effect Effects 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 238000003066 decision tree Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000009499 grossing Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000005236 sound signal Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 230000001755 vocal effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
- G06F40/284—Lexical analysis, e.g. tokenisation or collocates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
- G06N3/0442—Recurrent networks, e.g. Hopfield networks characterised by memory or gating, e.g. long short-term memory [LSTM] or gated recurrent units [GRU]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
- G06N3/0455—Auto-encoder networks; Encoder-decoder networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/02—Feature extraction for speech recognition; Selection of recognition unit
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/04—Segmentation; Word boundary detection
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/06—Creation of reference templates; Training of speech recognition systems, e.g. adaptation to the characteristics of the speaker's voice
- G10L15/063—Training
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/08—Speech classification or search
- G10L15/16—Speech classification or search using artificial neural networks
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L25/00—Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
- G10L25/27—Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 characterised by the analysis technique
- G10L25/30—Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 characterised by the analysis technique using neural networks
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Theoretical Computer Science (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Multimedia (AREA)
- Acoustics & Sound (AREA)
- Human Computer Interaction (AREA)
- Evolutionary Computation (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- General Engineering & Computer Science (AREA)
- Biophysics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Molecular Biology (AREA)
- Data Mining & Analysis (AREA)
- Biomedical Technology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Signal Processing (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Machine Translation (AREA)
Abstract
하위단어 분할을 위한 방법(600)은 복수의 하위단어 유닛(119)으로 분할될 입력 단어(302)를 수신하는 단계를 포함한다. 방법은 또한 하위단어 분할 루틴(300)을 실행하여, 하위단어 유닛들의 훈련된 어휘 세트(350)에 액세스하고 그리고 입력 단어의 끝에 도달할 때까지, 훈련된 어휘 세트 내에 존재하는 입력 단어로부터의 가장 긴 하위단어 유닛을 그리디 탐색함으로써, 입력 단어로부터 복수의 하위단어 유닛을 선택하는 것에 의해, 입력 단어를 복수의 하위단어 유닛으로 분할하는 단계를 포함한다.
Description
본 개시내용은 단어 분할(word segmentation)을 규칙화(regularizing)하는 것에 관한 것이다.
자동 음성 인식(automated speech recognition)(ASR) 시스템들은 다수의 모델(예를 들어, 음향, 발음 및 언어 모델들)로부터 진화해왔는데, 여기서 각각의 모델은 오디오 파형(즉, 입력 시퀀스)을 출력 문장(즉, 출력 시퀀스)에 직접 매핑하기 위해 단일 신경망이 사용되는 통합 모델들을 위한 전용의 목적을 가졌다. 이러한 통합은 오디오 특징들(audio features)의 시퀀스가 주어질 때 단어들 또는 문자소들(graphemes)의 시퀀스를 생성하는 시퀀스-대-시퀀스 접근법을 초래했다. 통합된 구조를 사용하면, 모델의 모든 컴포넌트가 단일 종단 간(end-to-end)(E2E) 신경망으로서 연합하여 훈련될 수 있다. 여기서, E2E 모델은 전적으로 신경망으로 구성된 아키텍처를 갖는 모델을 지칭한다. 완전한 신경망은 외부의 및/또는 수동으로 설계된 컴포넌트들(예를 들어, 유한 상태 트랜스듀서들, 어휘집(lexicon), 또는 텍스트 정규화 모듈들(text normalization modules)) 없이 기능한다. 추가적으로, E2E 모델들을 훈련할 때, 이러한 모델들은 일반적으로 의사결정 트리들로부터의 부트스트래핑(bootstrapping) 또는 별도 시스템으로부터의 시간 정렬들을 필요로 하지 않는다.
본 개시내용의 일 양태는 하위단어 분할을 위한, 컴퓨터에 의해 구현되는 방법(computer-implemented method)을 제공한다. 컴퓨터에 의해 구현되는 방법은 데이터 프로세싱 하드웨어 상에서 실행될 때 데이터 프로세싱 하드웨어로 하여금 복수의 하위단어 유닛으로 분할될 입력 단어를 수신하는 동작을 포함하는 동작들을 수행하게 한다. 동작들은 하위단어 분할 루틴(subword segmentation routine)을 실행하여, 하위단어 유닛들의 훈련된 어휘 세트에 액세스하는 것, 및 입력 단어의 끝에 도달할 때까지, 훈련된 어휘 세트 내에 존재하는 입력 단어로부터의 가장 긴 하위단어 유닛을 그리디 탐색(greedily finding)함으로써 입력 단어로부터 복수의 하위단어 유닛을 선택하는 것에 의해, 입력 단어를 복수의 하위단어 유닛으로 분할하는 동작을 또한 포함한다.
본 개시내용의 구현들은 이하의 임의적(optional) 특징들 중 하나 이상을 포함할 수 있다. 일부 구현들에서, 복수의 하위단어 유닛을 선택하는 것은, 입력 단어의 복수의 상이한 위치 중의 각각의 대응하는 위치에 대해: 훈련된 어휘 세트 내에 존재하는 대응하는 위치에서의 입력 단어로부터 모든 가능한 후보 하위단어 유닛들을 식별하는 것; 및 1-p 확률을 가능한 후보 하위단어 유닛들 중 가장 긴 것에 할당하고, 나머지 p 확률을 대응하는 위치에서의 입력 단어로부터의 가능한 후보 하위단어 유닛들 전부에 균등하게 나눔으로써 가능한 후보 하위단어 유닛들 전부로부터 무작위로 샘플링하는 것을 포함한다. 동작들은 하위단어 분할 모델을 실행하기 전에, 미리 지정된 확률을 사용하여, 독립적으로 입력 단어로부터 문자(character)를 무작위로 삭제함으로써 입력 단어에 대한 철자 오류(misspelling)를 생성하는 동작을 더 포함할 수 있다.
일부 예들에서, 동작들은 하위단어 분할 모델을 실행하기 전에, 인접한 문자 쌍들의 순서를 교환(swapping)할 확률을 미리 지정하는 것, 및 입력 단어 내의 각각의 인접한 문자 쌍에 대해, 미리 지정된 확률에 기초하여 입력 단어 내의 인접한 문자 쌍으로부터의 문자들의 순서를 교환하는 것에 의해, 입력 단어에 대한 철자 오류를 생성하는 동작을 또한 포함한다. 여기서, 입력 단어 내의 임의의 주어진 문자의 순서는 최대 1회의 교환으로 제한된다.
일부 구현들에서, 동작들은 입력 단어의 발화(utterance)를 특성화(characterizing)하는 오디오 데이터를 포함하는 훈련 예(training example)를 수신하는 동작; 및 음성 인식 모델에 의한 출력을 위해, 입력 단어의 발화에 대한 음성 인식 결과를 생성하기 위해 오디오 데이터를 프로세싱하는 동작을 또한 포함한다. 여기서, 음성 인식 결과는 대응하는 출력 스텝에서 음성 인식 모델로부터 각각 출력되는 가설화된 하위단어 유닛들(hypothesized sub-word units)의 시퀀스를 포함한다. 이러한 구현들에서, 동작들은 하위단어 분할 루틴에 의해 입력 단어로부터 선택된 복수의 하위단어 유닛과 가설화된 하위단어 유닛들의 시퀀스에 기초하여 감독된 손실 항(supervised loss term)을 결정하는 동작; 및 감독된 손실 항에 기초하여 음성 인식 모델의 파라미터들을 업데이트하는 동작을 더 포함한다. 일부 예들에서, 음성 인식 모델은 오디오 인코더, 예측 네트워크 및 연합 네트워크(joint network)를 갖는 순환 신경망-트랜스듀서(Recurrent Neural Network-Transducer)(RNN-T) 모델 아키텍처를 포함한다. 여기서, 오디오 인코더는 복수의 장단기 메모리(long-short term memory)(LSTM) 레이어, 복수의 트랜스포머 레이어(transformer layer) 또는 복수의 컨포머 레이어(conformer layer) 중 하나를 포함할 수 있다. 다른 예들에서, 음성 인식 모델은 오디오 인코더, 주의집중 메커니즘(attention mechanism) 및 디코더를 포함하는 청취, 주의집중, 철자(Listen, Attend, Spell)(LAS) 모델 아키텍처를 포함한다.
본 개시내용의 다른 양태는 데이터 프로세싱 하드웨어, 및 데이터 프로세싱 하드웨어와 통신하는 메모리 하드웨어를 포함하는, 하위단어 분할을 위한 시스템을 제공한다. 메모리 하드웨어는 데이터 프로세싱 하드웨어 상에서 실행될 때 데이터 프로세싱 하드웨어로 하여금 복수의 하위단어 유닛으로 분할될 입력 단어를 수신하는 동작을 포함하는 동작들을 수행하게 하는 명령어들을 저장한다. 동작들은 하위단어 분할 루틴을 실행하여, 하위단어 유닛들의 훈련된 어휘 세트에 액세스하는 것, 및 입력 단어의 끝에 도달할 때까지, 훈련된 어휘 세트 내에 존재하는 입력 단어로부터의 가장 긴 하위단어 유닛을 그리디 탐색함으로써 입력 단어로부터 복수의 하위단어 유닛을 선택하는 것에 의해, 입력 단어를 복수의 하위단어 유닛으로 분할하는 동작을 또한 포함한다.
본 개시내용의 구현들은 이하의 임의적 특징들 중 하나 이상을 포함할 수 있다. 일부 구현들에서, 복수의 하위단어 유닛을 선택하는 것은, 입력 단어의 복수의 상이한 위치 중의 각각의 대응하는 위치에 대해: 훈련된 어휘 세트 내에 존재하는 대응하는 위치에서의 입력 단어로부터 모든 가능한 후보 하위단어 유닛들을 식별하는 것; 및 1-p 확률을 가능한 후보 하위단어 유닛들 중 가장 긴 것에 할당하고, 나머지 p 확률을 대응하는 위치에서의 입력 단어로부터의 가능한 후보 하위단어 유닛들 전부에 균등하게 나눔으로써 가능한 후보 하위단어 유닛들 전부로부터 무작위로 샘플링하는 것을 포함한다. 동작들은 하위단어 분할 모델을 실행하기 전에, 미리 지정된 확률을 사용하여, 독립적으로 입력 단어로부터 문자를 무작위로 삭제함으로써 입력 단어에 대한 철자 오류를 생성하는 동작을 더 포함할 수 있다.
일부 예들에서, 동작들은 하위단어 분할 모델을 실행하기 전에, 인접한 문자 쌍들의 순서를 교환할 확률을 미리 지정하는 것, 및 입력 단어 내의 각각의 인접한 문자 쌍에 대해, 미리 지정된 확률에 기초하여 입력 단어 내의 인접한 문자 쌍으로부터의 문자들의 순서를 교환하는 것에 의해, 입력 단어에 대한 철자 오류를 생성하는 동작을 또한 포함한다. 여기서, 입력 단어 내의 임의의 주어진 문자의 순서는 최대 1회의 교환으로 제한된다.
일부 구현들에서, 동작들은 입력 단어의 발화를 특성화하는 오디오 데이터를 포함하는 훈련 예를 수신하는 동작; 및 음성 인식 모델에 의한 출력을 위해, 입력 단어의 발화에 대한 음성 인식 결과를 생성하기 위해 오디오 데이터를 프로세싱하는 동작을 또한 포함한다. 여기서, 음성 인식 결과는 대응하는 출력 스텝에서 음성 인식 모델로부터 각각 출력되는 가설화된 하위단어 유닛들의 시퀀스를 포함한다. 이러한 구현들에서, 동작들은 하위단어 분할 루틴에 의해 입력 단어로부터 선택된 복수의 하위단어 유닛과 가설화된 하위단어 유닛들의 시퀀스에 기초하여 감독된 손실 항을 결정하는 동작; 및 감독된 손실 항에 기초하여 음성 인식 모델의 파라미터들을 업데이트하는 동작을 더 포함한다. 일부 예들에서, 음성 인식 모델은 오디오 인코더, 예측 네트워크 및 연합 네트워크를 갖는 순환 신경망-트랜스듀서(RNN-T) 모델 아키텍처를 포함한다. 여기서, 오디오 인코더는 복수의 장단기 메모리(LSTM) 레이어, 복수의 트랜스포머 레이어 또는 복수의 컨포머 레이어 중 하나를 포함할 수 있다. 다른 예들에서, 음성 인식 모델은 오디오 인코더, 주의집중 메커니즘 및 디코더를 포함하는 청취, 주의집중, 철자(LAS) 모델 아키텍처를 포함한다.
본 개시내용의 하나 이상의 구현의 세부사항들은 첨부 도면들 및 이하의 설명에 제시된다. 다른 양태들, 특징들 및 이점들은 설명 및 도면들로부터, 그리고 청구항들로부터 명백할 것이다.
도 1은 음성 인식 모델을 훈련하기 위한 하위단어 분할을 위한 예시적인 시스템의 개략도이다.
도 2a는 예시적인 순환 신경망-트랜스듀서(RNN-T) 모델 아키텍처의 개략도이다.
도 2b는 예시적인 청취, 주의집중 및 철자 모델 아키텍처의 개략도이다.
도 3은 입력 단어를 복수의 하위단어 세그먼트로 분할하는 하위단어 분할 루틴의 예이다.
도 4는 도 3의 하위단어 분할 루틴을 표현하는 예시적인 알고리즘이다.
도 5는 모든 가능한 하위단어 유닛들로부터 샘플링된 후보 하위단어 유닛들을 표현하는 예시적인 부분 그래프의 개략도이다.
도 6은 하위단어 유닛들을 분할하는, 컴퓨터에 의해 구현되는 방법에 대한 동작들의 예시적인 배열의 흐름도이다.
도 7은 본 명세서에 설명된 시스템들 및 방법들을 구현하는 데 사용될 수 있는 예시적인 컴퓨팅 디바이스의 개략도이다.
다양한 도면들에서 유사한 참조 기호들은 유사한 요소들을 나타낸다.
도 2a는 예시적인 순환 신경망-트랜스듀서(RNN-T) 모델 아키텍처의 개략도이다.
도 2b는 예시적인 청취, 주의집중 및 철자 모델 아키텍처의 개략도이다.
도 3은 입력 단어를 복수의 하위단어 세그먼트로 분할하는 하위단어 분할 루틴의 예이다.
도 4는 도 3의 하위단어 분할 루틴을 표현하는 예시적인 알고리즘이다.
도 5는 모든 가능한 하위단어 유닛들로부터 샘플링된 후보 하위단어 유닛들을 표현하는 예시적인 부분 그래프의 개략도이다.
도 6은 하위단어 유닛들을 분할하는, 컴퓨터에 의해 구현되는 방법에 대한 동작들의 예시적인 배열의 흐름도이다.
도 7은 본 명세서에 설명된 시스템들 및 방법들을 구현하는 데 사용될 수 있는 예시적인 컴퓨팅 디바이스의 개략도이다.
다양한 도면들에서 유사한 참조 기호들은 유사한 요소들을 나타낸다.
최신의 자동 음성 인식(ASR) 시스템들은 높은 품질(예를 들어, 낮은 단어 에러 레이트(word error rate)(WER))뿐만 아니라 낮은 레이턴시(예를 들어, 사용자 말하기(user speaking)와 트랜스크립션 출현(transcription appearing) 사이의 짧은 지연)을 제공하는 데 중점을 둔다. 종단 간 시퀀스 ASR 모델들의 개발은 별개의 따로 훈련된 음향, 언어 및 발음 모델들을 사용하지 않고도, 직접적으로, 음성을 표현하는 오디오를 입력으로서 수신하고 인식된 텍스트를 출력하기 위한 단일 신경망 모델을 제공한다. 종단 간 시퀀스 ASR 모델들을 사용할 때, 텍스트의 단어 기반 및 문자소 기반 표현들은 출력된 인식된 텍스트를 표현하기 위한 두 가지 간단한 기술이다. 일반적으로, 단어 기반 표현들은 문자소 기반 표현들에 비해 더 짧은 길이들의 텍스트 시퀀스들을 초래하므로, ASR 모델이 컨텍스트에 걸친 종속성들을 학습하는 것을 더 쉽게 한다. 그러나, 단어 기반 표현들을 사용하도록 ASR 모델들을 구현하기 위해서는, 가능한 단어들을 인식하기 위해 미리 정의된 어휘가 필요하므로, 훈련 데이터에 존재하지 않은 어휘-밖(out-of-vocabulary)(OOV) 용어들/단어들을 다루는 능력이 제한된다. 단어 기반 표현들의 또 다른 단점은 생성된 단어 임베딩들에 추가 정보를 통합하지 않으면, ASR 모델이 언어적으로 관련된 단어들, 예를 들어 "catch" 대 "catching", "book" 대 "books", "help" 대 "helpful" 등 간의 관계들을 학습할 수 없다는 것이다.
한편, 문자소 기반 표현들은 단어들을 형성하는 단일 문자들의 시퀀스들의 출력을 포함한다. 문자소 기반 표현들을 사용하는 ASR 모델들은 이론적으로 철자가 유사한 단어들 간의 관계들을 학습하고 OOV 용어들/단어들을 처리할 수 있지만, 주된 단점은 훨씬 더 긴 텍스트 시퀀스들을 생성하기 위해 더 큰 메모리 풋프린트들 및 계산 시간들이 요구된다는 것이다. 다르게 말하면, 문자소 기반 표현들을 생성하는 것은 추론 속도들을 줄이는 역효과를 갖는 디코딩 스텝들의 수를 증가시킨다. 더욱이, 문자소 기반 표현들은 데이터로부터 패턴들을 학습하는 능력을 억제하여, 최적이 아닌 성능을 초래한다.
본 명세서의 구현들은 입력 오디오 데이터(즉, 입력 시퀀스)를, 하나 이상의 단어를 형성하는 하위단어 유닛들의 시퀀스를 포함하는 하위단어 기반 텍스트 표현의 형태로 출력 시퀀스에 직접 매핑하는 종단 간 시퀀스 ASR 모델을 사용하는 것에 관한 것이다. 하위단어 기반 텍스트 표현들은 단어 기반 표현들과 문자소 기반 표현들의 두 가지 접근법 사이에서 절충점을 얻는다. 본 명세서의 구현들은 더 구체적으로는 시퀀스 ASR 모델들을 훈련하기 위한 텍스트의 하위단어 기반 표현을 향상시키는 하위단어 분할 루틴("단어 토큰화 루틴/알고리즘" 또는 간단히 "단어조각 모델(wordpiece model)"이라고도 지칭됨)에 관한 것이다. 아래에서 더 상세하게 논의되는 바와 같이, 하위단어 분할 루틴을 실행하는 것은, 하위단어 유닛들의 훈련된 어휘 세트에 액세스하고, 입력 단어의 끝에 도달할 때까지, 훈련된 어휘 세트 내에 존재하는 입력 단어로부터의 가장 긴 하위단어 유닛을 그리디 탐색하여 복수의 하위단어 유닛에 포함시킬 하위단어 유닛들을 순차적으로 선택함으로써, 입력 단어를 복수의 하위단어 유닛으로 분할한다. 본 명세서에 사용될 때, "하위단어 유닛들"이라는 용어는 "단어조각들"로 상호교환가능하게 지칭될 수 있고, 문자소들로부터 전체 단어들에 이르는 범위를 가질 수 있다. 특히, 하위단어 분할 루틴에 의해 액세스되는 하위단어 유닛들의 어휘 세트는 임의의 OOV 용어들/단어들을 포함할 필요가 없으며, 이는 하위단어 분할 루틴이 단지 입력 단어들의 훈련 세트에 대한 언어 모델 우도를 최대화하도록 훈련될 것을 요구한다. 하위단어 분할 루틴은 각각의 입력 단어를 개별적으로 하위단어 유닛들로 분할하기 위해 텍스트 데이터로부터 획득된 단어 카운트들로 훈련된 통계적 단어조각 모델과 상관관계가 있을 수 있다. 개별 공간을 나타내는 심볼이 하위단어 유닛들에 포함될 수 있다.
입력 단어는 훈련 오디오 데이터에 의해 특성화되는 훈련 발화의 그라운드 트루스 트랜스크립션 내의 하나 이상의 단어 중 하나를 포함할 수 있다. 이와 같이, 입력 단어로부터 분할되고 하위단어 분할 루틴에 의해 선택된 복수의 하위단어 유닛은, 훈련 발화를 특성화하는 입력된 훈련 오디오 데이터로부터 하위단어 유닛들의 출력 시퀀스를 예측하도록 학습하기 위해 ASR 모델을 훈련하는 데 사용하기 위한 그라운드 트루스 하위단어 유닛들의 역할을 할 수 있다. 훈련 발화를 특성화하는 오디오 데이터는 사람이 훈련 발화를 말하는 것에 대응하는 비-합성 음성 표현, 또는 텍스트-대-음성에 의해 입력 텍스트로부터 변환된 합성 음성 표현(예를 들어, 그라운드 트루스 트랜스크립션)을 포함할 수 있다.
추가적인 구현들은 하위단어 분할 루틴에 의한 분할 이전에 입력 단어에 하나 이상의 규칙화 기술을 적용하는 것에 관한 것이다. 아래에서 더 상세하게 논의되는 바와 같이, 이러한 규칙화 기술들은 하위단어 분할 루틴을 실행하기 전에 입력 단어들의 철자를 변경하여, ASR 모델의 성능을 향상시키기 위한 정교한 형태의 레이블 평활화를 제공하는 것을 포함할 수 있다.
도 1은 음성 환경을 위한 예시적인 시스템(100)의 예이다. 음성 환경에서, 사용자(104)가 사용자 디바이스(10)와 같은 컴퓨팅 디바이스와 상호작용하는 방식은 음성 입력을 통하는 것일 수 있다. 사용자 디바이스(10)(일반적으로 디바이스(10)라고도 지칭됨)는 음성 환경 내의 하나 이상의 사용자(104)로부터 사운드들(예를 들어, 스트리밍 오디오 데이터)를 캡처하도록 구성된다. 여기서, 스트리밍 오디오 데이터는 가청 질의, 디바이스(10)에 대한 커맨드, 또는 디바이스(10)에 의해 캡처되는 가청 통신으로서 기능하는, 사용자(104)에 의해 말해진 발화(106)를 지칭할 수 있다. 디바이스(10)의 음성 지원 시스템들은 질의에 응답하고/거나 커맨드가 하나 이상의 다운스트림 애플리케이션에 의해 수행/이행되게 함으로써 질의 또는 커맨드에 대처할 수 있다.
사용자 디바이스(10)는 오디오 데이터를 수신할 수 있고 사용자(104)에 연관된 임의의 컴퓨팅 디바이스에 대응할 수 있다. 사용자 디바이스들(10)의 일부 예들은 모바일 디바이스들(예를 들어, 모바일 폰들, 태블릿들, 랩탑들 등), 컴퓨터들, 웨어러블 디바이스들(예를 들어, 스마트 워치들, 스마트 헤드폰들, 헤드셋들 등), 스마트 기기들, 사물 인터넷(IoT) 디바이스들, 차량 인포테인먼트 시스템들, 스마트 디스플레이들, 스마트 스피커들 등을 포함하지만 이에 제한되지는 않는다. 사용자 디바이스(10)는 데이터 프로세싱 하드웨어(12), 및 데이터 프로세싱 하드웨어(12)와 통신하고, 데이터 프로세싱 하드웨어(12)에 의해 실행될 때 데이터 프로세싱 하드웨어(12)로 하여금 하나 이상의 동작을 수행하게 하는 명령어들을 저장하는 메모리 하드웨어(14)를 포함한다. 사용자 디바이스(10)는 음성 환경 내의 말해진 발화들(106)을 캡처하고 전기 신호들로 변환하기 위한 오디오 캡처 디바이스(예를 들어, 마이크로폰)(16, 16a), 및 (예를 들어, 디바이스(10)로부터의 출력 오디오 데이터로서) 가청 오디오 신호를 전달하기 위한 음성 출력 디바이스(예를 들어, 스피커)(16, 16b)를 갖는 오디오 시스템(16)을 더 포함한다. 도시된 예에서는 사용자 디바이스(10)가 단일 오디오 캡처 디바이스(16a)를 구현하지만, 사용자 디바이스(10)는 본 개시내용의 범위로부터 벗어나지 않고서 오디오 캡처 디바이스들(16a)의 어레이를 구현할 수 있으며, 이로써 어레이 내의 하나 이상의 캡처 디바이스(16a)는 사용자 디바이스(10)에 물리적으로 상주하지 않을 수 있지만 오디오 시스템(16)과 통신하고 있을 수 있다.
시스템(100)은 발화(106)에 대응하는 입력 오디오 데이터(110)를, 발화(106)의 트랜스크립션(120) 내의 단어들을 형성하는 하위단어 유닛들(119)의 시퀀스를 포함하는 하위단어 기반 텍스트 표현(119)에 직접 매핑하도록 훈련된 종단 간 시퀀스 ASR 모델(200)을 구현하는 자동 음성 인식(ASR) 시스템(118)을 포함한다. ASR 시스템(118)은 시퀀스 ASR 모델(200)을 훈련하기 위해 하위단어 기반 텍스트 표현(119)을 개선하는 하위단어 분할 루틴(300)("단어 토큰화 루틴/알고리즘" 또는 간단히 "단어조각 모델"이라고도 지칭됨)을 실행한다. 아래에서 도 3을 참조하여 더 상세하게 논의되는 바와 같이, ASR 시스템(118)은 하위단어 기반 텍스트 표현들(119)의 형태의 출력 레이블들을 예측하도록 훈련된 ASR 모델(200)의 음성 인식 정확도를 향상시키는 데에 사용하기 위해, 입력 단어(302)(도 3)를 복수의 하위단어 유닛(119)으로 분할하기 위해 하위단어 분할 루틴(300)을 실행한다.
특히, 하위단어 분할 루틴(300)에 의해 분할된 하위단어 유닛들(119)은 악센트들, 다양한 발음들, 및/또는 비-유창성들(disfluencies)을 갖는 인간 음성을 더 잘 반영한다. 이와 같이, 하위단어 분할 루틴(300)은 상이한 언어들로 말해진 음성을 인식할 수 있는 다중 언어 ASR 모델들(multilingual ASR models)(200)을 보완한다. 예를 들어, 다중 언어 ASR 모델(200)은 상이한 인도어들 사이에서 언어 전환(code-switch)하는 화자들과 같은 다중 언어 화자들로부터의 음성을 인식하도록 훈련될 수 있으며, 그에 의해, 하위단어 분할 루틴(300)에 의해 분할된 하위단어 유닛들(119)은 이러한 다중 언어 화자들이 언어들 간을 전환(toggle)하고 단어들과 그 이웃 단어들의 발음을 변경할 때 ASR 모델(200)의 성능을 향상시킨다. 동일한 개념에 의해, 하위단어 분할 루틴(300)에 의해 분할된 하위단어 유닛들(119)은 ASR 모델(200) (단일 언어 또는 다중 언어)이 상이한 화자들에 의해 말해질 수 있는 모든 유형의 비정형(atypical)/악센트있는(accented) 음성을 인식하는 것을 포함하게 할 수 있다.
ASR 시스템(118)은 사용자(104)의 사용자 디바이스(10) 상에, 및/또는 네트워크(40)를 통해 사용자 디바이스(10)와 통신하는 원격 컴퓨팅 디바이스(60)(예를 들어, 클라우드 컴퓨팅 환경에서 실행되는 분산 시스템의 하나 이상의 원격 서버) 상에 상주할 수 있다. 사용자 디바이스(10) 및/또는 원격 컴퓨팅 디바이스(60)는 또한 사용자(104)에 의해 말해지고 오디오 캡처 디바이스(16a)에 의해 캡처된 발화(106)를 수신하고, 발화(106)를 ASR 시스템(118)에 의해 프로세싱될 수 있는 입력 음향 프레임들(예를 들어, 오디오 데이터)(110)에 연관된 대응하는 디지털 포맷으로 변환하도록 구성된 오디오 서브시스템(108)을 포함한다. 도시된 예에서, 사용자는 각각의 발화(106)를 말하고, 오디오 서브시스템(108)은 ASR 시스템(118)에 입력하기 위해 발화(106)를 대응하는 오디오 데이터(예를 들어 음향 프레임들)(110)로 변환한다. 이후, ASR 모델(200)은 발화(106)에 대응하는 오디오 데이터(110)를 입력으로서 수신하고, 복수의 출력 스텝 각각에서의 출력으로서, 하위단어 유닛에 대응하는 것을 생성/예측하여 발화(106)의 트랜스크립션(120)(예를 들어, 인식 결과들/가설들)을 형성한다. 도시된 예에서, ASR 모델(200)은 최종 음성 인식 결과(120)를 생성하기 위해 다시 채점될 수 있는 초기 음성 인식 결과(120)를 생성하기 위해 스트리밍 음성 인식을 수행할 수 있다.
사용자 디바이스(10) 및/또는 원격 컴퓨팅 디바이스(60)는 또한 발화(106)의 트랜스크립션(120)의 표현을 사용자 디바이스(10)의 사용자(104)에게 제시하도록 구성된 사용자 인터페이스 생성기(107)를 실행한다. 아래에서 더 상세하게 설명되는 바와 같이, 사용자 인터페이스 생성기(107)는 초기 음성 인식 결과들(120)을 스트리밍 방식으로 디스플레이할 수 있고, 후속하여 최종 음성 인식 결과(120)를 디스플레이할 수 있다. 일부 구성들에서, ASR 시스템(118)으로부터 출력된 트랜스크립션(120)은 발화(106)에 의해 지정된 사용자 커맨드/질의를 실행하기 위해, 예를 들어 사용자 디바이스(10) 또는 원격 컴퓨팅 디바이스(60) 상에서 실행되는 자연어 이해(natural language understanding)(NLU) 모듈에 의해 프로세싱된다. 추가적으로 또는 대안적으로, 텍스트-대-음성 시스템(도시되지 않음)(예를 들어, 사용자 디바이스(10) 또는 원격 컴퓨팅 디바이스(60)의 임의의 조합에서 실행됨)은 트랜스크립션을 사용자 디바이스(10) 및/또는 다른 디바이스에 의한 가청 출력을 위해 합성 음성으로 변환할 수 있다.
도시된 예에서, 사용자(104)는 ASR 시스템(118)을 사용하는 사용자 디바이스(10)의 프로그램 또는 애플리케이션(50)(예를 들어, 디지털 어시스턴트 애플리케이션(50))과 상호작용한다. 예를 들어, 도 1은 사용자(104)가 디지털 어시스턴트 애플리케이션(50)과 통신하고, 디지털 어시스턴트 애플리케이션(50)이 사용자(104)와 디지털 어시스턴트 애플리케이션(50) 사이의 대화를 묘사하기 위해 사용자 디바이스(10)의 스크린 상에 디지털 어시스턴트 인터페이스(18)를 디스플레이하는 것을 도시한다. 이 예에서, 사용자(104)는 디지털 어시스턴트 애플리케이션(50)에게 "What time is the concert tonight?"이라고 질문한다. 사용자(104)로부터의 이러한 질문은 오디오 캡처 디바이스(16a)에 의해 캡처되고, 사용자 디바이스(10)의 오디오 시스템들(16)에 의해 프로세싱되는 말해진 발화(106)이다. 이 예에서, 오디오 시스템(16)은 말해진 발화(106)를 수신하고, 이를 ASR 시스템(118)에의 입력을 위해 음향 프레임들(110)로 변환한다.
도 1에 도시된 예에서, 디지털 어시스턴트 애플리케이션(50)은 자연어 프로세싱을 사용하여 사용자(104)에 의해 제기된 질문에 응답할 수 있다. 자연어 프로세싱은 일반적으로 쓰여진 언어(written language)(예를 들어, 초기 음성 인식 결과들(120a) 및/또는 최종 음성 인식 결과(120b))를 해석하고, 쓰여진 언어가 임의의 액션을 촉구하는지를 결정하는 프로세스를 지칭한다. 이 예에서, 디지털 어시스턴트 애플리케이션(50)은 자연어 프로세싱을 사용하여 사용자(104)로부터의 질문이 사용자의 스케줄, 더 구체적으로는 사용자의 스케줄 상의 콘서트에 관한 것임을 인식한다. 자연어 프로세싱으로 이러한 세부사항들을 인식함으로써, 자동화된 어시스턴트는 사용자의 질의에 대해 응답(19)을 반환하고, 여기서 응답(19)은 "Venue doors open at 6:30 PM and concert starts at 8pm"이라는 것이다. 일부 구성들에서, 자연어 프로세싱은 사용자 디바이스(10)의 데이터 프로세싱 하드웨어(12)와 통신하는 원격 서버(60)에서 발생한다.
도 2a를 참조하면, 일부 구현들에서, ASR 모델(200)은 대화형 애플리케이션들에 연관된 레이턴시 제약들을 준수하는 순환 신경망-트랜스듀서(RNN-T) 모델(200a) 아키텍처(또는 다른 유형의 프레임 정렬 기반 트랜스듀서 모델)를 포함한다. RNN-T 모델(200a)은 작은 계산 풋프린트를 제공하고, 종래의 ASR 아키텍처들보다 적은 메모리 요건들을 이용하며, 이에 의해 RNN-T 모델 아키텍처는 전적으로 사용자 디바이스(102) 상에서 음성 인식을 수행하는 데 적합하게 된다(예를 들어, 원격 서버와의 통신이 필요하지 않음). RNN-T 모델(200a)은 인코더 네트워크(210), 예측 네트워크(220) 및 연합 네트워크(230)를 포함한다. 예측 및 연합 네트워크들(220, 230)은 RNN-T 디코더(231)를 집합적으로 제공할 수 있다. 전통적인 ASR 시스템의 음향 모델(AM)과 대략 유사한 인코더 네트워크(210)는 적층된 장단기 메모리(LSTM) 레이어들의 순환 네트워크를 포함할 수 있다. 예를 들어, 인코더는 d-차원 특징 벡터들(예를 들어, 음향 프레임들(110)(도 1))의 시퀀스 x = (x1, x2, ..., xT)를 판독하고 - 여기서,임 -, 각각의 시간 스텝에서 고차 특징 표현(higher-order feature representation)을 생성한다. 이러한 고차 특징 표현은 로서 표시된다.
마찬가지로, 예측 네트워크(220)는 또한 LSTM 네트워크인데, 이는 언어 모델(language model)(LM)과 마찬가지로, 지금까지 최종 Softmax 레이어(240)에 의해 출력된 비-공백(non-blank) 하위단어 유닛들의 시퀀스 y0, ..., yui -1을 표현 (225)로 프로세싱한다. 특히, 예측 네트워크(220)에서 수신된 비-공백 하위단어 유닛들의 시퀀스(y0, ..., yui-1)는 현재 시간 스텝 동안 다음 출력 하위단어 유닛(219) 또는 공백 심볼의 확률을 예측하는 데에 있어서 연합 네트워크(230)를 돕기 위해, 지금까지의 이전 시간 스텝들 동안 예측된 비-공백 심볼들 사이의 언어적 종속성들을 캡처한다.
마지막으로, RNN-T 모델 아키텍처를 사용하면, 인코더 및 예측 네트워크들(210, 220)에 의해 생성된 표현들은 연합 네트워크(230)에 의해 결합된다. 그러면, 연합 네트워크는 다음 하위단어 유닛(119)에 걸친 분포인 를 예측한다. 다르게 말하면, 연합 네트워크(230)는 각각의 출력 스텝(예를 들어, 시간 스텝)에서, 가설화된 하위단어 유닛들(119)에 걸친 확률 분포를 생성한다. 여기서, "가설화된 하위단어 유닛들"은 지정된 자연어에서 대응하는 하위단어 유닛을 각각 표현하는 하위단어 유닛들의 훈련된 어휘 세트(350)(도 3)로부터의 가능한 하위단어 유닛들에 대응한다. 어휘 세트(350) 내의 하위단어 유닛들은 개별 문자소들, 단어조각들 및 전체 단어들의 범위이다. 일부 예들에서, 훈련된 어휘 세트(350)는 지정된 자연어로 된 4,096개의 상이한 하위단어 유닛을 포함한다. 이러한 예들에서, 연합 네트워크(230)는 4,096개의 상이한 하위단어 유닛을 예측/출력하도록 훈련된다. 연합 네트워크(230)의 출력 분포는 상이한 가설화된 하위단어 유닛들 각각에 대한 사후 확률 값(posterior probability value)을 포함할 수 있다. 따라서, 상이한 문자소들, 단어조각들 또는 단어들을 표현하는 4,096개의 상이한 하위단어 유닛이 존재하는 경우, 연합 네트워크(230)의 출력 yi는 각각의 출력 레이블에 대해 하나씩, 4,096개의 상이한 확률 값을 포함할 수 있다. 다음으로, 확률 분포는 트랜스크립션(120)을 결정하기 위해 (예를 들어, Softmax 레이어(240)에 의한) 빔 검색 프로세스에서 후보 하위단어 유닛들(예를 들어, 문자소들, 단어조각들 및/또는 단어들)에 대해 점수들을 선택하고 할당하기 위해 사용될 수 있다.
Softmax 레이어(240)는 분포에서 가장 높은 확률을 갖는 출력 하위단어 유닛을 대응하는 출력 스텝에서 RNN-T 모델(200a)에 의해 예측된 다음 하위단어 유닛으로서 선택하기 위해 임의의 기술을 이용할 수 있다. 이러한 방식으로, RNN-T 모델(200a)은 조건부 독립 가정(conditional independence assumption)을 하지 않으며, 오히려 각각의 하위단어 유닛의 예측은 음향뿐만 아니라 지금까지 출력된 하위단어 유닛들의 시퀀스에 따라 조건화된다. RNN-T 모델(200a)은 출력 하위단어 유닛이 장래의 음향 프레임들(110)에 독립적이라고 가정하며, 이는 RNN-T 모델이 스트리밍 방식으로 이용되도록 허용한다.
일부 예들에서, RNN-T 모델(200)의 인코더 네트워크(210)는 최대 8개의 2,048차원 LSTM 레이어로 이루어지며, 이들 각각에는 640차원 투영 레이어가 후속한다. 다른 구현들에서, 인코더 네트워크(210)는 컨포머 또는 트랜스포머 레이어들의 네트워크를 포함한다. 예측 네트워크(220)는 2개의 2,048차원 LSTM 레이어를 가질 수 있으며, 이들 각각에는 또한 640차원 투영 레이어와 128개 유닛의 임베딩 레이어가 후속한다. 마지막으로, 연합 네트워크(230)는 또한 640개의 히든 유닛을 가질 수 있다. Softmax 레이어(240)는 훈련 데이터 내의 모든 고유한 단어조각들/하위단어 유닛들을 이용하여 생성된 통합된 단어조각/하위단어 유닛 세트로 구성될 수 있다.
도 2b를 참조하면, 다른 구현들에서, ASR 모델(200)은 종래의 음향 모델과 유사한 청취자 인코더 모듈(211), 정렬 모델로서 작용하는 주의집중기 모듈(221), 및 종래 시스템의 언어 모델과 유사한 디코더(231)를 포함하는 단일 신경망을 제공하는 청취, 주의집중 및 철자(LAS) 모델(200b) 아키텍처를 포함한다. 구체적으로, 청취자 인코더 모듈(211)은 입력 특징들(예를 들어, 음향 프레임들(110)(도 1)) x를 취하고, 그들을 더 높은 레벨의 특징 표현인 henc에 매핑한다. 인코딩된 특징 표현 henc를 생성하는 이러한 프로세스는 다수의 입력 프레임 각각에 대해 행해져서, 상이한 입력 시간 스텝들을 표현할 수 있다. 이러한 시간스텝들은 이하에서 아래첨자 u로 표시된다. 따라서, 프레임들의 세트 {f1, f2, f3, ... fu}에 대해, 인코딩된 출력들의 대응하는 세트 {h1, h2, h3, ... hu}가 있을 수 있다.
청취자 인코더 모듈(211)의 출력은 주의집중기 모듈(221)에 전달되며, 이는 동적 시간 워핑(dynamic time warping)(DTW) 정렬 모듈과 마찬가지로, 다음 출력 하위단어 유닛 yi를 예측하기 위해 henc 내의 어느 인코더 특징들이 주의집중되어야 하는지를 결정한다. 일부 예들에서, 주의집중기 모듈(221)은 본 명세서에서 주의집중기 신경망 또는 주의집중기(221)로 지칭된다. 주의집중기(221)는 다수의 출력 스텝 i 각각에 대한 컨텍스트 출력 ci를 생성할 수 있다. 각각의 컨텍스트 출력 벡터 ci에 대해, 주의집중기(221)는 하나 이상의 입력 스텝 u에 대한 인코딩들, 예를 들어 현재 입력 스텝에 대한 인코딩은 물론, 이전 입력 스텝들에 대한 인코딩들에 기초하여 주의집중을 계산할 수 있다. 예를 들어, 주의집중기(221)는 발화의 모든 인코더 출력의 세트, 예를 들어 전체 세트 {h1, h2, h3, ... hu}에 대해 주의집중 컨텍스트 출력 ci를 생성할 수 있다. 주의집중 컨텍스트 벡터는 인식되고 있는 발화의 프레임들(예를 들어, 부분들)에 대한 현재 및 이전 인코딩들의 가중 요약을 표현하는 벡터일 수 있다.
마지막으로, 주의집중기(221)의 출력이 디코더(231)에 전달되고, 이는 디코더 출력을 생성하기 위해 주의집중기(221)에 의해 출력된 주의집중 컨텍스트(예를 들어, 컨텍스트 벡터 또는 주의집중 분포) ci는 물론, 이전 예측 yi -1의 임베딩을 취한다. 디코더 출력은 가설화된 하위단어 유닛들 {yi - 1, ..., y0} 및 입력 x가 주어질 때의 현재 가설화된 하위단어 유닛 yi에 대한 확률 분포 P(yi│yi - 1, ..., y0, x)일 수 있다. 따라서, 디코더(231)는 각각의 출력 스텝에서, 가설화된 하위단어 유닛들(119)에 대한 확률 분포를 생성한다. 도 2a를 참조하여 위에서 논의된 RNN-T 모델(200a)과 마찬가지로, "가설화된 하위단어 유닛들"은 각각 지정된 자연어에서 대응하는 하위단어 유닛을 표현하는 하위단어 유닛들의 훈련된 어휘 세트(350)(도 3)로부터의 가능한 하위단어 유닛들에 대응한다.
도시되지는 않았지만, LAS 모델(200b)은 디코더(231)의 출력을 수신하는 softmax 레이어를 포함할 수 있다. 일부 구현들에서, softmax 레이어는 디코더 (231)와 별개이고 디코더(231)로부터의 출력 yi를 프로세싱하며, 다음으로 softmax 레이어의 출력은 결과적인 트랜스크립션(120)의 단어들을 형성하는 하위단어 유닛들을 선택하기 위해 빔 검색 프로세스에서 사용된다. 일부 구현들에서, softmax 레이어는 디코더(231)와 통합되므로, 디코더(231)의 출력 yi는 softmax 레이어의 출력을 표현한다.
디코더(231) 및/또는 연관된 softmax 레이어는 미리 결정된 세트의 하위단어 유닛들(119) 각각의 발생 우도를 나타내는 값들의 세트를 출력하도록 훈련될 수 있다. 값들의 이러한 세트는 벡터일 수 있으며, 하위단어 유닛들의 세트에 대한 확률 분포를 나타낼 수 있다. 디코더(231) 및/또는 softmax 레이어의 출력 분포는 상이한 하위단어 유닛들 각각에 대한 사후 확률 값을 포함할 수 있다. 따라서, 4,096개의 상이한 하위단어 유닛 레이블이 존재하는 경우, 디코더의 출력 yi, 또는 출력 yi를 수신하여 프로세싱하는 softmax 레이어의 출력은 각각의 출력 레이블마다 하나씩, 4,096개의 상이한 확률 값을 포함할 수 있다. 다음으로, 확률 분포는 트랜스크립션(120)을 결정하기 위해 빔 검색 프로세스에서 후보 하위단어 유닛들(119)에 대해 점수들을 선택하고 할당하는 데 사용될 수 있다.
도 3은 입력 단어(302)를 복수의 하위단어 유닛(119, 119a-b)으로 분할하기 위해 실행되는 하위단어 분할 루틴(300)(예를 들어, 경량 WPM)의 예를 도시한다. 하위단어 분할 루틴(300)의 실행 동안, 루틴(300)은 하위단어 유닛들의 훈련된 어휘 세트(350)에 액세스한다. 일부 예들에서, 훈련된 어휘 세트(350)는 단어 조각들은 물론, 문자소들 및 전체 단어들을 포함하는 4,096개의 상이한 하위단어 유닛을 포함한다. 훈련된 어휘 세트(350)는 원격 시스템(60)의 데이터 저장소(360)에 저장될 수 있다. 하위단어 분할 루틴(300)의 실행 동안, 루틴(300)은 입력 단어(302)의 끝에 도달할 때까지 훈련된 어휘 세트(350) 내에 존재하는 입력 단어(302)로부터의 가장 긴 하위단어 유닛을 그리디 탐색함으로써 입력 단어(302)로부터 복수의 하위단어 유닛(219)을 선택한다. 즉, 루틴(300)에 의해 수행되는 모든 프로세싱은 훈련된 어휘 세트(350) 내에 존재하는 각각의 위치/인덱스에서 가장 긴 하위단어를 순차적으로 탐색하기 위해 좌측으로부터 우측으로 엄격하게 수행된다. 예를 들어, 입력 단어(302)가 "Interspeech"라는 단어를 포함하는 경우, 제1 위치/인덱스에서 선택된 가장 긴 하위단어 유닛은 "Inter"이고 그 뒤에 "sp", "ee" 및 "ch"가 끝에 도달한다. 도 4는 하위단어 분할 루틴(300)을 표현하는 예시적인 알고리즘(400)을 도시한다.
도 3은 또한 ASR 모델(200)을 훈련하기 위한 그라운드 트루스 하위단어 유닛들로서 복수의 하위단어 유닛(119, 119a-n)을 사용하는 것을 보여준다. 여기서, 입력 단어(302)의 발화를 특성화하는 오디오 데이터(110T)를 포함하는 훈련 예는 그라운드 트루스 하위단어 유닛들(119)과 쌍을 이룰 수 있다. ASR 모델(200)은 훈련 오디오 데이터(110)를 프로세싱하여, 입력 단어(302)의 발화에 대한 음성 인식 결과(201)를 출력으로서 생성한다. 여기서, 음성 인식 결과(201)는 가설화된 하위단어 유닛들의 시퀀스를 포함하며, 여기서 가설화된 하위단어 유닛들의 시퀀스 내의 각각의 가설화된 하위단어 유닛은 대응하는 출력 스텝에서 음성 인식 모델(200)로부터 출력된다. 그 후, 손실 함수(380)(예를 들어, 교차 엔트로피 손실 또는 RNN-T 손실)는 하위단어 분할 루틴(300)에 의해 입력 단어로부터 선택된 복수의 하위단어 유닛(119) 및 가설화된 하위단어 유닛들의 시퀀스에 기초하여 감독된 손실 항(390)을 결정한다. 감독된 손실 항(390)은 훈련 동안 ASR 모델(200)의 파라미터들을 업데이트하기 위해 사용된다.
일부 구현들에서, 단순히 각각의 인덱스에서 가장 긴 하위단어 유닛을 항상 선택하는 대신에, 모든 가능한 하위단어 유닛들로부터 각각의 인덱스에서 하위단어 유닛의 선택을 샘플링함으로써, 하위단어 유닛 선택 스텝(예를 들어, 도 4의 알고리즘(400)의 라인 4)에 무작위성이 추가된다. 즉, 입력 단어의 복수의 상이한 위치 중의 각각의 대응하는 위치(예를 들어, 인덱스)에 대해, 루틴(300)은 훈련된 어휘 세트에 존재하는 대응하는 위치에서의 입력 단어(302)로부터 모든 가능한 후보 하위단어 유닛들을 식별할 수 있다. 그 후, 입력 단어(302)의 대응하는 위치에 대해, 루틴(300)은 1-p 확률을 가능한 후보 하위단어 유닛들 중 가장 긴 것에 할당하고, 나머지 p 확률을 대응하는 위치에서의 입력 단어(302)로부터의 가능한 후보 하위단어 유닛들 전부에 균등하게 나눔으로써, 가능한 후보 하위단어 유닛들 전부로부터 무작위로 샘플링할 수 있다. 입력 단어(302)가 "Interspeech"인 위의 예를 계속하면, 도 5는 모든 가능한 하위단어 유닛들로부터 각각의 위치에서의 하위단어 유닛의 선택을 무작위로 샘플링하기 위한 훈련 절차의 부분 그래프(500)를 보여준다. 여기서, 규칙화 비율은 균일할 수 있고 0.1의 값을 포함할 수 있으며, 그에 의해 각각의 위치에서 가장 긴 후보 하위단어 유닛에 대해 0.9 확률이 할당되고 나머지 0.1은 (가장 긴 후보를 포함하는) 모든 후보 하위단어 유닛들에 균등하게 분배된다. 특히, 상이한 위치들에서, 동일한 접두사를 공유하는 다수의 하위단어 유닛 후보가 샘플링될 수 있으므로, 이하의 두 가지 효과를 갖는다: 항상 가장 긴 하위단어 유닛을 선택하는 골드 분포(gold distribution)는 덜 예리하므로 모델의 과다-신뢰를 방지하고; 모델은 하위단어 유닛들의 접두사 관계들을 인식하게 된다.
도 3을 다시 참조하면, 일부 구현들에서, ASR 모델(200)에 의한 음성 인식 성능의 추가 이득들을 향상시키도록 루틴(300)에 무작위성을 도입하기 위해, 하위단어 분할 루틴(300)의 실행 전에 하나 이상의 규칙화 기술(305)이 적용된다. 일부 예들에서, 규칙화 기술(305)은 미리 지정된 확률을 사용하여, 독립적으로 입력 단어로부터 문자를 무작위로 삭제함으로써 입력 단어(302)에 대한 철자 오류를 생성하는 것을 포함한다. 위의 예를 적용하면, 입력 단어(302) "interspeech"는 "intrspeech"가 된다. 특히, 도 5의 부분 그래프(500)를 참조하면, 입력 단어 내의 임의의 글자(letter)는 잠재적으로 스킵/삭제되어 철자 오류를 생성할 수 있으므로, 상이한 확률 할당들에도 불구하고, 하위단어 유닛 후보들 전부는 여전히 존재할 것이다. 추가적으로, 루틴(300)은 무작위 문자들을 삭제하여 철자 오류들을 생성함으로써, 대응하는 접미사 구조(및 일반적으로, 철자의 유사성)를 학습함으로써 접두사 구조들을 넘어 단어들 간의 추가 관계들을 학습할 수 있다. 예를 들어, 골드 레이블이 "ing"이고 글자 "i"를 스킵한 경우, 모델은 하위단어 "ng"에 확률을 할당할 것이고, 따라서 "ing"과 "ng" 사이의 관계를 학습할 것이다. 더욱이, 다수의 글자를 스킵할 수 있기 때문에, 임의의 위치에서의 골드 레이블은 더 먼 장래로부터의 것일 수 있으며, 이는 루틴(300)이 데이터 내의 장기적인 종속성들을 더 잘 학습할 수 있게 한다.
추가적인 예들에서, 하위단어 분할 루틴(예를 들어, 경량 WPM)(300)의 실행 이전에 적용되는 규칙화 기술(305)은 인접한 문자 쌍들의 순서를 교환하기 위한 확률을 미리 지정함으로써 입력 단어(302)의 철자 오류를 생성하는 것, 및 입력 단어 내의 각각의 인접 문자 쌍에 대해, 미리 지정된 확률에 기초하여 입력 단어 내의 인접 문자 쌍으로부터의 문자들의 순서를 교환하는 것을 포함한다. 여기서, 입력 단어 내의 임의의 주어진 문자의 순서는 최대 1회의 교환으로 제한된다. 예를 들어, 원래 단어가 "the"이고 t와 h를 교환하여 "hte"로 만든 경우, 최초 교환 이후 "te" 쌍에 대해 추가 교환이 수행되지 않을 것이다. 제2 예로서, "center"라는 입력 단어(302)는 "centre"가 될 수 있다.
도 6은 음성 인식을 향상시키기 위한 하위단어 유닛 분할의 방법(600)에 대한 동작들의 예시적인 배열을 도시한다. 동작(602)에서, 방법(600)은 복수의 하위단어 유닛(119)으로 분할될 입력 단어(302)를 수신하는 것을 포함한다. 동작들(604 및 606)은 입력 단어(302)를 복수의 하위단어 유닛(119)으로 분할하기 위해 하위단어 분할 루틴(300)을 실행하는 동안 수행된다. 동작(604)에서, 방법(600)은 하위단어 유닛들의 훈련된 어휘 세트(350)에 액세스하는 단계를 포함한다. 동작(606)에서, 방법(600)은 입력 단어(302)의 끝에 도달할 때까지, 훈련된 어휘 세트(350) 내에 존재하는 입력 단어(302)로부터의 가장 긴 하위단어 유닛을 그리디 탐색함으로써 입력 단어(302)로부터 복수의 하위단어 유닛(119)을 선택하는 단계를 포함한다.
도 7은 본 문서에 설명된 시스템들 및 방법들을 구현하는 데 사용될 수 있는 예시적인 컴퓨팅 디바이스(700)의 개략도이다. 컴퓨팅 디바이스(700)는 랩탑들, 데스크탑들, 워크스테이션들, 개인용 정보 단말기들(personal digital assistants), 서버들, 블레이드 서버들, 메인프레임들, 및 다른 적절한 컴퓨터들과 같은 다양한 형태의 디지털 컴퓨터를 표현하도록 의도된다. 여기에 보여진 컴포넌트들, 그들의 연결들 및 관계들, 및 그들의 기능들은 예시로만 의도된 것일 뿐이며, 본 문서에서 설명 및/또는 청구된 발명들의 구현들을 제한하도록 의도되지 않는다.
컴퓨팅 디바이스(700)는 프로세서(710), 메모리(720), 저장 디바이스(730), 메모리(720) 및 고속 확장 포트들(750)에 연결되는 고속 인터페이스/컨트롤러(740), 및 저속 버스(770) 및 저장 디바이스(730)에 연결되는 저속 인터페이스/컨트롤러(760)를 포함한다. 컴포넌트들(710, 720, 730, 740, 750 및 670) 각각은 다양한 버스들을 사용하여 상호 연결되며, 공통의 마더보드 상에 또는 적절한 다른 방식으로 장착될 수 있다. 프로세서(예를 들어, 원격 서버(60)의 데이터 프로세싱 하드웨어(710))(710)는 그래픽 사용자 인터페이스(GUI)에 대한 그래픽 정보를 고속 인터페이스(740)에 결합된 디스플레이(780)와 같은 외부 입출력 디바이스에 디스플레이하기 위해, 메모리(720) 내에 또는 저장 디바이스(730) 상에 저장된 명령어들을 포함하여, 컴퓨팅 디바이스(700) 내에서의 실행을 위해 명령어들을 프로세싱할 수 있다. 다른 구현들에서, 다수의 프로세서 및/또는 다수의 버스는 다수의 메모리 및 메모리 유형과 함께 적절하게 사용될 수 있다. 또한, 다수의 컴퓨팅 디바이스(700)가 연결될 수 있으며, 각각의 디바이스는 (예를 들어, 서버 뱅크, 블레이드 서버 그룹, 또는 멀티 프로세서 시스템으로서) 필요한 동작들의 부분들을 제공한다.
메모리(예를 들어, 원격 서버(60)의 메모리 하드웨어(720))(720)는 컴퓨팅 디바이스(700) 내에 비-일시적으로 정보를 저장한다. 메모리(720)는 컴퓨터 판독가능 매체, 휘발성 메모리 유닛(들), 또는 비휘발성 메모리 유닛(들)일 수 있다. 비-일시적 메모리(720)는 컴퓨팅 디바이스(700)에 의한 사용을 위해 일시적 또는 영구적으로 프로그램들(예를 들어, 명령어들의 시퀀스들) 또는 데이터(예를 들어, 프로그램 상태 정보)를 저장하는 데 사용되는 물리적 디바이스들일 수 있다. 비휘발성 메모리의 예들은 플래시 메모리 및 판독 전용 메모리(ROM)/프로그래밍가능한 판독 전용 메모리(PROM)/소거가능하고 프로그래밍가능한 판독 전용 메모리(EPROM)/전기적으로 소거가능하고 프로그래밍가능한 판독 전용 메모리(EEPROM)(예를 들어, 전형적으로 부팅 프로그램들과 같은 펌웨어를 위해 사용됨)를 포함하지만 이에 제한되지 않는다. 휘발성 메모리의 예들은 랜덤 액세스 메모리(RAM), 동적 랜덤 액세스 메모리(DRAM), 정적 랜덤 액세스 메모리(SRAM), 상변화 메모리(PCM)는 물론, 디스크들 또는 테이프들을 포함하지만 이에 제한되지 않는다.
저장 디바이스(730)는 컴퓨팅 디바이스(700)를 위한 대용량 저장소를 제공할 수 있다. 일부 구현들에서, 저장 디바이스(730)는 컴퓨터 판독가능 매체이다. 여러 상이한 구현들에서, 저장 디바이스(730)는 플로피 디스크 디바이스, 하드 디스크 디바이스, 광학 디스크 디바이스, 또는 테이프 디바이스, 플래시 메모리 또는 다른 유사한 고체 상태 메모리 디바이스, 또는 저장 영역 네트워크 또는 다른 구성들 내의 디바이스들을 포함하는 디바이스 어레이일 수 있다. 추가 구현들에서, 컴퓨터 프로그램 제품은 정보 캐리어 내에 유형으로(tangibly) 구현된다. 컴퓨터 프로그램 제품들은 실행될 때 위에서 설명된 것들과 같은 하나 이상의 방법을 수행하는 명령어들을 포함한다. 정보 캐리어는 메모리(720), 저장 디바이스(730), 또는 프로세서 상의 메모리(710)와 같은 컴퓨터 또는 기계 판독가능 매체이다.
고속 컨트롤러(740)는 컴퓨팅 디바이스(700)에 대한 대역폭 집중 동작들을 관리하는 반면, 저속 컨트롤러(760)는 더 낮은 대역폭 집중 동작들을 관리한다. 이러한 듀티 할당은 예시일 뿐이다. 일부 구현들에서, 고속 컨트롤러(740)는 메모리(720), 디스플레이(780)(예를 들어, 그래픽 프로세서 또는 가속기를 통해), 및 다양한 확장 카드들(도시되지 않음)을 수용할 수 있는 고속 확장 포트들(750)에 결합된다. 일부 구현들에서, 저속 컨트롤러(760)는 저장 디바이스(730) 및 저속 확장 포트(790)에 결합된다. 다양한 통신 포트들(예를 들어, USB, 블루투스, 이더넷, 무선 이더넷)을 포함할 수 있는 저속 확장 포트(790)는 키보드, 포인팅 디바이스, 스캐너, 또는 예를 들어 네트워크 어댑터를 통하는 스위치 또는 라우터와 같은 네트워킹 디바이스와 같은 하나 이상의 입출력 디바이스에 결합될 수 있다.
컴퓨팅 디바이스(700)는 도면에 도시된 바와 같이 다수의 상이한 형태로 구현될 수 있다. 예를 들어, 그것은 표준 서버(700a)로서 또는 그러한 서버들(700a)의 그룹에서 여러 번, 랩탑 컴퓨터(700b)로서, 또는 랙 서버 시스템(700c)의 일부로서 구현될 수 있다.
본 명세서에 설명된 시스템들 및 기술들의 다양한 구현들은 디지털 전자 및/또는 광학 회로부, 집적 회로부, 특별히 설계된 ASIC들(주문형 집적 회로들), 컴퓨터 하드웨어, 펌웨어, 소프트웨어, 및/또는 이들의 조합들로 실현될 수 있다. 이러한 다양한 구현들은 저장 시스템, 적어도 하나의 입력 디바이스 및 적어도 하나의 출력 디바이스로부터 데이터 및 명령어들을 수신하고 그들에 데이터 및 명령어들을 전송하도록 결합되는, 특수 목적용 또는 범용일 수 있는 적어도 하나의 프로그래밍가능한 프로세서를 포함하는 프로그래밍가능한 시스템에서 실행가능 및/또는 해석가능한 하나 이상의 컴퓨터 프로그램에서의 구현을 포함할 수 있다.
소프트웨어 애플리케이션(즉, 소프트웨어 자원)은 컴퓨팅 디바이스로 하여금 태스크를 수행하게 하는 컴퓨터 소프트웨어를 지칭할 수 있다. 일부 예들에서, 소프트웨어 애플리케이션은 "애플리케이션", "앱" 또는 "프로그램"으로 지칭될 수 있다. 예시적인 애플리케이션들은 시스템 진단 애플리케이션들, 시스템 관리 애플리케이션들, 시스템 유지관리 애플리케이션들, 워드 프로세싱 애플리케이션들, 스프레드시트 애플리케이션들, 메시징 애플리케이션들, 미디어 스트리밍 애플리케이션들, 소셜 네트워킹 애플리케이션들, 및 게임 애플리케이션들을 포함하지만 이에 제한되지 않는다.
이러한 컴퓨터 프로그램들(프로그램들, 소프트웨어, 소프트웨어 애플리케이션들 또는 코드로도 알려짐)은 프로그래밍가능한 프로세서를 위한 기계 명령어들을 포함하고, 하이레벨의 절차적 및/또는 객체 지향 프로그래밍 언어 및/또는 어셈블리/기계 언어로 구현될 수 있다. 본 명세서에서 사용될 때, "기계 판독가능 매체" 및 "컴퓨터 판독가능 매체"라는 용어는 기계 명령어들을 기계 판독가능 신호로서 수신하는 기계 판독가능 매체를 포함하여, 프로그래밍가능한 프로세서에 기계 명령어들 및/또는 데이터를 제공하는 데 사용되는 임의의 컴퓨터 프로그램 제품, 비-일시적 컴퓨터 판독가능 매체, 장치 및/또는 디바이스(예를 들어, 자기 디스크들, 광 디스크들, 메모리, 프로그래밍가능한 로직 디바이스(PLD))를 지칭한다. "기계 판독가능 신호"라는 용어는 프로그래밍가능한 프로세서에 기계 명령어들 및/또는 데이터를 제공하는 데 사용되는 임의의 신호를 지칭한다.
본 명세서에 설명된 프로세스들 및 로직 흐름들은 입력 데이터에 대해 작용하고 출력을 생성함으로써 기능들을 수행하기 위해 하나 이상의 컴퓨터 프로그램을 실행하는, 데이터 프로세싱 하드웨어라고도 지칭되는 하나 이상의 프로그래밍가능한 프로세서에 의해 수행될 수 있다. 프로세스들 및 로직 흐름들은 또한 특수 목적 로직 회로부, 예를 들어 FPGA(필드 프로그래밍가능 게이트 어레이(field programmable gate array)) 또는 ASIC(주문형 집적 회로(application specific integrated circuit))에 의해 수행될 수 있다. 컴퓨터 프로그램의 실행에 적합한 프로세서들은 예를 들어 범용 및 특수 목적 마이크로프로세서 둘 다, 및 임의의 종류의 디지털 컴퓨터의 임의의 하나 이상의 프로세서를 포함한다. 일반적으로, 프로세서는 판독 전용 메모리 또는 랜덤 액세스 메모리 또는 둘 다로부터 명령어들 및 데이터를 수신할 것이다. 컴퓨터의 필수요소들은 명령어들을 수행하기 위한 프로세서, 및 명령어들 및 데이터를 저장하기 위한 하나 이상의 메모리 디바이스이다. 일반적으로, 컴퓨터는 또한 데이터를 저장하기 위한 하나 이상의 대용량 저장 디바이스, 예를 들어 자기, 광자기 디스크 또는 광 디스크를 포함하거나, 그들로부터 데이터를 수신하는 것, 또는 그들에게 데이터를 전송하는 것, 또는 둘 다를 위해 그들에 동작가능하게 결합될 것이다. 그러나, 컴퓨터가 그러한 디바이스들을 반드시 가질 필요는 없다. 컴퓨터 프로그램 명령어들 및 데이터를 저장하기에 적합한 컴퓨터 판독가능 매체는 예시로서, 반도체 메모리 디바이스들, 예를 들어 EPROM, EEPROM, 및 플래시 메모리 디바이스들; 자기 디스크들, 예를 들어 내부 하드 디스크들 또는 이동식 디스크들; 광자기 디스크들; 및 CD ROM 및 DVD-ROM 디스크들을 포함하여, 모든 형태의 비휘발성 메모리, 매체 및 메모리 디바이스를 포함한다. 프로세서 및 메모리는 특수 목적 로직 회로부에 의해 보완되거나 그에 통합될 수 있다.
사용자와의 상호작용을 제공하기 위해, 본 개시내용의 하나 이상의 양태는 사용자에게 정보를 디스플레이하기 위한 디스플레이 디바이스, 예를 들어 CRT(음극선관), LCD(액정 디스플레이) 모니터 또는 터치 스크린, 및 임의적으로, 사용자가 그에 의해 컴퓨터에 입력을 제공할 수 있는 키보드 및 포인팅 디바이스, 예를 들어 마우스 또는 트랙볼을 갖는 컴퓨터 상에서 구현될 수 있다. 다른 종류의 디바이스들도 사용자와의 상호작용을 제공하기 위해 사용될 수 있고; 예를 들어, 사용자에게 제공되는 피드백은 임의의 형태의 감각 피드백, 예를 들어 시각 피드백, 청각 피드백, 또는 촉각 피드백일 수 있으며; 사용자로부터의 입력은 음향, 음성 또는 촉각 입력을 포함하는 임의의 형태로 수신될 수 있다. 추가로, 컴퓨터는 사용자에 의해 사용되는 디바이스에 문서들을 송신하고 그로부터 문서들을 수신함으로써, 예를 들어 사용자의 클라이언트 디바이스 상의 웹 브라우저로부터 수신된 요청들에 응답하여 웹 브라우저에 웹 페이지들을 송신함으로써, 사용자와 상호작용할 수 있다.
많은 구현이 설명되었다. 그럼에도 불구하고, 본 개시내용의 사상 및 범위를 벗어나지 않고서 다양한 수정들이 이루어질 수 있음이 이해될 것이다. 따라서, 다른 구현들은 이하의 청구항들의 범위 내에 있다.
Claims (20)
- 데이터 프로세싱 하드웨어(710) 상에서 실행될 때 상기 데이터 프로세싱 하드웨어(710)로 하여금 동작들을 수행하게 하는, 컴퓨터에 의해 구현되는 방법(computer-implemented method)(600)으로서, 상기 동작들은:
복수의 하위단어 유닛(119)으로 분할될 입력 단어(302)를 수신하는 동작; 및
하위단어 분할 루틴(subword segmentation routine)(300)을 실행하여,
하위단어 유닛들(119)의 훈련된 어휘 세트(350)에 액세스하는 것, 및
상기 입력 단어(302)의 끝에 도달할 때까지, 상기 훈련된 어휘 세트(350) 내에 존재하는 상기 입력 단어(302)로부터의 가장 긴 하위단어 유닛을 그리디 탐색(greedily finding)함으로써 상기 입력 단어(302)로부터 상기 복수의 하위단어 유닛(119)을 선택하는 것
에 의해, 상기 입력 단어(302)를 상기 복수의 하위단어 유닛(119)으로 분할하는 동작
을 포함하는, 방법(600). - 제1항에 있어서, 상기 복수의 하위단어 유닛(119)을 선택하는 것은, 상기 입력 단어(302)의 복수의 상이한 위치 중의 각각의 대응하는 위치에 대해:
상기 훈련된 어휘 세트(350) 내에 존재하는 상기 대응하는 위치에서의 상기 입력 단어(302)로부터 모든 가능한 후보 하위단어 유닛들(119)을 식별하는 것; 및
1-p 확률을 가장 긴 하나의 상기 가능한 후보 하위단어 유닛들(119)에 할당하고, 나머지 p 확률을 상기 대응하는 위치에서의 상기 입력 단어(302)로부터의 상기 가능한 후보 하위단어 유닛들(119) 전부에 균등하게 나눔으로써 상기 가능한 후보 하위단어 유닛들(119) 전부로부터 무작위로 샘플링하는 것
을 포함하는, 방법(600). - 제1항 또는 제2항에 있어서, 상기 동작들은 상기 하위단어 분할 루틴(300)을 실행하기 전에, 미리 지정된 확률을 사용하여, 독립적으로 상기 입력 단어(302)로부터 문자(character)를 무작위로 삭제함으로써 상기 입력 단어(302)에 대한 철자 오류(misspelling)를 생성하는 동작을 더 포함하는, 방법(600).
- 제1항 내지 제3항 중 어느 한 항에 있어서, 상기 동작들은 상기 하위단어 분할 루틴(300)을 실행하기 전에:
인접한 문자 쌍들의 순서를 교환(swapping)할 확률을 미리 지정하는 것, 및
상기 입력 단어(302) 내의 각각의 인접한 문자 쌍에 대해, 미리 지정된 확률에 기초하여 상기 입력 단어(302) 내의 상기 인접한 문자 쌍으로부터의 문자들의 순서를 교환하는 것
에 의해, 상기 입력 단어(302)에 대한 철자 오류를 생성하는 동작
을 더 포함하는, 방법(600). - 제4항에 있어서, 상기 입력 단어(302) 내의 임의의 주어진 문자의 순서는 최대 1회의 교환으로 제한되는, 방법(600).
- 제1항 내지 제5항 중 어느 한 항에 있어서, 상기 동작들은:
상기 입력 단어(302)의 발화(utterance)(106)를 특성화(characterizing)하는 훈련 오디오 데이터(110T)를 포함하는 훈련 예(training example)를 수신하는 동작;
음성 인식 모델(200)에 의한 출력을 위해, 상기 입력 단어(302)의 발화(106)에 대한 음성 인식 결과(201)를 생성하기 위해 상기 훈련 오디오 데이터(110T)를 프로세싱하는 동작 - 상기 음성 인식 결과(201)는 가설화된 하위단어 유닛들(hypothesized sub-word units)의 시퀀스를 포함하고, 상기 가설화된 하위단어 유닛들(119)의 시퀀스 내의 각각의 가설화된 하위단어 유닛은 대응하는 출력 스텝에서 상기 음성 인식 모델(200)로부터 출력됨 -;
상기 하위단어 분할 루틴(300)에 의해 상기 입력 단어(302)로부터 선택된 상기 복수의 하위단어 유닛(119)과 상기 가설화된 하위단어 유닛들의 시퀀스에 기초하여 감독된 손실 항(supervised loss term)(390)을 결정하는 동작; 및
상기 감독된 손실 항(390)에 기초하여 상기 음성 인식 모델(200)의 파라미터들을 업데이트하는 동작
을 더 포함하는, 방법(600). - 제6항에 있어서, 상기 음성 인식 모델(200)은 순환 신경망-트랜스듀서(Recurrent Neural Network-Transducer)(RNN-T) 모델 아키텍처를 포함하고, 상기 RNN-T 모델 아키텍처는 오디오 인코더(210), 예측 네트워크(220) 및 연합 네트워크(joint network)(230)를 포함하는, 방법(600).
- 제7항에 있어서, 상기 오디오 인코더(210)는 복수의 장단기 메모리(long-short term memory)(LSTM) 레이어를 포함하는, 방법(600).
- 제7항에 있어서, 상기 오디오 인코더(210)는 복수의 트랜스포머 레이어(transformer layer) 또는 컨포머 레이어(conformer layer)를 포함하는, 방법(600).
- 제6항에 있어서, 상기 음성 인식 모델(200)은 오디오 인코더(211), 주의집중 메커니즘(attention mechanism)(221) 및 디코더(231)를 포함하는 청취, 주의집중, 철자(Listen, Attend, Spell)(LAS) 모델 아키텍처를 포함하는, 방법(600).
- 시스템(100)으로서,
데이터 프로세싱 하드웨어(710); 및
상기 데이터 프로세싱 하드웨어(710)와 통신하고, 상기 데이터 프로세싱 하드웨어(710) 상에서 실행될 때 상기 데이터 프로세싱 하드웨어(710)로 하여금 동작들을 수행하게 하는 명령어들을 저장하는 메모리 하드웨어(720)
를 포함하고, 상기 동작들은:
복수의 하위단어 유닛(119)으로 분할될 입력 단어(302)를 수신하는 동작; 및
하위단어 분할 루틴(300)을 실행하여,
하위단어 유닛들(119)의 훈련된 어휘 세트(350)에 액세스하는 것, 및
상기 입력 단어(302)의 끝에 도달할 때까지, 상기 훈련된 어휘 세트(350) 내에 존재하는 상기 입력 단어(302)로부터의 가장 긴 하위단어 유닛을 그리디 탐색함으로써 상기 입력 단어(302)로부터 상기 복수의 하위단어 유닛(119)을 선택하는 것
에 의해, 상기 입력 단어(302)를 상기 복수의 하위단어 유닛(119)으로 분할하는 동작
을 포함하는, 시스템(100). - 제11항에 있어서, 상기 복수의 하위단어 유닛(119)을 선택하는 것은, 상기 입력 단어(302)의 복수의 상이한 위치 중의 각각의 대응하는 위치에 대해:
상기 훈련된 어휘 세트(350) 내에 존재하는 상기 대응하는 위치에서의 상기 입력 단어(302)로부터 모든 가능한 후보 하위단어 유닛들(119)을 식별하는 것; 및
1-p 확률을 가장 긴 하나의 상기 가능한 후보 하위단어 유닛들(119)에 할당하고, 나머지 p 확률을 상기 대응하는 위치에서의 상기 입력 단어(302)로부터의 상기 가능한 후보 하위단어 유닛들(119) 전부에 균등하게 나눔으로써 상기 가능한 후보 하위단어 유닛들(119) 전부로부터 무작위로 샘플링하는 것
을 포함하는, 시스템(100). - 제11항 또는 제12항에 있어서, 상기 동작들은 상기 하위단어 분할 루틴(300)을 실행하기 전에, 미리 지정된 확률을 사용하여, 독립적으로 상기 입력 단어(302)로부터 문자를 무작위로 삭제함으로써 상기 입력 단어(302)에 대한 철자 오류를 생성하는 동작을 더 포함하는, 시스템(100).
- 제11항 내지 제13항 중 어느 한 항에 있어서, 상기 동작들은 상기 하위단어 분할 루틴(300)을 실행하기 전에:
인접한 문자 쌍들의 순서를 교환할 확률을 미리 지정하는 것, 및
상기 입력 단어(302) 내의 각각의 인접한 문자 쌍에 대해, 미리 지정된 확률에 기초하여 상기 입력 단어(302) 내의 상기 인접한 문자 쌍으로부터의 문자들의 순서를 교환하는 것
에 의해, 상기 입력 단어(302)에 대한 철자 오류를 생성하는 동작
을 더 포함하는, 시스템(100). - 제14항에 있어서, 상기 입력 단어(302) 내의 임의의 주어진 문자의 순서는 최대 1회의 교환으로 제한되는, 시스템(100).
- 제11항 내지 제15항 중 어느 한 항에 있어서, 상기 동작들은:
상기 입력 단어(302)의 발화(106)를 특성화하는 훈련 오디오 데이터(110T)를 포함하는 훈련 예를 수신하는 동작;
음성 인식 모델(200)에 의한 출력을 위해, 상기 입력 단어(302)의 발화(106)에 대한 음성 인식 결과(201)를 생성하기 위해 상기 훈련 오디오 데이터(110T)를 프로세싱하는 동작 - 상기 음성 인식 결과(201)는 가설화된 하위단어 유닛들의 시퀀스를 포함하고, 상기 가설화된 하위단어 유닛들(119)의 시퀀스 내의 각각의 가설화된 하위단어 유닛은 대응하는 출력 스텝에서 상기 음성 인식 모델(200)로부터 출력됨 -;
상기 하위단어 분할 루틴(300)에 의해 상기 입력 단어(302)로부터 선택된 상기 복수의 하위단어 유닛(119)과 상기 가설화된 하위단어 유닛들의 시퀀스에 기초하여 감독된 손실 항(390)을 결정하는 동작; 및
상기 감독된 손실 항(390)에 기초하여 상기 음성 인식 모델(200)의 파라미터들을 업데이트하는 동작
을 더 포함하는, 시스템(100). - 제16항에 있어서, 상기 음성 인식 모델(200)은 순환 신경망-트랜스듀서(RNN-T) 모델 아키텍처를 포함하고, 상기 RNN-T 모델 아키텍처는 오디오 인코더(210), 예측 네트워크(220) 및 연합 네트워크(230)를 포함하는, 시스템(100).
- 제17항에 있어서, 상기 오디오 인코더(210)는 복수의 장단기 메모리(LSTM) 레이어를 포함하는, 시스템(100).
- 제17항에 있어서, 상기 오디오 인코더(210)는 복수의 트랜스포머 레이어 또는 컨포머 레이어를 포함하는, 시스템(100).
- 제16항에 있어서, 상기 음성 인식 모델(200)은 오디오 인코더(211), 주의집중 메커니즘(221) 및 디코더(231)를 포함하는 청취, 주의집중, 철자(LAS) 모델 아키텍처를 포함하는, 시스템(100).
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202163166958P | 2021-03-26 | 2021-03-26 | |
US63/166,958 | 2021-03-26 | ||
PCT/US2022/021621 WO2022204334A1 (en) | 2021-03-26 | 2022-03-24 | Regularizing word segmentation |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20230156795A true KR20230156795A (ko) | 2023-11-14 |
Family
ID=81345955
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020237036313A KR20230156795A (ko) | 2021-03-26 | 2022-03-24 | 단어 분할 규칙화 |
Country Status (6)
Country | Link |
---|---|
US (1) | US12087279B2 (ko) |
EP (1) | EP4305544A1 (ko) |
JP (1) | JP2024512607A (ko) |
KR (1) | KR20230156795A (ko) |
CN (1) | CN117355840A (ko) |
WO (1) | WO2022204334A1 (ko) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230419036A1 (en) * | 2022-06-22 | 2023-12-28 | Amazon Technologies, Inc. | Random token segmentation for training next token prediction models |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11526680B2 (en) | 2019-02-14 | 2022-12-13 | Google Llc | Pre-trained projection networks for transferable natural language representations |
GB201916307D0 (en) * | 2019-11-08 | 2019-12-25 | Polyal Ltd | A dialogue system, a method of obtaining a response from a dialogue system, and a method of training a dialogue system |
EP3966811A1 (en) * | 2019-12-04 | 2022-03-16 | Google LLC | Two-pass end to end speech recognition |
-
2022
- 2022-03-23 US US17/656,225 patent/US12087279B2/en active Active
- 2022-03-24 JP JP2023558846A patent/JP2024512607A/ja active Pending
- 2022-03-24 EP EP22717968.6A patent/EP4305544A1/en active Pending
- 2022-03-24 WO PCT/US2022/021621 patent/WO2022204334A1/en active Application Filing
- 2022-03-24 KR KR1020237036313A patent/KR20230156795A/ko unknown
- 2022-03-24 CN CN202280025027.9A patent/CN117355840A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
EP4305544A1 (en) | 2024-01-17 |
WO2022204334A1 (en) | 2022-09-29 |
CN117355840A (zh) | 2024-01-05 |
JP2024512607A (ja) | 2024-03-19 |
US12087279B2 (en) | 2024-09-10 |
US20220310061A1 (en) | 2022-09-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102375115B1 (ko) | 엔드-투-엔드 모델들에서 교차-언어 음성 인식을 위한 음소-기반 컨텍스트화 | |
KR20230003056A (ko) | 비음성 텍스트 및 스피치 합성을 사용한 스피치 인식 | |
KR20210146368A (ko) | 숫자 시퀀스에 대한 종단 간 자동 음성 인식 | |
JP7351018B2 (ja) | エンド・ツー・エンド音声認識における固有名詞認識 | |
JP2023545988A (ja) | トランスフォーマトランスデューサ:ストリーミング音声認識と非ストリーミング音声認識を統合する1つのモデル | |
JP7554925B2 (ja) | 簡略化されたストリーミングおよび非ストリーミングasr用のカスケードエンコーダ | |
JP2024511176A (ja) | エンドツーエンド自動音声認識コンフィデンスおよび削除推定のためのマルチタスク学習 | |
JP7544989B2 (ja) | ルックアップテーブルリカレント言語モデル | |
WO2021154544A1 (en) | Language-agnostic multilingual modeling using effective script normalization | |
JP2024510817A (ja) | 効率的なストリーミング非リカレントオンデバイスエンドツーエンドモデル | |
WO2023055410A1 (en) | Contrastive siamese network for semi-supervised speech recognition | |
KR20240051176A (ko) | 스피치 합성 기반 모델 적응을 통한 스피치 인식 개선하기 | |
CN117378004A (zh) | 具有序列的对比损失的有监督和无监督的训练 | |
KR20240065125A (ko) | 희귀 단어 스피치 인식을 위한 대규모 언어 모델 데이터 선택 | |
US12087279B2 (en) | Regularizing word segmentation | |
US20230343332A1 (en) | Joint Segmenting and Automatic Speech Recognition | |
KR102637025B1 (ko) | 자동 음성 인식을 위한 다언어 리스코어링 모델들 | |
JP2024527533A (ja) | 一貫性損失および対照的損失によるasr事前トレーニングにおけるテキストおよび音声の使用の促進 | |
US20240013777A1 (en) | Unsupervised Data Selection via Discrete Speech Representation for Automatic Speech Recognition | |
JP2024525220A (ja) | 自己教師あり音声事前トレーニングにおけるテキストの挿入 | |
JP2024538019A (ja) | 多言語自動音声認識のための教師無しおよび教師有り共同トレーニング(just) | |
JP2024536388A (ja) | 非自己回帰デコーディングによるストリーミングrnnトランスデューサの検討 |