KR102413616B1 - 온-디바이스 음성 인식 모델 트레이닝을 위한 텍스트 세그먼트의 온-디바이스 음성 합성 - Google Patents
온-디바이스 음성 인식 모델 트레이닝을 위한 텍스트 세그먼트의 온-디바이스 음성 합성 Download PDFInfo
- Publication number
- KR102413616B1 KR102413616B1 KR1020217024199A KR20217024199A KR102413616B1 KR 102413616 B1 KR102413616 B1 KR 102413616B1 KR 1020217024199 A KR1020217024199 A KR 1020217024199A KR 20217024199 A KR20217024199 A KR 20217024199A KR 102413616 B1 KR102413616 B1 KR 102413616B1
- Authority
- KR
- South Korea
- Prior art keywords
- client device
- text segment
- speech
- speech recognition
- gradient
- Prior art date
Links
- 230000015572 biosynthetic process Effects 0.000 title claims abstract description 56
- 238000003786 synthesis reaction Methods 0.000 title claims abstract description 56
- 238000012549 training Methods 0.000 title description 21
- 238000000034 method Methods 0.000 claims abstract description 122
- 238000013518 transcription Methods 0.000 claims description 55
- 230000035897 transcription Effects 0.000 claims description 55
- 238000012545 processing Methods 0.000 claims description 42
- 230000004044 response Effects 0.000 claims description 30
- 230000009471 action Effects 0.000 claims description 29
- 230000015654 memory Effects 0.000 claims description 11
- 238000005259 measurement Methods 0.000 claims 1
- 230000008569 process Effects 0.000 abstract description 19
- 230000003993 interaction Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 230000000007 visual effect Effects 0.000 description 6
- 238000013507 mapping Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 3
- 230000001419 dependent effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 235000013550 pizza Nutrition 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 241000699670 Mus sp. Species 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012015 optical character recognition Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 238000010079 rubber tapping Methods 0.000 description 1
- 235000013580 sausages Nutrition 0.000 description 1
- 230000026676 system process Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Images
Classifications
-
- 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
- G10L13/00—Speech synthesis; Text to speech systems
- G10L13/02—Methods for producing synthetic speech; Speech synthesisers
- G10L13/04—Details of speech synthesis systems, e.g. synthesiser structure or memory management
- G10L13/047—Architecture of speech synthesisers
-
- 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/28—Constructional details of speech recognition systems
- G10L15/30—Distributed recognition, e.g. in client-server systems, for mobile phones or network applications
-
- 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
- G10L13/00—Speech synthesis; Text to speech systems
- G10L13/02—Methods for producing synthetic speech; Speech synthesisers
-
- 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
- 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
- G10L2015/0635—Training updating or merging of old and new templates; Mean values; Weighting
Landscapes
- Engineering & Computer Science (AREA)
- Computational Linguistics (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- Acoustics & Sound (AREA)
- Multimedia (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Machine Translation (AREA)
- Telephonic Communication Services (AREA)
Abstract
클라이언트 디바이스의 프로세서(들)는 클라이언트 디바이스에 로컬로 저장된 텍스트 세그먼트를 식별하고; 식별된 텍스트 세그먼트의 합성 음성을 포함하는 합성 음성 오디오 데이터를 생성하기 위해 클라이언트 디바이스에 로컬로 저장된 음성 합성 모델을 사용하여 텍스트 세그먼트를 처리하고; 예측 출력을 생성하기 위해 클라이언트 디바이스에 로컬로 저장된 온-디바이스 음성 인식 모델을 사용하여 합성 음성을 처리하고; 그리고 예측 출력을 텍스트 세그먼트에 대응하는 실측 출력과 비교하는 것에 기초하여 구배를 생성할 수 있다. 일부 구현에서, 생성된 구배는 클라이언트 디바이스의 프로세서(들)에 의해, 온-디바이스 음성 인식 모델의 가중치를 업데이트하는데 사용된다. 일부 구현에서, 생성된 구배는 전역 음성 인식 모델의 전역 가중치의 원격 업데이트에 사용하기 위해 추가로 또는 대안적으로 원격 시스템으로 전송된다.
Description
음성 기반 사용자 인터페이스는 컴퓨터 및 기타 전자 디바이스의 제어에 점점 더 많이 사용되고 있다. 음성 기반 사용자 인터페이스는 단순하고 직접적인 명령만 이해할 수 있는 초기 기초 인터페이스에서 자연어 요청에 응답하고 컨텍스트를 이해하며 사용자와의 대화(dialogs) 또는 대화(conversations)를 관리할 수 있는 보다 정교한 인터페이스로 계속 발전해 왔다. 많은 음성 기반 사용자 인터페이스는 (예를 들어, 음성-텍스트 변환 모델 사용하여) 음성 발언에 대한 음성 인식을 수행하여, 대응하는 텍스트를 생성하고, 텍스트의 시맨틱 분석을 수행하여 음성 발언의 의미를 결정하고, 결정된 의미에 기초하여 하나 이상의 액션을 수행한다.
음성 인식 성능은 지속적으로 향상되고 있지만, 부정확한 음성 인식이 많은 상황에서 여전히 발생할 수 있다. 비-제한적인 예로서, 부정확한 음성 인식은 새로운 용어 및/또는 음성 인식 모델이 트레이닝되는 트레이닝 코퍼스(말뭉치)에서 상대적으로 자주 사용되지 않는(또는 존재하지 않는) 용어에 대해 발생할 수 있다. 새로운 용어 및/또는 자주 사용되지 않는 용어를 효과적으로 인식하기 위해, 초기 가설(또는 초기 가설들)에 추가된 추가 음성 인식 가설들을 생성하고 그 추가 음성 인식 가설들을 음성 인식 후보로 고려하는 기술이 제안되었다. 그러나, 이러한 기술에는 추가적인 후 처리가 필요하며, 초기 가설/가설들이 너무 근거가 없는 경우 및/또는 추가 가설들에 대한 어휘에 특정 용어가 포함되지 않은 경우와 같이 많은 상황에서 많은 용어를 효과적으로 인식하지 못할 수 있다.
더욱이, 부정확한 음성 인식은 음성 인식이 온-디바이스에서(즉, 클라이언트 디바이스상에서) 수행될 때 악화될 수 있다. 이는 온-디바이스 음성 인식 모델이 클라우드 기반 모델보다 덜 강력하고, 온-디바이스 메모리 및/또는 프로세서 리소스가 클라우드 기반 리소스보다 더 제한적이며 및/또는 추가 가설 생성 어휘집이 디바이스에서 더 제한적이기 때문일 수 있다.
본 명세서에 개시된 일부 구현은 (본 명세서에 "온-디바이스 음성 인식"으로 지칭되는) 온-디바이스 음성 인식 모델을 이용하여 클라이언트 디바이스에서 로컬로 수행되는 음성 인식의 성능을 개선하는 것에 관한 것이다. 이러한 구현에서, 클라이언트 디바이스의 프로세서(들)는 클라이언트 디바이스(예를 들어, 클라이언트 디바이스의 RAM 및/또는 ROM)에 로컬로 저장된 텍스트 세그먼트를 식별하고; 식별된 텍스트 세그먼트의 합성(된) 음성을 포함하는 합성 음성 오디오 데이터를 생성하기 위해 클라이언트 디바이스에 로컬로 저장된 음성 합성 모델을 사용하여 텍스트 세그먼트를 처리하고; 예측(된) 출력을 생성하기 위해 클라이언트 디바이스에 로컬로 저장된 온-디바이스 음성 인식 모델을 사용하여 합성 음성을 처리하고; 예측된 출력을 텍스트 세그먼트에 해당하는 실측 출력과 비교하는 것에 기초하여 구배를 생성한다. 예를 들어, 온-디바이스 음성 인식 모델은 예측된 텍스트 세그먼트의 예측 출력을 생성하는데 사용되는 종단간 음성 인식 모델일 수 있으며, 구배를 생성하는 것은 예측된 텍스트 세그먼트를 텍스트 세그먼트와 비교하는 것을 기반으로 할 수 있다. 또한, 예를 들어, 온-디바이스 음성 인식 모델은 예측된 음소 시퀀스의 예측 출력을 생성하는데 대신 사용될 수 있다. 구배를 생성하는 것은 예측된 음소의 시퀀스를 텍스트 세그먼트에 해당하는 음소의 실측 시퀀스와 비교하는 것을 기반으로 할 수 있다.
일부 구현에서, 생성된 구배는 클라이언트 디바이스의 하나 이상의 프로세서(들)에 의해, 생성된 구배에 기초하여 온-디바이스 음성 인식 모델의 하나 이상의 가중치를 업데이트하는데 사용된다. 예를 들어, 역전파 및/또는 다른 기술(들)이 구배에 기초하여 가중치를 업데이트하는데 사용될 수 있다. 이것은 온-디바이스 음성 인식 모델을 사용하는 클라이언트 장치에서, 텍스트 세그먼트를 포함하는 음성 발언에 대한 음성 인식 성능을 향상시킬 수 있다. 더욱이, 이것은 특정 텍스트 세그먼트에 대한 임의의 실제 인간 발언을 요구하지 않고 특정 텍스트 세그먼트에 기초하여 온-디바이스 음성 인식 모델이 트레이닝될 수 있도록 한다. 따라서, 텍스트 세그먼트가 클라이언트 디바이스에서 이전에 검출된 임의의 음성 발언에 잠재적으로 포함되지 않았음에도 불구하고 특정 텍스트 세그먼트가 온-디바이스 음성 인식 모델을 사용하여 올바르게 인식될 수 있다. 또한, 많은 구현이 클라이언트 디바이스에 로컬로 저장된 대량의 텍스트 세그먼트에 대해 이 프로세스를 반복하므로 텍스트 세그먼트 중 임의의 것을 포함하는 음성 발언에 대한 온디바이스 음성 인식 성능을 개선한다. 이것은 온-디바이스 음성 인식 모델을 디바이스에 (일시적으로 또는 비-일시적으로) 저장되고 클라이언트 디바이스로 지향된 음성 발언에 포함될 가능성이 있는 실제 텍스트 세그먼트에 효과적으로 맞춤화한다.
일부 구현에서, 생성된 구배(들)에 기초하여 업데이트되는 온-디바이스 음성 인식 모델은 클라이언트 디바이스에서 검출된 음성 발언의 음성 인식을 수행할 때 클라이언트 디바이스에 의해 현재 사용되고 있는 온-디바이스 음성 인식 모델에 추가될 수 있다. 이러한 구현에서, 업데이트된 온-디바이스 음성 인식 모델은 하나 이상의 조건이 충족되는 것에 응답하여, 현재 사용되고 있는 온-디바이스 음성 인식 모델을 효과적으로 대체(그에 의해 현재 사용되고 있는 온-디바이스 음성 인식 모델이 됨)하기 위해 배치될 수 있다. 예를 들어, 조건(들)은 업데이트된 온-디바이스 음성 인식 모델의 온-디바이스 검증; 업데이트된 온-디바이스 음성 인식 모델이 현재 사용되고 있는 온-디바이스 음성 인식 모델보다 (예를 들어, 정밀도 및/또는 리콜과 관련하여) 더 잘 수행된다는 온-디바이스 결정; 및/또는 업데이트되는 온-디바이스 음성 인식 모델의 트레이닝 기간 및/또는 적어도 임계량의 발생을 포함할 수 있다. 업데이트된 온-디바이스 음성 인식 모델이 현재 사용되고 있는 온-디바이스 음성 인식 모델보다 성능이 더 우수하다고 결정하는 것은 예를 들어, 본 명세서에 설명된 기술에 따라 생성되지만 트레이닝에 사용되지 않는(즉, 대신 테스트를 위해 보류된) 트레이닝 인스턴스(들)에 기반한 성능 비교에 기초할 수 있다. 업데이트된 온-디바이스 음성 인식 모델을 효과적으로 대체하기 위해 현재 사용되는 온-디바이스 음성 인식 모델을 배치하는 것은 현재 사용되는 모델의 가중치를 업데이트된 모델의 가중치로 업데이트하거나 현재 사용되는 모델을 업데이트된 모델로 교체하는 것을 포함할 수 있다.
일부 구현에서, 생성된 구배는 추가적으로 또는 대안적으로 클라이언트 디바이스에 의해 네트워크를 통해 원격 시스템으로 전송된다. 이러한 구현에서, 원격 시스템은 생성된 구배, 및 추가 클라이언트 디바이스로부터의 추가 그라디언트를 사용하여 글로벌 음성 인식 모델의 글로벌 가중치를 업데이트한다. 추가 클라이언트 디바이스로부터의 추가 구배는 대응하는 로컬로 저장된 텍스트 세그먼트 및 그의 로컬로 생성된 합성 음성에 기초하여 대응하는 추가 클라이언트 디바이스에서 로컬로 유사하게 생성될 수 있다. 다양한 구현에서, 클라이언트 디바이스는 텍스트 세그먼트, 합성된 음성 오디오 데이터 및 예측된 텍스트 세그먼트 중 어느 것도 전송하지 않고 상기 생성된 구배를 전송한다. 원격 시스템은 텍스트 세그먼트, 합성된 음성 오디오 데이터 및 예측된 텍스트 세그먼트에 대한 참조 또는 사용 없이 글로벌 모델을 업데이트할 때 상기 생성된 구배를 사용할 수 있다. 구배만 전송하는 것은 텍스트 세그먼트, 합성된 음성 오디오 데이터 및 예측된 텍스트 세그먼트의 더 큰 데이터 크기 조합을 전송하는 것보다 적은 네트워크 리소스를 사용한다. 또한, 구배의 전송은 텍스트 세그먼트 및 합성된 음성 오디오 데이터가 구배로부터 도출될 수 없기 때문에 온-디바이스 텍스트 세그먼트의 프라이버시 및 보안을 유지한다. 일부 구현에서, 텍스트 세그먼트 및/또는 합성된 음성 오디오 데이터가 구배로부터 도출되지 않음을 추가로 보장하기 위해 (예를 들어, 가우스 노이즈에 추가하여) 하나 이상의 차등 프라이버시 기술이 이용될 수 있다.
원격 시스템이 음성 인식 모델의 전역 가중치를 업데이트하는 구현에서, 이후 원격 시스템은 업데이트된 전역 가중치를 클라이언트 디바이스들에 제공하여 클라이언트 디바이스들이 자신의 온-디바이스 인식 모델의 가중치를 업데이트된 전역 가중치로 대체하도록 할 수 있다. 일부 구현에서, 원격 시스템은 업데이트된 글로벌 음성 인식 모델을 클라이언트 디바이스들에 추가로 또는 대안적으로 제공하여 클라이언트 디바이스들이 자신의 온-디바이스 음성 인식 모델을 업데이트된 전역 음성 인식 모델로 교체하게 할 수 있다. 따라서 업데이트된 전역 가중치 또는 업데이트된 전역 음성 인식 모델의 사용을 통해 온-디바이스 음성 인식 성능이 향상된다.
텍스트 세그먼트(들) 및 대응하는 로컬로 생성된 합성 음성에 기초하여 구배 생성시 이용하기 위한 로컬로 저장된 텍스트 세그먼트(들)를 식별하기 위해 클라이언트 디바이스에 의해 다양한 기술이 이용될 수 있다.
예를 들어, 텍스트 세그먼트(들)는 연락처 목록, 미디어 재생 목록, 링크된 스마트 디바이스의 별칭 목록(예컨대, 스마트 조명, 스마트 플러그, 및/또는 클라이언트 디바이스의 계정과 링크된 기타 스마트 디바이스의 별칭) 및/또는 클라이언트 디바이스에서 수신된 타이핑 입력에 포함된 아이템에 기초하여 식별될 수 있다. 예를 들어, 텍스트 세그먼트는 그것이 연락처 목록의 새로 추가된 연락처에 대한 별칭인지 또는 새로 추가된 스마트 디바이스에 대한 별칭인지를 결정하는 것에 기초하여 식별될 수 있다. 이러한 방식 및 다른 방식으로, 온-디바이스 음성 인식은 새로 추가된 별칭에 대해 빠르게 개선되어 대응하는 연락처 및/또는 대응하는 스마트 디바이스로 향하는 음성 기반 상호 작용의 정확한 인식을 가능하게 한다. 또한, 예를 들어, 하나 이상의 텍스트 세그먼트는 사용자가 사용자에게 중요한 텍스트 세그먼트의 목록을 제공할 수 있게 하기 위해 제공된 인터페이스에 대한 타이핑된 사용자 인터페이스 입력과 같은 해당 텍스트 세그먼트(들)를 포함하는 타이핑된 사용자 인터페이스 입력에 기초하여 식별될 수 있다.
다른 예로서, 텍스트 세그먼트(들)는 텍스트 세그먼트(들)가 어휘를 벗어났다는(즉, 온-디바이스 음성 인식 모델이 이전에 트레이닝되지 않은 텍스트 세그먼트(들)라는) 결정에 기초하여 추가로 또는 대안적으로 식별될 수 있다. 이전에 교육을 받은 적이 없음). 텍스트 세그먼트(들)가 어휘를 벗어났다고 결정하는 것은 그들이 로컬로 저장된 어휘에 포함되지 않는다는 결정 및/또는 다른 고려 사항에 기반할 수 있다.
또 다른 예로서, 텍스트 세그먼트는 클라이언트 디바이스의 하나 이상의 마이크로폰을 통해 검출된 이전 인간 발언이 텍스트 세그먼트를 포함한다는 결정 및 온-디바이스 음성 인식 모델을 사용하여 수행된 이전 인간 발화의 사전 음성 인식이 텍스트 세그먼트를 정확하게 인식하지 못했다는 결정에 기초하여 식별될 수 있다. 이전 음성 인식이 텍스트 세그먼트를 정확하게 인식하지 못했다는 결정은 이전 음성 인식에 기초하는 부정확한 예측을 취소하는 수신된 사용자 입력에 기초할 수 있다. 또한, 이전 인간 발언이 텍스트 세그먼트를 포함한다고 결정하는 것은 수신된 사용자 입력에 기초할 수 있고 및/또는 이전 음성 인식에 기초하여 부정확한 예측을 취소하는 사용자 입력 후에 수신된 추가 수신된 사용자 입력에 기초할 수 있다. 예를 들어, 부정확한 예측은 음성 발언의 렌더링된 전사일 수 있고, 부정확한 예측을 취소하는 수신된 사용자 입력은 렌더링된 전사의 전체 또는 일부의 수정일 수 있다. 예를 들어, "Francois"의 부정확한 전사가 렌더링될 수 있고, 부정확한 예측을 취소하는 수신된 사용자 입력은 그 이름 끝에 "e"를 추가하는("Francoise"로 수정하는) 사용자 인터페이스 입력일 수 있으며, 음성 발언이 "Francoise"를 포함한다고 결정하는 것은 이름 끝에 "e"를 추가한 사용자 인터페이스 입력에 기초할 수 있다. 또한, 예를 들어, "Francis"의 부정확한 전사가 렌더링될 수 있고, 부정확한 예측을 취소하는 수신된 사용자 입력은 부정확한 전사를 삭제하는 사용자 인터페이스 입력일 수 있으며, 음성 발언이 "Francoise"를 포함한다고 결정하는 것은 "Francis"의 삭제된 전사 대신 "Francoise"라는 타이핑된 추가 사용자 인터페이스 입력에 기초할 수 있다. 다른 예로서, 사용자에게 정확한 전사를 선택하라는 프롬프트와 함께 다수의 후보 전사(예를 들어, "(1) Francois, (2) Francoise, 또는 (3) Francis"를 의미했나요?)가 생성되고 렌더링될 수 있으며, 정확한 후보 전사를 선택하면(예컨대, "(3) Francis"를 탭하거나 "3"이라고 말하기) 부정확한 전사(예컨대, "Francois" 및 "Francis")를 취소하고 정확한 전사(예컨대, "Francoise")를 나타낼 수 있다. 다른 예로서, 부정확한 예측은 수행될 액션일 수 있고, 부정확한 예측을 취소하는 수신된 사용자 입력은 수행 전 또는 수행 중 액션의 취소일 수 있고, 추가로 수신된 사용자 입력은 텍스트 세그먼트의 입력을 포함할 수 있다 .
제한된 배터리, 프로세서, 메모리 및/또는 클라이언트 디바이스의 기타 리소스를 보존하기 위해, 다양한 구현들에서, 클라이언트 디바이스는 클라이언트 디바이스의 현재 상태가 하나 이상의 조건들을 만족한다는 결정에 응답하여 본 명세서에 개시된 하나 이상의 단계를 수행한다. 예를 들어, 합성된 음성 오디오 데이터를 생성하는 단계, 및/또는 예측된 텍스트 세그먼트를 생성하기 위해 합성된 음성 오디오 데이터를 처리하는 단계, 및/또는 구배를 생성하는 단계, 및/또는 하나 이상의 가중치를 업데이트하는 단계는 클라이언트 디바이스의 현재 상태가 하나 이상의 조건을 충족한다는 결정에 응답하여 수행될 수 있다. 하나 이상의 조건이 충족되는지 여부는 클라이언트 디바이스의 하나 이상의 센서로부터의 센서 데이터에 기초하여 결정될 수 있다. 하나 이상의 조건은, 예를 들어, 클라이언트 디바이스가 충전 중이고, 클라이언트 디바이스가 적어도 임계 충전 상태를 갖고 있고, (하나 이상의 온-디바이스 온도 센서에 기초한) 클라이언트 디바이스의 온도가 임계값 미만이고 및/또는 클라이언트 디바이스가 사용자에 의해 휴대되고 있지 않음을 포함할 수 있다.
일부 구현에서, 식별된 텍스트 세그먼트의 합성 음성 뿐만 아니라 추가 텍스트 세그먼트(들)를 포함하는 합성된 음성 오디오 데이터가 생성될 수 있다. 예를 들어, 추가 텍스트 세그먼트(들)는 텍스트 세그먼트 앞 및/또는 뒤에 첨부될 수 있고, 첨부된 추가 텍스트 세그먼트(들)를 갖는 텍스트 세그먼트는 합성 음성을 생성하기 위해 음성 합성 모델을 사용하여 처리된다. 이러한 구현들 중 일부에서, 텍스트 세그먼트에 대한 추가 텍스트 세그먼트를 결정하는 단계는 텍스트 세그먼트가 식별되는 특정 코퍼스에 대한 추가 텍스트 세그먼트의 정의된 관계에 기초한다. 예를 들어, "호출", "메시지" 및 "연락처"라는 추가 텍스트 세그먼트는 연락처 목록 코퍼스에 대해 정의된 관계를 가질 수 있다. 다른 예로서, "~켜기", "~상태는 무엇입니까" 및 "조정"이라는 추가 텍스트 세그먼트는 일반적으로 스마트 디바이스 코퍼스 또는 특정 스마트 디바이스 코퍼스에 대해 정의된 관계를 가질 수 있다. 추가 텍스트 세그먼트를 포함하면 다양한 트레이닝 인스턴스가 생성되어 음성 인식 모델의 성능이 향상될 수 있다. 게다가, 추가 텍스트 세그먼트가 정의된 관계 및/또는 텍스트 세그먼트에 대한 다른 컨텍스트 관련성에 기초하여 결정되는 경우, 이러한 추가 텍스트 세그먼트를 기반으로 하는 트레이닝 인스턴스는 텍스트 세그먼트가 추가 텍스트 세그먼트 또는 유사한 추가 텍스트 세그먼트와 함께 발언에 포함될 때 음성 인식 성능을 향상시킬 수 있다.
일부 구현에서, 합성된 음성 오디오 데이터는 클라이언트 디바이스의 사용자의 음성 특성에 적응되는 방식으로 생성된다. 이는 클라이언트 디바이스에서 처리되는 음성 발언에서 더 많이 마주칠 가능성이 있는 해당 음성 특성에 맞춰진 향상된 온-디바이스 음성 인식 성능을 야기할 수 있다. 이러한 구현들 중 일부에서, 합성된 음성 오디오 데이터는 로컬로 저장된 특정 음성 합성 모델을 사용하여 생성되는 것에 기초하여 사용자의 음성 특성에 적응된다. 로컬로 저장된 특정 음성 합성 모델은 주어진 언어에 대한 복수의 후보 음성 합성 모델 중 하나일 수 있고, 클라이언트 디바이스의 지리적 영역에 적어도 부분적으로 기초하여 클라이언트 디바이스에 로컬로 저장될 수 있다.
일부 추가적 또는 대안적 구현에서, 음성 합성 모델은 클라이언트 디바이스 사용자의 이전 발언에 기초하여 실제로 트레이닝되어, 합성 음성이 사용자의 음성 특성(들)(예를 들어, 사용자의 액센트)을 보다 정확하게 반영하게 한다. 예를 들어, 합성된 음성 오디오 데이터를 생성하기 전에, 클라이언트 디바이스의 하나 이상의 마이크로폰을 통해 검출되고 이전의 인간 발언을 캡처하는 오디오 데이터가 식별될 수 있다. 또한, 이전 인간 발언에 대한 실측(ground truth) 전사가 식별될 수 있다. 또한, 실측 전사는 이전 합성된 음성 오디오 데이터, 이전 합성된 음성 오디오 데이터를 이전 오디오 데이터와 비교하는 것에 기초하여 생성된 구배, 및 구배에 기초한 음성 합성 모델의 하나 이상의 가중치를 생성하기 위해 음성 합성 모델을 사용하여 처리될 수 있다. 이전 인간 발언에 대한 실측 전사를 식별하는 단계는 음성 인식 모델을 사용하여 전사를 생성하는 단계, 및 전사 생성시 신뢰도 측정치 및/또는 전사에 응답하여 수행된 사용자 액션에 기초하여 전사를 실측 전사로서 식별하는 단계를 포함할 수 있다. 사용자 액션은 예를 들어 전사를 확인 (confirm)하는 사용자 인터페이스 입력을 포함할 수 있다. 예를 들어, 전사는 전송될 전자 메시지에 통합될 수 있으며, 사용자 액션에는 (생성된 전사 수정 없이) 그 메시지를 전송하기 위한 사용자 입력이 포함될 수 있다.
일부 추가적 또는 대안적인 구현에서, 음성 합성 모델(또는 다중 음성 합성 모델)은 주어진 텍스트 세그먼트에 대한 합성 음성의 다수의 이질적인(disparate) 인스턴스를 생성하는데 사용될 수 있다. 예를 들어, 독일어 이름인 텍스트 세그먼트에 대해, 음성 합성 모델(들)은 독일어 이름의 영어 발음(독일어를 구사하지 못하는 영어 원어민 화자가 사용하는 발음)인 합성 음성의 제1 인스턴스를 생성하고, 독일어 이름의 독일어 발음(즉, 독일어 원어민 화자가 사용하는 발음)인 합성 음성의 제2 인스턴스를 생성한다. 합성 음성의 제1 인스턴스와 실측 음성 발언이 온-디바이스 음성 인식 모델을 업데이트하는데 사용될 수 있다. 합성 음성의 제2 인스턴스와 실측 음성 발언이 또한 온-디바이스 음성 인식 모델을 업데이트하는데 사용될 수 있다. 합성 음성의 두 인스턴스에 기초하여 온-디바이스 음성 인식 모델을 업데이트하면 두 발음 모두에 대해 효과적인 음성 인식을 가능하게 할 수 있다. 이는 예를 들어 사용자의 음성 특성을 알 수 없는 경우에 유용할 수 있으며, 다수의 상이한 발음으로 말할 때 독일어 이름을 인식하도록 온-디바이스 음성 인식 모델을 적응시킬 수 있다.
본 명세서에 기술된 바와 같이, 본 명세서에 개시된 구현들에 따른 온-디바이스 음성 인식 모델의 업데이트 후에, 온-디바이스 음성 인식 모델은 대응하는 예측 텍스트 세그먼트를 생성하기 위해 대응하는 디바이스의 사용자(들)로부터의 음성 발언에 대응하는 오디오 데이터를 처리하는데 이용될 수 있다. 이러한 구현의 일부 버전에서, 예측 텍스트 세그먼트의 인스턴스를 실측 텍스트 세그먼트의 인스턴스와 비교하는 것에 기초하여 구배가 온-디바이스에서 생성될 수 있다. 실측 텍스트 세그먼트의 인스턴스는 예측 텍스트의 인스턴스에 근거하여 디바이스에서 렌더링된 컨텐츠에 응답하는 사용자의 하나 이상의 액션(들) 및/또는 무액션(들)에 기초하여 및/또는 예측 텍스트 세그먼트의 인스턴스에 근거하여 디바이스에서 수행된 액션(들)에 기초하여 온-디바이스에서 결정될 수 있다. 예를 들어, 사용자가 예측 텍스트 세그먼트를 확인하면, 예측된 텍스트 세그먼트가 실측 텍스트 세그먼트로 간주될 수 있다. 예를 들어, 음성 발언이 "call Francis"이고, 예측 텍스트 세그먼트가 "call Francis"인 경우, 사용자는 "Francis"라는 연락처에 대한 전화번호의 다이얼링을 취소하지 않음으로써 예측 텍스트 세그먼트를 확인할 수 있다. 또한, 예를 들어, 음성 발언이 "call Francis"인 경우, 예측 텍스트 세그먼트는 "call Francis"이고, "do you want to call Francis하는 프롬프트에는 선택 가능한 "yes" 옵션이 제공될 수 있으며, 사용자는 "yes" 옵션을 선택하여 인식된 텍스트를 확인할 수 있다. 다른 예로서, 사용자가 (예를 들어, 문자(들)를 추가 및/또는 삭제함으로써 및/또는 삭제 후 대체 텍스트로 대체함으로써) 예측 텍스트 세그먼트를 수정하는 경우, 수정된 텍스트는 실측 텍스트 세그먼트로 간주될 수 있다. 예를 들어, "Hi Francoise, please call me sson"이라는 음성 발언이 문자 메시지에 포함되도록 제공되고 부정확하게 인식된 "Hi Francis, please call me soon"이라는 텍스트가 문자 메시지에 포함된 경우, 사용자는 "Francis"를 선택하고 이를 "Francoise"로 대체할 수 있다. 사용자가 "Francis"를 선택하고 이를 "Francoise"로 대체하는 것에 응답하여, "Hi Francoise, please call me soon"이라는 수정된 텍스트가 실측 텍스트 세그먼트로서 이용될 수 있다. 이러한 기술을 기반으로 생성된 구배(들)는 클라이언트 디바이스에 의해 네트워크를 통해 원격 시스템으로 전송될 수 있다. 이러한 구현에서, 원격 시스템은 생성된 구배(들), 및 유사한 방식으로(예를 들어, 온-디바이스 음성 인식 모델의 로컬 업데이트 이후 예측 텍스트 세그먼트를 결정된 실측 텍스트 세그먼트와 비교하는 것에 기초하여) 추가 클라이언트 디바이스들로부터 생성된 추가 구배를 이용하여 전역 음성 인식 모델의 전역 가중치를 업데이트한다. 그러한 구배에 기초한 전역 가중치의 업데이트는 (앞서 설명된 바와 같이) 로컬로 저장된 텍스트 세그먼트 및 로컬로 생성된 합성 음성에 근거하는 구배에 기초한 전역 가중치의 업데이트와 함께 또는 이와 독립적으로 발생할 수 있음에 유의한다. 또한 이러한 구배를 전송하는 것은 음성 세그먼트 또는 실측 텍스트 세그먼트에 대응하는 오디오 데이터 중 어느 것도 전송하지 않고 발생할 수 있음에 유의한다. 원격 시스템은 음성 세그먼트 또는 실측 텍스트 세그먼트에 대응하는 오디오 데이터를 참조하거나 사용하지 않고 전역 모델을 업데이트할 때 상기 생성된 구배를 이용할 수 있다. 구배만 전송하면 네트워크 리소스가 덜 사용되며 온-디바이스 텍스트 세그먼트의 프라이버시와 보안이 유지된다. 일부 구현에서, 프라이버시 및 보안의 보존을 추가로 보장하기 위해 하나 이상의 차등 프라이버시 기술이 이용될 수 있다.
일부 구현에서, 본 명세서에 개시된 구현들에 따른 온-디바이스 음성 인식 모델의 업데이트 후에, 온-디바이스 음성 인식 모델이 음성 발언에 해당하는 오디오 데이터를 처리하여 대응하는 예측 텍스트 세그먼트를 생성할 때 텍스트 세그먼트(들)에 기초한 온-디바이스 음성 인식의 바이어싱(편향)이 또한 이용될 수 있다. 예를 들어, 온-디바이스 음성 인식은 연락처 별칭(들), 도로 이름(들), 미디어 이름(들) 및/또는 기타 텍스트 세그먼트(들)와 같이 디바이스에 저장된 하나 이상의 텍스트 세그먼트로 바이어스될 수 있다. 온-디바이스 음성 인식이 바이어스되는 텍스트 세그먼트(들)는 음성 인식의 다수의 반복에서 동일할 수 있고 및/또는 반복 간에 다를 수 있다. 예를 들어, 제1 텍스트 세그먼트에 대한 바이어싱은 제1 디바이스 컨텍스트(들)(실행 중인 애플리케이션을 기반으로 하거나 포그라운드에서, 하루 중 시간을 기반ㄴ으로 하고, 요일을 기반으로 하는 컨텍스트)에서 발생할 수 있고, 이질적인 제2 텍스트 세그먼트에 대한 바이어싱은 제2 디바이스 컨텍스트(들)에서 발생할 수 있다. 온-디바이스 음성 인식을 텍스트 세그먼트(들)로 바이어싱하는 것은, 예를 들어 디코딩 동안 텍스트 세그먼트(들)의 확률을 부스팅함으로써 텍스트 세그먼트(들)를 음성 인식에 주입하는 것을 포함할 수 있다. 본 명세서에 개시된 구현들에 따른 온-디바이스 음성 인식 모델의 업데이트 후에 텍스트 세그먼트(들)에 기초하여 온-디바이스 음성 인식을 바이어싱하는 것은 이러한 업데이트 없이 바이어싱하는 것보다 더 효과적일 수 있다. 이는 예를 들어 온-디바이스 음성 인식 모델이 텍스트 세그먼트를 기반으로 하는 합성 음성에 기초하여 업데이트된 결과로 텍스트 세그먼트(들)로부터의 사운드 시퀀스에 대해 트레이닝되었기 때문일 수 있다. .
본 명세서에 개시된 클라이언트 디바이스의 일부 구현은 온-디바이스 음성 인식을 생성하고 및/또는 생성된 온-디바이스 음성 인식을 이용하는 자동화 어시스턴트 애플리케이션을 포함한다. 자동화 어시스턴트 애플리케이션은 클라이언트 디바이스의 운영 체제 "위에" 설치될 수 있고 및/또는 그 자체가 클라이언트 디바이스의 운영 체제의 일부(또는 전체)를 형성할 수 있다. 자동화 어시스턴트 애플리케이션은 온-디바이스 음성 인식뿐만 아니라 선택적으로 온-디바이스 자연어 이해 및/또는 온-디바이스 이행을 포함하고 및/또는 이에 액세스할 수 있다. 온-디바이스 NLU(자연어 이해)는 NLU데이터를 생성하기 위해 온-디바이스 음성 인식을 사용하여 생성된 인식된 텍스트 및 선택적으로 컨텍스트 데이터를 처리하는 온-디바이스 NLU 모듈을 사용하여 수행될 수 있다. NLU 데이터는 음성 발언에 해당하는 의도(들) 및 선택적으로 의도(들)에 대한 파라미터(들)(예컨대, 슬롯값)를 포함할 수 있다. 온-디바이스 이행은 (온-디바이스 NLU로부터의) NLU 데이터 및 선택적으로 다른 로컬 데이터를 사용하여 음성 발언의 의도(들)(및 선택적으로 의도에 대한 파라미터(들))를 해결하기 위해 취해야할 액션(들)을 결정하는 온-디바이스 이행 모듈을 사용하여 수행할 수 있다. 여기에는 음성 발언에 대한 로컬 및/또는 원격 응답(예컨대, 답변) 결정, 음성 발언에 기반하여 수행할 로컬로 설치된 애플리케이션과의 상호작용(들), 음성 발언에 기초하여 사물 인터넷(IoT) 디바이스(들)로 (직접 또는 대응하는 원격 시스템(들)을 통해) 전송될 명령(command), 및/또는 음성 발언에 기초하여 수행될 다른 해경 액션(들)이 포함될 수 있다. 그런 다음 온-디바이스 이행은 음성 발언을 해결하기 위해 상기 결정된 액(들)의 로컬 및/또는 원격 수행/실행을 시작할 수 있다.
다양한 구현에서, 원격 음성 처리, 원격 NLU, 및/또는 원격 이행은 적어도 선택적으로 이용될 수 있다. 예를 들어, 인식된 텍스트는 원격 NLU 및/또는 원격 이행을 위해 원격 자동화 어시스턴트 컴포넌트(들)에 적어도 선택적으로 전송될 수 있다. 예를 들어, 인식된 텍스트는 온-디바이스 수행과 병렬로 원격 수행을 위해 또는 온-디바이스 NLU 및/또는 온-디바이스 이행의 실패에 응답하여 선택적으로 전송될 수 있다. 그러나, 온-디바이스 음성 처리, 온-디바이스 NLU, 온-디바이스 이행 및/또는 온-디바이스 실행은 적어도 음성 발언을 해결할 때 제공하는 지연 시간 감소때문에(음성 발언을 해결하는데 클라이언트-서버 왕복(들)(roundtrip(s)이 필요하지 않기 때문에) 우선 순위화될 수 있다. 또한, 온-디바이스 기능은 네트워크 연결이 없거나 제한적인 상황에서 사용할 수 있는 유일한 기능일 수 있다.
위의 설명은 본 개시의 일부 구현의 개요로서 제공된다. 이러한 구현 및 다른 구현에 대한 추가 설명은 아래에서 더 자세히 설명된다.
본 명세서에 개시된 일부 구현은 중앙 처리 장치(CPU)(들), 그래픽 처리 장치(GPU)(들), 디지털 신호 프로세서(GPU)(들) 및/또는 텐서 처리 장치(TPU)(들)와 같은 하나 이상의 프로세서를 포함하는 하나 이상의 컴퓨팅 디바이스를 포함한다. 프로세서 중 하나 이상은 관련 메모리에 저장된 명령들을 실행하도록 동작 가능하고, 명령들은 본 명세서에 설명된 방법 중 임의의 방법을 수행하도록 구성된다. 컴퓨팅 디바이스는 예를 들어 마이크로폰(들), 적어도 하나의 디스플레이, 및/또는 다른 센서 컴포넌트(들)를 갖는 클라이언트 어시스턴트 디바이스를 포함할 수 있다. 일부 구현은 또한 본 명세서에 설명된 방법 중 임의의 것을 수행하기 위해 하나 이상의 프로세서에 의해 실행 가능한 컴퓨터 명령들을 저장하는 하나 이상의 비-일시적 컴퓨터 판독 가능 저장 매체를 포함한다.
도 1a는 다양한 구현에 따른 본 개시의 다양한 양태를 보여주는 예시적인 프로세스 흐름을 도시한다.
도 1b는 도 1a의 다양한 컴포넌트를 포함하고 본 명세서에 개시된 구현들이 구현될 수 있는 예시적인 환경의 블록도이다.
도 2는 클라이언트 디바이스에서 로컬로 구배를 생성하고, 구배를 전송하고 및/또는 생성된 구배를 이용하여 온-디바이스 음성 인식 모델의 가중치(들)를 업데이트하는 예시적인 방법을 나타내는 흐름도를 도시한다.
도 3은 원격 클라이언트 디바이스로부터 수신된 구배에 기초하여 전역 음성 인식 모델의 가중치(들)를 업데이트하고, 업데이트된 가중치 또는 업데이트된 전역 음성 인식 모델을 원격 클라이언트 디바이스로 전송하는 예시적인 방법을 나타내는 흐름도를 도시한다.
도 4는 클라이언트 디바이스에서 로컬로 구배를 생성하고, 생성된 구배를 사용하여 온-디바이스 음성 합성 모델의 가중치(들)를 업데이트하는 예시적인 방법을 나타내는 흐름도를 도시한다.
도 5는 컴퓨팅 디바이스의 예시적인 아키텍처를 도시한다.
도 1b는 도 1a의 다양한 컴포넌트를 포함하고 본 명세서에 개시된 구현들이 구현될 수 있는 예시적인 환경의 블록도이다.
도 2는 클라이언트 디바이스에서 로컬로 구배를 생성하고, 구배를 전송하고 및/또는 생성된 구배를 이용하여 온-디바이스 음성 인식 모델의 가중치(들)를 업데이트하는 예시적인 방법을 나타내는 흐름도를 도시한다.
도 3은 원격 클라이언트 디바이스로부터 수신된 구배에 기초하여 전역 음성 인식 모델의 가중치(들)를 업데이트하고, 업데이트된 가중치 또는 업데이트된 전역 음성 인식 모델을 원격 클라이언트 디바이스로 전송하는 예시적인 방법을 나타내는 흐름도를 도시한다.
도 4는 클라이언트 디바이스에서 로컬로 구배를 생성하고, 생성된 구배를 사용하여 온-디바이스 음성 합성 모델의 가중치(들)를 업데이트하는 예시적인 방법을 나타내는 흐름도를 도시한다.
도 5는 컴퓨팅 디바이스의 예시적인 아키텍처를 도시한다.
도 1a는 본 개시의 다양한 양태를 보여주는 예시적인 프로세스 흐름을 도시한다. 클라이언트 디바이스(110)는 도 1a에 도시되어 있으며, 클라이언트 디바이스(110)를 나타내는 도 1a의 박스 내에 포함되는 컴포넌트들을 포함한다. 클라이언트 디바이스(110)의 세그먼트 식별자(120)는 온-디바이스 저장소(111)에 액세스하여 텍스트 세그먼트(101)를 식별한다. 온-디바이스 저장소(110)는 예를 들어 ROM 및/또는 RAM 을 포함할 수 있다. 세그먼트 식별자(120)에 의해 식별된 텍스트 세그먼트(101)는 온-디바이스 저장소(111)에 일시적으로 또는 비-일시적으로 저장되는 텍스트 세그먼트이다. 예를 들어, 텍스트 세그먼트(101)는 연락처 목록에 저장된 연락처의 별칭; 연락처 목록에 주소로 저장된 도로명; 미디어 애플리케이션의 재생 목록에 포함된 노래 또는 기타 미디어 아이템의 이름; 스마트 디바이스의 별칭, 상기 별칭은 클라이언트 디바이스에 저장되고 스마트 디바이스는 사용자의 계정과 연관되며; 클라이언트 디바이스에서 가상 키보드를 통해 입력된 텍스트 세그먼트; 클라이언트 디바이스에서 페이스트 보드에 복사된 텍스트 세그먼트; 컴퓨팅 디바이스의 애플리케이션에 의해 렌더링된 텍스트 세그먼트(선택적으로 스크린 샷 및 이미지 인식을 사용하여 식별됨); 또는 기타 텍스트 세그먼트일 수 있다.
일부 구현에서, 세그먼트 식별자(120)는 그것이 클라이언트 디바이스(110)에 새로 포함되거나 새로 저장되는 것에 기초하여 텍스트 세그먼트(101)를 식별한다. 예를 들어, 세그먼트 식별자(120)는 그것이 새로 추가된 연락처에 포함되거나, 새로 추가된 스마트 디바이스에 대한 별칭이거나, 재생 목록에 새로 추가된 노래에 대한 별칭이 되는 것에 기초하여 텍스트 세그먼트(101)를 식별할 수 있다. 일부 구현에서, 세그먼트 식별자(120)는 텍스트 세그먼트(101)가 어휘 밖에 있다는 결정에 기초하여 텍스트 세그먼트(101)를 식별하는데, 이는 텍스트 세그먼트(101)가 로컬로 저장된 어휘집에 포함되지 않는다는 결정에 기초할 수 있다.
일부 구현에서, 세그먼트 식별자(120)는 클라이언트 디바이스(110)의 하나 이상의 마이크로폰을 통해 검출된 이전 인간 발언이 텍스트 세그먼트(101)를 포함한다는 결정 및 이전 인간 발언의 이전 음성 인식이 텍스트 세그먼트를 올바르게 인식하지 못했다는 결정에 기초하여 텍스트 세그먼트(101)를 식별할 수 있다. 이러한 구현에서, 세그먼트 식별자(120)는 클라이언트 디바이스(110)에서, 이전 음성 인식에 기초한 부정확한 예측을 취소하는 수신된 사용자 입력에 기초하여 이전 음성 인식이 텍스트 세그먼트를 정확하게 인식하지 못했다고 결정할 수 있다. 또한, 세그먼트 식별자(120)는 이전 음성 인식에 기초하여 부정확한 예측을 취소하는 사용자 입력 이후에 수신된 추가 수신된 사용자 입력에 기초하여 이전 인간 발언이 텍스트 세그먼트(101)를 포함한다고 결정할 수 있다.
세그먼트 식별자(120)는 적어도 텍스트 세그먼트(101)를 온-디바이스 음성 합성기(122)에 제공한다. 일부 구현에서, 세그먼트 식별자(120)는 식별된 텍스트 세그먼트뿐만 아니라 추가 텍스트 세그먼트(들)를 온-디바이스 음성 합성기(122)에 제공한다. 예를 들어, 세그먼트 식별자(120)는 텍스트 세그먼트 앞 및/또는 뒤에 추가 텍스트 세그먼트(들)를 첨부할 수 있고, 첨부된 추가 텍스트 세그먼트(들)와 함께 텍스트 세그먼트(101)를 온-디바이스 음성 합성기(122)에 제공할 수 있다. 이들 구현 중 일부에서, 세그먼트 식별자(120)는 텍스트 세그먼트(101)가 식별된 특정 코퍼스에 대한 추가 텍스트 세그먼트의 정의된 관계에 기초하여 상기 텍스트 세그먼트(101)에 대한 추가 텍스트 세그먼트를 결정한다. 예를 들어, 텍스트 세그먼트(101)가 미디어 코퍼스로부터 식별되면, "play" 및 "show me"라는 추가 텍스트 세그먼트는 미디어 코퍼스와 정의된 관계를 가질 수 있으며, 이러한 추가 텍스트 세그먼트 중 하나는 텍스트 세그먼트 앞에 첨부될 수 있다.
온-디바이스 음성 합성기(122)는 온-디바이스 음성 합성 모델(152)을 사용하여 텍스트 세그먼트(101)(및 임의의 첨부된 추가 텍스트 세그먼트(들))를 처리하여, 식별된 텍스트 세그먼트(101)의 합성된 음성을 포함하는 합성 음성 오디오 데이터(102)를 생성한다. 예를 들어, 온-디바이스 음성 합성기(122)는 텍스트 세그먼트(101)(및 임의의 첨부된 추가 텍스트 세그먼트(들))에 대응하도록 결정된 음소 시퀀스를 결정하고, 온-디바이스 음성 합성 모델(152)을 사용하여 음소 시퀀스를 처리하여 합성 음성 오디오 데이터(102)를 생성할 수 있다. 합성 음성 오디오 데이터(102)는 예를 들어 오디오 파형의 형태일 수 있다. 텍스트 세그먼트(101)에 대응하는 음소 시퀀스를 결정할 때, 온-디바이스 음성 합성기(122)는 선택적 토큰-음소 매핑(157)과 같이 클라이언트 디바이스(110)에 로컬로 저장된 토큰-음소 매핑에 액세스할 수 있다.
일부 구현에서, 온-디바이스 음성 합성 모델(152)은 클라이언트 디바이스(100) 및/또는 클라이언트 디바이스(110)의 사용자의 지리적 영역 및/또는 기타 속성에 기초하여, 클라이언트 디바이스(110)에서의 저장 및 사용을 위해 (예를 들어, 원격 시스템(160) 또는 다른 컴포넌트에 의해) 전송된다. 예를 들어, 온-디바이스 음성 합성 모델(152)은 주어진 언어에 대해 N개의 사용 가능한 음성 합성 모델 중 하나일 수 있지만, 특정 지리적 영역에 특정되는 음성 발언에 기초하여 트레이닝될 수 있고, 특정 지리적 영역에 주로 위치하는 클라이언트 디바이스에 기초하여 클라이언트 디바이스(110)로 제공될 수 있다.
일부 추가 또는 대안적인 구현에서, 온-디바이스 음성 합성 모델(152)은 선택적인 온-디바이스 음성 합성기 트레이닝 엔진(130)에 의해 트레이닝되어 클라이언트 디바이스(110)의 사용자(들)의 음성 특성(들)에 온-디바이스 음성 합성 모델(152)을 적응시킨다. 예를 들어, 합성 음성 오디오 데이터(102)를 생성하기 전에, 온-디바이스 음성 합성기 트레이닝 엔진(130)은 클라이언트 디바이스(110)의 하나 이상의 마이크로폰을 통해 검출되고 이전의 인간 발언을 캡처하는 오디오 데이터를 식별할 수 있다. 또한, 온-디바이스 음성 합성기 트레이닝 엔진(130)은 이전 인간 발언에 대한 실측 전사를 식별할 수 있다. 또한, 온-디바이스 음성 합성기 트레이닝 엔진(130)은 온-디바이스 음성 합성 모델(152)을 사용하여 실측 전사를 처리하여 이전 합성 음성 오디오 데이터를 생성할 수 있고, 이전 합성 음성 오디오 데이터를 이전 오디오 데이터와 비교하는 것에 기초하여 구배를 생성할 수 있다. 이어서 온-디바이스 음성 합성기 트레이닝 엔진(130)은 (예를 들어, 역 전파 및/또는 다른 트레이닝 기술(들)을 사용하여) 구배에 기초하여 온-디바이스 음성 합성 모델(152)의 가중치(들)를 업데이트할 수 있다.
일부 구현에서, 온-디바이스 음성 합성기 트레이닝 엔진(130)은 (예를 들어, 온-디바이스 음성 인식 모델(154)을 사용하여 대응 오디오 데이터를 처리함으로써) 전사를 생성하여 이전 인간 발언에 대한 실측 전사를 식별하고, 그 전사를 실측 전사로 식별한다. 전사를 "실측(ground thruth)"으로 식별하는 것은 선택적으로 전사에 응답하여 전사가 정확함을 나타내는, 임계치를 충족하는 전사의 신뢰도 측정치를 따르거나 및/또는 사용자 액션(들)(또는 비활동)에 기초할 수 있다. 일부 구현에서, 이전 인간 발언은 텍스트 독립적 또는 텍스트 의존적 식별을 위해 사용자에 의해 발화된 등록 문구일 수 있고, 등록 문구는 사용자에게 등록 중에 무멋을 말해야 할지를 알리기 위해 사용자에게 렌더링될 수 있다. 이러한 구현에서, 사용자에게 렌더링된 등록 문구는 실측 전사로서 사용될 수 있다.
온-디바이스 음성 합성기(122)는 합성 음성 오디오 데이터(102)를 온-디바이스 음성 인식기(124)에 제공한다. 온-디바이스 음성 인식기(124)는 온-디바이스 음성 인식 모델(154)을 사용하여 합성 음성 오디오 데이터(102)를 처리하여 예측된 텍스트 세그먼트(103A) 또는 예측된 음소 시퀀스(103B)를 생성한다.
예를 들어, 온-디바이스 음성 인식 모델(154)이 종단간 음성 인식 모델 인 경우, 온-디바이스 음성 인식기(124)는 그 모델을 사용하여 예측 텍스트 세그먼트(103A)를 직접 생성할 수 있다. 예를 들어, 온-디바이스 음성 인식 모델(154)은 문자 단위로(또는 다른 토큰 단위로) 예측 텍스트를 생성하는데 사용되는 종단간 모델일 수 있다. 문자 단위로 예측 텍스트를 생성하는데 사용되는 이러한 종단간 모델의 한 가지 비-제한적인 예는 RNN-T(Recurrent Neural Network Transducer) 모델이다. RNN-T 모델은 어텐션 메커니즘을 사용하지 않는 시퀀스-투-시퀀스 모델의 한 형태이다. 출력(예를 들어, 예측 텍스트 세그먼트)을 생성하기 위해 일반적으로 전체 입력 시퀀스(예를 들어, 오디오 데이터 파형 또는 MFCC(mel-frequency cepstral coefficients) 또는 기타 표현)를 처리해야 하는 대부분의 시퀀스-투-시퀀스 모델과 달리, RNN-T 모델은 입력 샘플을 지속적으로 처리하여 출력 심볼(예를 들어, 알파벳 문자)를 스트리밍하는데 사용될 수 있다.
또한, 예를 들어, 온-디바이스 음성 인식 모델(154)이 종단간 음성 인식 모델이 아닌 경우, 온-디바이스 음성 인식기(124)는 대신 예측된 음소(103B)(및/또는 다른 표현)를 생성할 수 있다. 예를 들어, 이러한 모델들에서, 예측된 음소(103B)(및/또는 다른 표현)는 음소 시퀀스를 따르는 예측 텍스트 세그먼트(들)를 결정하기 위해 온-디바이스 음성 인식기(124)에 의해 이용된다. 그렇게 함으로써, 온-디바이스 음성 인식기(124)는 디코딩 그래프, 어휘, 및/또는 다른 리소스(들)를 선택적으로 사용할 수 있다.
온-디바이스 음성 인식기(124)가 예측 텍스트 세그먼트(103A)를 생성할 때, 그것은 구배 엔진(126)으로 제공된다. 구배 엔진(126)은 구배(105)를 생성하기 위해 예측 텍스트 세그먼트(103A)를 텍스트 세그먼트(101)와 비교한다. 구배는 모델을 트레이닝하는데 사용되는 손실 함수로부터 도출될 수 있으므로 구배는 실측 출력을 예측 출력과 비교하여 얻은 손실 함수(또는 그의 파생물)의 값을 나타낸다. 예를 들어, 예측 텍스트 세그먼트(103A)와 텍스트 세그먼트(101)가 일치(매칭)할 때, 구배 엔진(126)은 제로 구배를 생성할 수 있다. 또한, 예를 들어, 예측 텍스트 세그먼트(103A)와 텍스트 세그먼트(101)가 일치하지 않을 때, 구배 엔진(126)은 불일치 정도에 선택적으로 의존하는 0이 아닌 구배를 생성할 수 있다. 불일치 정도는 텍스트 세그먼트의 문자 사이의 불일치 정도, 텍스트 세그먼트 사이의 음소 불일치 정도 및/또는 다른 결정론적 비교에 기초할 수 있다. 하나의 비-제한적인 특정 예로서, 예측 텍스트 세그먼트(103A)를 생성하는 각 반복에서, 온-디바이스 음성 인식기(124)는 복수의 문자 각각에 대해 대응 확률을 생성하고 가장 높은 확률의 문자를 "다음" 문자로 선택할 수 있다. 이러한 예에서, 구배 엔진(126)은 각 반복에서 예측된 확률을 각 반복에 대한 실측 확률과 비교하는 것에 기초하여 구배를 결정할 수 있다(즉, 각 반복에서 실측 문자는 텍스트에 있는 "다음" 문자이고 "1" 확률이 할당되며 나머지는 모두 "0" 확률이 할당됨).
온-디바이스 음성 인식기(124)가 예측 음소(103B)를 생성할 때, 이것은 구배 엔진(126)으로 제공된다. 구배 엔진(126)은 텍스트 세그먼트(101)에 대응하도록 결정된 음소(104)의 실측 시퀀스를 예측 음소(103B)와 비교한다. 일부 구현에서, 음소 엔진(127)은 토큰-음소 매핑(157)에 액세스하여 텍스트 세그먼트(101)에 대응하는 음소(104)의 실측 시퀀스를 결정할 수 있다. 예로서, 예측 음소(103B)와 음소(104)가 일치할 때, 구배 엔진(126)은 제로 구배를 생성할 수 있다. 다른 예로서, 예측 음소(103B)와 음소(104)가 일치하지 않을 때, 구배 엔진(126)은 불일치 정도에 선택적으로 의존하는 0이 아닌 구배를 생성할 수 있다. 불일치 정도는 불일치된 음소의 양, 오정렬된 음소의 양 및/또는 불일치 음소(들) 사이의 (음소 공간에서의) 거리 및/또는 기타 결정론적 비교를 기반으로 할 수 있다.
본 명세서에 기술된 바와 같이 추가 텍스트 세그먼트가 텍스트 세그먼트에 청부되는 구현에서, 예측 텍스트 세그먼트(103A)가 또한 첨부된 추가 텍스트 세그먼트의 예측을 포함할 것이라는 점에 유의한다. 첨부된 추가 세그먼트의 예측은 구배를 생성할 때 무시될 수 있거나(예를 들어, 첨부된 추가 세그먼트에 해당하는 용어(들)는 폐기됨), 대안적으로 첨부된 추가 세그먼트는 구배를 생성할 때 고려될 수 있다(예를 들어, 에측은 첨부된 추가 텍스트 세그먼트를 갖는 텍스트 세그먼트와 비교될 수 있음.)
구배 엔진(126)은 구배(105)를 온-디바이스 트레이닝 엔진(128)에 제공하고 및/또는 구배(105)를 원격 시스템(105)으로 전송한다. 온-디바이스 트레이닝 엔진(128)은 구배(105)를 수신할 때 구배(105)를 사용하여 온-디바이스 음성 인식 모델(154)을 업데이트한다. 예를 들어, 온-디바이스 트레이닝 엔진(128)은 역 전파 및/또는 다른 기술을 이용하여 온-디바이스 음성 인식 모델(154)을 업데이트할 수 있다. 일부 구현에서, 온-디바이스 트레이닝 엔진(128)은 추가 텍스트 세그먼트에 기초하여 클라이언트 디바이스(110)에서 로컬로 결정된 구배(105) 및 추가 구배에 기초하여 온-디바이스 음성 인식 모델(154)을 업데이트하기 위해 배치(batch) 기술을 이용할 수 있다.
원격 시스템(160)이 구배(105)를 수신할 때, 원격 시스템의 원격 트레이닝 엔진(162)은 구배(105) 및 추가 클라이언트 디바이스(170)로부터의 추가 구배(106)를 사용하여 전역 음성 인식 모델(154A)의 전역 가중치를 업데이트한다. 추가 클라이언트 디바이스(170)로부터의 추가 구배(106)는 구배(105)와 관련하여 전술한 것과 동일하거나 유사한 기술에 기초하여(그러나 이들 클라이언트 디바이스에 특정된 로컬로 식별된 텍스트 세그먼트(101)에 기초하여) 생성될 수 있다.
업데이트 배포 엔진(164)은 충족되는 하나 이상의 조건에 응답하여 클라이언트 디바이스(110) 및/또는 다른 클라이언트 디바이스(들)에, 107로 표시된 바와같이, 업데이트된 전역 가중치 및/또는 업데이트된 전역 음성 인식 모델 자체를 제공할 수 있다. 하나 이상의 조건은 예를 들어, 업데이트된 가중치 및/또는 업데이트된 음성 인식 모델이 마지막으로 제공된 이후의 임계 지속기간 및/또는 트레이닝 양을 포함할 수 있다. 하나 이상의 조건은 추가적으로 또는 대안적으로, 예를 들어 업데이트된 음성 인식 모델에 대한 측정된 개선 및/또는 업데이트된 가중치 및/또는 업데이트된 음성 인식 모델이 마지막으로 제공된 이후의 임계 지속기간의 경과를 포함할 수 있다. 업데이트된 가중치가 클라이언트 디바이스(110)로 제공되는 경우, 클라이언트 디바이스(110)는 온-디바이스 음성 인식 모델(154)의 가중치를 업데이트된 가중치로 대체할 수 있다. 업데이트된 전역 음성 인식 모델이 클라이언트 디바이스(110)로 제공되는 경우, 클라이언트 디바이스(110)는 온-디바이스 음성 인식 모델(154)을 업데이트된 전역 음성 인식 모델로 대체할 수 있다.
이제 도 1b로 돌아가면, 클라이언트 디바이스(110)는 도 1a의 온-디바이스 음성 인식기(124)가 자동화 어시스턴트 클라이언트(140)의 일부로서 포함되는(또는 그와 통신하는) 구현으로 도시된다. 온-디바이스 음성 인식 모델(154)은 또한 온-디바이스 음성 인식기(124)와 인터페이싱하는 것으로 도시되어 있다. 도 1a의 다른 컴포넌트는 간략화를 위해 도 1b에 도시되지 않았다. 도 1b는 온-디바이스 음성 인식기(124) 및 온-디바이스 음성 인식 모델(154)이 다양한 액션 수행시 자동화 어시스턴트 클라이언트(140)에 의해 이용되는 인식된 텍스트를 생성하는데 어떻게 사용될 수 있는지의 일 예를 도시한다.
도 1b의 클라이언트 디바이스(110)는 하나 이상의 마이크로폰(111), 하나 이상의 스피커(112), 하나 이상의 카메라(들) 및/또는 다른 비전 컴포넌트(113), 및 디스플레이(들)(114)(예를 들어, 터치 감지 디스플레이)로 도시된다. 클라이언트 디바이스(110)는 자동화 어시스턴트 클라이언트(140)를 적어도 선택적으로 실행한다. 자동화 어시스턴트 클라이언트(140)는 도 1b의 예에서, 온-디바이스 음성 인식 엔진(124), 온-디바이스 자연어 이해(NLU) 엔진(144) 및 온-디바이스 이행 엔진(145)을 포함한다. 자동화 어시스턴트 클라이언트(140)는 음성 캡처 엔진(141) 및 시각적 캡처 엔진(142)을 더 포함한다. 자동화 어시스턴트 클라이언트(140)는 음성 활동 검출기(VAD), 엔드 포인트 검출기, 핫 워드 검출기 및/또는 다른 엔진(들)과 같은 추가 및/또는 대체 엔진을 포함할 수 있다.
하나 이상의 클라우드 기반의 자동와 어시스턴트 컴포넌트(180)는 일반적으로 190으로 표시된 하나 이상의 로컬 및/또는 광역 네트워크(예를 들어, 인터넷)를 통해 클라이언트 디바이스(110)에 통신적으로 연결되는 하나 이상의 컴퓨팅 시스템(통칭하여 "클라우드" 컴퓨팅 시스템이라고 함)에서 선택적으로 구현될 수 있다. 클라우드 기반의 자동와 어시스턴트 컴포넌트(180)는 예를 들어 고성능 서버의 클러스터를 통해 구현될 수 있다.
다양한 구현에서, 자동화 어시스턴트 클라이언트(140)의 인스턴스는 하나 이상의 클라우드 기반 자동화 어시스턴트 컴포넌트(180)와의 상호 작용을 통해, 사용자의 관점에서, 사용자가 인간 대 컴퓨터 상호 작용(예를 들어, 음성 상호 작용, 제스처 기반 상호 작용 및/또는 터치 기반 상호 작용)에 참여할 수 있는 자동화 어시스턴트(195)의 논리적 인스턴스인 것처럼 보이는 것을 형성할 수 있다.
클라이언트 디바이스(110)는 예를 들어 데스크탑 컴퓨팅 디바이스, 랩탑 컴퓨팅 디바이스, 태블릿 컴퓨팅 디바이스, 휴대폰 컴퓨팅 디바이스, 사용자 차량의 컴퓨팅 디바이스(예를 들어, 차량 내 통신 시스템, 차량 내 엔터테인먼트 시스템, 차량 내 내비게이션 시스템), 독립형 대화형 스피커, 스마트 TV(또는 자동화 어시스턴트 기능이 있는 네트워크 동글이 장착된 표준 TV)와 같은 스마트 기기, 및/또는 컴퓨팅 디바이스를 포함하는 사용자의 웨어러블 장치(예를 들어, 컴퓨팅 디바이스가 있는 사용자의 시계, 컴퓨팅 디바이스가 있는 사용자의 안경, 가상 또는 증강 현실 컴퓨팅 디바이스)일 수 있다. 추가 및/또는 대체 클라이언트 디바이스가 제공될 수 있다.
비전 컴포넌트(들)(113)는 모노 그래픽 카메라, 스테레오 그래픽 카메라, 라이다(LIDAR) 컴포넌트(또는 다른 레이저 기반 컴포넌트(들)), 레이더 컴포넌트 등과 같은 다양한 형태를 가질 수 있다. 하나 이상의 비전 컴포넌트(113)는 클라이언트 디바이스(110)가 배치된 환경의 비전 프레임(예를 들어, 이미지 프레임, 레이저 기반 비전 프레임)을 캡처하기 위해 예를 들어 시각적 캡처 엔진(142)에 의해 사용될 수 있다. 일부 구현에서, 이러한 비전 프레임(들)은 사용자가 클라이언트 디바이스(110) 근처에 존재하는지 및/또는 클라이언트 디바이스에 대한 사용자의 거리(예를 들어, 사용자의 얼굴)를 결정하는데 사용될 수 있다. 이러한 결정(들)은 예를 들어 온-디바이스 음성 인식기(124)를 활성화할지 여부를 결정할 때 이용될 수 있다.
음성 캡처 엔진(141)은 마이크로폰(들)(111)을 통해 캡처된 사용자의 음성 및/또는 다른 오디오 데이터를 캡처하도록 구성될 수 있다. 본 명세서에 설명된 바와 같이, 이러한 오디오 데이터는 온-디바이스 음성 인식기(124)에 의해 (전처리된 후 선택적으로) 이용될 수 있다. 예를 들어, 온-디바이스 음성 인식기(124)는 온-디바이스 음성 인식 모델(154)을 이용하여 음성 발언을 캡처하는 오디오 데이터를 처리하여 음성 발언에 대응하는 인식된 텍스트를 생성할 수 있다. 온-디바이스 NLU 엔진(140)은 인식된 텍스트에 대한 온-디바이스 자연어 이해를 수행하여 NLU 데이터를 생성한다. NLU 엔진(144)은 NLU 데이터를 생성할 때 하나 이상의 온-디바이스 NLU 모델(단순화를 위해 도 1b에 미도시됨)을 선택적으로 이용할 수 있다. NLU 데이터는 예를 들어 음성 발언에 대응하는 의도(들)를 포함할 수 있고 선택적으로 ㅇ의(들)에 대한 파라미터(들)(예를 들어, 슬롯 값)를 포함할 수 있다. 또한, 온-디바이스 이행 엔진(145)은 NLU 데이터를 사용하여 이행 데이터를 생성한다. 온-디바이스 이행 엔진(145)은 이행 데이터를 생성할 때 하나 이상의 온-디바이스 이행 모델(단순화를 위해 도 1b에 미도시됨)을 선택적으로 이용할 수 있다. 이 이행 데이터는 음성 발언에 대한 로컬 및/또는 원격 응답(예를 들어, 답변), 음성 발언에 기초하여 로컬로 설치된 애플리케이션(들)과 수행할 상호 작용(들), 음성 발언에 기초하여 (직접 또는 해당 원격 시스템(들)을 통해) 사물 인터넷(IoT) 디바이스로 전송할 명령(들), 및/또는 음성 발언에 기초하여 수행할 다른 해결 액션(들)을 정의할 수 있다. 그런 다음 이행 데이터는 음성 발언을 해석하기 위한 결정된 액션(들)의 로컬 및/또는 원격 수행/실행을 위해 제공될 수 있다. 실행에는 예를 들어 로컬/및/또는 원격 응답 렌더링(예를 들어, 시각적 및/또는 청각적 렌더링(선택적으로 로컬 텍스트-음성 변환 모듈 사용)), 로컬로 설치된 애플리케이션과의 상호 작용, 명령(들)을 IoT 디바이스(들)로 전송, 및/또는 기타 액션이 포함될 수 있다.
디스플레이(들)(114)는 온-디바이스 음성 인식기(124)로부터 스트리밍 텍스트 전사를 렌더링하는데 이용될 수 있다. 디스플레이(들)(114)는 또한 자동화 어시스턴트 클라이언트(140)로부터의 응답의 시각적 부분(들)이 렌더링되는 사용자 인터페이스 출력 컴포넌트(들) 중 하나일 수 있다.
일부 구현에서, 클라우드 기반 자동화 어시스턴트 컴포넌트(들)(180)는 음성 인식을 수행하는 원격 ASR 엔진(182), 자연어 이해를 수행하는 원격 NLU 엔진(183), 및/또는 이행을 생성하는 원격 이행 엔진(184)을 포함할 수 있다. 로컬 또는 원격으로 결정된 이행 데이터에 기초하여 원격 실행을 수행하는 원격 실행 모듈도 선택적으로 포함될 수 있다. 추가 및/또는 대체 원격 엔진이 포함될 수 있다. 본 명세서에 설명된 바와 같이, 다양한 구현에서, 온-디바이스 음성 처리, 온-디바이스 음성 처리, 온-디바이스 NLU, 온-디바이스 이행 및/또는 온-디바이스 실행은 적어도 음성 발언을 해결할 때 제공하는 레이턴시 및/또는 네트워크 사용량 감소로 인해(음성 발언을 해결하는데 클라이언트-서버 왕복이 필요하지 않기 때문에) 우선 순위가 지정될 수 있다. 그러나, 하나 이상의 클라우드 기반의 자동화 어시스턴트 컴포넌트(들)(180)가 적어도 선택적으로 이용될 수 있다. 예를 들어, 그러한 컴포넌트(들)는 온-디바이스 컴포넌트(들) 및 로컬 컴포넌트(들)가 실패할 때 이용된 그러한 컴포넌트(들)의 출력과 병렬로 이용될 수 있다. 예를 들어, 온-디바이스 이행 엔진(145)은 (예를 들어, 클라이언트 디바이스(160)의 상대적으로 제한된 리소스로 인해) 특정 상황에서 실패할 수 있고, 원격 이행 엔진(184)은 클라우드의 더 강력한 자원을 이용하여 그러한 상황에서 이행 데이터를 생성할 수 있다. 원격 이행 엔진(184)은 온-디바이스 이행 엔진(145) 및 온-디바이스 이행이 실패할 때 이용된 그 결과와 병렬로 작동될 수 있거나, 온-디바이스 이행 엔진(145)의 실패를 결정하는 것에 응답하여 호출될 수 있다.
다양한 구현에서, NLU 엔진(온-디바이스(144) 및/또는 원격(183))은 인식된 텍스트의 하나 이상의 주석과 자연어 입력의 용어들 중 하나 이상(예컨대, 모두)을 포함하는 주석(된) 출력을 생성할 수 있다. 일부 구현에서 NLU 엔진은 자연어 입력에서 다양한 유형의 문법 정보를 식별하고 주석을 달도록 구성된다. 예를 들어, NLU 엔진은 개별 단어를 형태소로 분리하고 및/또는 형태소에 예를 들어 클래스로 주석으로 달 수 있는 형태소 모듈을 포함할 수 있다. NLU 엔진은 문법적 역할과 함께 용어에 주석을 달도록 구성된 음성 태거의 일부를 포함할 수도 있다. 또한, 예를 들어, 일부 구현에서 NLU 엔진은 자연어 입력에서 용어들 간의 구문 관계를 결정하도록 구성된 종속성 파서를 추가로 및/또는 대안적으로 포함할 수 있다.
일부 구현에서, NLU 엔진은 추가적으로 및/또는 대안적으로 사람에 대한 참조(예를 들어 문학 인물, 유명인, 공인 등을 포함), 조직, 위치(실제 및 가상) 등과 같은 하나 이상의 세그먼트에서 엔티티 참조에 주석을 달도록 구성된 엔티티 태거를 포함할 수 있다. 일부 구현에서, NLU 엔진은 추가로 및/또는 대안적으로 하나 이상의 컨텍스트 단서에 기초하여 동일 엔티티에 대한 참조를 그룹화하거나 "클러스터"하도록 구성된 상호 참조(coreference) 리졸버(미도시)를 포함할 수 있다. 일부 구현에서, NLU 엔진의 하나 이상의 컴포넌트는 NLU 엔진의 하나 이상의 다른 컴포넌트로부터의 주석에 의존할 수 있다.
NLU 엔진은 또한 자동화 어시스턴트(195)와의 상호 작용에 참여한 사용자의 의도를 결정하도록 구성된 의도 매칭기를 포함할 수 있다. 의도 매칭기는 다양한 기술을 사용하여 사용자의 늬도를 결정할 수 있다. 일부 구현에서, 의도 매칭기는 예를 들어 문법과 응답성 의도 간의 복수의 매핑을 포함하는 하나 이상의 로컬 및/또는 원격 데이터 구조에 액세스할 수 있다. 예를 들어, 매핑에 포함된 문법은 시간이 지남에 따라 선택 및/또는 학습될 수 있으며 사용자의 공통 의도를 나타낼 수 있다. 예를 들어, 하나의 문법인 "play <artist>"는 <artist>에 의한 음악이 클라이언트 디바이스(110)에서 재생되도록 하는 응답성 액션을 호출하는 의도에 매핑될 수 있다. 다른 문법인 "오늘의 [날씨|예보]는 "오늘 날씨 어때" 및 "오늘 예보는 어때?"와 같은 사용자 쿼리와 일치할 수 있다. 문법에 추가하여 또는 대신에, 일부 구현에서, 의도 매칭기는 하나 이상의 트레이닝된 기계 학습 모델을 단독으로 또는 하나 이상의 문법과 조합하여 사용할 수 있다. 이러한 트레이닝된 기계 학습 모델은 예를 들어, 음성 발언에서 인식된 텍스트를 축소된 차원 공간에 임베딩한 다음 유클리드 거리, 코사인 유사성과 같은 기술을 사용하여 가장 근접한 다른 임베딩(및 그에 따라서 의도)을 결정함으로써 의도를 식별하도록 트레이닝될 수 있다. 위의 예시적인 문법 "play <artist>"에서 볼 수 있듯이, 일부 문법에는 슬롯값(또는 "파라미터")으로 채워질 수 있는 슬롯(예를 들어, <artist>)이 있다. 슬롯값은 다양한 방식으로 결정될 수 있다. 종종 사용자는 사전에 슬롯값을 제공한다. 예를 들어 "Order me a <topping> pizza"라는 문법의 경우 사용자는 "order me a sausage pizza"라는 문구를 말할 가능성이 있으며 이 경우 슬롯 <topping>이 자동으로 채워진다. 다른 슬롯값(들)은 예를 들어 사용자 위치, 현재 렌더링된 컨텐츠, 사용자 선호도 및/또는 다른 단서(들)에 기초하여 추론될 수 있다.
이행 엔진(로컬 145 및/또는 원격 184)은 NLU 엔진에 의해 출력되는 예측/추정된 의도뿐만 아니라 임의의 연관된 슬롯값을 수신하여 의도를 이행(또는 "해결")하도록 구성될 수 있다. 다양한 구현에서, 사용자 의도의 이행(또는 "해결")은 다양한 이행 정보(또한 이행 데이터라고도 함)가 예를 들어 이행 엔진에 의해 생성/획득되도록 할 수 있다. 여기에는 음성 발언에 대한 로컬 및/또는 원격 응답(예를 들어, 답변) 결정, 음성 발언에 기초하여 수행하기 위한 로컬로 설치된 애플리케이션(들)과의 상호 작용, 음성 발언에 기초하여 사물 인터넷(IoT) 디바이스로 (직접 또는 해당 원격 시스템을 통해) 전송할 명령 및/또는 음성 발언에 기초하여 수행할 다른 해결 액션(들)이 포함될 수 있다. 온-디바이스 이행은 음성 발언을 해결하기 위해 상기 결정된 액션(들)의 로컬 및/또는 원격 수행/실행을 시작할 수 있다.
도 2는 클라이언트 디바이스에서 로컬로 구배를 생성하고, 구배를 전송하고 및/또는 생성된 구배를 이용하여 온-디바이스 음성 인식 모델의 가중치(들)를 업데이트하는 예시적인 방법(200)을 도시하는 흐름도를 도시한다. 편의상, 방법(200)의 동작들은 그 동작을 수행하는 시스템을 참조하여 설명된다. 방법(200)의 이 시스템은 클라이언트 디바이스의 하나 이상의 프로세서 및/또는 다른 컴포넌트(들)를 포함한다. 더욱이, 방법(200)의 동작들이 특정 순서로 도시되지만, 이것은 제한하는 것을 의미하지 않는다. 하나 이상의 동작들은 재정렬, 생략 또는 추가될 수 있다.
블록(252)에서, 시스템은 하나 이상의 조건이 충족되는지 여부를 결정한다. 블록(254) 이전에 설명되었지만, 블록(252)은 또한 블록(256, 258, 260 및/또는 262) 각각 이전에 수행될 수 있고 및/또는 블록(256, 258, 260 및/또는 262)의 서브 세트 이전에 대신 수행될 수 있다는 점에 유의한다. 일부 구현에서, 블록(252)은 클라이언트 디바이스의 현재 상태가 하나 이상의 조건을 충족하는지 여부를 결정하는 단계를 포함한다. 예를 들어, 시스템은 클라이언트 디바이스의 센서(들)로부터의 센서 데이터에 기초하여 클라이언트 디바이스의 현재 상태를 결정하고, 클라이언트 디바이스의 현재 상태가 조건(들)을 충족하는지 여부를 결정할 수 있다. 조건(들)은 예를 들어 (가속도계(들), 자력계(들) 및/또는 기타 센서들의 센서 데이터에 기초하여) 클라이언트 디바이스가 충전 중이고, 클라이언트 디바이스가 적어도 임계 충전 상태에 있고, 및/또는 클라이언트 디바이스가 현재 움직이고 있지 않고 및/또는 임계 시간 내에 움직이지 않았음을 포함할 수 있다.
블록(254)에서, 시스템은 로컬로 저장된 텍스트 세그먼트를 식별한다. 블록(256)에서, 시스템은 온-디바이스 음성 합성 모델을 사용하여 텍스트 세그먼트의 합성(된) 음성을 포함하는 합성 음성 오디오 데이터를 생성한다. 예를 들어, 시스템은 온-디바이스 음성 합성 모델을 사용하여 텍스트 세그먼트의 음소 시퀀스를 처리하여 합성 음성 오디오 데이터를 생성할 수 있다. 일부 구현에서, 시스템은 텍스트 세그먼트 이전 또는 이후에 첨부된 하나 이상의 추가 텍스트 세그먼트와 함께 텍스트 세그먼트에 기초하여 합성 음성 오디오 데이터를 생성한다.
블록(258)에서, 시스템은 온-디바이스 음성 인식 모델을 사용하여 합성 음성 오디오 데이터를 처리함으로써 예측 출력을 생성한다. 일부 구현에서, 온-디바이스 음성 인식 모델은 종단간 음성 인식 모델이고, 시스템은 예측된 텍스트 세그먼트인 예측 출력을 생성한다. 일부 다른 구현에서, 온-디바이스 음성 인식 모델은 종단간 모델이 아니며, 시스템은 예측된 음소 시퀀스 및/또는 다른 예측된 표현을 생성한다.
블록(260)에서, 시스템은 예측 출력을 텍스트 세그먼트에 대응하는 실측 출력과 비교하는 것에 기초하여 구배를 생성한다. 예를 들어, 시스템이 예측 텍스트 세그먼트인 예측 출력을 생성할 때, 예측 텍스트 세그먼트는 구배 생성시 텍스트 세그먼트와 비교될 수 있다. 또한, 예를 들어 시스템이 예측된 음소의 시퀀스인 예측 출력을 생성할 때, 예측된 음소의 시퀀스는 구배 생성시 텍스트 세그먼트에 대응하는 음소의 시퀀스와 비교될 수 있다. 구배는 음성 인식 모델을 트레이닝하는데 사용되는 손실 함수 또는 해당 손실 함수의 미분이라는 측면에서 예측 출력과 실측 출력 간의 차이를 나타낼 수 있다. 즉, 음성 인식 모델이 주어진 손실 함수의 크기를 최소화하도록 트레이닝된 경우, 구배는 손실 함수 측면에서 실측 출력과 예측된 출력의 비교에 의해 결정될 수 있다.
블록(262)에서, 시스템은 블록(260)의 구배에 기초하여 온-디바이스 음성 인식 모델의 가중치(들)를 업데이트하고 및/또는 (예를 들어, 인터넷 또는 다른 광역 네트워크를 통해) 블록(260)의 구배를 (텍스트 세그먼트, 합성 음성 오디오 데이터 및 예측된 텍스트 세그먼트 중 어느 것도 전송하지 않고) 원격 시스템으로 전송한다. 구배가 원격 시스템으로 전송될 때, 원격 시스템은 생성된 구배 및 추가 클라이언트 디바이스로부터의 추가 구배를 사용하여 전역 음성 인식 모델의 전역 가중치를 업데이트한다. 블록(262) 이후, 시스템은 블록(252)으로 다시 진행한다. 로컬 또는 전역 음성 인식 모델의 가중치를 업데이트하는 것은 가중치를 업데이트하기 위해 역전파 프로세스(예를 들어, 구배 하강 역전파)를 통해 구배(들)를 적용하는 것을 포함할 수 있다.
다양한 구현에서, 방법(200)의 다중 인스턴스가 주어진 클라이언트 디바이스에서 병렬로 수행될 수 있다는 점에 유의한다. 또한, 일부 구현에서, 방법(200)은 클라이언트 디바이스의 초기 구성 및/또는 클라이언트 디바이스에서 연락처 데이터 및/또는 다른 데이터의 가져오기와 같은 특정 이벤트에 적어도 응답하여 수행될 수 있다는 점에 유의한다. 예를 들어, 방법(200)은 클라이언트 디바이스에 대한 초기 구성 프로세스 직후 및/또는 도중에 그리고 연락처 목록, 미디어 재생 목록, 애플리케이션, 스마트 디바이스 별칭 및/또는 기타 정보가 클라이언트 디바이스로 임포트(import)된 후에 수행될 수 있다. 이러한 방식 및 다른 방식으로, 온-디바이스 음성 인식 모델은 클라이언트 디바이스를 구성하는 사용자에 맞게 신속하게 조정되고 개인화될 수 있다.
도 3은 원격 클라이언트 디바이스로부터 수신된 구배에 기초하여 전역 음성 인식 모델의 가중치(들)를 업데이트하고 업데이트된 가중치 또는 업데이트된 전역 음성 인식 모델을 원격 클라이언트 디바이스로 전송하는 예시적인 방법(300)을 도시하는 흐름도를 나타낸다. 편의상, 방법(300)의 동작들은 그 동작들을 수행하는 시스템을 참조하여 설명된다. 이 시스템은 하나 이상의 서버 디바이스와 같은 다양한 컴퓨터 시스템의 다양한 컴포넌트를 포함할 수 있다. 더욱이, 방법(300)의 동작들이 특정 순서로 도시되어 있지만, 이것은 제한을 의미하지 않는다. 하나 이상의 동작은 재정렬, 생략 또는 추가될 수 있다.
블록(352)에서, 시스템은 원격 클라이언트 디바이스들로부터 구배를 수신한다. 예를 들어, 시스템은 도 2의 방법(200)의 대응하는 인스턴스를 수행하는 복수의 클라이언트 디바이스로부터 구배를 수신할 수 있다.
블록(354)에서, 시스템은 블록(352)에서 수신된 구배에 기초하여 전역 음성 인식 모델의 가중치(들)를 업데이트한다. 블록(352 및 354)의 반복은 새로운 구배가 수신되고 및/또는 수신된 후에 대기열에 추가될 때 계속 수행될 수 있다.
블록(356)에서, 시스템은 본 명세서에 설명된 하나 이상의 조건과 같은 하나 이상의 조건이 충족되는지 여부를 적어도 주기적으로 결정한다. 일반적으로 조건(들)은 모델 및/또는 업데이트된 모델 자체에 대한 업데이트된 가중치들을 전송할 때 네트워크 리소스의 사용을 정당화하는 정도까지 전역 모델이 업데이트되었는지 여부를 결정하기 위한 프록시 역할을 한다. 즉, 조건(들)은 모델의 성능 향상이 네트워크 리소스 사용을 정당화하는지 여부를 결정하기 위한 프록시로 사용된다. 그런 경우, 시스템은 블록(358)으로 진행하여 현재 업데이트된 가중치들 및/또는 현재 업데이트된 전역 음성 인식 모델을 복수의 클라이언트 디바이스로 전송한다. 업데이트된 가중치들 및/또는 전역 음성 인식 모델은 업데이트 절차 동안의 요청 및/또는 클라이언트 디바이스가 유휴 및/또는 충전 중이기 때문에 전송된 요청과 같이 주어진 클라이언트 디바이스로부터의 요청에 응답하여 주어진 클라이언트 디바이스로 선택적으로 전송될 수 있다.
도 4는 클라이언트 디바이스에서 로컬로 구배를 생성하고 생성된 구배를 사용하여 온-디바이스 음성 합성 모델의 가중치(들)를 업데이트하는 예시적인 방법(400)을 도시하는 흐름도를 나타낸다. 편의상, 방법(400)의 동작들은 그 동작들을 수행하는 시스템을 참조하여 설명된다. 방법(400)의 이 시스템은 클라이언트 디바이스의 하나 이상의 프로세서 및/또는 다른 컴포넌트(들)를 포함한다. 더욱이, 방법(400)의 동작들이 특정 순서로 도시되지만, 이것은 제한하는 것을 의미하지 않는다. 하나 이상의 동작은 다시 정렬하거나 생략하거나 추가될 수 있다.
블록(452)에서, 시스템은 인간의 발언을 캡처하고 클라이언트 디바이스의 마이크로폰(들)을 통해 검출된 이전 오디오 데이터를 식별한다.
블록(454)에서, 시스템은 인간 발언에 대한 실측 전사를 식별한다. 예를 들어, 시스템은 온-디바이스 음성 인식 모델을 사용하여 오디오 데이터를 처리하여 전사를 생성하고, 전사에 대한 신뢰성 측정치가 임계값을 충족하고 및/또는 사용자 액션(들)(또는 무활동)이 전사의 표현에 응답하여 전사가 정확함을 나타내는 경우 전사를 "실측"으로 식별할 수 있다. 일부 구현에서, 이전 인간 발언는 텍스트 독립적 또는 화자 독립적 식별을 위해 사용자에 의해 발화된 등록 문구일 수 있으며, 등록 문구는 등록 문구에 대해 무엇을 말해야 하는지 알리기 위해 사용자에게 렌더링될 수 있다. 이러한 구현에서, 시스템은 사용자에게 렌더링되는 등록 문구를 실측 전사로서 사용할 수 있다.
블록(456)에서, 시스템은 온-디바이스 음성 합성 모델을 사용하여 실측 전사를 처리하여 합성 음성 오디오 데이터를 생성한다.
블록(458)에서, 시스템은 합성 음성 오디오 데이터를 이전 오디오 데이터와 비교하는 것에 기초하여 구배를 생성한다.
블록(460)에서, 시스템은 블록(458)에서 생성된 구배에 기초하여 온-디바이스 음성 합성 모델의 가중치(들)를 업데이트한다. 방법(400)의 하나 이상의 반복은 주어진 클라이언트 디바이스에서 방법(200)(도 2)의 하나 이상의 반복을 수행하기 전에 주어진 클라이언트 디바이스에서 수행될 수 있다는 점에 유의한다. 방법(400)의 수행을 통해, 온-디바이스 음성 합성 모델은 주어진 클라이언트 디바이스의 사용자의 음성 특성 측면에서 조정된다. 이것은 사용자의 음성 특성을 보다 정확하게 반영하는 온-디바이스 음성 합성 모델을 사용하는 방법(200)에서 생성된 합성 음성을 야기할 수 있으며, 이는 방법(200)을 이용하는 온-디바이스 음성 인식 모델의 개선된 트레이닝을 초래할 수 있다.
도 5는 본 명세서에 설명된 기술의 하나 이상의 양태를 수행하기 위해 선택적으로 이용될 수 있는 예시적인 컴퓨팅 디바이스(510)의 블록도이다. 일부 구현에서, 클라이언트 디바이스, 클라우드 기반 자동화 어시스턴트 컴포넌트(들) 및/또는 다른 컴포넌트(들) 중 하나 이상은 예시적인 컴퓨팅 디바이스(510)의 하나 이상의 컴포넌트를 포함할 수 있다.
컴퓨팅 디바이스(510)는 일반적으로 버스 서브 시스템(512)을 통해 다수의 주변 디바이스와 통신하는 적어도 하나의 프로세서(514)를 포함한다. 이러한 주변 디바이스는 예를 들어 메모리 서브 시스템(525) 및 파일 저장 서브 시스템(526), 사용자 인터페이스 출력 디바이스들(520), 사용자 인터페이스 입력 디바이스들(522) 및 네트워크 인터페이스 서브 시스템(516)을 포함하는 저장 서브 시스템(524)을 포함할 수 있다. 입력 및 출력 디바이스는 컴퓨팅 디바이스(510)와의 사용자 상호 작용을 허용한다. 네트워크 인터페이스 서브 시스템(516)은 외부 네트워크에 대한 인터페이스를 제공하고 다른 컴퓨팅 디바이스의 대응하는 인터페이스 디바이스에 결합된다.
사용자 인터페이스 입력 디바이스(522)는 키보드, 포인팅 디바이스(예컨대, 마우스, 트랙볼, 터치 패드 또는 그래픽 태블릿), 스캐너, 디스플레이에 통합된 터치 스크린, 음성 인식 시스템과 같은 오디오 입력 디바이스, 마이크 및/또는 기타 유형의 입력 디바이스가 포함될 수 있다. 일반적으로, "입력 디바이스"라는 용어의 사용은 모든 가능한 유형의 디바이스 및 컴퓨팅 디바이스(510) 또는 통신 네트워크에 정보를 입력하는 방법을 포함하도록 의도된다.
사용자 인터페이스 출력 디바이스(520)는 디스플레이 서브 시스템, 프린터, 팩스 기계, 또는 오디오 출력 디바이스와 같은 비-시각적 디스플레이를 포함할 수 있다. 디스플레이 서브 시스템은 음극선 관(CRT), 액정 디스플레이(LCD)와 같은 평판 디바이스, 프로젝션 디바이스, 또는 가시적 이미지를 생성하기 위한 다른 메커니즘을 포함할 수 있다. 디스플레이 서브 시스템은 또한 오디오 출력 디바이스를 통해 비-시각적 디스플레이를 제공할 수 있다. 일반적으로, "출력 디바이스"라는 용어의 사용은 모든 가능한 유형의 디바이스 및 컴퓨팅 디바이스(510)에서 사용자 또는 다른 기계 또는 컴퓨팅 디바이스로 정보를 출력하는 방법을 포함하도록 의도된다.
저장 서브 시스템(524)은 본 명세서 설명된 모듈의 일부 또는 전부의 기능을 제공하는 프로그래밍 및 데이터 구성을 저장한다. 예를 들어, 저장 서브 시스템(524)은 본 명세서에 개시된 방법의 선택된 측면을 수행할뿐만 아니라 도 1a 및 1b에 도시된 다양한 컴포넌트를 구현하기 위한 로직을 포함할 수 있다.
이러한 소프트웨어 모듈은 일반적으로 프로세서(514)에 의해 단독으로 또는 다른 프로세서와 결합하여 실행된다. 저장 서브 시스템(524)에서 사용되는 메모리(525)는 프로그램 실행 동안 명령 및 데이터를 저장하기 위한 메인 랜덤 액세스 메모리(RAM)(530) 및 고정 명령가 저장되는 판독 전용 메모리(ROM)(532)를 포함하는 다수의 메모리를 포함할 수 있다. 파일 저장 서브 시스템(526)은 프로그램 및 데이터 파일에 대한 영구 저장을 제공할 수 있으며, 하드 디스크 드라이브, 플로피 디스크 드라이브와 관련된 이동식 미디어, CD-ROM 드라이브, 광학 드라이브 또는 이동식 미디어 카트리지를 포함할 수 있다. 특정 구현의 기능을 구현하는 모듈은 저장 서브 시스템(524)의 파일 저장 서브 시스템(526)에 의해 또는 프로세서(들)(514)에 의해 액세스 가능한 다른 기계에 저장될 수 있다.
버스 서브 시스템(512)은 컴퓨팅 디바이스(510)의 다양한 컴포넌트 및 서브 시스템이 의도 한대로 서로 통신할 수 있도록 하는 메커니즘을 제공한다. 버스 서브 시스템(512)이 단일 버스로서 개략적으로 도시되어 있지만, 버스 서브 시스템의 대안적인 구현은 다중 버스를 사용할 수 있다.
컴퓨팅 디바이스(510)는 워크 스테이션, 서버, 컴퓨팅 클러스터, 블레이드 서버, 서버 팜, 또는 임의의 다른 데이터 처리 시스템 또는 컴퓨팅 디바이스를 포함하는 다양한 유형일 수 있다. 컴퓨터 및 네트워크의 끊임없이 변화하는 특성으로 인해, 도 5에 도시된 컴퓨팅 디바이스(510)의 설명은 일부 구현을 설명하기 위한 특정 예로서만 의도된다. 컴퓨팅 디바이스(510)의 많은 다른 구성은 도 5에 도시된 컴퓨팅 디바이스보다 더 많거나 적은 컴포넌트를 가질 수 있다.
본 명세서에 설명된 시스템이 사용자에 대한 개인 정보를 수집 또는 모니터링하거나 개인 및/또는 모니터링되는 정보를 사용할 수 있는 상황에서, 사용자에게 프로그램 또는 기능이 사용자 정보(예를 들어, 사용자의 소셜 네트워크, 소셜 액션 또는 활동, 직업, 사용자의 선호도 또는 사용자의 현재 지리적 위치에 대한 정보)를 수집하는지 여부를 제어하거나 사용자와 더 관련이 있을 수 있는 컨텐츠 서버로부터 컨텐츠를 수신하는지 여부 및/또는 방법을 제어할 수 있는 기회가 제공될 수 있다. 또한 특정 데이터는 개인 식별 정보가 제거될 수 있도록 저장 또는 사용되기 전에 하나 이상의 방법으로 처리될 수 있다. 예를 들어, 사용자의 신원은 사용자에 대한 개인 식별 정보가 결정되지 않도록 처리하거나, 사용자의 지리적 위치는 사용자의 특정 지리적 위치가 결정되지 않도록 지리적 위치 정보가 획득된 곳(예를 들어, 도시, 우편 번호 또는 주 수준)으로 일반화될 수 있다. 따라서 사용자는 사용자에 대한 정보 수집 및/또는 사용 방법을 제어할 수 있다.
일부 구현에서, 클라이언트 디바이스의 하나 이상의 프로세서에 의해 수행되는 방법이 제공되고 클라이언트 디바이스에 로컬로 저장된 텍스트 세그먼트를 식별하는 단계를 포함한다. 방법은 식별된 텍스트 세그먼트의 합성 음성을 포함하는 합성 음성 오디오 데이터를 생성하는 단계를 더 포함한다. 합성 음성 오디오 데이터를 생성하는 단계는 클라이언트 디바이스에 로컬로 저장된 음성 합성 모델을 사용하여 텍스트 세그먼트를 처리하는 단계를 포함한다. 방법은 예측된 텍스트 세그먼트를 생성하기 위해 클라이언트 디바이스에 로컬로 저장된 종단간 음성 인식 모델을 사용하여 합성 오디오 데이터를 처리하는 단계를 더 포함한다. 방법은 예측된 텍스트 세그먼트를 텍스트 세그먼트와 비교하는 것에 기초하여 구배를 생성하는 ㄷ단계 및 생성된 구배에 기초하여 종단간 음성 인식 모델의 하나 이상의 가중치를 업데이트하는 단계를 더 포함한다.
기술의 이들 및 다른 구현은 다음 특징 중 하나 이상을 포함할 수 있다.
일부 구현에서, 방법은 텍스트 세그먼트, 합성 음성 오디오 데이터 및 예측된 텍스트 세그먼트 중 임의의 것을 전송하지 않고 네트워크를 통해 원격 시스템으로 상기 생성된 구배를 전송하는 단계를 더 포함한다. 원격 시스템은 생성된 구배와 추가 클라이언트 디바이스의 추가 구배를 사용하여 전역 종단간 음성 인식 모델의 전역 가중치를 업데이트한다. 전역 종단간 음성 인식 모델의 업데이트된 전역 가중치는 원격 시스템의 메모리에 저장될 수 있다. 이들 구현의 일부 버전에서, 방법은 클라이언트 디바이스에서 원격 시스템으로부터, 전역 종단간 음성 인식 모델을 수신하는 단계; 및 전역 음성 인식 모델을 수신하는 것에 응답하여, 클라이언트 디바이스의 로컬 저장소에서, 종단간 음성 인식 모델을 전역 음성 인식 모델로 대체하는 단계를 포함한다. 전역 종단간 음성 인식 모델을 수신하는 단계는 운격 시스템이 구배 및 추가 구배에 기초하여 전역 종단간 음성 인식 모델의 전역 가중치를 업데이트한 이후이다. 이러한 구현의 일부 대안 버전에서, 방법은 클라이언트 디바이스에서 원격 시스템으로부터, 업데이트된 전역 가중치를 수신하는 단계; 및 업데이트된 전역 가중치를 수신하는 것에 응답하여, 클라이언트 디바이스의 로컬 저장소에서, 종단간 음성 인식 모델의 가중치를 업데이트된 전역 가중치로 대체하는 단계를 포함한다. 업데이트된 전역 가중치를 수신하는 단계는 구배 및 추가 구배에 기초하여 원격 시스템이 전역 종단간 음성 인식 모델의 전역 가중치를 업데이트한 이후이다.
일부 구현에서, 텍스트 세그먼트는 연락처 목록, 미디어 재생 목록, 링크된 스마트 디바이스의 별칭 목록, 클라이언트 디바이스에서 수신된 타이핑 입력, 또는 클라이언트 디바이스에서 캡처된 스크린 샷에서 수행된 광학 문자 인식 처리로부터 식별된다.
일부 구현에서, 텍스트 세그먼트는 연락처에 대한 별명 또는 링크된 스마트 디바이스에 대한 별명으로서 새로 추가되는 텍스트 세그먼트에 기초하여 식별된다.
일부 구현에서, 방법은 클라이언트 디바이스의 하나 이상의 센서의 센서 데이터에 기초하여 클라이언트 디바이스의 현재 상태가 하나 이상의 조건을 충족함을 결정하는 단계를 더 포함한다. 이러한 구현에서, 합성 음성 오디오 데이터를 생성하는 단계, 및/또는 합성 음성 오디오 데이터를 처리하여 예측된 텍스트 세그먼트를 생성하는 단계, 및/또는 구배를 생성하는 단계, 및/또는 하나 이상의 가중치를 업데이트하는 단계는 클라이언트 디바이스의 현재 상태가 하나 이상의 조건을 충족한다고 결정에 응답하여 수행된다. 이들 구현 중 일부에서, 하나 이상의 조건은 클라이언트 디바이스가 충전 중이고, 클라이언트 디바이스가 적어도 임계 충전 상태를 가지고 있고, 및/또는 클라이언트 디바이스가 사용자에 의해 휴대되고 있지 않음을 포함한다.
일부 구현에서, 텍스트 세그먼트를 식별하는 단계는 하나 이상의 마이크로폰을 통해 검출된 이전 인간 발언이 텍스트 세그먼트를 포함한다고 결정하는 단계; 및 종단간 음성 인식 모델을 사용하여 수행된 이전 인간 발언의 이전 음성 인식이 텍스트 세그먼트를 정확하게 인식하지 못했다고 결정하는 단계를 포함한다. 이러한 구현의 일부에서, 이전 음성 인식이 텍스트 세그먼트를 올바르게 인식하지 못했다는 결정은 이전 음성 인식에 기초하여 예측된 액션을 취소하는 수신된 사용자 입력에 기초한다. 이러한 구현의 일부 버전에서, 이전 인간 발언이 텍스트 세그먼트를 포함한다고 결정하는 단계는 이전 음성 인식에 기초하여 예측된 액션을 취소하는 사용자 입력 후에 수신된 추가 수신된 사용자 입력에 기초한다. 추가 수신된 사용자 입력은 텍스트 세그먼트의 입력, 또는 텍스트 세그먼트 목록으로부터 텍스트 세그먼트의 선택을 포함할 수 있다.
일부 구현에서, 식별된 텍스트 세그먼트의 합성 음성을 포함하는 합성 음성 오디오 데이터를 생성하는 단계는 추가 텍스트 세그먼트를 결정하는 단계를 포함한다. 이러한 구현에서, 합성 음성 오디오 데이터를 생성하는 단계는 음성 합성 모델을 사용하여 추가 텍스트 세그먼트와 함께 텍스트 세그먼트를 처리하는 단게를 포함한다. 이들 구현 중 일부에서, 추가 텍스트 세그먼트를 결정하는 단계는 텍스트 세그먼트가 식별되는 특정 코퍼스에 대한 추가 텍스트 세그먼트의 정의된 관계에 기초한다.
일부 구현에서, 음성 합성 모델을 사용하여 텍스트 세그먼트를 처리하는 단계는 텍스트 세그먼트에 대응하도록 결정된 음소 시퀀스를 처리하는 단계를 포함한다.
일부 구현에서, 음성 합성 모델은 주어진 언어에 대한 복수의 후보 음성 합성 모델 중 하나이고, 클라이언트 디바이스의 지리적 영역에 적어도 부분적으로 기초하여 클라이언트 디바이스에 로컬로 저장된다.
일부 구현에서, 방법은 합성 음성 오디오 데이터를 생성하기 전에: 클라이언트 디바이스의 하나 이상의 마이크로폰을 통해 검출되고 이전 인간 발언을 캡처하는 이전 오디오 데이터를 식별하는 단계; 이전 인간 발언에 대한 실측 전사를 식별ㅎ하는 단계; 이전 합성 음성 오디오 데이터를 생성하도록 음성 합성 모델을 사용하여 실측 전사를 처리하는 단계; 이전 합성 음성 오디오 데이터를 이전 오디오 데이터와 비교하는 것에 기초하여 구배를 생성하는 단계; 및 구배에 기초하여 음성 합성 모델의 하나 이상의 가중치를 업데이트하는 단계를 더 포함한다. 이러한 구현 중 일부에서, 실측 전사를 식별하는 단계는 음성 인식 모델을 사용하여 전사를 생성하는 단계, 및 전사 생성시 신뢰도 측정치 및/또는 전사에 응답하여 수행된 사용자 동작에 기초하여 전사를 실측 전사로서 식별하는 단계를 포함한다.
일부 구현에서, 클라이언트 디바이스의 하나 이상의 프로세서에 의해 수행되는 방법이 제공되고 클라이언트 디바이스에 로컬로 저장된 텍스트 세그먼트를 식별하는 단계를 포함한다. 방법은 식별된 텍스트 세그먼트의 합성 음성을 포함하는 합성 음성 오디오 데이터를 생성하는 단계를 더 포함한다. 합성 음성 오디오 데이터를 생성하는 단계는 클라이언트 디바이스에 로컬로 저장된 음성 합성 모델을 사용하여 텍스트 세그먼트를 처리하는 단계를 포함한다. 방법은 예측된 텍스트 세그먼트를 생성하기 위해 합성 오디오 데이터를 클라이언트 디바이스에 로컬로 저장된 종단간 음성 인식 모델을 사용하여 처리하는 단계를 더 포함한다. 방법은 예측된 텍스트 세그먼트를 텍스트 세그먼트와 비교하는 것에 기초하여 구배를 생성하는 단계를 더 포함한다. 방법은 텍스트 세그먼트, 합성 음성 오디오 데이터 및 예측된 텍스트 세그먼트 중 어느 하나를 전송하지 않고 상기 생성된 구배를 네트워크를 통해 원격 시스템으로 전송하는 단계를 더 포함한다. 원격 시스템은 생성된 구배 및 추가 클라이언트 디바이스의 추가 구배를 사용하여 전역 종단간 음성 인식 모델의 전역 가중치를 업데이트한다.
기술의 이들 및 다른 구현은 다음 특징들 중 하나 이상을 포함할 수 있다.
일부 구현에서, 전역 종단간 음성 인식 모델의 업데이트된 전역 가중치는 원격 시스템의 메모리에 저장된다.
일부 구현에서, 방법은 클라이언트 디바이스에서 원격 시스템으로부터, 전역 종단간 음성 인식 모델을 수신하는 단계; 전역 종단간 음성 인식 모델을 수신하는 것에 응답하여 클라이언트 디바이스의 로컬 저장소에서 음성 인식 모델을 전역 종단간 음성 인식 모델로 대체하는 단계를 더 포함한다. 전역 종단간 음성 인식 모델을 수신하는 단계는 원격 시스템이 구배 및 추가 구배에 기초하여 전역 종단간 음성 인식 모델의 전역 가중치를 업데이트한 이후이다.
일부 구현에서, 방법은 클라이언트 디바이스에서 원격 시스템으로부터, 업데이트된 전역 가중치를 수신하는 단계; 및 업데이트된 전역 가중치를 수신하는 것에 응답하여, 클라이언트 디바이스의 로컬 저장소에서, 음성 인식 모델의 가중치를 업데이트된 전역 가중치로 대체하는 단계를 더 포함한다. 업데이트된 전역 가중치를 수신하는 단계는 구배 및 추가 구배에 기초하여 원격 시스템이 전역 종단간 음성 인식 모델의 전역 가중치를 업데이트하는 것에 후속된다.
일부 구현에서, 방법은 클라이언트 디바이스의 하나 이상의 센서의 센서 데이터에 기초하여 클라이언트 디바이스의 현재 상태가 하나 이상의 조건을 충족함을 결정하는 단계를 더 포함한다. 이러한 구현의 일부 버전에서, 원격 시스템으로부터 업데이트된 전역 가중치를 수신하는 단계 또는 원격 시스템으로부터 전역 종단간 음성 인식 모델을 수신하는 단계는 클라이언트 디바이스에 의해, 클라이언트 디바이스의 현재 상태가 하나 이상의 조건을 충족한다는 결정하는 것에 응답하는 요청을 전송하는 것에 응답한다. 이러한 구현의 일부 추가 또는 대체 버전에서, 합성 음성 오디오 데이터를 생성하는 단계 및/또는 예측 텍스트 세그먼트를 생성하도록 합성 음성 오디오 데이터를 처리하는 단계 및/또는 구배를 생성하는 단계 및/또는 생성된 구배를 전송하는 단계는 클라이언트 디바이스의 현재 상태가 하나 이상의 조건을 충족한다는 결정에 응답하여 수행된다.
일부 구현에서, 식별된 텍스트 세그먼트의 합성 음성을 포함하는 합성 음성 오디오 데이터를 생성하는 단계는 추가 텍스트 세그먼트를 결정하는 단계, 및 음성 합선 모델을 사용하여 추가 텍스트 세그먼트와 함께 텍스트 세그먼트를 처리함으로써 합성 음성 오디오 데이터를 생성하는 단계를 더 포함한다.
일부 구현에서, 음성 합성 모델은 주어진 언어에 대한 복수의 후보 음성 합성 모델 중 하나이고, 클라이언트 디바이스의 지리적 영역에 적어도 부분적으로 기초하여 클라이언트 디바이스에 로컬로 저장된다.
일부 구현에서, 방법은 합성 음성 오디오 데이터를 생성하기 전에: 클라이언트 디바이스의 하나 이상의 마이크로폰을 통해 검출되고 이전 인간 발언을 캡처하는 이전 오디오 데이터를 식별하는 단계; 이전 인간 발언에 대한 실측 전사를 식별ㅎ하는 단계; 사전에 합성 음성 오디오 데이터를 생성하기 위해 음성 합성 모델을 사용하여 실측 기록을 처리하는 단계; 이전 합성 음성 오디오 데이터를 이전 오디오 데이터와 비교하는 것에 기초하여 구배를 생성하는 단계; 및 구배에 기초하여 음성 합성 모델의 하나 이상의 가중치를 업데이트하는 단계를 더 포함한다.
일부 구현에서, 클라이언트 디바이스의 하나 이상의 프로세서에 의해 수행되는 방법이 제공되고 클라이언트 디바이스에 로컬로 저장된 텍스트 세그먼트를 식별하는 단계를 포함한다. 방법은 식별된 텍스트 세그먼트의 합성 음성을 포함하는 합성 음성 오디오 데이터를 생성하는 단계를 더 포함한다. 합성 음성 오디오 데이터를 생성하는 단계는 클라이언트 디바이스에 로컬로 저장된 음성 합성 모델을 사용하여 텍스트 세그먼트를 처리하는 단계를 포함한다. 방법은 예측 출력을 생성하기 위해 합성 음성 오디오 데이터를 클라이언트 디바이스에 로컬로 저장된 인식 모델을 사용하여 처리하는 단계를 더 포함한다. 방법은 예측 출력을 텍스트 세그먼트에 대응하는 실측 출력과 비교하는 것에 기초하여 구배를 생성하는 단계를 더 포함한다. 방법은 생성된 구배에 기초하여 음성 인식 모델의 하나 이상의 가중치를 업데이트하는 단계를 더 포함한다.
기술의 이들 및 다른 구현은 다음 특징들 중 하나 이상을 포함할 수 있다.
일부 구현에서, 예측 출력은 예측된 음소의 시퀀스를 포함하고, 실측 출력은 텍스트 세그먼트에 대응하는 음소의 실측 시퀀스를 포함한다.
일부 구현에서, 예측 출력은 예측된 텍스트 세그먼트를 포함하고, 실측 출력은 텍스트 세그먼트를 포함한다.
Claims (32)
- 클라이언트 디바이스의 하나 이상의 프로세서에 의해 수행되는 방법으로서, 상기 방법은,
클라이언트 디바이스에 로컬로 저장된 텍스트 세그먼트를 식별하는 단계;
식별된 텍스트 세그먼트의 합성 음성을 포함하는 합성 음성 오디오 데이터를 생성하는 단계, 상기 합성 음성 오디오 데이터를 생성하는 단계는 클라이언트 디바이스에 로컬로 저장된 음성 합성 모델을 사용하여 텍스트 세그먼트를 처리하는 단계를 포함하고;
클라이언트 디바이스에 로컬로 저장된 종단간 음성 인식 모델을 사용하여, 예측 텍스트 세그먼트를 생성하도록 합성 음성 오디오 데이터를 처리하는 단계;
예측 텍스트 세그먼트를 텍스트 세그먼트와 비교하는 것에 기초하여 구배(gradient)를 생성하는 단계; 및
생성된 구배에 기초하여 종단간 음성 인식 모델의 하나 이상의 가중치를 업데이트하는 단계를 포함하는 프로세서에 의해 수행되는 방법. - 제1항에 있어서,
네트워크를 통해 원격 시스템으로, 텍스트 세그먼트, 합성 음성 오디오 데이터 및 예측 텍스트 세그먼트 중 어느 하나를 전송하지 않고 상기 생성된 구배를 전송하는 단계를 더 포함하고,
상기 원격 시스템은 전역 종단간 음성 인식 모델의 전역 가중치를 업데이트하기 위해 상기 생성된 구배 및 추가 클라이언트 디바이스로부터의 추가 구배를 이용하는 것을 특징으로 하는 프로세서에 의해 수행되는 방법. - 제2항에 있어서,
상기 전역 종단간 음성 인식 모델의 업데이트된 전역 가중치는 원격 시스템의 메모리에 저장되는 것을 특징으로 하는 프로세서에 의해 수행되는 방법. - 제2항에 있어서,
클라이언트 디바이스에서, 원격 시스템으로부터 전역 종단간 음성 인식 모델을 수신하는 단계를 더 포함하고, 상기 전역 종단간 음성 인식 모델을 수신하는 단계는 원격 시스템이 구배 및 추가 구배에 기초하여 전역 종단간 음성 인식 모델의 전역 가중치를 업데이트한 이후이고; 및
전역 음성 인식 모델을 수신하는 것에 응답하여, 클라이언트 디바이스의 로컬 저장소에서 상기 종단간 음성 인식 모델을 전역 종단간 음성 인식 모델로 대체하는 단계를 더 포함하는 프로세서에 의해 수행되는 방법. - 제2항에 있어서,
클라이언트 디바이스에서 및 원격 시스템으로부터, 업데이트된 전역 가중치를 수신하는 단계, 상기 업데이트된 전역 가중치를 수신하는 단계는 원격 시스템이 구배 및 추가 구배에 기초하여 전역 종단간 음성 인식 모델의 전역 가중치를 업데이트한 이후이고; 및
업데이트된 전역 가중치를 수신하는 것에 응답하여, 클라이언트 디바이스의 로컬 저장소에서 상기 종단간 음성 인식 모델의 가중치를 업데이트된 전역 가중치로 대체하는 단계를 더 포함하는 프로세서에 의해 수행되는 방법. - 제1항에 있어서,
상기 텍스트 세그먼트는,
연락처 목록, 미디어 재생 목록, 링크된 스마트 디바이스의 별칭 목록, 또는 클라이언트 디바이스에서 수신된 타이핑 입력으로부터 식별되는 것을 특징으로 하는 프로세서에 의해 수행되는 방법. - 제1항에 있어서,
상기 텍스트 세그먼트는,
연락처에 대한 별칭 또는 링크된 스마트 디바이스에 대한 별칭으로서 새로 추가되는 텍스트 세그먼트에 기초하여 식별되는 것을 특징으로 하는 프로세서에 의해 수행되는 방법. - 제1항에 있어서,
클라이언트 디바이스의 하나 이상의 센서의 센서 데이터에 기초하여, 클라이언트 디바이스의 현재 상태가 하나 이상의 조건을 충족함을 결정하는 단계를 더 포함하고;
상기 합성 음성 오디오 데이터를 생성하는 단계, 예측 텍스트 세그먼트를 생성하도록 합성 음성 오디오 데이터를 처리하는 단계, 구배를 생성하는 단계 및 하나 이상의 가중치를 업데이트하는 단계 중 적어도 하나는,
클라이언트 디바이스의 현재 상태가 하나 이상의 조건을 충족한다는 결정에 응답하여 수행되는 것을 특징으로 하는 프로세서에 의해 수행되는 방법. - 제8항에 있어서,
상기 하나 이상의 조건은,
클라이언트 디바이스가 충전 중이거나, 클라이언트 디바이스가 적어도 임계 충전 상태이거나, 또는 클라이언트 디바이스가 사용자에 의해 휴대되고 있지 않은 것을 포함하는 프로세서에 의해 수행되는 방법. - 제9항에 있어서,
상기 하나 이상의 조건은,
클라이언트 디바이스가 충전 중이고 적어도 임계 충전 상태이거나, 클라이언트 디바이스가 적어도 임계 충전 상태이고 사용자에 의해 휴대되고 있지 않거나, 또는 클라이언트 디바이스가 사용자에 의해 휴대되고 있지 않고 충전 중인 것을 포함하는 프로세서에 의해 수행되는 방법. - 제1항에 있어서,
상기 텍스트 세그먼트를 식별하는 단계는,
하나 이상의 마이크로폰을 통해 검출된 이전 인간 발언이 텍스트 세그먼트를 포함한다고 결정하는 단계; 및
종단간 음성 인식 모델을 사용하여 수행된 이전 인간 발언의 이전 음성 인식이 텍스트 세그먼트를 올바르게 인식하지 못했다고 결정하는 단계에;
기초하여 텍스트 세그먼트 식별하는 단계를 포함하는 프로세서에 의해 수행되는 방법. - 제11항에 있어서,
상기 이전 음성 인식이 텍스트 세그먼트를 정확하게 인식하지 못했다고 결정하는 단계는 이전 음성 인식에 기초하여 예측된 액션을 취소하는 수신된 사용자 입력에 기초하고, 그리고
상기 이전 인간 발언이 텍스트 세그먼트를 포함한다고 결정하는 단계는 이전 음성 인식에 기초하여 예측된 액션을 취소하는 사용자 입력 이후에 수신된 추가 수신된 사용자 입력에 기초하는 것을 특징으로 하는 프로세서에 의해 수행되는 방법. - 제12항에 있어서,
상기 추가 수신된 사용자 입력은 텍스트 세그먼트의 입력을 포함하는 프로세서에 의해 수행되는 방법. - 제1항에 있어서,
상기 식별된 텍스트 세그먼트의 합성 음성을 포함하는 합성 음성 오디오 데이터를 생성하는 단계는,
추가 텍스트 세그먼트를 결정하는 단계를 더 포함하고; 그리고
상기 합성 음성 오디오 데이터를 생성하는 단계는 음성 합성 모델을 사용하여, 추가 텍스트 세그먼트와 함께 텍스트 세그먼트를 처리하는 단계를 포함하는 프로세서에 의해 수행되는 방법. - 제14항에 있어서,
상기 추가 텍스트 세그먼트를 결정하는 단계는,
텍스트 세그먼트가 식별되는 특정 코퍼스에 대한 상기 추가 텍스트 세그먼트의 정의된 관계에 기초하는 것을 특징으로 하는 프로세서에 의해 수행되는 방법. - 제1항에 있어서,
상기 음성 합성 모델을 사용하여 텍스트 세그먼트를 처리하는 단계는,
텍스트 세그먼트에 대응하도록 결정된 음소 시퀀스를 처리하는 단계를 포함하는 프로세서에 의해 수행되는 방법. - 제1항에 있어서,
상기 음성 합성 모델은 주어진 언어에 대한 복수의 후보 음성 합성 모델 중 하나이고, 클라이언트 디바이스의 지리적 영역에 적어도 부분적으로 기초하여 클라이언트 디바이스에 로컬로 저장되는 것을 특징으로 하는 프로세서에 의해 수행되는 방법. - 제1항에 있어서,
합성 음성 오디오 데이터를 생성하기 전에:
클라이언트 디바이스의 하나 이상의 마이크로폰을 통해 검출되고 이전 인간 발언을 캡처하는 이전 오디오 데이터를 식별하는 단계;
이전 인간 발언에 대한 실측 전사를 식별하는 단계;
이전 합성 음성 오디오 데이터를 생성하기 위해 음성 합성 모델을 사용하여 실측 전사를 처리하는 단계;
이전 합성 음성 오디오 데이터를 이전 오디오 데이터와 비교하는 것에 기초하여 구배를 생성하는 단계; 및
구배에 기초하여 음성 합성 모델의 하나 이상의 가중치를 업데이트하는 단계를 더 포함하는 프로세서에 의해 수행되는 방법. - 제18항에 있어서,
상기 실측 전사를 식별하는 단계는,
음성 인식 모델을 사용하여 전사를 생성하는 단계; 및
전사 생성시의 신뢰도 측정치에 기초하고 및/또는 전사에 응답하여 수행된 사용자 액션에 기초하여 상기 전사를 실측 전사로서 식별하는 단계를 포함하는 프로세서에 의해 수행되는 방법. - 클라이언트 디바이스의 하나 이상의 프로세서에 의해 수행되는 방법으로서, 상기 방법은,
클라이언트 디바이스에 로컬로 저장된 텍스트 세그먼트를 식별하는 단계;
식별된 텍스트 세그먼트의 합성 음성을 포함하는 합성 음성 오디오 데이터를 생성하는 단계와, 상기 합성 음성 오디오 데이터를 생성하는 단계는 클라이언트 디바이스에 로컬로 저장된 음성 합성 모델을 사용하여 텍스트 세그먼트를 처리하는 단계를 포함하고;
클라이언트 디바이스에 로컬로 저장된 종단간 음성 인식 모델을 사용하여, 예측 텍스트 세그먼트를 생성하도록 합성 음성 오디오 데이터를 처리하는 단계;
예측된 텍스트 세그먼트를 텍스트 세그먼트와 비교하는 것에 기초하여 구배(gradient)를 생성하는 단계; 및
네트워크를 통해 원격 시스템으로, 텍스트 세그먼트, 합성 음성 오디오 데이터 및 예측 텍스트 세그먼트 중 어느 하나를 전송하지 않고 상기 생성된 구배를 전송하는 단계를 포함하고;
상기 원격 시스템은 생성된 구배 및 추가 클라이언트 디바이스로부터의 추가 구배를 이용하여 전역 종단간 음성 인식 모델의 전역 가중치를 업데이트하는 것을 특징으로 하는 프로세서에 의해 수행되는 방법. - 제20항에 있어서,
상기 전역 종단간 음성 인식 모델의 업데이트된 전역 가중치는 원격 시스템의 메모리에 저장되는 것을 특징으로 하는 프로세서에 의해 수행되는 방법. - 제20항에 있어서,
클라이언트 디바이스에서, 원격 시스템으로부터 전역 종단간 음성 인식 모델을 수신하는 단계, 상기 전역 종단간 음성 인식 모델을 수신하는 단계는 원격 시스템이 구배 및 추가 구배에 기초하여 전역 종단간 음성 인식 모델의 전역 가중치를 업데이트 한 이후이고; 및
전역 종단간 음성 인식 모델 수신하는 것에 응답하여, 클라이언트 디바이스의 로컬 저장소에서 상기 음성 인식 모델을 전역 종단간 음성 인식 모델로 대체하는 단계를 더 포함하는 프로세서에 의해 수행되는 방법. - 제20항에 있어서,
클라이언트 디바이스에서 원격 시스템으로부터, 업데이트된 전역 가중치를 수신하는 단계, 상기 업데이트된 전역 가중치를 수신하는 단계는 원격 시스템이 구배 및 추가 구배에 기초하여 전역 종단간 음성 인식 모델의 전역 가중치를 업데이트 한 이후이고; 및
업데이트된 전역 가중치를 수신하는 것에 응답하여, 클라이언트 디바이스의 로컬 저장소에서 상기 음성 인식 모델의 가중치를 업데이트된 전역 가중치로 대체하는 단계를 더 포함하는 프로세서에 의해 수행되는 방법. - 제20항에 있어서,
클라이언트 디바이스의 하나 이상의 센서의 센서 데이터에 기초하여, 클라이언트 디바이스의 현재 상태가 하나 이상의 조건을 충족함을 결정하는 단계를 더 포함하고;
상기 합성 음성 오디오 데이터를 생성하는 단계, 예측 텍스트 세그먼트를 생성하도록 합성 음성 오디오 데이터를 처리하는 단계, 구배를 생성하는 단계 및 생성된 구배를 전송하는 단계 중 적어도 하나는,
클라이언트의 현재 상태가 하나 이상의 조건을 충족한다는 결정에 응답하여 수행되는 것을 특징으로 하는 프로세서에 의해 수행되는 방법. - 제20항에 있어서,
상기 식별된 텍스트 세그먼트의 합성된 음성을 포함하는 합성 음성 오디오 데이터를 생성하는 단계는,
추가 텍스트 세그먼트를 결정하는 단계를 더 포함하고; 그리고
상기 합성 음성 오디오 데이터를 생성하는 단계는 음성 합성 모델을 사용하여 추가 텍스트 세그먼트와 함께 텍스트 세그먼트를 처리하는 단계를 포함하는 프로세서에 의해 수행되는 방법. - 제20항에 있어서,
상기 음성 합성 모델은 주어진 언어에 대한 복수의 후보 음성 합성 모델 중 하나이고, 클라이언트 디바이스의 지리적 영역에 적어도 부분적으로 기초하여 클라이언트 디바이스에 로컬로 저장되는 것을 특징으로 하는 프로세서에 의해 수행되는 방법. - 제20항에 있어서,
합성 음성 오디오 데이터를 생성하기 전에:
클라이언트 디바이스의 하나 이상의 마이크로폰을 통해 검출되고 이전 인간 발언을 캡처하는 이전 오디오 데이터를 식별하는 단계;
이전 인간 발언에 대한 실측 전사를 식별하는 단계;
이전 합성 음성 오디오 데이터를 생성하기 위해 음성 합성 모델을 사용하여 실측 전사를 처리하는 단계;
이전 합성 음성 오디오 데이터를 이전 오디오 데이터와 비교하는 것에 기초하여 구배를 생성하는 단계; 및
구배에 기초하여 음성 합성 모델의 하나 이상의 가중치를 업데이트하는 단계를 더 포함하는 프로세서에 의해 수행되는 방법. - 클라이언트 디바이스의 하나 이상의 프로세서에 의해 수행되는 방법으로서, 상기 방법은,
클라이언트 디바이스에 로컬로 저장된 텍스트 세그먼트를 식별하는 단계;
식별된 텍스트 세그먼트의 합성 음성을 포함하는 합성 음성 오디오 데이터를 생성하는 단계, 상기 합성 음성 오디오 데이터를 생성하는 단계는 클라이언트 디바이스에 로컬로 저장된 음성 합성 모델을 사용하여 텍스트 세그먼트를 처리하는 단계를 포함하고;
클라이언트 디바이스에 로컬로 저장된 종단간 음성 인식 모델을 사용하여, 예측 출력을 생성하도록 합성 음성 오디오 데이터를 처리하는 단계;
예측된 출력을 텍스트 세그먼트에 대응하는 실측 출력과 비교하는 것에 기초하여 구배(gradient)를 생성하는 단계; 및
생성된 구배에 기초하여 음성 인식 모델의 하나 이상의 가중치를 업데이트하는 단계를 포함하는 프로세서에 의해 수행되는 방법. - 제28항에 있어서,
상기 예측된 출력은 예측된 음소의 시퀀스를 포함하고, 상기 실측 출력은 텍스트 세그먼트에 대응하는 음소의 실측 시퀀스를 포함하는 프로세서에 의해 수행되는 방법. - 제29항에 있어서,
상기 예측된 출력은 예측된 텍스트 세그먼트를 포함하고, 상기 실측 출력은 텍스트 세그먼트를 포함하는 프로세서에 의해 수행되는 방법. - 클라이언트 디바이스로서,
적어도 하나의 마이크;
적어도 하나의 디스플레이;
프로세서로 하여금 제1항 내지 제29항 중 어느 한 항의 방법을 수행하게 하기 위해 로컬로 저장된 명령들을 실행하는 하나 이상의 프로세서를 포함하는 클라이언트 디바이스. - 하나 이상의 프로세서에 의해 실행될 때 하나 이상의 프로세서로 하여금 제1항 내지 제29항 중 어느 한 항의 방법을 수행하게 하는 명령들을 포함하는 비-일시적 컴퓨터 판독 가능 저장 매체.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201962872140P | 2019-07-09 | 2019-07-09 | |
US62/872,140 | 2019-07-09 | ||
PCT/US2019/054314 WO2021006920A1 (en) | 2019-07-09 | 2019-10-02 | On-device speech synthesis of textual segments for training of on-device speech recognition model |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20210102456A KR20210102456A (ko) | 2021-08-19 |
KR102413616B1 true KR102413616B1 (ko) | 2022-06-27 |
Family
ID=68296774
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020217024199A KR102413616B1 (ko) | 2019-07-09 | 2019-10-02 | 온-디바이스 음성 인식 모델 트레이닝을 위한 텍스트 세그먼트의 온-디바이스 음성 합성 |
Country Status (6)
Country | Link |
---|---|
US (4) | US11127392B2 (ko) |
EP (1) | EP3791383B1 (ko) |
JP (1) | JP7104247B2 (ko) |
KR (1) | KR102413616B1 (ko) |
CN (2) | CN118865957A (ko) |
WO (1) | WO2021006920A1 (ko) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10605172B2 (en) | 2013-03-14 | 2020-03-31 | United Technologies Corporation | Low noise turbine for geared gas turbine engine |
KR102413616B1 (ko) | 2019-07-09 | 2022-06-27 | 구글 엘엘씨 | 온-디바이스 음성 인식 모델 트레이닝을 위한 텍스트 세그먼트의 온-디바이스 음성 합성 |
US11545133B2 (en) * | 2020-10-12 | 2023-01-03 | Google Llc | On-device personalization of speech synthesis for training of speech model(s) |
US11676572B2 (en) | 2021-03-03 | 2023-06-13 | Google Llc | Instantaneous learning in text-to-speech during dialog |
CN113129870B (zh) * | 2021-03-23 | 2022-03-25 | 北京百度网讯科技有限公司 | 语音识别模型的训练方法、装置、设备和存储介质 |
US11823697B2 (en) | 2021-08-20 | 2023-11-21 | Google Llc | Improving speech recognition with speech synthesis-based model adapation |
WO2023059959A1 (en) * | 2021-10-06 | 2023-04-13 | Google Llc | Fusion of acoustic and text representations in an automatic speech recognition system implemented as a rnn-t |
US20230177382A1 (en) * | 2021-12-02 | 2023-06-08 | Google Llc | Method(s) and system(s) for improved efficiency in federated learning of machine learning model(s) |
US20230317082A1 (en) * | 2022-03-31 | 2023-10-05 | Google Llc | Generating and/or utilizing unintentional memorization measure(s) for automatic speech recognition model(s) |
CN114898733A (zh) * | 2022-05-06 | 2022-08-12 | 深圳妙月科技有限公司 | Ai语音数据的分析处理方法及系统 |
KR102715213B1 (ko) * | 2024-02-27 | 2024-10-11 | 주식회사 리턴제로 | 음성데이터 내 단어 분석을 통한 화자 분리 장치 및 방법 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150161983A1 (en) | 2013-12-06 | 2015-06-11 | Fathy Yassa | Method and apparatus for an exemplary automatic speech recognition system |
US20190005947A1 (en) | 2017-06-30 | 2019-01-03 | Samsung Sds Co., Ltd. | Speech recognition method and apparatus therefor |
Family Cites Families (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0389294A (ja) * | 1989-08-31 | 1991-04-15 | Fujitsu Ltd | 語学訓練装置 |
JPH11338489A (ja) * | 1998-05-25 | 1999-12-10 | Ricoh Co Ltd | 音声認識装置および音声認識方法および記録媒体 |
JP3457578B2 (ja) | 1999-06-25 | 2003-10-20 | Necエレクトロニクス株式会社 | 音声合成を用いた音声認識装置および音声認識方法 |
US7668718B2 (en) * | 2001-07-17 | 2010-02-23 | Custom Speech Usa, Inc. | Synchronized pattern recognition source data processed by manual or automatic means for creation of shared speaker-dependent speech user profile |
US7013276B2 (en) * | 2001-10-05 | 2006-03-14 | Comverse, Inc. | Method of assessing degree of acoustic confusability, and system therefor |
US8818793B1 (en) * | 2002-12-24 | 2014-08-26 | At&T Intellectual Property Ii, L.P. | System and method of extracting clauses for spoken language understanding |
JP2005043461A (ja) * | 2003-07-23 | 2005-02-17 | Canon Inc | 音声認識方法及び音声認識装置 |
WO2005071663A2 (en) * | 2004-01-16 | 2005-08-04 | Scansoft, Inc. | Corpus-based speech synthesis based on segment recombination |
JP4291728B2 (ja) * | 2004-04-15 | 2009-07-08 | 日本電信電話株式会社 | 音声認識方法およびこの方法を実施する装置 |
US7509259B2 (en) * | 2004-12-21 | 2009-03-24 | Motorola, Inc. | Method of refining statistical pattern recognition models and statistical pattern recognizers |
US20070055526A1 (en) * | 2005-08-25 | 2007-03-08 | International Business Machines Corporation | Method, apparatus and computer program product providing prosodic-categorical enhancement to phrase-spliced text-to-speech synthesis |
US7698140B2 (en) * | 2006-03-06 | 2010-04-13 | Foneweb, Inc. | Message transcription, voice query and query delivery system |
US7472061B1 (en) * | 2008-03-31 | 2008-12-30 | International Business Machines Corporation | Systems and methods for building a native language phoneme lexicon having native pronunciations of non-native words derived from non-native pronunciations |
US9236047B2 (en) * | 2010-05-21 | 2016-01-12 | Microsoft Technology Licensing, Llc | Voice stream augmented note taking |
US10672399B2 (en) * | 2011-06-03 | 2020-06-02 | Apple Inc. | Switching between text data and audio data based on a mapping |
US10453479B2 (en) * | 2011-09-23 | 2019-10-22 | Lessac Technologies, Inc. | Methods for aligning expressive speech utterances with text and systems therefor |
JP5957269B2 (ja) | 2012-04-09 | 2016-07-27 | クラリオン株式会社 | 音声認識サーバ統合装置および音声認識サーバ統合方法 |
US9495966B2 (en) * | 2012-05-31 | 2016-11-15 | Elwha Llc | Speech recognition adaptation systems based on adaptation data |
WO2014144579A1 (en) * | 2013-03-15 | 2014-09-18 | Apple Inc. | System and method for updating an adaptive speech recognition model |
US10885918B2 (en) * | 2013-09-19 | 2021-01-05 | Microsoft Technology Licensing, Llc | Speech recognition using phoneme matching |
US9613619B2 (en) * | 2013-10-30 | 2017-04-04 | Genesys Telecommunications Laboratories, Inc. | Predicting recognition quality of a phrase in automatic speech recognition systems |
US9508338B1 (en) * | 2013-11-15 | 2016-11-29 | Amazon Technologies, Inc. | Inserting breath sounds into text-to-speech output |
US10325590B2 (en) * | 2015-06-26 | 2019-06-18 | Intel Corporation | Language model modification for local speech recognition systems using remote sources |
US9997155B2 (en) * | 2015-09-09 | 2018-06-12 | GM Global Technology Operations LLC | Adapting a speech system to user pronunciation |
US9792897B1 (en) * | 2016-04-13 | 2017-10-17 | Malaspina Labs (Barbados), Inc. | Phoneme-expert assisted speech recognition and re-synthesis |
US10909978B2 (en) * | 2017-06-28 | 2021-02-02 | Amazon Technologies, Inc. | Secure utterance storage |
JP6654611B2 (ja) * | 2017-12-05 | 2020-02-26 | 株式会社日立製作所 | 成長型対話装置 |
CN108133705A (zh) * | 2017-12-21 | 2018-06-08 | 儒安科技有限公司 | 基于对偶学习的语音识别与语音合成模型训练方法 |
CN108182936B (zh) | 2018-03-14 | 2019-05-03 | 百度在线网络技术(北京)有限公司 | 语音信号生成方法和装置 |
WO2020096073A1 (ko) * | 2018-11-05 | 2020-05-14 | 주식회사 시스트란인터내셔널 | 빅 데이터를 이용한 최적의 언어 모델 생성 방법 및 이를 위한 장치 |
US10388272B1 (en) * | 2018-12-04 | 2019-08-20 | Sorenson Ip Holdings, Llc | Training speech recognition systems using word sequences |
CN109887484B (zh) | 2019-02-22 | 2023-08-04 | 平安科技(深圳)有限公司 | 一种基于对偶学习的语音识别与语音合成方法及装置 |
KR102413616B1 (ko) | 2019-07-09 | 2022-06-27 | 구글 엘엘씨 | 온-디바이스 음성 인식 모델 트레이닝을 위한 텍스트 세그먼트의 온-디바이스 음성 합성 |
US10789956B1 (en) * | 2019-08-20 | 2020-09-29 | Capital One Services, Llc | Text-to-speech modeling |
-
2019
- 2019-10-02 KR KR1020217024199A patent/KR102413616B1/ko active IP Right Grant
- 2019-10-02 JP JP2021541637A patent/JP7104247B2/ja active Active
- 2019-10-02 US US16/959,546 patent/US11127392B2/en active Active
- 2019-10-02 CN CN202411118841.2A patent/CN118865957A/zh active Pending
- 2019-10-02 WO PCT/US2019/054314 patent/WO2021006920A1/en unknown
- 2019-10-02 EP EP19791047.4A patent/EP3791383B1/en active Active
- 2019-10-02 CN CN201980091350.4A patent/CN113412514B/zh active Active
-
2021
- 2021-09-20 US US17/479,285 patent/US11705106B2/en active Active
-
2023
- 2023-05-31 US US18/204,324 patent/US11978432B2/en active Active
-
2024
- 2024-05-06 US US18/656,197 patent/US20240290317A1/en active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150161983A1 (en) | 2013-12-06 | 2015-06-11 | Fathy Yassa | Method and apparatus for an exemplary automatic speech recognition system |
US20190005947A1 (en) | 2017-06-30 | 2019-01-03 | Samsung Sds Co., Ltd. | Speech recognition method and apparatus therefor |
Also Published As
Publication number | Publication date |
---|---|
CN113412514B (zh) | 2024-08-27 |
US11705106B2 (en) | 2023-07-18 |
EP3791383A1 (en) | 2021-03-17 |
WO2021006920A1 (en) | 2021-01-14 |
CN118865957A (zh) | 2024-10-29 |
US11978432B2 (en) | 2024-05-07 |
JP7104247B2 (ja) | 2022-07-20 |
JP2022531524A (ja) | 2022-07-07 |
US20230306955A1 (en) | 2023-09-28 |
US20220005458A1 (en) | 2022-01-06 |
KR20210102456A (ko) | 2021-08-19 |
US20210104223A1 (en) | 2021-04-08 |
US20240290317A1 (en) | 2024-08-29 |
CN113412514A (zh) | 2021-09-17 |
EP3791383B1 (en) | 2021-12-08 |
US11127392B2 (en) | 2021-09-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102413616B1 (ko) | 온-디바이스 음성 인식 모델 트레이닝을 위한 텍스트 세그먼트의 온-디바이스 음성 합성 | |
US11817080B2 (en) | Using corrections, of predicted textual segments of spoken utterances, for training of on-device speech recognition model | |
US11545133B2 (en) | On-device personalization of speech synthesis for training of speech model(s) | |
EP3469585B1 (en) | Scalable dynamic class language modeling | |
US11797772B2 (en) | Word lattice augmentation for automatic speech recognition | |
JP7400112B2 (ja) | 自動音声認識のための英数字列のバイアス付加 | |
CN115605951A (zh) | 多因素音频水印 | |
KR20230005966A (ko) | 거의 일치하는 핫워드 또는 구문 검출 | |
US20240112673A1 (en) | Identifying and correcting automatic speech recognition (asr) misrecognitions in a decentralized manner | |
KR20240154576A (ko) | 자동 스피치 인식 모델(들)에 대한 비의도적 기억화 측정치(들)를 생성 및/또는 활용 | |
WO2023154095A1 (en) | Altering a candidate text representation, of spoken input, based on further spoken input | |
CN117121098A (zh) | 机器学习模型的短暂学习 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A302 | Request for accelerated examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |