KR20220128397A - 자동 음성 인식을 위한 영숫자 시퀀스 바이어싱 - Google Patents

자동 음성 인식을 위한 영숫자 시퀀스 바이어싱 Download PDF

Info

Publication number
KR20220128397A
KR20220128397A KR1020227027865A KR20227027865A KR20220128397A KR 20220128397 A KR20220128397 A KR 20220128397A KR 1020227027865 A KR1020227027865 A KR 1020227027865A KR 20227027865 A KR20227027865 A KR 20227027865A KR 20220128397 A KR20220128397 A KR 20220128397A
Authority
KR
South Korea
Prior art keywords
context
finite state
alphanumeric
fst
generating
Prior art date
Application number
KR1020227027865A
Other languages
English (en)
Inventor
벤자민 하이노르
페타르 알렉시치
Original Assignee
구글 엘엘씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 구글 엘엘씨 filed Critical 구글 엘엘씨
Publication of KR20220128397A publication Critical patent/KR20220128397A/ko

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/26Speech to text systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • G06N3/0454
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/16Speech classification or search using artificial neural networks
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/18Speech classification or search using natural language modelling
    • G10L15/183Speech classification or search using natural language modelling using context dependencies, e.g. language models
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/18Speech classification or search using natural language modelling
    • G10L15/183Speech classification or search using natural language modelling using context dependencies, e.g. language models
    • G10L15/19Grammatical context, e.g. disambiguation of the recognition hypotheses based on word sequence rules
    • G10L15/193Formal grammars, e.g. finite state automata, context free grammars or word networks
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/28Constructional details of speech recognition systems
    • G10L15/30Distributed recognition, e.g. in client-server systems, for mobile phones or network applications

Abstract

캡처된 오디오 데이터에서 영숫자 시퀀스의 텍스트 표현을 결정할 수 있는 음성 프로세싱 기술이 개시된다. 다양한 구현예들은 캡처된 오디오 데이터에 대응하는 컨텍스트 정보에 기초하여 컨텍스트 바이어싱 유한 상태 변환기(FST)를 결정하는 것을 포함한다. 추가적인 또는 대안적인 구현예는 컨텍스트 바이어싱 FST를 사용하여 영숫자 시퀀스의 하나 이상의 후보 인식의 확률을 수정하는 것을 포함한다.

Description

자동 음성 인식을 위한 영숫자 시퀀스 바이어싱
자동 음성 인식(ASR) 기술은 자연어 입력을 텍스트로 변환한다. 예를 들어, 마이크로폰을 사용하여 캡처된 오디오 데이터는 텍스트로 변환될 수 있다. ASR 시스템은 후보 인식 세트를 생성하는데 사용하기 위한 ASR 모델을 포함할 수 있다. ASR 시스템은 후보 인식 세트로부터 생성된 텍스트를 선택할 수 있다.
인간은 본 명세서에서 "자동 어시스턴트"("디지털 에이전트", "챗봇", "대화형 개인 비서", "지능형 개인 비서", "어시스턴트 어플리케이션", "대화 에이전트" 등 이라고도 함)라 지칭되는 대화형 소프트웨어 어플리케이션을 이용하여 인간 대 컴퓨터 대화에 참여할 수 있다. 예를 들어, 인간(자동 어시스턴트와 상호작용할 때 "사용자"로 지칭될 수 있음)은 음성 자연어 입력(즉, 발화)을 사용하여 커맨드 및/또는 요청을 자동화 어시스턴트에 제공할 수 있으며, 이는 일부 경우에 텍스트로 변환된 후(예: ASR 기술을 사용하여 텍스트로 변환) 프로세싱될 수 있다.
본 명세서에 개시된 구현예들은 컨텍스트 바이어싱 유한 상태 변환기(FST)를 사용하여 영숫자 시퀀스를 포함하는 음성 발화의 텍스트 표현을 결정하는 것에 관한 것이다. 본 명세서에서 컨텍스트 바이어싱 FST는 또한 컨텍스트 FST, 컨텍스트 서면 도메인(written domain) 영숫자 문법 FST, 및 서면 도메인 영숫자 문법 FST로 지칭된다. 예를 들어, "DAY로 가는 나의 비행에 대해 알려줘(tell me about my flight to DAY)"라는 음성 발화는 데이턴 국제 공항을 나타내는 영숫자 시퀀스 'DAY'를 포함한다. 본 명세서에서 사용된 바와 같이, 영숫자 시퀀스는 알파벳 문자 및/또는 숫자의 조합을 포함할 수 있다. 일부 구현예에서, 본 명세서에서 사용되는 바와 같은 영숫자 시퀀스는 예상되는 문자 길이, 알파벳 문자 및/또는 숫자의 예상되는 패턴, 및/또는 하나 이상의 추가적인 예상 특징들을 갖는다. 예를 들어, 공항 코드는 예상 길이가 3 글자이고 예상 패턴이 제 1 알파벳 문자, 제 2 알파벳 문자, 및 제 3 알파벳 문자인 영숫자 시퀀스이다. 다른 예로서, 추적 번호는 예상 길이 및/또는 알파벳 문자 및/또는 숫자의 예상 패턴을 갖는 영숫자 시퀀스이다. 영숫자 시퀀스는 추적 번호, 공항 코드, 기지국 호출 번호(radio station call numbers), 개인 식별 번호, 시간, 우편 번호, 전화 번호 및/또는 추가 또는 대안적인 시퀀스를 포함할 수 있다.
자동 음성 인식(ASR) 시스템은 음성 발화의 텍스트 표현을 생성하는데 사용될 수 있다. 일부 구현예에서, ASR 시스템은 트레이닝 인스턴스들의 세트를 사용하여 트레이닝될 수 있으며, 트레이닝 인스턴스들의 세트는 영숫자 시퀀스를 포함하지 않는다. 추가적으로 또는 대안적으로, ASR 시스템은 트레이닝 인스턴스들의 세트를 사용하여 트레이닝될 수 있으며, 여기서 영숫자 시퀀스는 트레이닝 인스턴스들의 세트에서 임계값 미만의 횟수로 발생한다. 다시 말해, 본 명세서에 설명된 구현에 따른 컨텍스트 바이어싱 FST의 사용은, 트레이닝 데이터에 존재하지 않는 영숫자 시퀀스의 인식을 증가시킬 수 있고 및/또는 ASR 시스템을 트레이닝하는데 사용되는 트레이닝 데이터에서 드물게 마주치므로, 이러한 영숫자 시퀀스에 기초하여 ASR 시스템의 추가 트레이닝이 필요함이 없이 ASR 시스템의 정확도를 증가시킬 수 있다.
일부 구현예에서, ASR 시스템은 ASR 시스템의 ASR 모델 부분을 사용하여 음성 발화를 프로세싱하여 음성 발화의 하나 이상의 후보 인식들을 생성할 수 있다. 순환 신경망(RNN) 모델, 순환 신경망 변환기(RNN-T) 모델, 시퀀스 대 시퀀스 모델, 리슨 어텐드 스펠(LAS) 모델, 및/또는 음성 발화의 후보 인식을 생성하는데 사용될 수 있는 하나 이상의 추가 모델들을 포함하는 다양한 ASR 모델들이 사용되어 음성 발화의 후보 인식(들)을 생성할 수 있다.
ASR 시스템은 하나 이상의 후보 인식들의 확률들을 재평가(rescore)할 수 있다(예를 들어, 후보 인식들의 확률들을 증가 및/또는 감소시킴). 후보 인식 및/또는 재평가된 후보 인식은 ASR 시스템에 의해 사용되어 음성 발화의 텍스트 표현을 생성할 수 있다. ASR 시스템은 후보 인식들을 재채점하는데 사용되는 빔 검색 부분을 포함할 수 있다. 일부 구현예들에서, ASR 시스템은 컨텍스트 바이어싱 FST(들)를 사용하여 빔 검색 부분을 수정할 수 있다. 일부 구현예들에서, 빔 검색 부분은 한 번에 하나의 유닛의 후보 인식(들)을 구축함에 있어서, ASR 모델과 반복적으로(iteratively) 상호작용할 수 있다. 예를 들어, ASR 시스템은 ASR 모델로서 RNN-T 모델을 포함할 수 있다. ASR 시스템은 빔 검색 부분을 사용하여 RNN-T 모델을 사용하여 생성된 후보 인식을 수정하며, 여기서 빔 검색 부분은 얕은 융합을 통해 컨텍스트 FST(들)를 사용하여 수정된다.
컨텍스트 바이어싱 FST는 음성 발화에 대응하는 컨텍스트 정보에 기초하여 FST 엔진을 사용하여 선택될 수 있다. 다시 말해서, 컨텍스트 정보는 컨텍스트 정보에 매핑되는 하나 이상의 컨텍스트 바이어싱 FST를 선택하는데 직접 또는 간접적으로 사용될 수 있다. 일부 구현예에서, 음성 발화는 컨텍스트 엔진을 사용하여 프로세싱되어, 관련된 컨텍스트 정보를 결정할 수 있다. 추가적으로 또는 대안적으로, 추가 정보가 컨텍스트 엔진을 사용하여 프로세싱되어, 컨텍스트 정보를 결정할 수 있다. 추가 정보는 예를 들어, 다음을 포함할 수 있다: 음성 발화에 선행하는 컴퓨팅 시스템과 사용자 간의 대화에서 하나 이상의 이전 턴들(turns); 사용자 프로필에 저장된 사용자에 대한 정보; 컴퓨팅 시스템에 대한 정보; 하나 이상의 네트워킹된 하드웨어 디바이스에 대한 정보(예를 들어, 네트워킹된 스마트 온도조절기, 네트워킹된 스마트 오븐, 네트워킹된 카메라 등); 및/또는 발화의 컨텍스트 관련된 추가 정보. 예를 들어, 온도조절기 온도와 관련된 컨텍스트 정보는 "온도를 72도까지 변경하라(turn)"라는 음성 발화에 기초하여 결정될 수 있다. 예컨대, 온도조절기 온도와 관련된 컨텍스트 정보는 가령, "변경(turn)", "온도", "상승(up)" 및/또는 "도(degree)" 와 같이 온도조절기 온도에 (개별적으로 혹은 일괄적으로(collectively)) 매핑될 수 있는 소정 용어(들)이 음성 발화에 존재하는지에 기초할 수 있다. 추가적으로 또는 대안적으로, 네트워킹된 스마트 온도조절기와 관련된 추가 정보가 컨텍스트 정보를 결정하는데 사용될 수 있다. 예를 들어, 발화를 수신하는 디바이스와 연결된 네트워킹된 스마트 온도조절기를 기반으로 추가 정보가 활용될 수 있다. 예시된 일례에서 "온도를 72도까지 변경하라"라는 음성 발화 및 네트워크로 연결된 스마트 온도조절기에 대한 추가 정보는 온도조절기 온도 컨텍스트 정보를 결정하기 위해 컨텍스트 엔진을 사용하여 프로세싱될 수 있다. 이러한 컨텍스트 정보는 FST 엔진을 사용하여 프로세싱되어, 온도 컨텍스트 바이어싱 FST를 선택할 수 있다. 온도 컨텍스트 바이어싱 FST는 1 또는 2 디지트의 예상 길이, 제 1 숫자 문자 다음에 제 2 숫자 문자가 후속되는 예상 구조, 및 예상 값 범위(예: 50에서 90 사이의 예상 범위)를 가질 수 있다. 일부 구현예에서, FST 엔진은 컨텍스트 정보와 관련된 다수의 컨텍스트 바이어싱 FST를 선택할 수 있다. 예를 들어, FST 엔진은 화씨 온도 컨텍스트 바이어싱 FST와 섭씨 온도 컨텍스트 바이어싱 FST를 선택할 수 있다. 화씨 온도 컨텍스트 바이어싱 FST는 화씨 온도의 예상 범위를 가질 수 있는 반면에, 섭씨 컨텍스트 바이어싱 FST는 이와 구별되는 섭씨 온도의 예상 범위를 가질 수 있다.
많은 구현예들에서, 컨텍스트 바이어싱 FST 는 영숫자 문법 FST에 기초하여 생성될 수 있다. 영숫자 문법 FST는 영숫자 시퀀스 유형에 대해 유효한 영숫자 시퀀스를 수용할 수 있다. 예를 들어, 공항 코드 영숫자 시퀀스에 대한 공항 코드 영숫자 문법은 제 1 알파벳 문자, 제 2 알파벳 문자, 및 제 3 알파벳 문자의 3개 문자 시퀀스의 다양한 조합을 받아들일 수 있다. 일부 구현예에서, 공항 코드 영숫자 문법은 유효한 공항 코드들에 대응하는 3개 문자의 가능한 조합들의 세브세트만을 받아들일 수 있다. 즉, 공항 코드 영숫자 문법은 알파벳 문자들의 가능한 3개의 문자 시퀀스들(17,000개가 넘음)을 모두 허용하는 대신에, 실제 공항 코드에 해당하는 알파벳 문자들의 3개의 문자 시퀀스만을 받아들이도록 구성될 수 있다. 일부 구현예에서, 가중되지 않은 워드피스 기반 억셉터 문법은 영숫자 문법 FST 및 스펠러 FST에 기초하여 생성될 수 있으며, 여기서 스펠러 FST는 워드피스들을 그들의 구성 자소들에 매핑할 수 있다. 가중되지 않은 워드피스 기반 억셉터 문법은 영숫자 문법의 유효한 워드피스 토큰화를 받아들일 수 있다. 예를 들어, 가중되지 않은 워드피스 기반 억셉터 문법은 로스앤젤레스 국제 공항을 나타내는 공항 코드 "LAX"의 유효한 워드피스 토큰화로서 "LAX", "L AX" 또는 "LA X"를 받아들일 수 있다. 또한, 일부 구현예에서, 가중되지 않은 워드피스 기반 억셉터 문법에 팩터 연산을 적용함으로써 팩터링된 FST가 생성될 수 있으며, 여기서 팩터링된 FST의 소정 상태에 도달하는 모든 경로들은 동일한 개수의 아크들을 횡단한다. 컨텍스트 바이어싱 FST는, 아크당 일정한 가중치를 팩터링된 FST에 적용함으로써 생성될 수 있다. 추가로 또는 대안적으로, 컨텍스트 바이어싱 FST는, 실패 트랜지션(failure transitions)이 팩터링된 FST에 대한 각 상태까지 누적된 누적 가중치와 동일하게 함으로써 생성될 수 있다.
따라서, 다양한 구현예들은 영숫자 시퀀스의 텍스트 표현을 생성하기 위하여 그리고 음성 인식이 보다 효율적 및/또는 정확할 수 있도록 하는 방식으로 수행되기 위하여 오디오 데이터를 프로세싱하기 위한 기술들을 개시한다. 본 명세서에 개시된 구현예들은 영숫자 시퀀스가, 낮은 사전 확률(low prior probability)을 갖거나(즉, ASR 시스템을 트레이닝하는데 사용되는 트레이닝 데이터에서 드물게 출현하는 경우) 또는 기본(underlying) ASR 시스템에 대한 어휘집(vocabulary)를 벗어난 경우에도, 영숫자 시퀀스의 텍스트 표현의 정확도를 증가시킨다. 이러한 방식 및 기타 방식으로, 소정의 영숫자 시퀀스를 포함하는 다수의(또는 심지어 임의의) 트레이닝 예제들에 대하여 ASR 시스템을 트레이닝할 때 리소스들을 사전에 활용하지 않고도, 상기 소정의 영숫자 시퀀스에 대해 정확한 음성 인식이 수행될 수 있다. 또한, 캡처된 오디오 데이터를 정확하게 인식하는 것은, 시스템에 의해서 잘못 인식된 오디오 데이터를 사용자가 반복할 필요가 없으므로(또는 잘못된 인식에 대한 수정 사항을 수동으로 입력해야함), 시스템 리소스(예컨대, 프로세서 사이클, 메모리, 배터리 전원 및/또는 컴퓨팅 시스템의 추가 리소스)를 절약할 수 있다. 이렇게 하면 사용자 입력 시간과 사용자-시스템 대화 시간이 단축된다. 또한, 시스템에 의해서 잘못 인식된 오디오 데이터를 사용자가 반복할 필요가 없으므로 사용자 경험이 향상될 수 있다.
앞선 설명은 본 명세서에 개시된 일부 구현예들의 개요로서만 제공된다. 본 기술의 이들 및 다른 구현예들은 아래에 추가로 자세히 설명될 것이다.
전술한 개념들 및 나중에 보다 상세히 후술되는 추가 개념들의 모든 조합들은 본 명세서 개시된 주제의 일부인 것으로 고려된다는 점을 이해해야 한다. 예를 들어, 본 개시물의 끝에 나타나는 청구된 주제의 모든 조합들은 여기에 개시된 주제의 일부인 것으로 고려된다.
도 1a는 본 발명의 다양한 구현예들에 따라 캡처된 오디오 데이터의 텍스트 표현을 생성하는 일례를 도시한다.
도 1b는 본 발명의 다양한 구현예들이 구현될 수 있는 예시적인 환경을 도시한다.
도 2는 본 발명의 다양한 구현예들에 따른 영숫자 문법 FST의 일례를 예시한다.
도 3은 본 명세서에 개시된 다양한 구현예들에 따른 가중되지 않은 워드피스 기반 억셉터 문법의 일례를 도시한다.
도 4는 본 발명의 다양한 구현예들에 따른 팩터링된(factored) FST의 예를 예시한다.
도 5는 본 발명의 다양한 구현예들에 따른 컨텍스트 바이어싱 FST의 예를 예시한다.
도 6은 본 발명의 다양한 구현예들에 따른 예시적인 프로세스를 예시하는 흐름도이다.
도 6은 본 발명의 다양한 구현예들에 따른 다른 예시적인 프로세스를 예시하는 흐름도이다.
도 7은 본 발명의 구현예들이 구현될 수 있는 다른 예시적인 환경을 도시한다.
도 8은 본 발명의 구현예들이 구현될 수 있는 다른 예시적인 환경을 도시한다.
도 9는 컴퓨팅 디바이스의 예시적인 아키텍처를 도시한다.
영숫자 시퀀스(alphanumeric sequences)의 정확한 인식은 음성 인식 어플리케이션에서 중요할 수 있다. 예를 들어, 사용자는 캘린더 이벤트를 추가하려고 할 수 있으며, 이벤트의 시간, 날짜 및 기간을 말하도록 자동 어시스턴트에 의해 요청될 수 있다. 본 명세서에 개시된 구현은 종단간(end-to-end) 음성 인식 시스템과 유한 상태 변환기(finite state transducers)로 표현되는 서면 도메인(written domain) 영숫자 문법 사이의 얕은 융합(shallow fusion)을 사용하여 영숫자 엔티티를 인식하기 위한 컨텍스트 음성 인식 기술에 관한 것이다. 유한 상태 변환기로 서면 도메인의 영숫자 엔티티들을 나타내는 문법들을 자동으로 변환하기 위한 접근법이 제공되며, 이는 빔 검색 동안 이러한 문법들과 일치하는 가설들의 확률을 높이는데 사용될 수 있다.
영숫자 시퀀스의 정확한 인식은 자동 음성 인식(ASR)을 사용하는 많은 어플리케이션들에 있어서 매우 중요한 작업이다. 주소, 시간, 날짜, 디지트(digit) 시퀀스 등과 같은 영숫자 시퀀스를 인식하는 것은 대화 컨텍스트와 같은 특정 컨텍스트에서 종종 요구되는 매우 어려운 작업이 될 수 있다. 예를 들어, 사용자는 알람 또는 캘린더 이벤트를 설정하도록 음성 제어 디지털 어시스턴트에게 커맨드를 제공할 수 있으며, 이후 알람 시간 또는 캘린더 이벤트 기간을 지정하도록 요청받을 수 있다. 이러한 종류의 컨텍스트 시나리오에서 음성 인식 오류는 사용자 경험에 상당한 영향을 미칠 수 있다.
다양한 영숫자 시퀀스 유형이 주어지면, 새로운 컨텍스트 및 영숫자 엔티티 유형에 쉽게 적응할 수 있는 유연한 ASR 시스템을 갖는 것이 중요하다. 따라서, 특히 트레이닝 데이터에서 잘 표현되지 않을 수 있는 영숫자 시퀀스에 대하여, ASR 정확도를 개선하기 위해 이용가능한 컨텍스트 정보를 통합하는 것이 중요하다.
컨텍스트 정보의 다양한 관련 소스들이 있을 수 있다. 예를 들어, 다른 국가의 우편번호와 전화번호는 다른 포맷을 가질 수 있으므로, 위치(location)는 컨텍스트 신호로서 사용될 수 있다. 유사하게, 대화 차례에서, 사용자는 특정 길이의 디지트 시퀀스를 입력하라는 요청을 받을 수 있다. 이러한 컨텍스트 지식을 활용하지 못하는 ASR 시스템은 잠재적으로 숫자 엔티티들에 대한 인식 정확도가 낮을 수 있다.
컨텍스트 정보는 종래의 ASR 시스템의 인식 정확도를 개선하는데 사용될 수 있다. ASR 시스템을 특정 컨텍스트에 즉시(on the fly) 적응시키기 위하여, 다양한 컨텍스트 신호들(예컨대, 위치, 대화 상태, 표면 등)이 활용될 수 있다. 즉시 리스코어링(on-the-fly rescoring) 및 유한 상태 변환기 컨텍스트 모델이 컨텍스트 ASR 시스템에서 이용될 수 있다. 기존의 ASR 시스템은 컨텍스트 정보와 함께 버벌라이저(verbalizers) 및 클래스 기반 시스템을 사용하여 숫자 시퀀스의 품질을 개선하는 문제를 해결해왔다.
유사하게, 컨텍스트 정보는 종단간(end to end: E2E) ASR 시스템에서 이용될 수 있다. 예를 들어, E2E ASR 시스템에서 컨텍스트 음성 인식에 대한 일반적인 접근법은 얕은 융합 언어 모델을 사용할 수 있다. 추가적인 및/또는 대안적인 기술은 추론 프로세스를 적응시키는 것을 포함할 수 있고 그리고 빔 검색(beam search)의 각 단계에서 출력 가능성을 조정함으로써 컨텍스트 신호를 활용할 수 있다. 제안된 방법은 E2E 시스템의 예측에 컨텍스트를 통합하는 효율성을 보여주는 LAS(Listen Attend Spell) E2E 모델에서 평가될 수 있다.
또한, 기술들은 검색 오류를 최소화할 수 있으며, 검색 오류는 E2E 음성 인식 시스템에서 사용되는 얕은 빔(shallow beam)으로 인해 일반적일 수 있다. 시스템은 순환 신경망 변환기(recurrent neural network transducer: RNN-T)를 사용하여 평가할 수 있다. 빔 검색 중에 출력 가능성은 가지치기(pruning) 전에 외부 모델에 의해 재기록된다(rescored). 외부 모델은 양수 또는 음수 가중치로 워드피스 출력에 대한 확률을 제공할 수 있다. 검색 오류를 줄이기 위해 시스템은 컨텍스트 모델에 있는 단어들의 접두어들의 확률을 높이고, 그리고 실패한 매칭들에 대한 확률들을 철회한다(retract). 이 방법을 사용하면, 잠재적으로 컨텍스트 모델로부터 단어로 이어질 수 있는 경로들의 확률이 빔 검색 동안 증가한다. 접두사가 매칭을 중지하면 점수가 철회된다. 이 기술은 통신 및 매체 작업을 포함하는 다양한 컨텍스트 음성 어플리케이션에서 유망한 것으로 입증되었다.
이러한 시스템의 한계는 문구들의 목록으로부터 컨텍스트 모델을 오직 구축할 수 있다는 것이다. 숫자 클래스(예: 10자리 숫자 시퀀스)에 대한 컨텍스트 ASR을 지원하기 위하여, 모든 10자리 숫자들이 열거될 필요가 있을 것이다. 이것은 많은 수의 요소들을 갖는 클래스들의 경우(예컨대, 우편 번호, 전화 번호 등), 계산적으로 엄청나게 비싸다(예컨대, 메모리 및/또는 프로세서와 관련하여).
E2E 시스템에서 컨텍스트 음성 인식에 대한 대안적인 기술인 CLAS(Contextual Listen, Attend and Spell)가 이용될 수 있다. 그러나 CLAS 기술은 많은 수의 문구들에 대해서는 확장성이 열악하다.
E2E 시스템에서 영숫자 엔티티 인식을 개선하기 위해 다양한 접근법들이 이용될 수 있다. 서면 텍스트 음성 변환(written text-to-speech (TTS)) 시스템에서, TTS 시스템은 트레이닝을 위해 이용될 영숫자 엔티티를 포함하는 합성 쿼리를 생성하는데 사용된다. 이러한 접근 방식은 생성된 트레이닝 데이터와 유사한 쿼리 및 음성을 사용하여 생성된 테스트 세트에 대해서는 개선을 보여주었지만, 일반적인 테스트 세트에서 대해서는 약간의 회귀(regression)가 발생하였다. 이러한 접근 방식들은 범용 숫자 엔티티 인식에 유용할 수 있지만, 이들 접근 방식들은 모듈식 및/또는 확장가능하지 않으며, 그리고 사용자가 시간에 대한 프롬프트에 응답하는 것과 같은 컨텍스트 영숫자 엔티티 인식 시나리오를 해결할 수 없다.
E2E 시스템들이 기존 모델과 경쟁하게 됨에 따라, 이러한 시스템들이 영숫자 엔티티에 대해 필적할만한 인식 성능을 갖도록 보장하는 것이 유리하다. E2E ASR 시스템은 명시적 버벌라이저(verbalizers) 또는 어휘(lexicons)을 사용하지 않으며 그리고 제한된 컨텍스트 ASR 능력만을 가지므로, 이들은 가령, 복잡한 언어화 규칙과 함께 매우 긴 꼬리(tail) 숫자 엔티티를 갖는 영숫자 엔티티와 같은, E2E 모델 트레이닝 데이터에서 잘 표현되지 않고 소정 컨텍스트에서만 필요한 특정 클래스의 영숫자 엔티티에 대해서는 잘 수행되지 않을 수 있다.
다양한 구현예들은 E2E 음성 인식기와 유한 상태 변환기로 표현되는 기록된 도메인 영숫자 문법 사이의 얕은 융합을 사용하여 영숫자 엔티티를 인식하기 위한 컨텍스트 음성 인식 기술에 관한 것이다. E2E 음성 인식 시스템에서 빔 검색 동안 이러한 문법들과 일치하는 가설들의 확률을 높이는데 사용할 수 있는 FST로, 서면 도메인의 영숫자 엔티티를 나타내는 문법을 자동으로 변환하기 위한 접근법이 제공된다.
일부 구현예에서, E2E RNN-T 기반 ASR 시스템이 이용될 수 있다. 빔 검색 동안 워드피스 기반 RNN-T와 컨텍스트(Contextual) FST를 융합함으로써 컨텍스트 ASR이 달성될 수 있다. 여기에 설명된 기술들은 E2E ASR 시스템에 영숫자 컨텍스트를 추가하기 위한 기술을 소개한다. 이러한 기술은 숫자 문법들로부터 영숫자 컨텍스트 FST를 구축하고 그리고 이들을 컨텍스트 E2E ASR 시스템에 통합하는 방법을 다룬다.
대응하는 영숫자 문법 기반 컨텍스트 FST를 생성하기 위해 영숫자 문법이 프로세싱될 수 있다. 결과적인 컨텍스트 FST는 영숫자 컨텍스트 FST 인벤토리에 저장될 수 있다. 인식시에, 컨텍스트상으로 관련된 FST를 인벤토리로부터 페치(fetch)하기 위하여, 컨텍스트 정보가 분석될 수 있다. 이들 FST들은 소정의 숫자 문법과 일치하는 가설의 확률을 높이기 위해 빔 검색 동안 RNN-T 가중치로 보간되는 가중치를 제공한다.
영숫자 컨텍스트 FST가 페치되어야 하는지 여부를 결정하기 위해 사용되는 컨텍스트 정보는 예를 들어, 특정한 대화 상태일 수 있다. 예를 들어, 알람 시간에 대하여 사용자가 프롬프트된다면, 시간 숫자 컨텍스트 FST가 인벤토리로부터 페치될 수 있다. 마찬가지로 컨텍스트 정보는 사용자가 사용하는 디바이스의 유형일 수 있다. 사용자가 스마트 라디오 시스템을 사용하는 경우, 라디오 스테이션 컨텍스트 FST가 페치될 것이며 그리고 컨텍스트 ASR에 사용될 것이다.
사전컴파일된(precompiled) 문법을 사용하는 기술들이 본 명세서에 서술되지만, 영숫자 문법을 즉석에서 영숫자 컨텍스트 FST로 변환하는 것도 가능하다. 이는 특정 API를 통해 즉석에서 지정되는 커스텀, 클라이언트 제공 영숫자 문법을 지원하는데 특히 유용할 수 있다.
특정 유형의 영숫자 엔티티에 대한 컨텍스트 FST 를 구축하기 위해, 다양한 구현예들은 서면(written) 도메인 영숫자 문법으로 시작한다. 이 기술은 스트링(string) "200" 또는 "202"를 허용하는 간단한 문법의 일례와 함께 설명된다. 일반적으로 영숫자 문법은 복잡할 수 있으며 예를 들어, 시간, 백분율, 디지트 시퀀스 등을 나타낼 수 있다. 서면 도메인 영숫자 문법은 G로 표시된다. 문자 _ 는 단어의 시작을 나타내는데 사용된다.
E2E RNN-T ASR 시스템에서 컨텍스트 ASR에 사용되기 위해, 영숫자 문법 FST는 "스펠러(speller)" 기법과 유사한 기술을 사용하여 워드피스로 변환될 필요가 있다. 스펠러 FST S는 워드피스로부터 그 워드피스의 구성 자소(constituent graphemes)로 변환한다. S 를 사용하여, 가중되지 않은 워드피스 기반 억셉터 문법 U 는 수학식 1에서 FST 연산을 이용하여 생성될 수 있다. 가중되지 않은 워드피스 기반 억셉터 문법 FST는 문법 G에서 스트링들의 모든 유효한 워드피스 레벨 토큰화들을 수락한다. 예시된 일례에서 숫자 " 200"은 " 20 0", " 2 0 0" 또는 " 2 00"이라는 워드피스들로 토큰화될 수 있다.
Figure pct00001
(1)
기존 컨텍스트 ASR 시스템과 통합하기 위해, 컨텍스트 FST는 부분 매치들에 대한 페널티를 감산하는 실패 트랜지션(failure transitions)을 가질 수 있다. 따라서 동일한 상태로 이어지는 모든 경로들은 동일한 누적 가중치를 가져야 한다. 컨텍스트 FST에서 매칭되는 아크 당(per matching arc) 일정한 가중치를 적용하면, 애매모호한 실패 가중치 문제가 발생할 수 있다. 이 문제를 해결하기 위하여, 팩터 가중치 1과 함께 FactorFST 연산을 사용하여, 임의의 상태에서, 해당 상태에 대한 누적 경로 가중치가 동일하도록 할 수 있다. 임의의 상태에서, 해당 상태에 도달하기 위해 이동한 아크들의 누적 개수는, 이제 해당 상태에 도달하기 위해 취해진 경로와 관계없이 동일하다. 팩터 연산에 대한 대안적인 솔루션은 트리 FST를 만드는 것이다. 하지만, 일부 구현예에서 이러한 트리는 N자리 숫자와 같은 간단한 문법에 대해 기하급수적으로 커질 수 있다.
마지막으로, 가중치 및 실패 트랜지션이 팩터링된(factored) FST에 적용되어, 가중된 컨텍스트 FST C가 생성된다. 본 일례에서, 아크 당 일정한 가중치가 적용될 수 있지만, 다른 전략에서는 소정 상태에 도달하기 위해 이동한 아크들의 개수의 함수로서 가중치가 적용될 수 있다. 2개의 전략들 모두는, 임의의 소정 상태에서 일정한 누적 경로 가중치를 가져오므로, 실패 트랜지션에 대해 일관된 가중치를 제공한다. 이러한 FST의 경우, 동일한 숫자 시퀀스의 상이한 토큰화들은 상이한 가중치들을 갖는다는 점에 유의해야 한다. 추가적으로 또는 대안적으로, 가중치들은 자소 깊이(grapheme depth)(FST의 상태에 도달하는데 필요한 자소들의 누적 개수)의 함수로 적용될 수 있으며, 이는 결과적으로 동일한 가중치를 갖는 동일한 숫자 시퀀스를 스펠링하는 모든 경로들을 유발할 수 있어, 일부 사용 일례들에 대한 잠재적으로 바람직한 속성을 가질 수 있다.
컨텍스트 FST의 가중치는 수학식 2에 따라 빔 검색 동안 확률들을 수정하는데 사용될 수 있다. s(y)로 표시된 라벨 y의 로그 확률은 팩터 αloglog Pc(y)에 의해 수정되며, 여기서 α는 보간 가중치이고, 그리고 loglog Pc(y)는 컨텍스트 FST에 의해 제공되는 가중치이다(라벨 y가 C의 아크와 매칭되는 경우). 만일, 라벨 y가 C의 아크와 매칭되지 않는다면, 로그 확률 s(y)는 수정되지 않는다.
Figure pct00002
(2)
컨텍스트 FST 를 구축하고 사용하는 프로세스는 다음과 같이 요약될 수 있다. (1) 비순환적 문자 기반(acyclic character based) FST G 를 구축한다. (2) 워드피스들을 구성 자소들에 매핑하는 "스펠러" FST S를 형성한다. (3) S 및 G를 사용하여 가중되지 않은 워드피스 기반 억셉터 문법을 계산한다(수학식 1에 설명된 바와 같이). (4) 소정 상태로 도달하는 임의의 경로가 동일한 개수의 아크들을 이동함을 보장하도록, 팩터 연산을 적용하여 팩터링된 FST F를 생성한다. (5) 아크 당 일정한 가중치 및 이러한 포인트까지 누적된 누적 가중치와 동일한 실패 트랜지션들을 적용하여, 컨텍스트 바이어싱 FST C를 획득한다. (6) 수학식 2에 설명된 바와 같이, 컨텍스트 FST 를 이용하여 빔 검색 동안 매칭 라벨들의 확률들을 수정한다.
앞선 단락들은 다양한 구현예들의 개요로서 제공된다. 이들 및 다른 구현예들은 이제 도면들과 관련하여 더 상세히 설명된다. 도 1a는 다양한 구현예에 따라 컨텍스트 바이어싱 유한 상태 변환기(contextual biasing finite state transducers)를 사용하여 오디오 데이터의 텍스트 표현을 생성하는 일례를 도시한다. 예시된 일례(100)에서, 하나 이상의 영숫자 시퀀스(102)를 포함하는 오디오 데이터는 컨텍스트 엔진(104) 및 ASR 모델(114)을 사용하여 프로세싱된다. 오디오 데이터(102)는 클라이언트 디바이스의 마이크에 의해 캡처된 음성 자연어와 같은 캡처된 오디오 데이터일 수 있다. 컨텍스트 엔진(104)은 오디오 데이터(102)를 프로세싱하여, 프로세싱된 오디오 데이터에 대응하는 컨텍스트 정보(108)를 생성할 수 있다. 예를 들어, 컨텍스트 엔진(104)은 "DAY로 가는 나의 비행에 대해 알려줘"라는 발음된 음성에 기초하여 비행에 관한 컨텍스트 정보를 결정할 수 있으며, 여기서 DAY는 데이턴 국제 공항을 나타내는 공항 코드 영숫자 시퀀스이다.
일부 구현예들에서, 컨텍스트 엔진(104)은 컨텍스트 정보(108)를 생성하기 위해 추가 정보(106)를 프로세싱할 수 있다. 추가 정보(106)는 오디오 데이터(102)에 선행하는 사용자-컴퓨팅 디바이스 대화 내의 하나 이상의 이전 턴(turn); 사용자 프로필에 저장된 사용자 정보; 클라이언트 디바이스 정보; 및/또는 현재 대화 세션, 이전 대화 세션, 디바이스, 사용자, 및/또는 기타 컨텍스트 정보에 관한 추가 정보를 포함할 수 있다. 예를 들어, 추가 정보(106)는 오하이오주 데이턴으로의 비행을 나타내는 캘린더 엔트리를 포함할 수 있다. 일부 구현예에서, 컨텍스트 엔진(104)은 오디오 데이터(102) 이외에도 추가 정보(106)를 프로세싱하여 컨텍스트 정보(108)를 생성할 수 있다. 예를 들어, 컨텍스트 엔진(104)은 "DAY로 가는 나의 비행에 대해 알려줘"라는 오디오 데이터(102) 및 오하이오주 데이턴으로의 비행을 나타내는 캘린더 엔트리의 추가 정보(106)를 프로세싱하여 컨텍스트 정보(108)를 생성할 수 있다. 일부 다른 구현예들에서, 컨텍스트 엔진(104)은 오디오 데이터(102)를 프로세싱하지 않고 추가 정보(106)를 프로세싱하여 컨텍스트 정보(108)를 생성할 수 있다.
FST 엔진(110)은 컨텍스트 정보(108)를 프로세싱하여 컨텍스트 정보에 대응하는 하나 이상의 컨텍스트 FST(112)를 결정할 수 있다. 컨텍스트 FST(112)는 오디오 데이터(102)의 하나 이상의 후보 텍스트 인식들(116)의 확률들을 수정하는데 사용될 수 있다. 예를 들어, FST 엔진(110)은 비행을 나타내는 컨텍스트 정보(108)에 기초하여 공항 코드 컨텍스트 FST(112)를 결정할 수 있다.
추가적으로 또는 대안적으로, 오디오 데이터(102)는 ASR 엔진을 사용하여 프로세싱될 수 있다. 예를 들어, 오디오 데이터(102)는 오디오 데이터의 하나 이상의 후보 텍스트 인식(116)을 생성하기 위해, ASR 엔진의 ASR 모델(114) 부분을 사용하여 프로세싱될 수 있다. ASR 모델(114)은 순환 신경망(RNN) 모델, 순환 신경망-변환기(RNN-T) 모델, 시퀀스 대 시퀀스 모델, 리슨 어텐드 스펠(listen attend spell: LAS) 모델, 및 /또는 음성 발화의 후보 인식을 생성하는데 사용하기 위한 하나 이상의 추가 모델을 포함하는 다양한 머신 러닝 모델들을 포함할 수 있다. 추가적으로 또는 대안적으로, ASR 엔진은 빔 검색 부분을 포함할 수 있으며, 이는 후보 인식들(116)로부터 텍스트 표현을 선택하는데 이용될 수 있다. 일부 구현예에서, 컨텍스트 FST(들)는 ASR 엔진(118)의 빔 검색 부분을 수정함으로써 하나 이상의 후보 인식(116)의 확률을 수정할 수 있다. 이러한 구현예들 중 일부에서, 컨텍스트 FST(들)(112)는 얕은 융합을 통해 ASR 엔진(118)의 빔 검색 부분을 수정하는데 이용될 수 있다. 예를 들어, 공항 코드 컨텍스트 FST는 "DAY 까지의(to DAY)"에 대한 후보 텍스트 인식(들)의 확률을 증가시키고 및/또는 "오늘(today)"에 대한 후보 텍스트 인식(들)의 확률을 감소시키는데 사용될 수 있다.
도 1b는 여기에 개시된 다양한 구현예들이 구현될 수 있는 예시적인 환경을 도시한다. 예시적인 환경(150)은 클라이언트 디바이스(152)를 포함한다. 클라이언트 디바이스(152)는 ASR 엔진(115), 컨텍스트 엔진(104), FST 엔진(110), 추가 또는 대안 엔진(들)(도시되지 않음), ASR 모델(114), 및/또는 추가 또는 대안적인 모델(들)(미도시)를 포함할 수 있다. 추가적으로 또는 대안적으로, 클라이언트 디바이스(152)는 컨텍스트 FST(들)(112)와 연관될 수 있다. 많은 구현예에서, 컨텍스트 FST(들)(112)는 클라이언트 디바이스에 로컬로 저장될 수 있고, 가령, 영숫자 시퀀스를 포함하는 음성 발화와 같은음성 발화의 후보 인식들의 확률을 수정하는데 이용될 수 있으며, 여기서 후보 인식들은 음성 발화의 텍스트 표현을 생성하는데 이용된다. 일부 구현예에서, 클라이언트 디바이스(152)는 사용자 인터페이스 입력/출력 디바이스(미도시)를 포함할 수 있으며, 이는 예를 들어, 물리적 키보드, 터치 스크린(예를 들어, 가상 키보드 또는 다른 텍스트 입력 메커니즘을 구현함), 마이크로폰, 카메라, 디스플레이 화면 및/또는 스피커를 포함할 수 있다. 사용자 인터페이스 입력/출력 디바이스는 사용자의 하나 이상의 클라이언트 디바이스(152)와 통합될 수 있다. 예를 들어, 사용자의 휴대 전화는 사용자 인터페이스 입력 출력 디바이스를 포함할 수 있고; 독립형 디지털 어시스턴트 하드웨어 디바이스는 사용자 인터페이스 입력/출력 디바이스를 포함할 수 있으며; 제 1 컴퓨팅 디바이스는 사용자 인터페이스 입력 디바이스(들)를 포함할 수 있고 별도의 컴퓨팅 디바이스는 사용자 인터페이스 출력 디바이스(들)를 포함할 수 있다(기타 등등). 일부 구현예들에서, 클라이언트 디바이스(152)의 모든 또는 일부 양상들은 사용자 인터페이스 입력/출력 디바이스들을 또한 포함하는 클라이언트 디바이스 상에서 구현될 수 있다. 일부 구현예에서, 클라이언트 디바이스(152)는 자동 어시스턴트(미도시)를 포함할 수 있고, 자동 어시스턴트의 모든 또는 일부 양상들은 사용자 인터페이스 입력/출력 디바이스를 포함하는 클라이언트 디바이스로부터 분리되고 원격인 컴퓨팅 디바이스(들) 상에서 구현될 수 있다(예를 들어, 모든 또는 일부 양상들이 "클라우드에서" 구현될 수 있음). 이들 구현예들 중 일부에서, 자동 어시스턴트의 이러한 양상들은 로컬 영역 네트워크(LAN: Local Area Network) 및/또는 광역 네트워크(WAN: Wide Area Network)(예를 들어, 인터넷)과 같은 하나 이상의 네트워크를 통해 컴퓨팅 디바이스와 통신할 수 있다.
클라이언트 디바이스(152)의 일부 비제한적인 일례들은 데스크탑 컴퓨팅 디바이스, 랩톱 컴퓨팅 디바이스, 자동화 어시스턴트에 적어도 부분적으로 전용된 독립형 하드웨어 디바이스, 태블릿 컴퓨팅 디바이스, 모바일 폰 컴퓨팅 디바이스, 차량의 컴퓨팅 디바이스(예를 들어, 차량 내 통신 시스템, 및 차량 내 엔터테인먼트 시스템, 차량 내 내비게이션 시스템), 또는 컴퓨팅 디바이스를 포함하는 사용자의 웨어러블 장치(예를 들어, 컴퓨팅 디바이스를 갖는 사용자의 시계, 컴퓨팅 디바이스를 갖는 사용자의 안경, 가상 또는 증강 현실 컴퓨팅 디바이스)를 포함한다. 추가적인 및/또는 대안적인 컴퓨팅 시스템이 제공될 수 있다. 클라이언트 디바이스(152)는 데이터 및 소프트웨어 어플리케이션의 저장을 위한 하나 이상의 메모리, 데이터에 액세스하고 어플리케이션을 실행하기 위한 하나 이상의 프로세서, 및 네트워크를 통한 통신을 용이하게 하는 다른 구성요소를 포함할 수 있다. 클라이언트 디바이스(152)에 의해 수행되는 동작은 다수의 컴퓨팅 디바이스들에 걸쳐 분산될 수 있다. 예를 들어, 하나 이상의 위치들에 있는 하나 이상의 컴퓨터들에서 실행되는 컴퓨팅 프로그램들은 네트워크를 통해 서로 연결될 수 있다.
도 1b에 예시된 바와 같이, 컨텍스트 FST 생성 엔진(156)은 컨텍스트 FST(들)(112)를 생성할 수 있다. 일부 구현예에서, 컨텍스트 FST 생성 엔진(156)은 영숫자 시퀀스를 수용할 수 있는 서면 도메인(written domain) 영숫자 문법 FST를 결정할 수 있다. 예를 들어, 도 2의 영숫자 문법 FST(200)는 "200" 및 "202"의 영숫자 시퀀스를 수용할 수 있다. 일부 구현예에서, 영숫자 문법 FST는 비순환 방향성 그래프(acyclic directed graph)이다. 일부 구현예에서, 컨텍스트 FST 생성 엔진(156)은 영숫자 문법 FST를 생성할 수 있다. 추가적으로 또는 대안적으로, 컨텍스트 FST 생성 엔진(156)은 추가 엔진에 의해 생성된 영숫자 문법 FST를 선택할 수 있다.
컨텍스트 FST 생성 엔진(156)은 스펠러(speller) FST를 결정할 수 있으며, 스펠러 FST는 워드피스들을 해당 워드피스의 구성 자소들에 매핑한다. 일부 구현예들에서, 컨텍스트 FST 생성 엔진(156)은 스펠러 FST를 생성할 수 있다. 추가적으로 또는 대안적으로, 컨텍스트 FST 생성 엔진(156)은 추가 엔진(미도시)에 의해 생성된 스펠러 FST를 선택할 수 있다. 일부 구현예들에서, 컨텍스트 FST 생성 엔진(156)은 스펠러 FST 및 영숫자 문법 FST를 사용하여 가중되지 않은 워드피스 기반 억셉터 문법 FST를 생성할 수 있다. 가중되지 않은 워드피스 억셉터 문법은 영숫자 문법 FST의 스트링들에 대한 유효한 워드피스 레벨 토큰화를 수락할 수 있다. 예를 들어, 도 3의 가중되지 않은 워드피스 기반 억셉터 문법(300)은 스트링 "2 00", "2 0 0", "2 0 2", "20 2" 및 "20 0"을 수용할 수 있다.
일부 구현예들에서, 컨텍스트 FST 생성 엔진(156)은 가중되지 않은 워드피스 기반 억셉터 문법에 팩터 연산을 적용함으로써, 팩터링된(factored) FST를 생성할 수 있으며, 여기서 팩터링된 FST 내의 소정 상태에 도달하는 임의의 경로는 동일한 개수의 아크들(arcs)을 횡단한다. 예를 들어, 도 4의 팩터링된 FST(400)의 소정 상태에 도달하는 모든 경로는 동일한 길이를 갖는다. 또한, 컨텍스트 FST 생성 엔진(156)은 아크당 일정한 가중치를 팩터링된 FST에 적용함으로써, 컨텍스트 FST(들)(112)를 생성할 수 있다. 도 5의 컨텍스트 바이어싱 FST(500)는 컨텍스트 FST의 예시적인 일례이다.
일부 구현예에서, 클라이언트 디바이스(152)의 마이크로폰을 사용하여 캡처된 오디오 데이터와 같은 오디오 데이터는 오디오 데이터에 대응하는 컨텍스트 정보를 결정하기 위해 컨텍스트 엔진(104)을 사용하여 프로세싱될 수 있다. 추가적으로 또는 대안적으로, 컨텍스트 엔진(104)은 추가 정보에 기초하여 컨텍스트 정보를 결정할 수 있다. 예를 들어, 추가 정보는 클라이언트 디바이스의 구성요소(들)와 사용자 사이의 오디오 데이터에 선행하는 대화(dialog) 내의 하나 이상의 이전 턴(turn); 사용자 프로필에 저장된 사용자 정보; 클라이언트 디바이스 정보; 및/또는 현재 대화 세션에 관련된 추가 정보, 이전 대화 세션, 디바이스, 사용자, 및/또는 기타 정보에 관한 추가 정보를 포함할 수 있다. 일부 구현예들에서, FST 엔진(110)은 컨텍스트 정보에 기초하여 하나 이상의 컨텍스트 FST들(112)을 선택할 수 있다. 예를 들어, FST 엔진(110)은 온도 조절기 온도에 관한 컨텍스트 정보에 기초하여 온도 컨텍스트 FST를 선택할 수 있다.
ASR 엔진(154)은 ASR 모델(114)을 사용하여 오디오 데이터의 하나 이상의 후보 인식들을 결정할 수 있다. 예를 들어, ASR 모델(114)은 순환 신경망 변환기(RNN-T) 모델일 수 있고, ASR 엔진은 RNN-T 모델을 사용하여 오디오 데이터의 후보 인식들의 세트를 결정할 수 있다. 일부 구현예들에서, ASR 엔진(154)은 후보 인식들에 기초하여 오디오 데이터의 텍스트 표현을 생성하기 위해 빔 검색 부분을 포함할 수 있다. 컨텍스트 엔진(104)을 사용하여 결정된 컨텍스트 정보에 기초하여 FST 엔진(110)에 의해 선택된 컨텍스트 FST(들)(112)는, 빔 검색 동안 후보 인식들의 확률들을 수정하기 위해 사용될 수 있다. 일부 구현예들에서, 컨텍스트 FST(들)(112)는 얕은 융합을 통해 빔 검색 부분을 수정할 수 있다. 예를 들어, 컨텍스트 FST는 컨텍스트 FST(들)에 의해 표시되는 영숫자 시퀀스의 후보 인식들의 확률들을 증가 및/또는 감소시킬 수 있다.
도 2는 영숫자 문법 FST의 일례를 도시한다. 영숫자 문법 FST는 자소 기반 억셉터 문법과 같은 방향성 비순환 그래프일 수 있다. 예시된 예에서 영숫자 문법 FST(200)는 영숫자 시퀀스 "200" 또는 "202"를 수용한다. 일부 구현예에서, "_" 라는 문자는 영숫자 시퀀스의 시작을 나타낸다. 예를 들어, 영숫자 문법 FST(200)은 "_200" 및 "_202"를 수용한다. 예시된 일례에서, 영숫자 문법 FST(200)는 정점(vertex) 0에서 시작하여 정점 4에서 끝난다. 영숫자 시퀀스(200)는 정점 1, 정점 2 및 정점 3을 포함하여 정점 0과 정점 4 사이에 다양한 추가 정점들을 포함한다. 예시된 일례에서, 정점 0과 정점 1 사이의 에지는 "_"(즉, 영숫자 시퀀스의 시작을 나타내는 토큰)를 나타낸다. 정점 1과 정점 2 사이의 에지는 수용된 시퀀스의 첫 번째 문자인 "2"를 나타낸다. 정점 2와 정점 3 사이의 에지는 수용된 시퀀스의 두 번째 문자인 "0"을 나타낸다. 정점 3과 정점 4 사이에는 2개의 에지들이 존재한다. 제 1 에지는 수용된 시퀀스의 세 번째 문자인 문자 "2"를 나타낸다. 제 2 에지는 영숫자 문법에서 수용되는 추가 시퀀스의 세 번째 문자인 "0"을 나타낸다.
도 3은 가중되지 않은 워드피스 기반 억셉터 문법의 일례를 도시한다. 일부 구현예들에서, 가중되지 않은 워드피스 기반 억셉터 문법(300)은 스펠러 FST를 사용하여 도 2의 영숫자 문법 FST(200)를 프로세싱함으로써 생성될 수 있다. 스펠러 FST는 워드피스들을 그들의 구성 자소들에 매핑할 수 있다. 가중되지 않은 워드피스 기반 억셉터 문법(300)은 정점 0에서 시작하여 정점 3에서 끝난다. 정점 1과 정점 2를 포함하여 정점 0과 정점 3 사이에 다양한 추가 정점들이 존재한다. 예시된 일례에서, 정점 0과 정점 1 사이의 에지는 "_2"를 나타낸다; 정점 1과 정점 3 사이의 에지는 "00"을 나타낸다; 정점 0과 정점 2 사이의 에지는 "_20"을 나타낸다; 정점 1과 정점 2 사이의 에지는 "0"을 나타낸다; 정점 2와 정점 3 사이의 제 1 에지는 "2"를 나타낸다; 정점 2와 정점 3 사이의 제 2 에지는 "0"을 나타낸다. 예시된 일례에서, 가중되지 않은 워드피스 기반 억셉터 문법(300)은 스트링 "2 00", "2 0 0", "20 0", "2 0 2" 및 "20 2"를 수용할 수 있다.
도 4는 예시적인 팩터링된 FST를 도시한다. 예시된 일례에서, 팩터링된 FST(400)의 소정 상태로 이어지는 모든 경로들은 동일한 길이를 갖는다. 일부 구현예에서, 팩터링된 FST(400)는 가중되지 않은 워드피스 기반 억셉터 문법(300)에 팩터 연산을 적용함으로써 생성된다. 팩터링된 FST(400)는 정점 0에서 시작하여 정점 4 또는 정점 5에서 종료한다. 또한, 팩터링된 FST(400)는 정점 1, 정점 2, 및 정점 3을 포함한다. 정점 0과 정점 1 사이의 에지는 "_2"를 나타낸다. 정점 1과 정점 3 사이의 에지는 "0"을 나타낸다. 정점 3과 정점 5 사이의 제 1 에지는 "2"를 나타낸다. 정점 3과 정점 5 사이의 제 2 에지는 "0"을 나타낸다. 정점 1과 정점 4 사이의 에지는 "00"을 나타낸다. 정점 0과 정점 2 사이의 에지는 "_20"을 나타낸다. 정점 2와 정점 4 사이의 제 1 에지는 "2"를 나타낸다. 정점 2와 정점 4 사이의 제 2 에지는 "0"을 나타낸다.
도 5는 컨텍스트 바이어싱 FST의 일례를 도시한다. 예시된 일례에서, 컨텍스트 바이어싱 FST(500)는 아크당 1의 일정한 가중치를 갖는다. 일부 구현예들에서, 컨텍스트 바이어싱 FST는 아크당 추가 가중치를 갖는다(예를 들어, 아크당 2의 일정한 가중치, 아크당 10의 일정한 가중치, 및/또는 아크당 추가의 일정한 가중치). 컨텍스트 바이어싱 FST(500)는 팩터링된 FST(400)의 소정 상태까지 누적된 누적 가중치와 동일한 오류 트랜지션 및/또는 아크당 일정한 가중치를 적용함으로써 생성될 수 있다. 일부 구현예에서, 컨텍스트 FST(500)의 가중치들은, 자동 음성 인식의 빔 검색 부분 동안 확률들을 수정하는데 사용될 수 있다. 컨텍스트 바이어싱 FST(500)는 정점 0에서 시작하여 정점 4 또는 정점 5에서 끝난다. 컨텍스트 바이어싱 FST(500)의 추가 정점들은 정점 1, 정점 2 및 정점 3을 포함한다. 예시된 예에서 정점 0과 정점 1 사이의 에지는 "_2/1" 를 나타내며, 여기서 _2는 시작 문자와 허용되는 숫자의 제 1 디지트(digit)를 나타내고, 1은 가중치를 나타낸다. 정점 1과 정점 3 사이의 에지는 "0/1"을 나타내며, 여기서 0은 허용되는 숫자의 제 2 디지트이고 1은 가중치를 나타낸다. 정점 3과 정점 5 사이의 제 1 에지는 "2/1"을 나타내며, 여기서 2는 허용되는 숫자의 제 3 디지트이고 1은 가중치를 나타낸다. 정점 3과 정점 5 사이의 제 2 에지는 "0/1"을 나타내며, 여기서 0은 허용되는 숫자의 제 3 디지트이고 1은 가중치를 나타낸다. 정점 1과 정점 4 사이의 에지는 "00/1"을 나타내며, 여기서 00은 허용되는 숫자의 제 2 및 제 3 디지트이고 1은 가중치이다. 정점 0과 정점 2 사이의 에지는 "_20/1"을 나타내며, 여기서 _는 시작 문자이고, 20은 허용되는 숫자의 제 1 및 제 2 디지트이고, 1은 가중치이다. 정점 2와 정점 4 사이의 제 1 에지는 "2/1"을 나타내며, 여기서 2는 허용되는 숫자의 제 3 디지트이고, 2는 가중치이다. 정점 2와 정점 4 사이의 제 2 에지는 "0/1"을 나타내며, 여기서 0은 허용되는 숫자의 제 3 디지트이고, 1은 가중치이다.
정점 1과 정점 0 사이의 에지는 "<epsilon>/-1"을 나타내며, 이는 -1의 실패 트랜지션을 표시한다. 정점 3과 정점 0 사이의 에지는 -2의 실패 트랜지션을 표시하는 "<epsilon>/-2"를 나타낸다. 정점 2와 정점 0 사이의 에지는 -1의 실패 트랜지션을 표시하는 "<epsilon>/-1"을 나타낸다.
도 6은 본 명세서에 개시된 구현예들에 따른 컨텍스트 바이어싱 FST를 생성하는 프로세스(600)를 예시하는 흐름도이다. 편의상, 흐름도의 동작은 동작을 수행하는 시스템을 참조하여 설명한다. 이 시스템은 도 1b의 클라이언트 디바이스(152)의 하나 이상의 구성요소와 같은 다양한 컴퓨터 시스템의 다양한 구성요소를 포함할 수 있다. 더욱이, 프로세스(600)의 동작이 특정 순서로 도시되어 있지만, 이것은 제한하는 것을 의미하지 않는다. 하나 이상의 동작들이 재정렬, 생략 및/또는 추가될 수 있다.
블록(602)에서, 시스템은 영숫자 문법 FST를 선택한다. 일부 구현예에서, 영숫자 문법 FST는 비순환 문자 기반 FST 이다. 예를 들어, 도 2의 영숫자 문법 FST(200)는 "200" 및 "202" 시퀀스를 수용한다.
블록(604)에서, 시스템은 스펠러 FST를 선택하고, 스펠러 FST는 워드피스들을 그들의 구성 자소들에 매핑한다.
블록(606)에서, 시스템은 영숫자 문법 FST 및 스펠러 FST에 기초하여 가중되지 않은 워드피스 기반 억셉터 문법 FST를 생성한다. 일부 구현예에서, 시스템은 블록(602)에서 선택된 영숫자 문법 FST 및 블록(604)에서 선택된 스펠러 FST에 기초하여 가중되지 않은 워드피스 기반 억셉터 문법 FST를 생성한다. 예를 들어, 도 3의 가중되지 않은 워드피스 기반 억셉터 문법 FST(300)는 스트링들 "2 00", "2 0 0", "2 0 2", "20 2" 및 "20 0" 을 수용할 수 있다.
블록(608)에서, 시스템은 가중되지 않은 워드피스 기반 억셉터 문법을 팩터 연산을 사용하여 프로세싱함으로써 팩터링된 FST를 생성한다. 일부 구현예에서, 팩터링된 FST에서 소정 상태로 이어지는 임의의 경로는 동일한 개수의 아크들을 횡단한다. 도 4의 팩터링된 FST(400)는 팩터링된 FST의 일례이다.
블록(610)에서, 시스템은 아크당 일정한 가중치를 팩터링된 FST에 적용함으로써 컨텍스트 바이어싱 FST를 생성한다. 도 5의 컨텍스트 바이어싱 FST(500)는 예시적인 컨텍스트 바이어싱 FST이다.
도 7은 본 명세서에 개시된 구현들에 따라 컨텍스트 바이어싱 FST를 사용하여 음성 발화의 텍스트 표현을 생성하는 프로세스(700)를 예시하는 흐름도이다. 편의상, 흐름도의 동작은 동작을 수행하는 시스템을 참조하여 설명한다. 이 시스템은 도 1b의 클라이언트 디바이스(152)의 하나 이상의 구성요소와 같은 다양한 컴퓨터 시스템의 다양한 구성요소를 포함할 수 있다. 더욱이, 프로세스(700)의 동작이 특정 순서로 도시되어 있지만, 이것은 제한하는 것을 의미하지 않는다. 하나 이상의 동작들이 재정렬, 생략 및/또는 추가될 수 있다.
블록(702)에서, 시스템은 영숫자 시퀀스를 포함하는 음성 발화를 캡처하는 오디오 데이터를 수신한다. 일부 구현예에서, 오디오 데이터는 클라이언트 디바이스의 마이크를 사용하여 캡처된다. 예를 들어, 시스템은 "DAY로 가는 나의 비행에 대해 알려줘"라는 음성 발화를 캡처하는 오디오 데이터를 수신할 수 있으며, 여기서 DAY는 데이턴 국제 공항을 나타내는 공항 코드 영숫자 시퀀스이다. 또 다른 예로서, 시스템은 "ABC-123의 추적 번호가 있는 나의 패키지(package)가 언제 도착합니까?" 라는 음성 발화를 캡처한 오디오 데이터를 수신할 수 있다.
블록(704)에서, 시스템은 영숫자 시퀀스에 대한 컨텍스트 정보를 결정한다. 일부 구현예에서, 시스템은 음성 발화에 기초하여 컨텍스트 정보를 결정할 수 있다. 예를 들어, 시스템은 "ABC-123의 추적 번호가 있는 나의 패키지(package)가 언제 도착합니까?" 라는 음성 발화에 대한 추적 번호를 나타내는 컨텍스트 정보를 결정할 수 있다. 추가적으로 또는 대안적으로, 시스템은 추가 정보에 기초하여 컨텍스트 정보를 결정할 수 있는바, 이러한 추가 정보는 음성 발화에 선행하는 컴퓨팅 시스템과 사용자 사이의 대화에서의 하나 이상의 이전 턴들(turns); 사용자 프로필에 저장된 사용자 정보; 컴퓨팅 시스템에 대한 정보; 하나 이상의 네트워킹된 하드웨어 디바이스들에 대한 정보(예를 들어, 네트워킹된 스마트 온도 조절기, 네트워킹된 스마트 오븐, 네트워킹된 카메라 등); 및/또는 발화의 컨텍스트와 관련된 추가 정보를 포함할 수 있다. 예를 들어, 사용자와 컴퓨팅 시스템 간의 대화는 다음을 포함할 수 있다: 사용자 - "내 패키지가 언제 도착하지?"; 컴퓨팅 시스템 - "패키지의 추적 번호는 무엇입니까?"; 사용자 - "ABC-123이다." "추적 번호는 무엇입니까?" 라는 추가 정보는 추적 번호와 관련된 컨텍스트 정보를 생성하는데 이용될 수 있다. 다른 예로서, 사용자의 사용자 프로파일은 샌프란시스코 국제공항으로부터 로스앤젤레스 국제공항까지의 비행에 관한 캘린더 엔트리를 포함할 수 있는데, 이는 비행에 관한 컨텍스트 정보를 결정하는데 사용될 수 있다. 추가적으로 또는 대안적으로, 온도조절기 온도(thermostat temperature)에 관한 컨텍스트 정보는 시스템과 관련된 스마트 온도조절기에 기초하여 결정될 수 있다.
블록(706)에서, 시스템은 컨텍스트 정보에 대응하는 하나 이상의 컨텍스트 바이어싱 FST를 선택한다. 예를 들어, 시스템은 비행을 나타내는 컨텍스트 정보에 기초하여 공항 코드 컨텍스트 바이어싱 FST를 선택할 수 있다. 일부 구현예에서, 시스템은 컨텍스트 정보에 대응하는 다수의 컨텍스트 FST 를 선택할 수 있다. 예를 들어, 시스템은 스마트 온도조절기 온도를 나타내는 컨텍스트 정보에 대응하는 화씨(Fahrenheit) 온도 컨텍스트 바이어싱 FST 및 섭씨(Celsius) 온도 컨텍스트 바이어싱 FST를 선택할 수 있다. 일부 구현예에서, 하나 이상의 컨텍스트 바이어싱 FST는 도 6의 프로세스(600)에 따라 생성될 수 있다. 일부 구현예들에서, 시스템은 클라이언트 디바이스에 로컬로 저장된 컨텍스트 FST들의 미리결정된 세트로부터 컨텍스트 바이어싱 FST(들)를 선택할 수 있다. 추가적으로 또는 대안적으로, 시스템은 클라이언트 디바이스로부터 원격으로 서버 상에 저장된 컨텍스트 FST의 미리결정된 세트로부터 컨텍스트 바이어싱 FST(들)를 선택할 수 있다. 일부 구현예들에서, 시스템은 클라이언트가 제공한 숫자 문법에 기초하여 즉석에서 생성된 컨텍스트 바이어싱 FST와 같이, 시스템에 의해 즉석에서 생성되는 컨텍스트 바이어싱 FST(들)를 선택할 수 있다.
블록(708)에서, 시스템은 ASR 엔진의 ASR 모델 부분을 사용하여 음성 발화를 프로세싱함으로써 영숫자 시퀀스를 포함하는 음성 발화의 후보 인식들의 세트를 생성한다. 일부 구현예들에서, 시스템은 RNN-T 모델을 사용하여 블록(702)에서 수신된 오디오 데이터를 프로세싱함으로써 음성 발화의 후보 인식들의 세트를 생성할 수 있다.
블록(710)에서, 시스템은 후보 인식들의 세트 및 하나 이상의 선택된 컨텍스트 FST에 기초하여 음성 발화의 텍스트 표현을 생성한다. 일부 구현예들에서, 시스템은 블록(708)에서 생성된 후보 인식들의 세트 및 블록(702)에서 선택된 하나 이상의 컨텍스트 FST들에 기초하여 음성 발화의 텍스트 표현을 생성할 수 있다. 예를 들어, ASR 시스템의 빔 검색 부분은 블록 708에서 ASR 모델을 사용하여 생성된 후보 인식의 확률을 변경하기 위해 컨텍스트 FST를 사용하여 얕은 융합을 통해 수정될 수 있다.
도 8을 참조하면, 여기에 개시된 구현예들이 구현될 수 있는 예시적인 환경이 도시된다. 도 8은 자동 어시스턴트 클라이언트(804)의 인스턴스를 실행하는 클라이언트 컴퓨팅 디바이스(802)를 포함한다. 하나 이상의 클라우드 기반 자동 어시스턴트 컴포넌트(810)는 일반적으로 808로 표시되는 하나 이상의 근거리 및/또는 광역 네트워크(예를 들어, 인터넷)를 통해 클라이언트 디바이스(802)에 통신가능하게 연결된 하나 이상의 컴퓨팅 시스템("클라우드" 컴퓨팅 시스템이라 통칭됨) 상에 구현될 수 있다.
자동화 어시스턴트 클라이언트(804)의 인스턴스는 하나 이상의 클라우드 기반 자동화 어시스턴트 컴포넌트(810)와의 상호작용을 통해 사용자의 관점에서 자동화 어시스턴트(800)의 논리적 인스턴스인 것처럼 보이는 것을 형성할 수 있으며, 이를 통해 사용자는 인간과 컴퓨터 사이의 대화에 참여할 수 있다. 따라서, 일부 구현예들에서, 클라이언트 디바이스(802) 상에서 실행되는 자동 어시스턴트 클라이언트(804)와 상호작용하는 사용자는 사실상 자동 어시스턴트(800)의 그 또는 그녀의 논리적 인스턴스와 상호작용할 수 있다는 것을 이해해야 한다. 간결함과 단순함을 위해, 특정 사용자를 "서빙하는" 것으로 본 명세서에서 사용되는 용어 "자동 어시스턴트"는 종종 사용자에 의해 작동되는 클라이언트 디바이스(802) 상에서 실행되는 자동 어시스턴트 클라이언트(804)와 하나 이상의 클라우드 기반 자동 어시스턴트 컴포넌트(810)(여러 클라이언트 컴퓨팅 디바이스의 여러 자동화 어시스턴트 클라이언트 사이에서 공유될 수 있음)의 조합을 지칭할 것이다. 또한, 다음을 유의해야 하는바 일부 구현예에서, 자동 어시스턴트(800)는 사용자가 자동 어시스턴트(800)의 특정 인스턴스에 의해 실제로 "서빙"되는지 여부에 관계없이 임의의 사용자로부터의 요청에 응답할 수 있다.
클라이언트 컴퓨팅 디바이스(802)는 예를 들어, 데스크탑 컴퓨팅 디바이스, 랩톱 컴퓨팅 디바이스, 태블릿 컴퓨팅 디바이스, 모바일 스마트폰 컴퓨팅 디바이스, 독립형 대화형 스피커, 스마트 기기, 및/또는 컴퓨팅 디바이스를 포함하는 사용자의 웨어러블 디바이스일 수 있다(예를 들어, 컴퓨팅 디바이스를 갖는 사용자의 시계, 컴퓨팅 디바이스를 갖는 사용자의 안경, 가상 또는 증강 현실 컴퓨팅 디바이스). 추가 및/또는 대안적인 클라이언트 컴퓨팅 디바이스가 제공될 수 있다. 추가적으로 또는 대안적으로, 클라이언트 컴퓨팅 디바이스(802)의 동작은 다수의 컴퓨팅 디바이스 사이에 분산될 수 있다. 예를 들어, 클라이언트 컴퓨팅 디바이스(802)의 하나 이상의 동작은 모바일 스마트폰과 차량 컴퓨팅 디바이스 사이에 분산될 수 있다. 또한, 클라이언트 컴퓨팅 디바이스(802)의 동작은 (일부 경우에 통신가능하게 결합될 수 있는) 다수의 컴퓨팅 디바이스 사이에서 반복될 수 있다. 추가적인 일례로서, 모바일 스마트폰 뿐만 아니라 차량 인터페이스 디바이스는 각각 호출 엔진(후술됨)을 포함하는 모바일 스마트폰 및 차량 인터페이스 디바이스와 같은 자동 어시스턴트(800)의 동작을 구현할 수 있다. 다양한 구현들에서, 클라이언트 컴퓨팅 디바이스(802)는 가령, 메시지 교환 클라이언트(예를 들어, SMS, MMS, 온라인 채팅), 브라우저 기타 등등과 같은 자동 어시스턴트 클라이언트(1304)에 부가적인 하나 이상의 다른 어플리케이션들을 선택적으로 동작시킬 수 있다. 이러한 다양한 구현예들 중 일부에서, 하나 이상의 다른 어플리케이션들은 선택적으로 자동 어시스턴트(804)와 인터페이스하거나(예를 들어, 어플리케이션 프로그래밍 인터페이스를 통해) 또는 자동 어시스턴트 어플리케이션의 자체 인스턴스(클라우드 기반 자동 어시스턴트 컴포넌트(들)(810)과 인터페이스할 수 있는)를 포함할 수 있다.
자동 어시스턴트(800)는 클라이언트 디바이스의 사용자 인터페이스 입력 및 출력 디바이스(미도시)를 통해 사용자와의 인간 대 컴퓨터 대화 세션에 참여한다. 사용자 프라이버시를 보호하고 및/또는 리소스를 보존하기 위해, 많은 상황에서 사용자는 자동 어시스턴트가 음성 발화를 완전히 프로세싱하기 전에 종종 명시적으로 자동 어시스턴트(800)를 호출해야만 한다. 자동 어시스턴트(800)의 명시적 호출은 클라이언트 디바이스(802)에서 수신된 특정 사용자 인터페이스 입력에 응답하여 발생할 수 있다. 예를 들어, 클라이언트 디바이스(802)를 통해 자동 어시스턴트(800)를 호출할 수 있는 사용자 인터페이스 입력은, 하드웨어 및 /또는 클라이언트 디바이스(802)의 가상 버튼의 활성화를 포함할 수 있다. 더욱이, 자동 어시스턴트 클라이언트는 하나 이상의 음성 호출 구문들의 존재를 검출하도록 동작가능한 호출 엔진과 같은 하나 이상의 로컬 엔진(806)을 포함할 수 있다. 호출 엔진은 하나 이상의 음성 호출 구문들의 검출에 응답하여 자동 어시스턴트(800)를 호출할 수 있다. 예를 들어, 호출 엔진은 "헤이 어시스턴트(Hey Assistant)", "오케이 어시스턴트(OK Assistant)", 및/또는 "어시스턴트(Assistant)"와 같은 음성 호출 구문을 검출하는 것에 응답하여 자동 어시스턴트(800)를 호출할 수 있다. 호출 엔진은 음성 호출 구문의 발생을 모니터링하기 위해 클라이언트 디바이스(802)의 하나 이상의 마이크로폰으로부터의 출력에 기초하는 오디오 데이터 프레임의 스트림을 연속적으로 프로세싱할 수 있다(예를 들어, "비활성" 모드에 있지 않은 경우). 음성 호출 구문의 발생을 모니터링하는 동안, 호출 엔진은 음성 호출 구문을 포함하지 않는 모든 오디오 데이터 프레임을 폐기한다(예를 들어, 버퍼에 임시 저장한 후). 하지만, 호출 엔진이 프로세싱된 오디오 데이터 프레임에서 음성 호출 구문의 발생을 검출하면, 호출 엔진은 자동 어시스턴트(800)를 호출할 수 있다. 본 명세서에서 사용되는 바와 같이, 자동 어시스턴트(800)를 "호출"하는 것은 자동 어시스턴트(800)의 하나 이상의 이전에 비활성화된 기능이 활성화되게 하는 것을 포함할 수 있다. 예를 들어, 자동 어시스턴트(800)를 호출하는 것은 하나 이상의 로컬 엔진(806) 및/또는 클라우드 기반 자동 어시스턴트 컴포넌트(810)가 호출 문구가 검출된 오디오 데이터 프레임 및/또는 하나 이상의 후속 오디오를 추가로 프로세싱하게 하는 것을 포함할 수 있다(반면에 호출 이전에는 오디오 데이터 프레임의 추가 프로세싱이 발생하지 않음).
자동 어시스턴트(804) 의 하나 이상의 로컬 엔진(들)(806)은 선택 사항이며 그리고 예를 들어, 위에서 설명된 호출 엔진, 로컬 음성-텍스트("STT") 엔진(캡처된 것을 오디오를 텍스트로 변환), 로컬 텍스트 음성 변환("TTS") 엔진(텍스트를 음성으로 변환), 로컬 자연어 프로세서(오디오 및/또는 오디오로부터 변환된 텍스트의 의미론적 의미를 결정함), 및/또는 다른 로컬 컴포넌트를 포함할 수 있다. 컴퓨팅 리소스(예를 들어, 프로세서 사이클, 메모리, 배터리 등)와 관련하여 클라이언트 디바이스(802)가 상대적으로 제한되기 때문에, 로컬 엔진(806)은 클라우드 기반 자동 어시스턴트 컴포넌트(810)에 포함된 임의의 대응물에 비하여 제한된 기능을 가질 수 있다.
자동 어시스턴트 클라이언트(804)는 컨텍스트 엔진 및/또는 FST 엔진(미도시)을 추가로 포함할 수 있다. 도 1a 및 도 1b의 컨텍스트 엔진(104)과 같은 컨텍스트 엔진은 오디오 데이터 및/또는 오디오 데이터와 관련된 추가 정보에 기초하여 컨텍스트 정보를 결정할 때 자동화 어시스턴트 클라이언트(804)에 의해 이용될 수 있다. 도 1a 및 도 1b의 FST 엔진(110)과 같은 FST 엔진은 하나 이상의 컨텍스트 바이어싱 FST를 선택할 때 자동 어시스턴트 클라이언트(804)에 의해 이용될 수 있다. TTS 엔진(812)은 얕은 융합을 통해 컨텍스트 바이어싱 FST(들)로 빔 검색을 수정하는 것과 같이, 오디오 데이터의 텍스트 표현을 생성할 때 하나 이상의 선택된 컨텍스트 바이어싱 FST를 활용할 수 있다.
로컬 엔진(들)(806)의 임의의 대응물에 비하여, 클라우드 기반 자동 어시스턴트 컴포넌트(810)는 클라우드의 사실상 무제한 리소스를 활용하여 오디오 데이터 및/또는 기타 사용자 인터페이스 입력에 대한 더 강력하고 및/또는 더 정확한 프로세싱를 수행한다. 다시 말하지만, 다양한 구현예에서, 클라이언트 디바이스(802)는 호출 엔진이 음성 호출 구문을 검출하거나 자동 어시스턴트(800)의 일부 다른 명시적 호출을 검출하는 것에 응답하여, 오디오 데이터 및/또는 다른 데이터를 클라우드 기반 자동 어시스턴트 컴포넌트(810)에 제공할 수 있다.
예시된 클라우드 기반 자동 어시스턴트 컴포넌트(810)는 클라우드 기반 TTS 모듈(812), 클라우드 기반 STT 모듈(814), 및 자연어 프로세서(816)를 포함한다. 일부 구현예에서, 자동 어시스턴트(800)의 하나 이상의 엔진들 및/또는 모듈들은 생략, 결합 및/또는 자동 어시스턴트(800)와 별개인 컴포넌트에서 구현될 수 있다. 또한, 일부 구현예에서 자동 어시스턴트(800)는 추가 및/또는 대안적인 엔진 및/또는 모듈을 포함할 수 있다.
클라우드 기반 STT 모듈(814)은 오디오 데이터를 텍스트로 변환할 수 있으며, 이는 자연어 프로세서(816)에 제공될 수 있다. 다양한 구현예에서, 클라우드 기반 STT 모듈(814)은 스피커 레이블들 및 할당 엔진(미도시)에 의해 제공되는 할당들의 표시에 적어도 부분적으로 기초하여 오디오 데이터를 텍스트로 변환할 수 있다.
클라우드 기반 TTS 모듈(812)은 텍스트 데이터(예를 들어, 자동 어시스턴트(800)에 의해 공식화된 자연어 응답)를 컴퓨터-생성 음성 출력으로 변환할 수 있다. 일부 구현예에서, TTS 모듈(812)은 예를 들어, 하나 이상의 스피커를 사용하여직접 출력되도록 컴퓨터-생성 음성 출력을 클라이언트 디바이스(802)에 제공할 수 있다. 다른 구현예에서, 자동 어시스턴트(800)에 의해 생성된 텍스트 데이터(예를 들어, 자연어 응답)는 로컬 엔진(들)(806) 중 하나에 제공될 수 있으며, 로컬 엔진(들)(806)은 텍스트 데이터를 로컬로 출력되는 컴퓨터-생성 음성으로 변환할 수 있다.
자동 어시스턴트(800) 의 자연어 프로세서(816)는 자유로운 형식의 자연어 입력을 프로세싱하고, 자연어 입력에 기초하여 자동 어시스턴트(800)의 하나 이상의 다른 컴포넌트에 의해 사용되기 위해 주석이 달린(annotated) 출력을 생성한다. 예를 들어, 자연어 프로세서(816)는 클라이언트 디바이스(802)를 통해 사용자에 의해 제공되는 오디오 데이터의 STT 모듈(814)에 의한 변환인 텍스트 입력인 자연어 자유 형식 입력을 프로세싱할 수 있다. 생성된 주석이 달린 출력은 자연어 입력의 하나 이상의 주석들을 포함할 수 있으며 그리고 선택적으로는 자연어 입력의 하나 이상(예컨대, 모든)의 용어들(terms)을 포함할 수 있다. 일부 구현예에서, 자연어 프로세서(816)는 자연어 입력에 있는 다양한 유형의 문법적 정보를 식별하고 주석을 달도록 구성된다. 예를 들어, 자연어 프로세서(816)는 용어의 문법적 역할에 주석을 달도록 구성된 품사 태거(part of Speech Tagger)(미도시)를 포함할 수 있다. 또한, 예를 들어, 일부 구현예에서 자연어 프로세서(816)는 추가적으로 및/또는 대안적으로, 자연어 입력에 있는 용어들 사이의 구문 관계(syntactic relationship)를 결정하도록 구성된 종속성 파서(미도시)를 포함할 수 있다.
일부 구현예에서, 추가적으로 및/또는 대안적으로, 자연어 프로세서(816)는 사람들(가령, 문학적 인물, 유명인, 공인, 등), 조직들, 위치들(실제 및 가상), 기타 등등에 대한 참조와 같은 하나 이상의 샘플에서 엔티티 참조에 주석을 달도록 구성된 엔티티 태거(도시되지 않음)를 포함할 수 있다. 자연어 프로세서(816)의 엔티티 태거는 높은 수준의 세분성(예를 들어, 사람과 같은 엔티티 클래스에 대한 모든 참조의 식별을 가능하게 하기 위해) 및/또는 낮은 수준의 세분성(예를 들어, 특정 사람과 같은 특정 엔티티에 대한 모든 참조의 식별을 가능하게 하기 위해)에서 엔티티에 대한 참조에 주석을 달 수 있다. 엔티티 태거는 특정 엔티티를 해결하기 위해 자연어 입력의 콘텐츠에 의존할 수 있으며 및/또는 특정 엔티티를 해결하기 위해 지식 그래프 또는 다른 엔티티 데이터베이스와 선택적으로 통신할 수도 있다.
일부 구현예에서, 자연어 프로세서(816)는 추가적으로 및/또는 대안적으로 하나 이상의 컨텍스트 큐(cue)에 기초하여 동일한 엔티티에 대한 참조들을 그룹화하거나 "클러스터링"하도록 구성된 상호참조 해석기(coreference resolver)(미도시)를 포함할 수 있다. 예를 들어, 상호참조 해석기는, 자연어 입력 "나는 우리가 거기에서 마지막으로 먹었을 때의 가상 카페를 좋아한다(I like Hypothetical Cafe last time we eat there)"에서 "거기(there)"를 "가상 카페(Hypothetical Cafe)"로 해석하는데 이용될 수 있다.
일부 구현예에서, 자연어 프로세서(816)의 하나 이상의 컴포넌트는 자연어 프로세서(816)의 하나 이상의 다른 컴포넌트로부터의 주석에 의존할 수 있다. 예를 들어, 일부 구현예에서, 명명된(named) 엔티티 태거는 특정 엔티티에 대한 모든 언급들에 주석을 추가할 때 상호참조 해석기 및/또는 종속성 파서로부터의 주석들에 의존할 수 있다. 또한, 예를 들어, 일부 구현예에서 상호참조 해석기는 동일한 엔티티에 대한 참조들을 클러스터링할 때 종속성 파서의 주석들에 의존할 수 있다. 일부 구현예에서, 특정 자연어 입력을 프로세싱할 때, 자연어 프로세서(816)의 하나 이상의 컴포넌트는 하나 이상의 주석들을 결정하기 위해, 특정 자연어 입력의 외부에 있는 이전의 관련 입력 및/또는 다른 관련 데이터를 사용할 수 있다.
도 9는 여기에 설명된 기술의 하나 이상의 양상들을 수행하기 위해 선택적으로 이용될 수 있는 예시적인 컴퓨팅 디바이스(910)의 블록도이다. 일부 구현예에서, 하나 이상의 클라이언트 컴퓨팅 디바이스 및/또는 다른 컴포넌트(들)는 예시적인 컴퓨팅 디바이스(910)의 하나 이상의 컴포넌트를 포함할 수 있다.
컴퓨팅 디바이스(910)는 일반적으로 버스 서브시스템(912)을 통해 다수의 주변 디바이스와 통신하는 적어도 하나의 프로세서(914)를 포함한다. 이러한 주변 디바이스는 예를 들어, 메모리 서브시스템(925) 및 파일 저장 서브시스템(926)을 포함하는 저장 서브시스템(924), 사용자 인터페이스 출력 디바이스(920), 사용자 인터페이스 입력 디바이스(922), 및 네트워크 인터페이스 서브시스템(916)을 포함한다. 입력 및 출력 디바이스는 컴퓨팅 디바이스(910)와의 사용자 상호작용을 허용한다. 네트워크 인터페이스 서브시스템(916)은 외부 네트워크에 대한 인터페이스를 제공하고 다른 컴퓨팅 디바이스의 디바이스의 대응하는 인터페이스에 연결된다.
사용자 인터페이스 입력 디바이스(922)는 키보드, 마우스, 트랙볼, 터치패드 또는 그래픽 태블릿과 같은 포인팅 디바이스, 스캐너, 디스플레이에 통합된 터치스크린, 음성 인식 시스템과 같은 오디오 입력 디바이스, 마이크로폰 및/또는 다른 유형의 입력 디바이스를 포함한다. 일반적으로, "입력 디바이스"라는 용어의 사용은 모든 가능한 유형의 디바이스들 및 정보를 컴퓨팅 디바이스(910) 또는 통신 네트워크에 입력하는 방법을 포함하도록 의도된다.
사용자 인터페이스 출력 디바이스(920)는 디스플레이 서브시스템, 프린터, 팩스 머신, 또는 오디오 출력 디바이스와 같은 비시각적 디스플레이를 포함할 수 있다. 디스플레이 서브시스템은 음극선관("CRT"), 액정 디스플레이("LCD")와 같은 평판 디바이스, 프로젝션 디바이스, 또는 가시 이미지를 생성하기 위한 일부 다른 메커니즘을 포함할 수 있다. 디스플레이 서브시스템은 또한 오디오 출력 디바이스를 통한 것과 같은 비시각적 디스플레이를 제공할 수 있다. 일반적으로, "출력 디바이스"라는 용어의 사용은 컴퓨팅 디바이스(910)로부터 사용자 또는 다른 머신 또는 컴퓨팅 디바이스로 정보를 출력하는 모든 가능한 유형의 디바이스 및 방법을 포함하도록 의도된다.
저장 서브시스템(924)은 여기에 설명된 모듈들의 일부 또는 전부의 기능들을 제공하는 프로그래밍 및 데이터 구성을 저장한다. 예를 들어, 저장 서브시스템(924)은 도 8의 프로세스들 중 하나 이상의 선택된 양상들을 수행할 뿐만 아니라 도 1b에 도시된 다양한 컴포넌트들을 구현하기 위한 로직을 포함할 수 있다.
이들 소프트웨어 모듈은 일반적으로 프로세서(914) 단독으로 또는 다른 프로세서와 조합하여 실행된다. 저장 서브시스템(924)에서 사용되는 메모리(925)는 프로그램 실행 동안 명령어들 및 데이터를 저장하기 위한 메인 랜덤 액세스 메모리("RAM")(930) 및 고정 명령어들이 저장되는 판독 전용 메모리("ROM")(932)를 포함하는 다수의 메모리를 포함할 수 있다. 파일 저장 서브시스템(926)은 프로그램 및 데이터 파일을 위한 영구 저장소를 제공할 수 있고, 하드 디스크 드라이브, 연관된 이동식 매체와 함께 플로피 디스크 드라이브, CD-ROM 드라이브, 광학 드라이브 또는 이동식 매체 카트리지를 포함할 수 있다. 특정 구현예의 기능을 구현하는 모듈은 파일 저장 서브시스템(926)에 의해 저장 서브시스템(924) 또는 프로세서(들)(914)에 의해 액세스 가능한 다른 머신에 저장될 수 있다.
버스 서브시스템 (912)은 컴퓨팅 디바이스(910)의 다양한 컴포넌트들 및 서브시스템들이 의도한 대로 서로 통신하게 하는 메커니즘을 제공한다. 비록 버스 서브시스템(912)이 단일 버스로 개략적으로 도시되어 있지만, 버스 서브시스템의 대안적인 구현예는 다중 버스들을 사용할 수도 있다.
컴퓨팅 디바이스(910)는 워크스테이션, 서버, 컴퓨팅 클러스터, 블레이드 서버, 서버 팜, 또는 임의의 다른 데이터 프로세싱 시스템 또는 컴퓨팅 디바이스를 포함하는 다양한 유형일 수 있다. 컴퓨터 및 네트워크의 끊임없이 변화하는 특성으로 인해, 도 9에 도시된 컴퓨팅 디바이스(910)에 대한 설명은 일부 구현예를 설명하기 위한 특정 일례로서만 의도된다. 컴퓨팅 디바이스(910)의 다른 많은 구성들은 도 9에 도시된 컴퓨팅 디바이스보다 더 많거나 더 적은 컴포넌트들을 갖는 것이 가능하다.
여기에 설명된 시스템이 사용자(또는 본 문서에서 종종 "참가자"라고 함)에 대한 개인 정보를 수집하거나 개인 정보를 사용할 수 있는 상황에서, 사용자는 프로그램들 또는 피처들이 사용자 정보(예컨대, 사용자의 소셜 네트워크, 소셜 활동 또는 행위, 직업, 사용자의 선호도 또는 사용자의 현재 지리적 위치에 대한 정보)를 수집할지의 여부를 제어할 수 있는 기회를 제공받을 수 있거나 또는 사용자와 더 관련이 있을 수 있는 콘텐츠 서버로부터 콘텐츠를 수신할지/어떻게 수신할지를 제어할 수 있는 기회를 제공받을 수 있다. 또한, 특정 데이터는 저장 또는 사용되기 전에 하나 이상의 방식으로 프로세싱되어 개인 식별 정보가 제거될 수 있다. 예를 들어, 사용자에 대한 개인 식별 정보를 확인할 수 없도록 사용자의 신원이 취급될 수 있으며 또는 사용자의 특정 지리적 위치가 결정될 수 없도록 지리적 위치 정보가 획득된 사용자의 지리적 위치를 일반화시킬 수 있다(예컨대, 도시 레벨, 우편 번호 레벨 또는 주 레벨로). 따라서, 사용자는 사용자에 대한 정보 수집 및/또는 사용 방법을 제어할 수 있다.
일부 구현예에서, 자동 음성 인식("ASR") 엔진을 사용하여 영숫자 시퀀스를 포함하는 음성 발화를 캡처하는 오디오 데이터의 텍스트 표현을 생성하는 단계를 포함하는 하나 이상의 프로세서에 의해 구현되는 방법이 제공된다. 일부 구현예들에서, ASR 엔진을 사용하여, 영숫자 시퀀스를 포함하는 음성 발화를 캡처하는 오디오 데이터의 텍스트 표현을 생성하는 단계는 영숫자 시퀀스에 대한 컨텍스트 정보를 결정하는 단계를 포함한다. 일부 구현예에서, 상기 방법은 컨텍스트 정보에 기초하여, 영숫자 시퀀스에 대한 하나 이상의 컨텍스트 유한 상태 변환기(contextual finite state transducers)를 선택하는 단계를 포함한다. 일부 구현예에서, 상기 방법은 ASR 엔진의 ASR 모델 부분을 이용한 상기 오디오 데이터의 프로세싱에 기초하여, 음성 발화의 후보 인식들의 세트를 생성하는 단계를 포함한다. 일부 구현예에서, 상기 방법은 음성 발화의 텍스트 표현을 생성하는 단계를 포함하고, 상기 텍스트 표현은 영숫자 시퀀스를 포함하고, 텍스트 표현을 생성하는 단계는 후보 인식들의 상기 생성된 세트 및 하나 이상의 선택된 컨텍스트 유한 상태 변환기에 기초한다.
본 명세서의 기술들의 이들 및 다른 구현예들은 다음의 하나 이상의 특징들을 포함할 수 있다.
일부 구현예에서, 상기 ASR 모델은 순환 신경망 변환기(Recurrent Neural Network Transducer: RNN-T) 모델이고, 상기 ASR 엔진은 빔 검색 부분(beam search portion)을 더 포함한다. 이들 구현예들의 일부 버전들에서, 후보 인식들의 상기 생성된 세트 및 하나 이상의 선택된 컨텍스트 유한 상태 변환기에 기초하여 음성 발화의 텍스트 표현을 생성하는 단계는, 하나 이상의 컨텍스트 유한 상태 변환기를 사용하여 ASR 엔진의 빔 검색 부분을 수정하는 단계를 포함한다. 이들 구현예들의 일부 버전들에서, 하나 이상의 컨텍스트 유한 상태 변환기를 사용하여 ASR 엔진의 빔 검색 부분을 수정하는 단계는, 얕은 융합(shallow fusion)을 통해, 하나 이상의 컨텍스트 유한 상태 변환기를 사용하여 ASR 엔진의 빔 검색 부분을 수정하는 단계를 포함한다. 이들 구현예들의 일부 버전들에서, 후보 인식들의 상기 생성된 세트 및 하나 이상의 선택된 컨텍스트 유한 상태 변환기에 기초하여 음성 발화의 텍스트 표현을 생성하는 단계는, 후보 인식들의 세트 내의 각각의 후보 인식에 대한 대응하는 확률 척도를 결정하는 단계를 포함한다. 일부 구현예에서, 상기 방법은 또한, 하나 이상의 컨텍스트 유한 상태 변환기를 사용하여 수정된 ASR 엔진의 빔 검색 부분을 이용하여 상기 대응하는 확률 척도를 수정하는 단계를 포함한다. 일부 구현예에서, 상기 방법은 또한, 후보 인식에 대한 대응하는 확률 척도가 하나 이상의 조건을 충족시킨다는 결정에 기초하여, 후보 인식들의 세트로부터 후보 인식을 선택하는 단계를 포함한다. 일부 구현예에서, 상기 방법은 또한, 선택된 후보 인식에 기초하여 음성 발화의 텍스트 표현을 생성하는 단계를 포함한다.
일부 구현예에서, 상기 오디오 데이터는 클라이언트 디바이스의 하나 이상의 마이크로폰을 통해 캡처된다.
일부 구현예에서, 상기 영숫자 시퀀스에 대한 컨텍스트 정보를 결정하는 단계는 음성 발화를 캡처하는 오디오 데이터에 기초하고, 그리고 상기 오디오 데이터에 기초하여 영숫자 시퀀스에 대한 컨텍스트 정보를 결정하는 단계는, 오디오 데이터의 하나 이상의 인식된 용어들에 기초하여 영숫자 시퀀스에 대한 컨텍스트 정보를 생성하는 단계를 포함하고, 상기 하나 이상의 인식된 용어들은 상기 영숫자 시퀀스에 추가된다.
일부 구현예에서, 상기 영숫자 시퀀스에 대한 컨텍스트 정보를 결정하는 단계는 음성 발화 직전에 렌더링된 시스템 프롬프트에 기초하고, 렌더링된 시스템 프롬프트에 기초하여 컨텍스트 정보를 결정하는 단계는, 렌더링된 시스템 프롬프트에 대한 적어도 하나의 예측된 응답에 기초하여 컨텍스트 정보를 결정하는 단계를 포함한다.
일부 구현예에서, 상기 방법은 또한, 하나 이상의 컨텍스트 유한 상태 변환기들 중 적어도 소정의(given) 컨텍스트 유한 상태 변환기를 생성하는 단계를 포함한다. 일부 구현예에서, 상기 소정의 컨텍스트 유한 상태 변환기를 생성하는 단계는, 영숫자 시퀀스에 대응하는 영숫자 문법 유한 상태 변환기를 선택하는 단계를 포함한다. 일부 구현예에서, 상기 방법은 또한, 워드피스(wordpieces)를 구성 자소들(constitute graphemes)에 매핑하는 스펠러(speller) 유한 상태 변환기를 선택하는 단계를 포함한다. 일부 구현예에서, 상기 방법은 또한, 상기 영숫자 문법 유한 상태 변환기 및 스펠러 유한 상태 변환기에 기초하여, 가중되지 않은 워드피스 기반 억셉터 문법(unweighted wordpiece based acceptor grammar)을 생성하는 단계를 포함한다. 이들 구현예들의 일부 버전들에서, 상기 소정의 컨텍스트 유한 상태 변환기를 생성하는 단계는, 팩터 연산(factor operation)을 사용하여 상기 가중되지 않은 워드피스 기반 억셉터 문법을 프로세싱함에 기초하여, 팩터링된(factored) 유한 상태 변환기를 생성하는 단계를 더 포함한다. 일부 구현예에서, 상기 방법은 또한, 상기 가중되지 않은 워드피스 기반 억셉터 문법의 각각의 아크(arc)에 일정한 가중치를 적용하는 것에 기초하여 상기 소정의 컨텍스트 유한 상태 변환기를 생성하는 단계를 포함한다.
일부 구현예에서, 영숫자 시퀀스는 적어도 하나의 숫자를 포함하고 적어도 하나의 문자를 포함한다.
일부 구현예들에서, ASR 엔진의 ASR 모델 부분은 종단간 음성 인식 모델이다.
일부 구현예들에서, ASR 엔진은 트레이닝 인스턴스들의 세트를 사용하여 트레이닝되고, 영숫자 시퀀스는 상기 트레이닝 인스턴스의 세트에 없다.
일부 구현예들에서, ASR 엔진은 트레이닝 인스턴스들의 세트를 사용하여 트레이닝되고, 영숫자 시퀀스는 상기 트레이닝 인스턴스들의 세트에서 임계값 미만인 횟수로 발생한다.
일부 구현예에서, 자동 음성 인식 동안 음성 발화의 영숫자 시퀀스의 후보 인식들의 하나 이상의 확률들을 수정하는데 사용하기 위해 컨텍스트 유한 상태 변환기를 생성하는 단계를 포함하는, 하나 이상의 프로세서들에 의해 구현되는 방법이 제공된다. 일부 구현예에서, 상기 컨텍스트 유한 상태 변환기를 생성하는 단계는, 상기 영숫자 시퀀스에 대응하는 영숫자 문법 유한 상태 변환기를 선택하는 단계를 포함한다. 일부 구현예에서, 상기 방법은 워드피스들을 구성 자소들에 매핑하는 스펠러 유한 상태 변환기를 선택하는 단계를 포함한다. 일부 구현예에서, 상기 방법은 상기 영숫자 문법 유한 상태 변환기 및 상기 스펠러 유한 상태 변환기에 기초하여 가중되지 않은 워드피스 기반 억셉터 문법을 생성하는 단계를 포함한다. 일부 구현예에서, 상기 방법은 팩터 연산을 사용하여 가중되지 않은 워드피스 기반 억셉터 문법을 프로세싱하는 것에 기초하여 팩터링된 유한 상태 변환기를 생성하는 단계를 포함한다. 일부 구현예에서, 상기 방법은 가중되지 않은 워드피스 기반 억셉터 문법의 각각의 아크에 일정한 가중치를 적용하는 것에 기초하여 상기 컨텍스트 유한 상태 변환기를 생성하는 단계를 포함한다.
또한, 일부 구현예들은 하나 이상의 프로세서들(예를 들어, 중앙 프로세싱 유닛(CPUs), 그래픽 프로세싱 유닛(GPUs), 및/또는 하나 이상의 컴퓨팅 디바이스들의 텐서 프로세싱 유닛(TPUs))을 포함하고, 여기서 하나 이상의 프로세서는 연관된 메모리에 저장된 명령들을 실행하도록 작동가능하고, 상기 명령들은 여기에 설명된 방법 중 임의의 방법을 수행하도록 구성된다. 일부 구현예들은 또한 본 명세서에 기재된 임의의 방법들을 수행하기 위해 하나 이상의 프로세서에 의해 실행가능한 컴퓨터 명령들을 저장하는 하나 이상의 일시적 또는 비일시적 컴퓨터 판독가능 저장 매체를 포함한다.

Claims (18)

  1. 하나 이상의 프로세서들에 의해 구현되는 방법으로서,
    자동 음성 인식(Automatic Speech Recognition: ASR) 엔진을 사용하여 영숫자(alphanumeric) 시퀀스를 포함하는 음성 발화(spoken utterance)를 캡처하는 오디오 데이터의 텍스트 표현을 생성하는 단계를 포함하고,
    상기 ASR 엔진을 사용하여 영숫자 시퀀스를 포함하는 음성 발화를 캡처하는 오디오 데이터의 텍스트 표현을 생성하는 단계는,
    영숫자 시퀀스에 대한 컨텍스트 정보를 결정하는 단계;
    컨텍스트 정보에 기초하여, 영숫자 시퀀스에 대한 하나 이상의 컨텍스트 유한 상태 변환기(contextual finite state transducers)를 선택하는 단계;
    ASR 엔진의 ASR 모델 부분을 이용한 상기 오디오 데이터의 프로세싱에 기초하여, 음성 발화에 대한 후보 인식들의 세트를 생성하는 단계; 및
    음성 발화의 텍스트 표현을 생성하는 단계를 포함하고,
    텍스트 표현은 영숫자 시퀀스를 포함하고, 텍스트 표현을 생성하는 단계는 후보 인식들의 상기 생성된 세트 및 하나 이상의 선택된 컨텍스트 유한 상태 변환기에 기초하는 것을 특징으로 하는 방법.
  2. 제1항에 있어서,
    상기 ASR 모델은 순환 신경망 변환기(Recurrent Neural Network Transducer: RNN-T) 모델이고, 상기 ASR 엔진은 빔 검색 부분(beam search portion)을 더 포함하는 것을 특징으로 하는 방법.
  3. 제2항에 있어서,
    후보 인식들의 상기 생성된 세트 및 하나 이상의 선택된 컨텍스트 유한 상태 변환기에 기초하여 음성 발화의 텍스트 표현을 생성하는 단계는,
    하나 이상의 컨텍스트 유한 상태 변환기를 사용하여 ASR 엔진의 빔 검색 부분을 수정하는 단계를 포함하는 것을 특징으로 하는 방법.
  4. 제3항에 있어서,
    하나 이상의 컨텍스트 유한 상태 변환기를 사용하여 ASR 엔진의 빔 검색 부분을 수정하는 단계는,
    얕은 융합(shallow fusion)을 통해, 하나 이상의 컨텍스트 유한 상태 변환기를 사용하여 ASR 엔진의 빔 검색 부분을 수정하는 단계를 포함하는 것을 특징으로 하는 방법.
  5. 제4항에 있어서,
    후보 인식들의 상기 생성된 세트 및 하나 이상의 선택된 컨텍스트 유한 상태 변환기에 기초하여 음성 발화의 텍스트 표현을 생성하는 단계는,
    후보 인식들의 세트 내의 각각의 후보 인식에 대한 대응하는 확률 척도를 결정하는 단계;
    하나 이상의 컨텍스트 유한 상태 변환기를 사용하여 수정된 ASR 엔진의 빔 검색 부분을 이용하여 상기 대응하는 확률 척도를 수정하는 단계;
    후보 인식에 대한 대응하는 확률 척도가 하나 이상의 조건을 충족시킨다는 결정에 기초하여, 후보 인식들의 세트로부터 후보 인식을 선택하는 단계; 및
    선택된 후보 인식에 기초하여 음성 발화의 텍스트 표현을 생성하는 단계
    를 포함하는 것을 특징으로 하는 방법.
  6. 임의의 선행하는 청구항에 있어서,
    상기 오디오 데이터는 클라이언트 디바이스의 하나 이상의 마이크로폰을 통해 캡처되는 것을 특징으로 하는 방법.
  7. 임의의 선행하는 청구항에 있어서,
    상기 영숫자 시퀀스에 대한 컨텍스트 정보를 결정하는 단계는 음성 발화를 캡처하는 오디오 데이터에 기초하고, 그리고 상기 오디오 데이터에 기초하여 영숫자 시퀀스에 대한 컨텍스트 정보를 결정하는 단계는,
    오디오 데이터의 하나 이상의 인식된 용어들에 기초하여 영숫자 시퀀스에 대한 컨텍스트 정보를 생성하는 단계를 포함하고, 상기 하나 이상의 인식된 용어들은 상기 영숫자 시퀀스에 추가되는 것을 특징으로 하는 방법.
  8. 임의의 선행하는 청구항에 있어서,
    상기 영숫자 시퀀스에 대한 컨텍스트 정보를 결정하는 단계는 음성 발화 직전에 렌더링된 시스템 프롬프트에 기초하고, 렌더링된 시스템 프롬프트에 기초하여 컨텍스트 정보를 결정하는 단계는,
    렌더링된 시스템 프롬프트에 대한 적어도 하나의 예측된 응답에 기초하여 컨텍스트 정보를 결정하는 단계를 포함하는 것을 특징으로 하는 방법.
  9. 임의의 선행하는 청구항에 있어서,
    하나 이상의 컨텍스트 유한 상태 변환기들 중 적어도 소정의(given) 컨텍스트 유한 상태 변환기를 생성하는 단계를 더 포함하고, 상기 소정의 컨텍스트 유한 상태 변환기를 생성하는 단계는,
    영숫자 시퀀스에 대응하는 영숫자 문법 유한 상태 변환기를 선택하는 단계;
    워드피스(wordpieces)를 구성 자소들(constitute graphemes)에 매핑하는 스펠러(speller) 유한 상태 변환기를 선택하는 단계; 및
    상기 영숫자 문법 유한 상태 변환기 및 스펠러 유한 상태 변환기에 기초하여, 가중되지 않은 워드피스 기반 억셉터 문법(unweighted wordpiece based acceptor grammar)을 생성하는 단계
    를 포함하는 것을 특징으로 하는 방법.
  10. 제9항에 있어서,
    상기 소정의 컨텍스트 유한 상태 변환기를 생성하는 단계는,
    팩터 연산(factor operation)을 사용하여 상기 가중되지 않은 워드피스 기반 억셉터 문법을 프로세싱함에 기초하여, 팩터링된(factored) 유한 상태 변환기를 생성하는 단계; 및
    상기 가중되지 않은 워드피스 기반 억셉터 문법의 각각의 아크(arc)에 일정한 가중치를 적용하는 것에 기초하여 상기 소정의 컨텍스트 유한 상태 변환기를 생성하는 단계
    를 더 포함하는 것을 특징으로 하는 방법.
  11. 임의의 선행하는 청구항에 있어서,
    상기 영숫자 시퀀스는 적어도 하나의 숫자를 포함하고 그리고 적어도 하나의 문자(letter)를 포함하는 것을 특징으로 하는 방법.
  12. 임의의 선행하는 청구항에 있어서,
    상기ASR 엔진의 ASR 모델 부분은 종단간(end-to-end) 음성 인식 모델인 것을 특징으로 하는 방법.
  13. 임의의 선행하는 청구항에 있어서,
    ASR 엔진은 트레이닝 인스턴스들의 세트를 사용하여 트레이닝되고, 영숫자 시퀀스는 상기 트레이닝 인스턴스의 세트에 없는 것을 특징으로 하는 방법.
  14. 임의의 선행하는 청구항에 있어서,
    ASR 엔진은 트레이닝 인스턴스들의 세트를 사용하여 트레이닝되고, 영숫자 시퀀스는 상기 트레이닝 인스턴스들의 세트에서 임계값 미만인 횟수로 발생하는 것을 특징으로 하는 방법.
  15. 하나 이상의 프로세서들에 의해 구현되는 방법으로서,
    자동 음성 인식 동안 음성 발화의 영숫자 시퀀스의 후보 인식들의 하나 이상의 확률들을 수정하는데 사용하기 위한 컨텍스트 유한 상태 변환기를 생성하는 단계를 포함하고, 상기 컨텍스트 유한 상태 변환기를 생성하는 단계는,
    상기 영숫자 시퀀스에 대응하는 영숫자 문법 유한 상태 변환기를 선택하는 단계;
    워드피스들을 구성 자소들에 매핑하는 스펠러 유한 상태 변환기를 선택하는 단계;
    상기 영숫자 문법 유한 상태 변환기 및 상기 스펠러 유한 상태 변환기에 기초하여 가중되지 않은 워드피스 기반 억셉터 문법을 생성하는 단계;
    팩터 연산을 사용하여 가중되지 않은 워드피스 기반 억셉터 문법을 프로세싱하는 것에 기초하여 팩터링된 유한 상태 변환기를 생성하는 단계; 및
    가중되지 않은 워드피스 기반 억셉터 문법의 각각의 아크에 일정한 가중치를 적용하는 것에 기초하여 상기 컨텍스트 유한 상태 변환기를 생성하는 단계
    를 포함하는 것을 특징으로 하는 방법.
  16. 명령들을 포함하는 컴퓨터 프로그램으로서, 상기 명령들은 컴퓨팅 시스템의 하나 이상의 프로세서에 의해 실행될 때 컴퓨팅 시스템으로 하여금 임의의 선행하는 청구항의 방법을 수행하게 하는 것을 특징으로 하는 컴퓨터 프로그램.
  17. 제1항 내지 제15항 중 어느 한 항의 방법을 수행하도록 구성된 컴퓨팅 시스템.
  18. 명령들을 저장하는 컴퓨터 판독가능 매체로서, 상기 명령들은 컴퓨팅 시스템의 하나 이상의 프로세서에 의해 실행될 때 컴퓨팅 시스템으로 하여금 제1항 내지 제15항 중 어느 한 항의 방법을 수행하게 하는 것을 특징으로 하는 컴퓨터 판독가능 매체.
KR1020227027865A 2020-01-17 2020-01-17 자동 음성 인식을 위한 영숫자 시퀀스 바이어싱 KR20220128397A (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2020/014141 WO2021145893A1 (en) 2020-01-17 2020-01-17 Alphanumeric sequence biasing for automatic speech recognition

Publications (1)

Publication Number Publication Date
KR20220128397A true KR20220128397A (ko) 2022-09-20

Family

ID=69724068

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227027865A KR20220128397A (ko) 2020-01-17 2020-01-17 자동 음성 인식을 위한 영숫자 시퀀스 바이어싱

Country Status (6)

Country Link
US (1) US11942091B2 (ko)
EP (1) EP4073789B1 (ko)
JP (1) JP7400112B2 (ko)
KR (1) KR20220128397A (ko)
CN (1) CN114981885A (ko)
WO (1) WO2021145893A1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11455467B2 (en) * 2020-01-30 2022-09-27 Tencent America LLC Relation extraction using full dependency forests
US11893983B2 (en) * 2021-06-23 2024-02-06 International Business Machines Corporation Adding words to a prefix tree for improving speech recognition
US11880645B2 (en) 2022-06-15 2024-01-23 T-Mobile Usa, Inc. Generating encoded text based on spoken utterances using machine learning systems and methods

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000267691A (ja) 1999-03-19 2000-09-29 Meidensha Corp 音声認識システムにおける認識辞書選択方法
JP4645708B2 (ja) 2008-09-10 2011-03-09 株式会社デンソー コード認識装置および経路探索装置
US8972243B1 (en) * 2012-11-20 2015-03-03 Amazon Technologies, Inc. Parse information encoding in a finite state transducer
US9817813B2 (en) * 2014-01-08 2017-11-14 Genesys Telecommunications Laboratories, Inc. Generalized phrases in automatic speech recognition systems
US9971765B2 (en) 2014-05-13 2018-05-15 Nuance Communications, Inc. Revising language model scores based on semantic class hypotheses
US9460713B1 (en) 2015-03-30 2016-10-04 Google Inc. Language model biasing modulation
US10210862B1 (en) 2016-03-21 2019-02-19 Amazon Technologies, Inc. Lattice decoding and result confirmation using recurrent neural networks
JP6727607B2 (ja) 2016-06-09 2020-07-22 国立研究開発法人情報通信研究機構 音声認識装置及びコンピュータプログラム
JP6941494B2 (ja) 2017-07-18 2021-09-29 日本放送協会 エンドツーエンド日本語音声認識モデル学習装置およびプログラム
US11232799B1 (en) * 2018-10-31 2022-01-25 Amazon Technologies, Inc. Speech recognition routing in a provider network
EP3948849A1 (en) * 2019-05-03 2022-02-09 Google LLC Phoneme-based contextualization for cross-lingual speech recognition in end-to-end models
KR20220008309A (ko) * 2019-05-10 2022-01-20 구글 엘엘씨 음성 인식을 위한 종단 간 모델과 함께 컨텍스트 정보 사용
US11328712B2 (en) * 2019-08-02 2022-05-10 International Business Machines Corporation Domain specific correction of output from automatic speech recognition

Also Published As

Publication number Publication date
JP7400112B2 (ja) 2023-12-18
CN114981885A (zh) 2022-08-30
US20220013126A1 (en) 2022-01-13
JP2023511091A (ja) 2023-03-16
EP4073789A1 (en) 2022-10-19
EP4073789B1 (en) 2023-11-08
WO2021145893A1 (en) 2021-07-22
US11942091B2 (en) 2024-03-26

Similar Documents

Publication Publication Date Title
US11817080B2 (en) Using corrections, of predicted textual segments of spoken utterances, for training of on-device speech recognition model
US11393476B2 (en) Automatically determining language for speech recognition of spoken utterance received via an automated assistant interface
US11797772B2 (en) Word lattice augmentation for automatic speech recognition
KR102596446B1 (ko) 모바일 디바이스들에서의 모달리티 학습
JP7191987B2 (ja) 話者埋め込みと訓練された生成モデルとを使用する話者ダイアライゼーション
KR102390940B1 (ko) 음성 인식을 위한 컨텍스트 바이어싱
JP7104247B2 (ja) オンデバイスの音声認識モデルの訓練のためのテキストセグメントのオンデバイスの音声合成
US11545133B2 (en) On-device personalization of speech synthesis for training of speech model(s)
EP4073789B1 (en) Alphanumeric sequence biasing for automatic speech recognition
US20230419964A1 (en) Resolving unique personal identifiers during corresponding conversations between a voice bot and a human
KR20230158107A (ko) 효율적인 스트리밍 비-순환 온-디바이스 엔드-투-엔드 모델
US20240112673A1 (en) Identifying and correcting automatic speech recognition (asr) misrecognitions in a decentralized manner
JP2023007014A (ja) 応答システム、応答方法、および応答プログラム
WO2023154095A1 (en) Altering a candidate text representation, of spoken input, based on further spoken input