KR20140041735A - 가변길이 문맥을 이용한 음성인식 - Google Patents

가변길이 문맥을 이용한 음성인식 Download PDF

Info

Publication number
KR20140041735A
KR20140041735A KR1020147001000A KR20147001000A KR20140041735A KR 20140041735 A KR20140041735 A KR 20140041735A KR 1020147001000 A KR1020147001000 A KR 1020147001000A KR 20147001000 A KR20147001000 A KR 20147001000A KR 20140041735 A KR20140041735 A KR 20140041735A
Authority
KR
South Korea
Prior art keywords
sequence
data
contextual
phoneme
phonemes
Prior art date
Application number
KR1020147001000A
Other languages
English (en)
Other versions
KR101780760B1 (ko
Inventor
첼바 아이. 씨프리안
펭 수
페르난도 페레이라
Original Assignee
구글 인코포레이티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 구글 인코포레이티드 filed Critical 구글 인코포레이티드
Publication of KR20140041735A publication Critical patent/KR20140041735A/ko
Application granted granted Critical
Publication of KR101780760B1 publication Critical patent/KR101780760B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • 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/187Phonemic context, e.g. pronunciation rules, phonotactical constraints or phoneme n-grams
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/06Creation of reference templates; Training of speech recognition systems, e.g. adaptation to the characteristics of the speaker's voice
    • G10L15/063Training
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/14Speech classification or search using statistical models, e.g. Hidden Markov Models [HMMs]
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/28Constructional details of speech recognition systems
    • G10L15/34Adaptation of a single recogniser for parallel processing, e.g. by use of multiple processors or cloud computing
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/06Creation of reference templates; Training of speech recognition systems, e.g. adaptation to the characteristics of the speaker's voice
    • G10L15/063Training
    • G10L2015/0631Creating reference templates; Clustering

Landscapes

  • Engineering & Computer Science (AREA)
  • Artificial Intelligence (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)
  • Machine Translation (AREA)
  • Electrically Operated Instructional Devices (AREA)
  • Debugging And Monitoring (AREA)

Abstract

가변 길이의 문맥을 사용하여 음성을 인식하는 방법들, 시스템들, 장치들, 및 컴퓨터 저장매체에 인코딩된 컴퓨터 프로그램들에 대해 개시된다. 음성 데이터와 이 음성 데이터에 대한 후보 전사본을 식별하는 데이터가 수신된다. 후보 전사본에 대한 음소 표기가 액세스된다. 음소 표기 내의 특정 음소에 대하여 다수의 테스트 시퀀스들이 추출된다. 이 다수의 테스트 시퀀스의 각각은 상기 음소 표기 내의 특정 음소 주변에 있는 상이한 문맥상 음소 집합을 포함한다. 상기 테스트 시퀀스 중 하나 이상에 대응되는 데이터가 음향모델에 포함됨을 나타내는 데이터가 수신된다. 음향모델에 데이터가 포함된 하나 이상의 테스트 시퀀스 중에서, 가장 많은 수의 문맥상 음소를 포함하는 테스트 시퀀스가 선택된다. 선택된 테스트 시퀀스에 대응되는 음향모델로부터의 데이터에 기초하여 후보 전사본에 대한 점수가 생성된다.

Description

가변길이 문맥을 이용한 음성인식{SPEECH RECOGNITION USING VARIABLE-LENGTH CONTEXT}
본 출원은 미국 특허출원 61/503,334(2011년 6월 30일 출원) 및 61/608,753(2012년 3월 9일 출원)의 우선권을 청구한다. 두 출원의 그 전체 내용이 본 명세서에 참조로서 포함된다.
음성인식(speech recognition) 시스템들은 음향모델(acoustic model)들을 사용하여, 발화(utterance)를 전사(transcribe)한다. 음향모델들은 대개, 기록된 발화들을 포함하는 학습데이터(training data) 집합을 이용하여 학습된다. 일반적으로, 음향모델에는 그 학습데이터 내에, 발화들을 구성하는 소리(sound)들에 관한 통계 데이터를 포함하고 있다.
분산 컴퓨팅 기술들을 사용하여 음향모델을 학습시킬 수 있다. 음향모델을 학습시키는 데 사용되는 데이터는 각각 다른 음소 문맥들을 나타내는 음성 요소들의 시퀀스들을 포함할 수 있다. 시퀀스들을 식별하는 데이터는 음향모델의 다른 부분을 학습시키기 위해 각기 할당된 다수의 처리 모듈들에 배분될 수 있다. 음향모델의 학습을 용이토록 하기 위해, 음성 요소들의 공통 시퀀스를 포함하는 시퀀스들에 대한 데이터를 동일한 처리 모듈로 전송할 수 있고, 이로써 처리 모듈은 음향모델의 할당된 부분을 효율적으로 학습시킬 수 있게 된다.
본 명세서에 설명된 주제의 한 가지 혁신적인 측면은, 음성 데이터와 이 음성 데이터에 대한 전사본을 수신하고; 전사본에 대한 음소 표기를 액세스하고; 상기 음소 표기 내의 특정 음소에 대한 음소 표기로부터 트레이닝 시퀀스들을 추출하되, 이 트레이닝 시퀀스들의 각각은 상기 특정 음소 주변에 있는 상이한 문맥상 음소 집합을 포함하고; 각 트레이닝 시퀀스들에서 나타나는 음소들의 시퀀스에 기초하여 파티션 설정키를 식별하고; 다수의 처리 모듈 중에서, 상기 식별된 파티션 설정키에 대응하는 음향모델의 부분을 학습시키도록 이 파티션 설정키가 할당된 처리 모듈을 선택하고; 그리고, 상기 선택된 처리 모듈로, (i) 트레이닝 시퀀스들을 식별하는 데이터와 (ii) 가장 많은 문맥상 음소들을 포함하는 트레이닝 시퀀스들에 대응하는 음성 데이터의 일부를 전송하는 연산을 포함하는 방법으로 구현된다.
이 측면의 다른 구현예는 컴퓨터 저장 장치들에 인코딩되며 상기 방법의 연산들을 수행하도록 구성되는 대응 시스템, 장치, 및 컴퓨터 프로그램을 포함한다. 하나 이상의 컴퓨터 시스템은 이 시스템으로 하여금 상기 연산들을 수행하도록 동작하는 시스템에 설치된 소프트웨어, 펌웨어, 하드웨어, 또는 이들의 조합으로 구성될 수 있다. 하나 이상의 컴퓨터 프로그램들을, 데이터 처리 장치들에 의해 실행시에 이 장치로 하여금 연산들을 수행하도록 하는 명령어들로 구성할 수 있다.
선택사항으로서, 상기 및 다른 구현예들은 각각 다음의 특징들 중 하나 이상을 포함할 수 있다. 예를 들어, 전사본에 대한 음소 표기를 액세스하는 것은, 문맥 독립적인 음소를 포함하는 음소 표기를 액세스하는 것을 포함한다. 음성 데이터를 수신하는 것은, 음성 특징을 나타내는 특징 벡터들을 수신하는 것을 포함한다. 적어도 음성 데이터의 일부를 전송하는 것은, 트레이닝 시퀀스 집합 내의 모든 트레이닝 시퀀스들 보다 적은 수에 대한 음성 데이터 인스턴스를 전송하는 것을 포함한다. 적어도 음성 데이터의 일부를 전송하는 것은, 가장 많은 문맥상 음소들을 포함하는 트레이닝 시퀀스에 대응하는 음성 데이터를 선택된 처리 모듈로 전송하되, 다른 트레이닝 시퀀스에 대한 추가 음성 데이터는 전송하지 않는 것을 포함한다. 선택된 처리 모듈에서는, 트레이닝 시퀀스와, 가장 많은 문맥상 음소들을 포함하는 트레이닝 시퀀스에 대응되는 음성 데이터의 일부를 식별하는 데이터를 수신한다. 선택된 처리 모듈에서는, 트레이닝 시퀀스 각각에 대한 수신된 음성 데이터의 다른 부분집합을 액세스한다. 각 트레이닝 시퀀스에서 나타나는 음소의 시퀀스에 기초하여 파티션 설정키를 식별하는 것은, 각 트레이닝 시퀀스에서 나타나는 두 개 이상의 연속된 음소들의 시퀀스에 기초하여 파티션 설정키를 식별하는 것을 포함한다. 각 트레이닝 시퀀스에서 나타나는 음소들의 시퀀스에 기초하여 파티션 설정키를 식별하는 것은, 특정 음소 앞의 하나의 문맥상 음소 및 특정 음소 뒤의 하나의 문맥상 음소를 포함하는 시퀀스에 기초하여 파티션 설정키를 식별하는 것을 포함한다. 각 트레이닝 시퀀스에서 나타나는 음소의 시퀀스에 기초하여 파티션 설정키를 식별하는 것은, 각 트레이닝 시퀀스에 대해 동일한 파티션 설정키가 식별되도록 각 트레이닝 시퀀스에 대한 파티션 설정키를 식별하는 것을 포함한다.
선택사항으로서, 상기 및 다른 구현예들은 각각 하나 이상의 하기의 특징들 을 포함할 수 있다. 예를 들어, 트레이닝 시퀀스들은 각각 중앙 삼음소를 포함하는 제1 트레이닝 시퀀스이다. 상기 각 트레이닝 시퀀스들에서 나타나는 음소들의 시퀀스에 기초하여 파티션 설정키를 식별하는 것은, 제1 트레이닝 시퀀스에 포함된 중앙 삼음소에 기초하여 파티션 설정키를 식별하는 것을 포함한다. 상기 제1 트레이닝 시퀀스에 포함된 것과 동일한 중앙 삼음소를 포함하는 제2 트레이닝 시퀀스를 식별하는 데이터를, 상기 처리 모듈로는 전송하나 다수의 처리 모듈 중 그 밖의 처리 모듈에는 전송하지 않고, 상기 제2 트레이닝 시퀀스는 제2 음성 데이터에 대한 전사본에 대한 음소 표기에서 추출된다. 음소 표기 내의 특정 음소에 대하여 트레이닝 시퀀스를 추출하는 것은, 적어도, 특정 음소의 앞에 있는 하나의 문맥상 음소와 특정 음소의 뒤에 있는 하나의 문맥상 음소를 포함하는 제1시퀀스, 특정 음소의 앞에 있는 두 개의 문맥상 음소들과 특정 음소의 뒤에 있는 두 개의 문맥상 음소를 포함하는 제2시퀀스, 및 특정 음소의 앞에 있는 세 개의 문맥상 음소와 특정 음소의 뒤에 있는 세 개의 문맥상 음소를 포함하는 제3시퀀스를 식별하는 것을 포함한다. 음소 표기 내의 특정 음소에 대하여 트레이닝 시퀀스를 추출하는 것은, 음소 표기 내의 연속된 음소들의 시퀀스를 추출하는 것을 포함한다.
선택사항으로서, 상기 및 다른 구현예들은 각각 다음의 특징들 중 하나 이상을 포함할 수 있다. 예를 들어, 선택된 처리 모듈에서는 트레이닝 시퀀스들을 식별하는 데이터를 수신한다. 선택된 처리 모듈에서는 음성 데이터의 일부분과 트레이닝 시퀀스의 다른 인스턴스에 대한 음성 데이터를 병합한다. 선택된 처리 모듈에서는 제1 트레이닝 시퀀스에 대한 병합된 음성 데이터에 기초하여 트레이닝 시퀀스들 중의 제1 트레이닝 시퀀스에 대한 모델을 생성한다. 생성된 모델을 배분된 관련 배열에 저장하는데, 이 생성된 모델은 식별된 파티션 설정키에 연계된 배분된 관련 배열의 파티션에 저장된다. 제1 트레이닝 시퀀스에 대한 모델을 생성하는 것은, 제1 트레이닝 시퀀스 내에 포함된 문맥상 음소의 시퀀스에 의존하는 문맥 의존성 가우시안 혼합 모델을 생성하는 것을 포함하는데, 이 가우시안 혼합 모델은 제1 트레이닝 시퀀스의 중앙 음소의 히든 마르코프 모델의 상태의 출력 배분을 나타낸다. 생성된 모델을 배분된 관련 배열에 저장하는 것은, 생성된 모델이 제1 트레이닝 시퀀스에 고유하게 대응하는 키와 연계되도록, 배분된 관련 배열에 생성된 모델을 저장하는 것을 포함한다. 선택된 처리 모듈에서는, 상기 병합된 음성 데이터가 트레이닝 시퀀스 중의 제2 트레이닝 시퀀스 인스턴스 수의 임계값보다 적은 수에 대한 데이터를 포함하고 있는지 판단하고, 상기 병합된 음성 데이터가 제2 트레이닝 시퀀스 인스턴스 수의 임계값보다 적은 수에 대한 데이터를 포함하고 있는 것으로 판단하면, 제2 트레이닝 시퀀스에 대한 모델은 생성하지 않는다.
본 명세서에 설명된 주제의 다른 혁신적인 측면은, 음성 데이터와 이 음성 데이터에 대한 후보 전사본을 식별하는 데이터를 수신하는 것과; 상기 후보 전사본에 대한 음소 표기를 액세스하는 것과; 상기 음소 표기로부터, 이 음소 표기 내의 특정 음소에 대한 다수의 테스트 시퀀스들을 추출하되, 이 다수의 테스트 시퀀스의 각각은 상기 음소 표기 내의 특정 음소 주변에 있는 상이한 문맥상 음소 집합을 포함하는 것과; 상기 테스트 시퀀스 중 하나 이상에 대응하는 데이터가 음향모델에 포함됨을 나타내는 데이터를 수신하는 것과; 상기 음향모델에 데이터가 포함된 하나 이상의 테스트 시퀀스들 중에서, 가장 많은 수의 문맥상 음소를 포함하는 테스트 시퀀스를 선택하는 것과; 상기 선택된 테스트 시퀀스에 대응되는 음향모델로부터의 데이터를 액세스하는 것과; 그리고, 상기 선택된 테스트 시퀀스에 대응되는 음향모델로부터 액세스된 데이터에 기초하여 후보 전사본에 대한 점수를 생성하는 연산을 포함하는 방법으로 구현된다.
이 측면의 다른 구현예는 컴퓨터 저장 장치에 인코딩되며 상기 방법의 연산을 수행하도록 구성되는 대응 시스템, 장치, 및 컴퓨터 프로그램을 포함한다. 하나 이상의 컴퓨터 시스템은 이 시스템으로 하여금 상기 연산을 수행하도록 동작하는 시스템에 설치된 소프트웨어, 펌웨어, 하드웨어, 또는 이들의 조합으로 구성 될 수 있다. 하나 이상의 컴퓨터 프로그램을, 데이터 처리 장치에 의해 실행시에 이 장치로 하여금 연산을 수행하도록 하는 명령어로 구성할 수 있다.
선택사항으로서, 상기 및 다른 구현예들은 각각 다음의 특징들 중 하나 이상을 포함할 수 있다. 예를 들어, 가장 많은 수의 문맥상 음소를 포함하는 테스트 시퀀스를 선택하는 것은, 테스트 시퀀스들 중 미리 결정된 문맥상 음소의 최대 수보다 적은 수를 포함하는 것을 선택하는 것을 포함한다. 선택된 테스트 시퀀스에 대응되는 음향모델로부터 액세스된 데이터에 기초하여 후보 전사본에 대한 점수를 생성하는 것은, 미리 결정된 문맥상 음소의 최대 수보다 적은 수를 포함하는 선택된 테스트 시퀀스에 기초하여 페널티를 결정하고; 이 페널티를 기초로 하여 후보 전사본에 대한 최초 점수를 조정하여 조정된 점수를 생성하는 것을 포함한다. 여기서 이 조정된 점수는 최초 점수에 비해, 후보 전사본이 음성 데이터에 대한 정확한 전사가 될 수 있는 가능도가 더 낮음을 나타낸다. 미리 결정된 문맥상 음소의 최대 수보다 적은 수를 포함하는 선택된 테스트 시퀀스에 기초하여 페널티를 결정하는 것은, 선택된 테스트 시퀀스 내의 문맥상 음소의 수와 미리 결정된 최대 문맥상 음소 수 간의 차이에 기초하여 상기 페널티의 크기를 결정하는 것을 포함한다.
선택사항으로서, 상기 및 다른 구현예들은 각각 다음의 특징들 중 하나 이상을 포함할 수 있다. 예를 들어, 특정 음소에 대한 다수의 테스트 시퀀스들을 추출하는 것은, 특정 음소의 전과 후에 있는 비대칭 수의 문맥상 음소를 포함하는 하나 이상의 비대칭 테스트 시퀀스를 추출하는 것을 포함한다. 특정 음소에 대한 다수의 테스트 시퀀스들을 추출하는 것은, 특정 음소의 전과 후에 있는 대칭 수의 문맥상 음소를 포함하는 하나 이상의 대칭 테스트 시퀀스를 추출하는 것을 포함하되, 여기서 각 대칭 테스트 시퀀스는 하나 이상의 비대칭 테스트 시퀀스보다 적은 문맥상 음소를 포함한다. 특정 음소에 대하여 다수의 테스트 시퀀스를 추출하는 것은, 적어도, 상기 특정 음소의 앞에 있는 하나의 문맥상 음소와 특정 음소의 뒤에 있는 하나의 문맥상 음소를 포함하는 제1시퀀스, 상기 특정 음소의 앞에 있는 두 개의 문맥상 음소들과 상기 특정 음소의 뒤에 있는 두 개의 문맥상 음소들을 포함하는 제2시퀀스, 및 특정 음소의 앞에 있는 세 개의 문맥상 음소들과 특정 음소의 뒤에 있는 세 개의 문맥상 음소들을 포함하는 제3시퀀스를 추출하는 것을 포함한다. 특정 음소에 대하여 다수의 테스트 시퀀스를 추출하는 것은, 적어도 5개의 테스트 시퀀스를 추출하는 것을 포함하되, 여기서 적어도 5개의 테스트 시퀀스는 각각, 특정 음소의 전과 후에 있는 1개, 2개, 3개, 4개, 또는 5개의 문맥상 위치 내에서 나타나는 모든 문맥상 음소를 포함한다.
선택사항으로서, 상기 및 다른 구현예들은 각각 다음의 특징들 중 하나 이상을 포함할 수 있다. 예를 들어, 테스트 시퀀스 중 하나 이상에 대응되는 데이터가 음향모델에 포함되는 것을 나타내는 데이터를 수신하는 것은, 테스트 시퀀스의 각각에 대해, 테스트 시퀀스에 대응되는 음향모델로부터 데이터를 요청하는 것과; 음향모델 내에 데이터가 존재하는 하나 이상의 테스트 시퀀스의 각각에 대응하는 음향모델로부터 데이터를 수신하는 것과; 그리고, 하나 이상의 테스트 시퀀스에 대응되는 데이터를 수신한 것에 근거하여, 상기 음향모델에 의해 하나 이상의 테스트 시퀀스가 인식되는지를 판단하는 것을 포함한다. 선택된 테스트 시퀀스에 대응되는 음향모델로부터의 데이터를 액세스하는 것은, 다수의 테스트 시퀀스의 각각에서 나타나는 음소의 시퀀스에 기초하여 파티션 설정키를 식별하는 것과; 파티션 설정키에 대응하는 배분된 관련 배열의 파티션을 식별하는 것과; 그리고 식별된 파티션으로부터, 음향모델에 데이터가 포함된 다수의 테스트 시퀀스의 각각에 대응하는 데이터를 얻는 것을 포함한다. 선택된 테스트 시퀀스에 대응하는 음향모델로부터의 데이터를 액세스하는 것은, 선택된 테스트 시퀀스의 중앙 음소에 대응되는 가우시안 혼합 모델을 나타내는 데이터를 액세스하는 것을 포함한다. 전사본에 대한 음소 표기를 액세스하는 것은, 문맥 독립적 인 음소를 포함하는 음소 표기를 액세스하는 것을 포함한다. 음성 데이터를 수신하는 것은, 음성 특징을 나타내는 특징 벡터를 수신하는 것을 포함한다. 선택된 테스트 시퀀스에 대응되는 음향모델로부터 액세스된 데이터에 기초하여 후보 전사본에 대한 점수를 생성하는 것은, 상이한 음향모델을 이용하여 후보 전사본에 할당된 점수를 조정하는 것을 포함하는 방법.
선택사항으로서, 상기 및 다른 구현예들은 각각 다음의 특징들 중 하나 이상을 포함할 수 있다. 예를 들어, 상기 수행되는 연산은, 상기 음소 표기로부터, 이 음소 표기 내에 있는, 상기 특정 음소와 다른 제2 음소에 대한 다수의 제2 테스트 시퀀스들을 추출하되, 이 다수의 제2 테스트 시퀀스의 각각은 제2음소 주변에 있는 상이한 문맥상 음소 집합을 포함하고; 하나 이상의 제2 테스트 시퀀스 중 하나 이상에 대한 데이터가 음향모델에 포함됨을 나타내는 데이터를 수신하고; 음향모델에 데이터가 포함된 하나 이상의 테스트 시퀀스 중에서, 가장 많은 수의 문맥상 음소를 포함하는 테스트 시퀀스를 선택하는 것을 추가로 포함할 수 있다. 상기 후보 전사본에 대한 점수를 생성하는 것은, 선택된 테스트 시퀀스에 대응되는 음향모델로부터의 데이터 및 선택된 제2 테스트 시퀀스에 대응되는 음향모델로부터의 데이터에 기초하여 후보 전사본에 대한 점수를 생성하는 것을 포함한다.
유리한 구현예들에는 하나 이상의 다음 특징들이 포함될 수 있다. 많은 다양한 크기의 음소 문맥을 인식하는 음향모델을 학습시킬 수 있다. 음향모델에 대한 학습 프로세스는 많은 양의 입력 데이터를 사용할 수 있다. 음향모델의 정확도가 향상될 수 있다.
본 명세서에 설명된 주제의 하나 이상의 구현예들의 세부적 사항은 첨부 도면 및 아래의 상세한 설명에 기재되어 있다. 주제의 다른 특징, 측면, 및 장점은 상세한 설명, 도면, 및 청구범위로부터 명백해질 것이다.
도 1은 음향모델을 학습시키기 위한 시스템의 예를 도시한 도면이다.
도 2는 맵연산기 처리 모듈에 의해 수행되는 프로세스의 일례를 도시한 도면이다.
도 3은 맵연산기 처리 모듈과 도 1의 리듀스연산기 처리 모듈 사이의 상호대화의 예를 나타내는 도면이다.
도 4는 음향모델을 학습시키기 위한 프로세스의 일례를 도시하는 흐름도이다.
도 5는 가변 길이의 음성 문맥을 이용하여 음성인식을 수행할 수 있는 시스템의 일례를 도시한 도면이다.
도 6은 발화의 후보 전사본들을 평가하기 위해 맵연산기에 의해 실행되는 프로세스를 도시하는 도면이다.
도 7은 후보 전사본의 점수를 도시한 도면이다.
도 8은 가변길이의 음소 문맥을 이용하여 음성을 인식하기 위한 과정을 나타내는 흐름도이다.
여러 도면에서 동일한 참조 번호와 명칭은 동일한 구성요소를 나타낸다.
음향모델은, 문맥(context)에 의존하는 부분단어 모델링 단위(sub-word modelling unit)(예를 들면, 음소(phone))를 사용하여 음향 프레임(acoustic frame)에 점수(score)를 부여하는 데 사용될 수 있다. 음향모델에 의해 매겨진 점수는 음향 프레임 집합에 대한 전사본(transcription)을 식별하는 데 사용할 수 있거나, 또는 특정 전사본이 정확한지를 나타내는 가능도(likelihood)를 평가하는 데 사용할 수 있다. 일부 구현예들에서, 각 부분단어 모델링 단위, 또는 음소는 히든 마르코프 모델(HMM: Hidden Markov Model)에 의해 모델링되는데, 이 모델은 일반적으로 세 가지 상태(state)를 갖는다. 각 상태는 가우시안 혼합 모델(GMM: Gaussian Mixture Model)을 사용하여 하나 이상의 다차원 음향 프레임에 대해 가능도 점수를 할당할 수 있다. 일반적으로 GMM의 각 혼합 성분(mixture component)은 대각 공분산 행렬(diagonal covariance matrix)을 사용한다.
후술하는 바와 같이, 음향모델은 서로 다른 길이의 다양한 음소 문맥(phonetic context)을 사용하여 학습(training)시킬 수 있다. 예를 들어, 음향모델은, 중앙 음소(central phone)의 앞 및/또는 뒤에 있는 1개, 2개, 3개, 또는 그 이상의 음소들 각각 포함하는 트레이닝 시퀀스(training sequence)을 써서 학습될 수 있다.
일반적인 대부분의 음향모델은 100 내지 1000 시간분의 학습데이터를 사용하여 학습된다. 보통, 일반적인 학습 과정에서는 1000 시간분 이상의 학습데이터를 사용할 수 없다. 또한 양이 많은 학습데이터를 처리하는 연산 비용은 대부분의 학습 방법에 있어서 비현실적이다. 그러나, 이하에 설명된 기술을 이용하여서, 수천 시간, 수만 시간, 수십만 시간, 또는 그 이상의 학습데이터를 써서 음향모델을 학습시킬 수 있다. 후술하는 분산 컴퓨팅 구조는 많은 양의 학습데이터 집합을 사용하는 데 필요한 프로세스를 용이하게 할 수 있다.
또한, 일반적인 음향모델은 일반적으로 100만 가우시안보다 적다. 일부 구현예에서, 후술하는 것과 같이 학습되는 음향모델에는, 100만 가우시안 이상 또는 1000만 가우시안 이상의 다양한 GMM 성분이 포함될 수 있다. 이들 가우시안을 사용하여 많은 수의 문맥에 대해서 문맥 의존성 HMM 상태를 모델링할 수 있고, 따라서 큰 학습데이터 집합 내에 표기된 많은 다양한 문맥들을 사용할 수 있게 된다. 음향모델은 많은 다양한 문맥들(다른 길이의 문맥들이 포함됨)에 대한 GMM을 포함하고 있다. 결과적으로, 아래에서 설명하고 있는 기술은, 전형적인 음향모델 내에 저장되는 것보다 더 크고 많은 다양한 문맥에 대한 문맥 의존성 GMM이 포함된 음향모델을 제공할 수 있다. 일부 경우에는, 후술하는 음향모델 내의 크고 다양한 문맥 의존성 GMM 집합에 의해서, 일반적인 음향모델을 이용하는 경우보다도 높은 음성인식 정확도를 얻을 수 있다.
분산 컴퓨팅 기술을 이용하여 음향모델을 학습시킬 수 있다(예를 들어, 기존의 음향모델을 업데이트하거나 새로운 음향모델을 생성함). 분산 컴퓨팅 시스템에서, 다른 음향모델을 학습시키기 위해 다른 처리 모듈이 할당된다. 처리 모듈들의 각각에는, 음향모델의 학습 대상 부분에 대응하는 하나 이상의 파티션 설정키(partitioning key)가 할당된다.
분산 시스템에, 음성 데이터와 이 음성 데이터에 대한 전사본이 수신될 수 있다. 전사본에 대한 음소 표기(phonetic representation)에 액세스할 수 있으며, 이 음소 표기로부터 트레이닝 시퀀스(training sequence)을 추출할 수 있다. 음소 표기 내에서 특정 음소 주변에 있으며 문맥을 이루는 음소(contextual phone; 문맥상 음소)들의 상이한 집합을 포함하는 시퀀스들이 상기 트레이닝 시퀀스에 포함될 수 있다. 파티션 설정키는, 각 트레이닝 시퀀스에서 나타나는 음소들의 시퀀스에 따라(가령, 각 트레이닝 시퀀스에서 나타나는 3개 음소들의 중앙 시퀀스에 따라) 식별(identify)된다. 파티션 설정키를 근거로 하여, 다수의 처리 모듈 중에서 하나의 처리 모듈이 선택된다. 트레이닝 시퀀스를 식별(identify)하는 데이터 그리고 음성 데이터의 부분을 식별하는 데이터가 이 선택된 처리 모듈로 전송된다. 선택된 처리 모듈은 이 수신 데이터를 이용하여, 음향모델 중에 파티션 설정키에 연계된 부분을 학습(예를 들어, 업데이트 또는 생성)시킬 수 있다.
도 1은 음향모델 학습 시스템(100)의 일례를 도시한 도면이다. 이 시스템(100)은 다수의 처리 모듈(processing module)을 포함하는데, 처리 모듈 중 일부는 맵연산기(mapper)(120a-120d)로 표시하고, 다른 일부는 리듀스연산기(reducer)(130a-130d)로 표시하였다. 맵연산기(120a-120d)는 하나 이상의 데이터 저장 장치(110)의 입력 데이터를 액세스하여, 관련 키-값 쌍(key-value pair)들을 생성하고, 이 키-값 쌍들을 학습 데이터세트(122)라고 표시된다. 리듀스연산기(130a-130d)들은 각각, 키-값 쌍의 다른 서브세트들을 수신하고, 이 수신 데이터를 이용하여 음향모델(140)을 생성 또는 업데이트한다. 학습이 끝나면 음향모델(140)은, 음성인식 시스템(150)에 의해 음성 인식의 전사본(transcription)을 생성하는 데 사용된다. 예를 들어, 음성인식 시스템(150)은 네트워크(170)를 통해 컴퓨팅 장치(160)로부터 음성 데이터를 수신할 수 있고, 그 전사본을 컴퓨팅 장치(160)로 보낼 수 있다.
컴퓨팅 장치(160)는 예를 들어, 데스크톱 컴퓨터, 랩톱 컴퓨터, 셀룰러폰, 스마트폰, 개인 휴대 정보 단말기(PDA), 태블릿 컴퓨터, 착용형 컴퓨터, 네비게이션 시스템, 또는 그 밖의 컴퓨팅 장치일 수 있다. 음성인식 시스템(150)에 의해 수행되는 작업들은, 개별 컴퓨터 시스템들에 의해 수행될 수도 있고 다수의 컴퓨터 시스템들에서 분산처리될 수도 있다. 음성인식 시스템은, 하나 이상의 데이터 저장 장치(직접 연결될 수도 있고 네트워크(170)를 통해 연결될 수도 있음)에 저장된 음향모델(140)에 액세스한다. 네트워크(170)는 유선 또는 무선, 또는 이들의 조합일 수 있다. 네트워크(170)는 하나 이상의 공공 또는 사설 네트워크를 포함할 수 있으며, 인터넷을 포함할 수 있다.
시스템(100)의 처리 모듈은 음향모델(140)의 분산된 학습을 수행하기 위해서 맵-리듀스(MapReduce) 처리방식을 이용할 수 있다. 이 처리방식에서, 맵연산기(mapper)(120a-120d)는 각각, 서로 다른 입력 데이터 집합들에 대해서 맵 연산을 수행하여 맵 출력으로서 키-값 쌍을 생성한다. 이 키-값 쌍들은 리듀스연산기(reducer)(130a-130d)로 보내지는데, 리듀스연산기는 동일한 키에 연계된 여러 값들을 조합하여 각 키에 대한 최종 값을 출력한다. 각 리듀스연산기(130a-130d)는 전체 키들의 세트 중에서 서로 중복되지 않는 상이한 서브세트들을 담당할 수 있다. 다른 말로 설명하면, 동일한 키에 연계된 데이터가 동일한 리듀스연산기(130a-130d)에 의해 처리되도록 각 키를 하나의 리듀스연산기(130a-130d)에 할당할 수 있다. 맵연산기(120a-120d)로부터 리듀스연산기(130a-130d)로의 데이터의 배분을 셔플링(shuffling)이라고 지칭할 수 있으며, 이 셔플링에 의해서 각 리듀스연산기는 각 맵연산기로부터 대응 리듀스연산기가 담당하는 키-값 쌍들을 수신할 수 있게 된다.
더 구체적으로, 음향모델(140)을 학습시키기 위해 사용되는 입력 데이터(111)에는, 음성 데이터(112)와 전사 데이터(113)가 포함된다. 음성 데이터(112)에는, 발화(utterance)를 포함하는 기록된 오디오 및/또는 발화를 기술하는 데이터(가령, 음성의 특징을 나타내는 특징 벡터)가 포함될 수 있다. 일부 구현예에서는 수백, 수천, 또는 수만 시간분의 음성 샘플을 사용하여 음향모델(140)을 학습시킨다. 전사 데이터(113)에는 음성 데이터(112)에 포함된 발화의 전사본이 포함될 수 있다. 일부 구현예들에서, 음향모델(140)을 학습시키기 위해 사용되는 음성 데이터(112) 및 이에 대응되는 전사 데이터(113)는, 전사본들이 최소 신뢰도 레벨 이상이 되도록 선택된다. 예를 들어, 음성인식기의 전사본의 신뢰도가 최소 신뢰도 이상(예를 들어, 70%, 80%, 또는 90%)을 가짐을 대응 전사본에 대한 신뢰도 점수가 나타내는 경우에, 학습용으로 사용할 음성 샘플을 선택할 수 있다.
입력 데이터(111)의 여러 상이한 부분을 상이한 맵연산기(120a-120d)가 처리한다. 일부 구현예에서, 입력 데이터(111)는 데이터의 여러 부분, 즉, "청크(chunk)"로 구성될 수 있으며, 각 맵연산기(120a-120d)가 입력 데이터(111)의 상이한 부분들을 처리한다. 일부 구현예에서, 시스템(100)은, 각각의 맵연산기(120a-120d)에 의해 처리되는 입력 데이터(111) 부분들을 할당 및/또는 추적하는 하나 이상의 마스터 처리 모듈(도시하지 않았음)을 포함할 수 있다.
입력 데이터(111)에 기초하여, 맵연산기(120a-120d)는 맵 출력들로서 키-값 쌍을 생성하는데, 각 키-값 쌍은 음향모델(140)을 학습시키는 트레이닝 시퀀스를 식별한다. 관련된 키-값 쌍들의 그룹을 데이터세트(122)으로 표시하였다. 그럼에도 불구하고, 각 키-값 쌍은 서로 독립적으로 리듀스연산기(130a-130d)로 전송될 수 있다. 데이터세트(122)에는 예를 들어, 특정 발화 인스턴스 내에 있는 특정 음소 주위에 있는 다양한 길이(크기)의 음소 문맥으로서 트레이닝 시퀀스를 식별하는 키-값 쌍이 포함될 수 있다. 각 데이터세트(122) 내의 키-값 쌍들은 특정의 공통 특징을 갖는 관련된 트레이닝 시퀀스들을 식별한다(여기서 공통 특징이란, 예컨대, 이 관련된 각 트레이닝 시퀀스에서 나타나는 중앙 음소들의 시퀀스임).
맵연산기(120a-120d)는 데이터세트(122)의 키-값 쌍들을 출력하고, 이들 키-값 쌍은 셔플링 단계에서 여러 리듀스연산기(140a-140b)로 배분된다. 후술하는 바와 같이, 셔플링을 위해 사용되는 파티션 설정키들은, 특정 데이터세트(122)의 각 키-값 쌍이 동일한 리듀스연산기(130a-130d)로 전송되도록 정해진다. 예를 들어, 트레이닝 시퀀스에 연계된 파티션 설정키는 트레이닝 시퀀스에 있는 음소의 중앙 시퀀스에 기초하여 정해질 수 있다. 각 관련된 트레이닝 시퀀스는 동일한 중앙 시퀀스를 갖기 때문에, 각 키-값 쌍은 동일한 파티션 설정키와 연계되고, 따라서 동일한 리듀스연산기(130a-130d)에 할당된다(예를 들면, 리듀스연산기는 파티션 설정키와 연계된 데이터를 처리하도록 할당된다).
각 리듀스연산기(130a-130d)는 하나 이상의 파티션 설정키를 할당받고, 그 할당된 하나 이상의 파티션 설정키에 연계된 모든 키-값 쌍을 수신한다. 일부 구현예들에서는, 각 파티션 설정키가 정확히 하나의 리듀스연산기(130a-130d)에 할당됨으로써, 각 데이터세트(122)의 키-값 쌍들이 하나의 리듀스연산기(130a-130d)로 전송되어 처리되도록 한다. 각 리듀스연산기(130a-130d)는, 그 할당된 하나 이상의 파티션 설정키에 상응하는 음향모델(140)의 특정 파티션(140a-140d)을 만드는 것을 담당한다. 각 리듀스연산기(130a-130d)가 수신한 키-값 쌍들을 기초로 하여, 각 리듀스연산기(130a-130d)는 트레이닝 시퀀스들을 병합하고 (예를 들어, 각 할당된 파티션 설정키에 대한 병합된 데이터를 통계적으로 분석함으로써) 음향모델(140)의 할당된 파티션을 학습시킨다. 리듀스연산기의 출력을 저장하는 음향모델 파티션(140a-140d)들은 배분된(예를 들어, 파티션으로 구획된) 관련 배열 중의 한 부분이 될 수 있다.
음향모델(140)의 학습 후에, 음성인식 시스템(150)은 음향모델(140)을 학습시킬 때 사용한 것과 동일한 파티션 설정키를 사용하여 음향모델(140) 내 데이터를 액세스할 수 있다. 오디오 데이터(162)가 컴퓨팅 장치(160)로부터 수신되면, 음성인식 시스템(150)은 음향모델(140)을 이용하여 음성 데이터(162)에 대한 후보 전사본(예컨대, 가설본(hypothesis))들을 평가할 수 있다. 주어진 후보 전사본에 대한 파티션 설정키들의 세트를, 이 후보 전사본의 음소 특징에 기초하여 선택할 수 있다. 그리고, 선택된 파티션 설정키에 연계된 음향모델 데이터를 관련 배열 중에서 검색한다. 각 파티션 설정키에 대한 데이터는, 음향모델(140)의 학습시에 대응 파티션 설정키가 할당된 리듀스연산기(130a-130d)에 의해 학습된 파티션(140a-140d)으로부터 얻을 수 있다. 음성인식 시스템(150)은 음향모델 데이터를 사용하여 후보 전사본이 정확한지를 나타내는 가능도를 평가한다. 그런 다음 음성인식 시스템(150)은 오디오 데이터(162)의 정확한 전사본이 될 가능성이 가장 높은 것으로 결정된 하나 이상의 가설본(164)을 컴퓨팅 장치(160)로 보내준다.
도 2는 맵연산기 처리 모듈에 의해 수행되는 프로세스의 일례를 나타내는 개략도이다. 예로서, 도 1에서 맵연산기(120a)가 학습 데이터세트들(122) 중 하나를 생성하기 위한 특정 입력을 처리하는 것을 설명하기로 한다. 맵연산기(120a-120d)들 각각은 다른 입력 데이터에 대해서도 유사한 프로세스를 수행하여 다른 데이터세트(122)을 생성할 수 있다. 각 맵연산기(120a-120d)는 아래에서 설명하는 방식으로, 샘플 음성 데이터의 단어 레벨 세그먼트들에 대해서 프로세스를 수행할 수 있다.
도 1의 맵연산기(120a)는 특정 발화(예컨대, 사용자가 입력한 음성 질의)의 음성 데이터(112a)를 액세스한다. 이 맵연산기(120a)는 또한, 음성 데이터(112a)에 대한 전사본(113a)을 식별하는 데이터(즉 이 도시된 예에서는 전사본(113a)이 "action"이라는 말을 포함하고 있음을 나타내는 데이터)에 액세스한다. 일부 구현예에서, 이 맵연산기(120a)는 입력 데이터의 청크들(각각이 다수의 레코드를 포함함)를 수신한다. 각 레코드에는 발화의 오디오 파형, 발화에 대한 단어 레벨의 전사본, 및 그 밖의 요소들이 포함될 수 있다.
일부 구현예들에서, 잘못된 데이터로 음향모델(140)을 학습시키는 것을 방지하기 위해, 맵연산기(120a)는 전사에 대한 신뢰도 점수의 최소 임계값이 만족되도록 보장한다. 이는 전사본이 정확할 가능성이 크다는 것을 나타낸다. 전사본이 상기 최소 임계 신뢰도 점수에 이르지 못하면 맵연산기는 대응 전사본 및 관련 데이터를 더 이상 처리하지 않고 다른 입력 데이터를 처리한다.
맵연산기(120a)는 전사본(113a)의 음소 표기(220)를 식별한다(202). 맵연산기(120)는 발음 사전으로부터, 전사본(113a)의 발음을 표기하는 음소 요소(예컨대, 문맥독립형 음소(CI phone))의 시퀀스에 대한 전사본(113a)의 맵을 구할 수 있다. 예를 들어, 단어 "<S> action </S>"의 경우에는, "sil ae k sh ih n sil"의 음소 표기(220)가 얻어진다. 기호 "<S>"와 "</S>"는 문장의 경계를 나타내는 것으로 긴 묵음으로 발음되며, 음소 표기(220)에서는 "sil"로 표시한다. 일부 구현예에서, CI 음소는, 음소 표기에서 독자적인 위치를 점유하는 단어 경계 기호를 써서 확장시킬 수 있다.
맵연산기(120a)는 전사본(113a)과 음소 표기(220)를 정렬(align)시킨다(204). 예를 들어, 맵연산기(120a)는 음성 데이터(112a)의 음성 프레임(speech frame)과 전사본(113a) 간에, 문맥의존 상태 레벨의 비터비 정렬(context-dependent-state level Viterbi alignment)을 생성한다. 이 정렬은
Figure pct00001
를 사용하여 얻을 수 있는데, 여기서, L, C, H는 각각 발음 사전(lexicon), 문맥의존성 트리(context dependency tree), HMM 대 상태의 유한상태 변환기(HMM-to-state FST(finite state transducer))를 의미한다. 일부 구현예들에서, 정렬(alignment)에는, 음소 표기 내의 각 문맥의존성 HMM 상태에 대응되는 음성 프레임(여기서 문맥은 현재 음소 및 그 주위의 음소임)을 식별하는 것이 포함된다. 정렬은, 각 음소의 각 HMM 상태에 대응하는 오디오 데이터의 시작 및 종료의 시간지표를 결정하는 것을 포함할 수 있다.
맵연산기(120a)는 음소 표기(220)에서 트레이닝 시퀀스(230a-230c)들을 추출한다(206). 각 트레이닝 시퀀스(230a-230c)을 M-음소(즉, 일련의 순차적 음소를 나타내는 모델링 단위)라고 부른다. 여기서 M은 시퀀스 내의 중앙 음소(central phone) 주위에 있는 문맥상 음소(contextual phone)의 개수를 나타내는 정수이다. 각 트레이닝 시퀀스(230a-230c), 즉, M-음소는 문맥 의존성 HMM 상태에 대응되는 음향적 특징의 다른 인접 부분을 의미한다. 각 트레이닝 시퀀스(230a-230c)에는 음소 표기(220)의 인접 부분으로부터 취한 다른 문맥상 음소들의 집합이 포함될 수 있다.
상이한 M 값을 갖는 M-음소들에는, 음소 표기(220)에서, 중앙 음소의 좌측 및 우측으로 전개되는 상이한 수의 문맥상 음소들이 포함된다. 예를 들어, 5차수 M-음소(예를 들어, 5-음소)는 중앙 음소 앞의 5개 음소와 중앙 음소 뒤의 5개 음소를 포함하며, 따라서 음소 표기(220) 내에 11개의 연속된 음소의 시퀀스를 나타낸다. 또 다른 예로서, 3차수 M-음소(예를 들어, 3-음소)는 중앙 음소 앞의 3개 음소와 중앙 음소 뒤의 3개 음소를 포함하며, 따라서 음소 표기(220) 내에 7개의 연속된 음소의 시퀀스를 나타낸다. 1차수 M-음소(즉, 1-음소)는 총 3개의 음소를 포함하며, 따라서 이를 "삼음소(triphone)"라고 한다(이는 3-음소와 다른 것이다. 3-음소는 7개의 음소 길이를 갖는다). M-음소는 음소 표기(220)가 충분히 긴 정수값 M에 대해서 추출할 수 있다.
트레이닝 시퀀스(230a-230c)들의 세트를 추출하기 위하여 맵연산기(120a)는 중앙 음소(central phone)를 선택하는데, 이 중앙 음소는 각 트레이닝 시퀀스(230a-230c)이 중심에 위치하게 되는 중앙의 위치를 나타낸다. 맵연산기(120a)는, 중앙 음소에 대해서, 1 내지 소정의 최대값까지의 M의 값을 갖는 M-음소를 추출한다. 이 최대값은 추출할 수 있는 가장 높은 차수의 M-음소를 식별한다. 예를 들어, M의 최대값은 3, 4, 5, 또는 7, 또는 그 밖의 M 값일 수 있다. 일부 구현예에서, M의 최대값은 모든 맵연산기(120a-120d)에 대해서 일관될 수 있으며, 데이터 음향모델(140) 생성시에는 모든 데이터에 대해서 일관될 수 있다.
맵연산기(120a)는 최대의 M값에 대해서 M-음소를 추출한다. 그리고, 맵연산기(120a)는 또한, 이보다 적은 수의 문맥상 음소를 포함하는 "단축(back-off)" M-음소들을 추출한다. 맵연산기(120a)는 최고 차수의 M-음소(예를 들어, 최대 개수의 문맥상 음소를 포함하는 M-음소)로부터 시작하여 1차수 M-음소(즉, 삼음소)가 추출될 때까지, M 값을 줄여가면서 M-음소를 추출한다. 예를 들어, M의 최대값이 5인 경우에, 단축 M-음소는 4-음소, 3-음소, 2-음소, 및 1-음소이다.
도시된 예에서, 각 트레이닝 시퀀스(230a-230c)는 동일한 음소 "ih"를 중앙 음소로 갖는 상이한 M-음소인 것으로 표시되어 있다. 맵연산기(120a)는 M의 최대값으로서 "3"을 사용하는데, 이는, "ih"의 전과 후의 최대 3개의 문맥상 음소가 음향 모델(140)을 생성하는데 사용됨을 나타낸다. 총 3개의 M-음소가 추출된다(예컨대, 집합 M={1,2,3}에 대하여 M-음소를 추출). 이 집합에서 최대 차수의 M-음소(즉, 가장 많은 음소가 포함된 M-음소)는 트레이닝 시퀀스(230a)이며, 3-음소이다. 트레이닝 시퀀스(230b)(2-음소)와 트레이닝 시퀀스(230c)(1-음소)는 이 집합에서 단축 M-음소가 된다. 각 트레이닝 시퀀스(230a-230c)은 그 음소 표기(230) 중 공유 부분, 즉, "sh
Figure pct00002
n"을 갖는데, 여기서 "
Figure pct00003
"는 중앙 음소 "ih"가 자리하는 위치를 표시하는 위치표시자이다. 각 트레이닝 시퀀스(230a-230c)은 음성 데이터(112a)의 일부분에 상응하는 학습데이터 인스턴스(instance)인데, 이에 대해서는 후술한다. 고유하게 M-음소를 식별하는 것을 표현하여 'M-음소 키'라고 부른다. 이 M-음소 키는 트레이닝 시퀀스(230a-230c)의 문자열 표기일 수도 있고, 또는 그 밖에 트레이닝 시퀀스(230a-230c)을 나타내는 다른 형식일 수도 있다.
일부 구현예들에서, 각각의 음소를 모델링하기 위하여 여러 상태(state) 또는 단위(unit)가 사용된다. 예를 들어, 음소는 HMM의 세 가지 상태로 모델링될 수 있다. 음소 "ih"는 상태 "ih_1", "ih_2", "ih_3"으로 모델링할 수 있는데, 이들 상태는 각각 "ih" 음소의 시작, 중간, 끝의 특징을 나타낸다. 따라서 트레이닝 시퀀스는 전체 음소가 아닌, 음소 내의 특정 상태를 모델링하는 데 사용될 수 있다. 도면에서는 상태 "ih_1"에만 대응되는 트레이닝 시퀀스(230a-230c) 집합이 도시되어 있지만, 맵연산기(120a)는 "ih" 음소의 다른 상태에 대해서 이와 유사한 트레이닝 시퀀스 집합을 추출할 수 있으며, 음소 표기(220) 내의 다른 음소의 상태에 대해서도 추출할 수 있다.
일부 경우에, 중앙 음소의 주위에 있는 음소 문맥의 개수는 대칭적이지 않을 수도 있다. 이러한 경우, 추출된 M-음소에는 문맥의 비대칭 개수의 문맥이 포함될 수 있다. 예를 들어, 상기 음소 표기(220)에 있어서, 음소 "ih" 앞에는 4개의 문맥상 음소가 있고 음소 "ih" 뒤에는 2개의 문맥상 음소가 있다. 결과적으로, 트레이닝 시퀀스(230a)는 음소 "ih"의 전후에 다른 수의 문맥상 음소를 갖고, 3-음소가 될 것으로 예측되는 7개 음소의 시퀀스가 아닌 6개 음소의 시퀀스로 표기된다. 트레이닝 시퀀스를 추출하기 위해, 맵연산기(120a)는 비대칭인 음소 표기 중 긴쪽 끝으로부터 단축(back off)하여 비대칭의 단축 M-음소를 추출할 수 있다. 대칭 수의 문맥에 도달하면, 맵연산기(120a)는 대칭 단축을 진행할 수 있다. 비대칭 M-음소에서 문맥상 음소의 사용이 불가한 빈 문맥상 위치를 나타내기 위해 "~" 기호를 사용할 수 있다.
맵연산기(120a)는 각 트레이닝 시퀀스(230a-230c) 중 하나를 식별하는 키-값 쌍(240a-240c)을 출력하는데, 이 출력에는 음성 데이터가 포함될 수 있다(208). 키-값 쌍(240a-240c)은 각 트레이닝 시퀀스(230a-230c)의 각각에 대해서 생성 및 출력된다. 트레이닝 시퀀스(230a-230c)(또는 이들의 다른 인코딩된 표현)은 키-값 쌍(240a-240c)에서의 키 역할을 한다. 키-값 쌍(240a-240c)에서 값은, 음성 프레임 또는 다른 음성 데이터일 수 있지만, 또한 없을(empty) 수도 있다.
일부 구현예에서, 음성 프레임은 가장 많은 수의 음소(예를 들어, 최대차수 M-음소)를 포함한 트레이닝 시퀀스(230a)에 대한 키-값 쌍(240a)에만 포함되어 있다. 리듀스연산기로의 과도한 양의 데이터 전송을 방지하기 위해, 단축 M-음소에 대한 음성 프레임은 키-값 쌍(240b와 240c)에는 포함되지 않는다. 결과적으로, 데이터세트(122) 내의 데이터는, (i) 가장 긴 트레이닝 시퀀스에 대한 키-값 쌍 <M-음소 키, 음성 프레임>, 및 (ⅱ) 각 단축 M-음소에 대한 <M-음소 키, <empty>>가 될 수 있다.
음성 프레임이 개별적인 단축 M-음소에 제공되지는 않지만, 대응되는 음성 프레임은 최대차수 M-음소에 제공되는 음성 프레임 집합의 부분으로서 액세스할 수 있다. 음성 프레임들이 각각의 키-값 쌍(240a-240c)과 함께 전송된다면, 음성 프레임은 복제되어 M회 전송될 것이며, 이로써 시스템에 대한 대역폭 소요량을 상당량 증가시키게 된다. 키-값 쌍(240a-240c) 중 하나와만 음성 프레임을 전송하고 리듀스연산기에서 음성 프레임을 캐시처리함으로써, 대역폭 소요량은 감소된다.
리듀스연산기가 각 트레이닝 시퀀스(230a-230c)에 대한 음성 프레임을 액세스할 수 있도록 다양한 기법을 사용할 수 있다. 셔플링시에, 각각의 키-값 쌍(240a-240c)은 동일한 리듀스연산기(130a-130d)로 전송되어 처리된다. 각각의 키-값 쌍(240a-240c)은 파티션 설정키에 따라 (맵연산기 120a 및/또는 기타 처리 모듈에 의해서) 적절한 리듀스연산기(130a-130d)로 라우팅된다. 전술한 바와 같이, 특정 파티션 설정키에 연계된 데이터는 단 하나의 리듀스연산기(130a-130d)에 의해 처리될 수 있다. 파티션 설정키는 각 트레이닝 시퀀스(230a-230c)이 공유하는 중앙의 삼음소에 대한 함수이다. 트레이닝 시퀀스(230a -230c) 각각이 동일한 중앙 삼음소, 즉, "sh ih n"을 갖기 때문에, 각 트레이닝 시퀀스(230a-230c)에 대한 키-값 쌍(240a-240c)에는 동일한 파티션 설정키가 할당되고, 따라서 동일한 리듀스연산기(130a-130c)에 의해 수신된다. 어느 맵연산기(120a-120d)가 키-값 쌍을 생성했는지에 관계없이, 동일한 중앙 삼음소(예를 들어, "sh ih n")를 포함하는 모든 키-값 쌍은 동일한 리듀스연산기(130a-130d)에 의해 처리된다.
도시된 예에서, 파티션 설정키는 중앙 삼음소의 함수이다. 대안으로서, 일부 구현예에서는 다른 파티션 설정키 체계가 사용된다. 예를 들어, 파티션 설정키는 중앙 음소에 근거하여 정해질 수도 있고 2-음소에 근거하여 정해질 수도 있으며, 결과적으로 리듀스연산기(130a-130d)들 간에 상이한 작업 분할이 이루어진다.
데이터세트(122)에서 하나의 키-값 쌍(240a)만이 음성 프레임을 포함하고 있기 때문에, 키-값 쌍들(240a-240c)을 수신한 리듀스연산기는 이 음성 프레임을 캐시처리한다. 후술하겠지만, 리듀스연산기는 키-값 쌍들(240a-240c)을 긴 트레이닝 시퀀스에서 짧은 트레이닝 시퀀스 순으로 처리한다. 따라서 주어진 임의의 M-음소에 대한 키-값 쌍은 그 단축 M-음소에 대한 키-값 쌍보다 먼저 리듀스연산기에 의해 처리된다. 리듀스연산기는 중앙 삼음소로 내려가면서 모든 단축 M-음소에 대한 음성 프레임을 캐시처리할 수 있다.
일부 구현예에서, 트레이닝 시퀀스들의 순서 결정(순서화) 및 음성 프레임의 캐시처리를 용이하게 하기 위해, 각각의 트레이닝 시퀀스가 리듀스연산기로 출력되기 전에 이들을 재조정(re-keying)할 수 있다. 예를 들어, "파티션(ih_1 / sh
Figure pct00004
n)"을 처리하는 리듀스연산기에서, 동일한 중앙 삼음소에 대한 데이터가 긴 문맥에서부터 짧은 문맥 순으로 처리되도록 보장하기 위하여, 트레이닝 시퀀스 230a, 즉, "ih_1 / ae k sh
Figure pct00005
n sil ~"를 "ih_1 / sh n k sil ae ~"로 조정할 수 있다.
맵연산기(120a)는 "ih_1"(음소 "ih"의 제1상태)에 대한 데이터세트(122)를 출력할 뿐만 아니라, 트레이닝 시퀀스를 추출할 수도 있고 "ih_2"와 "ih_3"(음소 "ih"의 다른 상태)에 대한 트레이닝 시퀀스를 식별하는 키-값 쌍을 출력할 수도 있다. 맵연산기(120)는 또한, 음소 표기(220)의 다른 음소를 중앙 음소로서 갖는 데이터세트(122)를 생성할 수 있다. 예를 들어, 데이터세트(122)는 중앙 음소로서 각각 "ae", "k", "sh" 등을 갖도록 생성될 수 있다. 일부 구현예에서, 맵연산기(120a)는 음소 표기(220)의 각 음소의 각 상태에 대한 데이터세트(122)를 생성한다. 그런 다음 맵연산기(120a)는 추가 입력 데이터에 대해서 상기 동작을 반복하여 수행한다.
도 3은 도 1의 맵연산 처리 모듈(520a-520d) 및 리듀스연산 처리 모듈(530a-530d) 사이의 상호 대화의 예를 나타내는 도면이다. 이 도면은 또한 리듀스연산 처리 모듈에 의해 수행되는 프로세스를 더 상세하게 보여준다. 도시된 예에서는, 세 개의 맵연산기(120a-120c)가 음성 입력 "<S> action </S>", "<S> fashion </S>", 그리고 "<S> faction </S>"을 기초로 하여 각 키-값 쌍(240a-240i)을 생성한다. 이 예시에서, 도시된 키-값 쌍(240a-240i)들은 각각, 동일한 중앙 음소 "ih_1"에 중심을 두고 있는 트레이닝 시퀀스(예를 들어, M-음소)을 식별한다. 각각의 트레이닝 시퀀스에는 또한, "ih_1 / sh
Figure pct00006
n"의 M-음소 키로 식별되는 동일한 중앙 삼음소 시퀀스가 포함되어 있다.
맵연산기(120a-120c)의 출력은 프로세스의 셔플링 단계에서 리듀스연산기(130a-130c)로 배분된다. 각 리듀스연산기(130a-130c)에는 개별적인 파티션 설정키 집합이 할당된다. 셔플링시에 각 리듀스연산기(130a-130c)는 모든 트레이닝 시퀀스와 함께 각자의 파티션 설정키 집합을 수신한다. 상술한 바와 같이, 트레이닝 시퀀스에 대한 파티션 설정키는 트레이닝 시퀀스 내의 중앙 삼음소를 이용하여 결정된다. 트레이닝 시퀀스는 모두가 동일한 중앙 삼음소를 포함하고 있으므로, 동일한 리듀스연산기로 모든 트레이닝 시퀀스가 전송된다.
도시된 예에서는, 파티션 설정키 "ih_1 / sh
Figure pct00007
n"이 리듀스연산기 130b에 할당된다. 트레이닝 시퀀스들 전부가 동일한 중앙 삼음소를 포함하고 있으며, 따라서 동일한 파티션 설정키 "ih_1 / sh
Figure pct00008
n"과 연계된다. 결과적으로, 셔플링시에 하나의 동일한 리듀스연산기(130b)로 트레이닝 시퀀스의 전부가 전송된다.
셔플링시에, 트레이닝 시퀀스를 식별하는 키-값 쌍들은 직접적으로, 또는 하나 이상의 다른 장치들을 거쳐서 간접적으로 리듀스연산기에 전송될 수 있다. 일부 구현예들에서, 맵연산기는 리듀스연산기들의 집합에서 특정 리듀스연산기를 각 트레이닝 시퀀스를 처리하기 위해 할당할 것을 결정할 수 있다. 예를 들어 맵연산기 또는 다른 처리 장치는, 주어진 키-값 쌍에 연계된 파티션 설정키에 어느 리듀스연산기를 할당할지를 결정하기 위한 테이블에 액세스할 수 있다. 키-값 쌍들을 적절한 리듀스연산기에 라우팅하는 그 밖의 방법도 사용가능하다.
일부 구현예에서, 하나 이상의 셔플링 처리 모듈들은 맵연산기가 출력한 키-값 쌍(240a-240i)들의 열(stream)을 분류(sort)함으로써, 키-값 쌍(240a-240i)들이 특정 순서로, 예를 들어, 가장 긴 트레이닝 시퀀스에서부터 가장 짧은 트레이닝 시퀀스의 순서로 리듀스연산기에 도착하도록 한다. 예를 들어, 리듀스연산기에 도착하는 키-값 쌍들의 열을 분류하되, 키들(예컨대, M-음소 트레이닝 시퀀스들)이 사전적 순서로 분류되어 리듀스연산기에 도착하도록 할 수 있다. 적절한 순서를 만들기 위해서 표준 문자열 분류법을 사용할 수 있도록, 앞에서 설명한 트레이닝 시퀀스의 재조정에 의해서 이러한 분류를 용이하게 할 수 있다. 이와 같이 키-값 쌍(240a-240c)들를 분류함으로써, 리듀스연산기가 음성 프레임이 포함되어 있지 않은 단축 M-음소에 대한 키-값 쌍들을 처리하기 전에, 음성 프레임이 포함되어 있는 최대차수의 M-음소에 대한 키-값 쌍을 처리할 것을 보장할 수 있게 된다.
각 키-값 쌍은 대응되는 리듀스연산기로 독립적으로 전달될 수 있다. 예를 들면, 키-값 쌍에 연계된 파티션 설정키는, 특정 트레이닝 시퀀스 또는 M-음소를 식별하는 키-값 쌍의 키 부분으로부터 식별될 수 있다. 키 부분에서부터의 시퀀스, 가령, 중앙 삼음소는 대응 키-값 쌍에 대한 적절한 파티션 설정키를 결정하는 데 사용될 수 있다.
리듀스연산기는 키-값 쌍 내의 데이터를 병합한다. 도시된 예에서, 리듀스연산기 130b는 수신된 키-값 쌍(240a-240i) 내의 데이터를 병합하는데, 여기서 각 키-값 쌍은 하나의 트레이닝 시퀀스 인스턴스(instance)를 나타낸다. 리듀스연산기(130b)는 트레이닝 시퀀스들을 스택(310)에 추가하여서 데이터를 병합할 수 있다. 스택(310)에서, 트레이닝 시퀀스는 그 길이에 따라 배치된다. 예를 들어, "sh
Figure pct00009
n"과 같은 짧은 트레이닝 시퀀스는, "ae k sh
Figure pct00010
n ~"과 같은 긴 시퀀스보다 스택의 아래 쪽에 위치한다.
리듀스연산기(130b)가 최대차수 M-음소의 키-값 쌍(예컨대 음성 프레임을 포함한 키-값 쌍(240a))을 수신하면, 리듀스연산기는 이를 스택(310)의 상단에 배치한다. 최대차수 M-음소에 대한 키-값 쌍이 스택(310)의 상단에 배치되는 반면에, 단축 M-음소의 키-값 쌍(예를 들어, 음성 프레임을 포함하지 않는 키-값 쌍 240b, 240c)은 나중에 배치된다. 단축 M-음소는 스택(310)에서 최대차수 M-음소의 아래에 배치되고, 최대차수 M-음소에 제공된 음성 프레임을 참조한다. 결과적으로, 음성 프레임에 단축 M-음소가 개별적으로 제공되지 않았더라도, 단축 M-음소는 스택(310) 내의 대응 음성 프레임들과 연계된다.
스택(310) 내의 각 항목은 고유한 트레이닝 시퀀스 혹은 음소 문맥을 나타낸다. 즉, 동일한 트레이닝 시퀀스의 서로 다른 인스턴스에 대한 데이터를 축적하여 스택(310) 내의 단일 항목에 저장할 수 있다. 리듀스연산기(130a)가 맵연산기(120a-120d)로부터의 데이터를 축적함에 따라, 다수의 키-값 쌍들이 음소의 시퀀스에 대해 수신된다. 즉, 다른 음성 샘플들에서 나타나는 동일한 음소 문맥의 인스턴스를 나타내는 데이터가 수신된다. 예를 들어, 리듀스연산기(130b)는 동일한 트레이닝 시퀀스 "sh
Figure pct00011
n"을 식별하는 세 개의 키-값 쌍(240c, 240f, 240i)을 수신한다. 각 키-값 쌍(240c, 240f, 240i), 또는 트레이닝 시퀀스 "sh
Figure pct00012
n"의 인스턴스는 다른 음성 프레임, 즉, 음성 프레임의 부분집합 "frames_A", "frames_B", 및 "frames_C"에 대응된다.
셔플링 후, 그리고 키-값 쌍(240a-240i)의 데이터가 스택(310)에 병합된 후, 리듀스연산기(130b)는 병합 데이터를 이용하여 음향모델(140)의 부분들을 생성한다. 리듀스연산기(130b)는 스택으로부터 최상위 항목을 제거하고, 트레이닝 시퀀스에 대응되는 음성 프레임을 사용하여 트레이닝 시퀀스에 대한 가우시안 혼합 모델(GMM)(예를 들어, 가우시안의 선형 조합)을 추정한다. 생성되는 GMM들은 문맥 의존적(context-dependent)이며 상태 특화적(state-specific)인 GMM들일 수 있다. 예를 들어, 특정 시퀀스를 사용하여 생성된 GMM은, 트레이닝 시퀀스의 중앙 음소의 특정 HMM 상태의 출력 배분(output distribution)을 모델링할 수 있다. GMM은 트레이닝 시퀀스 내의 음소 문맥(예를 들어, 문맥상 음소의 시퀀스)에 의존하는데, 이는 GMM이 대응 음성 문맥에 대응되는 음성 프레임을 기반으로 하여 생성되기 때문이다.
리듀스연산기(130b)의 출력은 배분된 관련 배열(distributed associative array) 내에 저장될 수 있는 배열 항목 <M-음소, GMM>의 형태일 수 있다. 다음에, 리듀스연산기(130b)는 스택(310)의 상단에서 그 다음 항목을 제거하고, 이 항목이 나타내는 트레이닝 시퀀스에 대한 GMM을 추정한다. 리듀스연산기(130b)는 서로 다른 음소 문맥을 나타내는 각각의 항목과 함께, 스택(310)의 각 항목에 기반하여 계속해서 음향모델 데이터를 생성한다. 트레이닝 시퀀스 및 GMM 쌍은 배분된 관련 배열에 기록된다. 일부 구현예에서, 배분된 관련 배열은 SSTable과 같은 불변의 영구적인 B-트리이다.
전술한 바와 같이, 각 음소는 다수의 HMM 상태로 표기할 수 있다(예컨대, "ih"를 HMM 상태로 "ih_1", "ih_2", "ih_3"으로 표기할 수 있다). 일부 구현예들에서, 음향 모델(140)에 저장된 각 GMM은 특정 음소의 특정 HMM 상태의 출력 배분을 모델링할 수 있다. GMM은 HMM의 상태의 정체성(identity)(예를 들어, "ih_1")에 좌우되며, 또한 주변의 음소 문맥(예를 들어, M-음소 내의 문맥상 음소)에 좌우된다. 따라서, 각 GMM은 주변의 음소 문맥, 중앙 음소의 독자성, 및 중앙 음소의 특정 HMM 상태에 의해 구별된다. 각 GMM은 예를 들어, GMM 내의 가우시안 성분의 개수와 각 성분에 대한 가중치를 저장할 수 있다. 대각 공분산 가우시안(diagonal covariance Gaussian), 전 공분산 가우시안(full covariance Gaussian), 또는 그 밖의 전개법을 이용할 수 있다. 또한, 각 GMM은 모델을 학습시키고 그리고/또는 이 모델을 사용하여 음성을 인식하는 데 사용되는 특징 벡터의 차원수(dimensionality)와 동일한 차원수를 가질 수 있다. 예를 들어, 39 차원의 특징 벡터가 음성 특징을 기술하는 데 사용되는 경우에는, 39 차원의 GMM을 사용하여 39개의 각 특징 차원에 대한 데이터를 저장할 수 있다.
일부 구현예들에서, 리듀스연산기는 트레이닝 시퀀스의 인스턴스들 중 최소 개수 이상이 수신되었을 때에만 음향모델(140)에 항목을 생성한다. 예를 들어, 리듀스연산기(130b)는 트레이닝 시퀀스에 대해 축적된 음성 프레임 집합의 수를 결정한다. 프레임의 개수가 최소 임계값 이상인 경우에 리듀스연산기(130b)는 트레이닝 시퀀스에 대한 GMM을 생성하고 관련 배열로 <M-음소, GMM> 항목을 출력한다. 만일 프레임의 개수가 최소 임계값보다 작으면, 트레이닝 시퀀스가 모델로부터 생략된다. 이러한 방식으로, 입력 데이터에서 출현 빈도가 낮은 트레이닝 시퀀스에 대해서는 음향모델(140)의 학습이 회피된다. 일부 구현예들에서, 소정 GMM의 가우시안 성분의 수는, 음소의 특정 HMM 상태에 정렬된 음성 프레임의 개수에 기초하여 학습 중에 결정된다. 예를 들어, GMM은, 아래와 같은 로그-선형 규칙을 이용하여 프레임의 수 n의 함수로서 그 크기가 정해질 수 있다.
Figure pct00013
여기서 β와 α는 GMM의 가우시안 혼합 성분의 적절한 수를 설정하기 위해 선택된 경험적으로 도출된 상수이다. β는 혼합 성분의 기본 개수를 나타낼 수 있으며, α는 추가적인 혼합 성분들이 포함되는 정도를 조절할 수 있다. 일반적으로 α는 1 미만의 값을 갖는다. 본 명세서에 기재된 학습 기술을 이용하여, 주어진 HMM 상태 및 음성 문맥을 모델링하기 위해 많은 수의 가우시안 혼합 성분을 사용할 수 있다. 일부 구현예에서, 50, 100, 500, 또는 1,000개 이상의 가우시안 혼합 성분을 HMM 상태를 모델링하는 문맥 의존성 GMM에 포함시킬 수 있다.
일부 구현예에서, 음성 프레임 세트들의 수가 임계값을 초과하면, 리듀스연산기는 주어진 트레이닝 시퀀스에 대한 음성 프레임 집합의 서브세트들을 사용한다. 예를 들어, 트레이닝 시퀀스에 대한 학습데이터의 인스턴스 수가 임계값을 초과하면, 리듀스연산기는 학습데이터 인스턴스의 적절한 부분집합에 근거하여 GMM을 생성하기 위해 리저버 샘플링 기법(reservoir sampling technique)을 사용할 수 있다.
학습된 음향모델(140)을 사용하기 위해, 시스템은 관심있는 특정 음소 문맥에 대한 GMM을 조회할 수 있다. 음소의 테스트 시퀀스(test sequence)에 대해서, 적절한 파티션 설정키를, 샘플 시퀀스 내의 중앙 삼음소에 기초하여 결정한다. 파티션 설정키는 테스트 시퀀스에 대한 데이터(그리고 동일한 중앙 삼음소를 포함하는 그 밖의 모든 음소 문맥에 대한 데이터)를 저장하는 분산 배열의 특정 파티션을 식별한다. 분산 배열 중에서 식별된 파티션 내에서, 이 배열 내에 샘플 시퀀스가 존재한다면 이 샘플 시퀀스 자체가 테스트 시퀀스에 대한 대응 GMM을 조회하는 데 사용되는 키의 역할을 할 수 있다.
도 4는 음향모델을 학습시키는 프로세스(400)의 일례를 도시하는 흐름도이다. 간단하게 설명하자면, 음성 데이터(speech data) 및 이 음성 데이터에 대한 전사본(transcription)이 수신된다. 전사본에 대한 음소 표기(phonetic representation)를 액세스할 수 있다. 음소 표기에서 트레이닝 시퀀스(training sequence)을 추출한다. 파티션 설정키(partitioning key)를 식별한다. 파티션 설정키가 할당된 처리 모듈(processing module)을 선택한다. 선택된 처리 모듈로, 트레이닝 시퀀스를 식별하는 데이터와 음성 데이터 부분을 식별하는 데이터를 전송한다.
보다 상세하게 설명하자면, 음성 데이터 및 이 음성 데이터의 전사본이 수신된다(402). 음성 데이터는 음성의 특징을 나타내는 특징 벡터를 포함할 수 있다. 특징 벡터는 다수의 음성 프레임별로 수신될 수 있는데, 여기서 각 음성 프레임은, 예를 들어, 10 ms 분량의 음성을 나타낸다. 음성 데이터와 전사본은 맵연산기 처리 모듈에서 수신될 수 있다.
전사본에 대한 음소 표기에 액세스할 수 있다(404). 음소 표기는 문맥에 무관한 음소의 시퀀스일 수 있다.
트레이닝 시퀀스들을 음소 표기에서 추출한다(406). 트레이닝 시퀀스는 음소 표기 중의 특정 음소에 대해서 추출된다. 예를 들어, 특정 음소는 각 트레이닝 시퀀스 내의 중앙 음소일 수 있다. 각 트레이닝 시퀀스는 특정 음소 주위의 다른 문맥상 음소의 집합을 포함할 수 있다. 예를 들어, 각 트레이닝 시퀀스는 전술한 바와 같이, M의 상이한 정수 값을 갖는 M-음소일 수 있다. 추출된 시퀀스는, 적어도, 예를 들어 특정 음소 앞에 있는 1개의 문맥상 음소와 이 특정 음소 뒤에 있는 1개의 문맥상 음소를 포함하는 제1시퀀스와, 특정 음소 앞에 있는 2개의 문맥상 음소와 이 특정 음소 뒤에 있는 2개의 문맥상 음소를 포함하는 제2시퀀스와, 특정 음소 앞에 있는 3개의 문맥상 음소와 이 특정 음소 뒤에 있는 3개의 문맥상 음소를 포함하는 제3시퀀스를 포함할 수 있다. 각 트레이닝 시퀀스는 음소 표기 내에서 연속된 음소들의 시퀀스일 수 있다.
각 트레이닝 시퀀스에서 나타나는 음소의 시퀀스에 기초하여 파티션 설정키를 식별한다(408). 파티션 설정키는 각 트레이닝 시퀀스에서 나타나는 두 개 이상의 연속된 음소의 시퀀스에 기초하여 식별될 수 있다. 파티션 설정키는 특정 음소 앞에 있는 적어도 하나의 문맥상 음소 및 특정 음소 뒤에 있는 적어도 하나의 문맥상 음소를 포함하는 시퀀스에 기초할 수 있다. 파티션 설정키를 식별하는 데 사용되는 음소의 시퀀스는 중앙 삼음소가 될 수 있으며 이는 전체 트레이닝 시퀀스와 공유될 수 있다. 일부 구현예에서는, 트레이닝 시퀀스 각각에 대해 파티션 설정키가 식별되며, 트레이닝 시퀀스 각각에 대해서 동일한 파티션 설정키가 식별된다.
다수의 처리 모듈 중에서, 식별된 파티션 설정키가 할당된 처리 모듈을 선택한다(410). 선택된 처리 모듈은 식별된 파티션 설정키에 대응되는 음향모델의 부분을 학습시키도록 식별된다.
트레이닝 시퀀스와, 음성 데이터의 일부분을 식별하는 데이터를 선택된 처리 모듈로 전송한다(412). 이 데이터는 선택된 처리 모듈로만 전송되고, 음향모델의 부분을 생성하기 위해 할당된 다른 처리 모듈로는 전달되지 않을 수 있다. 음성 데이터의 전송되는 부분은 가장 많은 문맥상 음소를 포함한 트레이닝 시퀀스에 대응되는 부분일 수 있다.
음성 데이터의 일부를 전송하기 위해, 음성 데이터 인스턴스는 전체 트레이닝 시퀀스들보다 적은 수에 대해서 전송될 수 있다. 전송되는 음성 데이터의 부분은 가장 많은 문맥상 음소를 포함한 트레이닝 시퀀스에 대응되는 음성 데이터일 수 있다. 일부 구현예에서, 음성 데이터의 추가 인스턴스들은 다른 트레이닝 시퀀스에 대해서는 전송되지 않는다. 즉, 음성 데이터는 트레이닝 시퀀스 중 가장 긴 트레이닝 시퀀스에 대해서만 전송될 수 있다.
이 프로세스(400)에는, 선택된 처리 모듈에서, 트레이닝 시퀀스를 식별하고 가장 많은 문맥상 음소들을 포함하는 트레이닝 시퀀스에 대응되는 음성 데이터의 부분을 식별하는 데이터를 수신하는 절차가 포함될 수 있다. 선택된 처리 모듈에서, 수신된 음성 데이터의 다른 서브세트들을 트레이닝 시퀀스 각각에 대해서 액세스할 수 있다.
일부 구현예에서, 트레이닝 시퀀스들은 각각, 동일한 중앙 삼음소를 포함하는 제1 트레이닝 시퀀스가 된다. 파티션 설정키는 이 제1 트레이닝 시퀀스에 포함된 중앙 삼음소에 기초하여 식별된다. 중앙 삼음소를 포함하는 제2 트레이닝 시퀀스도, 또한, 제2 음성 데이터에 대한 제2 음소 표기로부터 추출될 수 있다. 제2 트레이닝 시퀀스를 식별하는 데이터는, 제1 트레이닝 시퀀스를 식별하는 데이터가 전송되는 처리 모듈과 동일한 처리 모듈로 전송될 수 있다. 예를 들어, 파티션 설정키는 중앙 삼음소를 근거로 하여 제2 트레이닝 시퀀스 중 하나 이상에 대해서 식별될 수 있고, 이 파티션 설정키는 제1 트레이닝 시퀀스에 대해 식별된 것과 동일한 파티션 설정키가 될 수 있다.
일부 구현예들에서, 이 프로세스(400)에는, 선택된 처리 모듈에서, 트레이닝 시퀀스와, 음성 데이터의 부분을 식별하는 데이터를 수신하는 절차가 포함될 수 있다. 선택된 처리 모듈에서, 트레이닝 시퀀스에 대한 음성 데이터는 다른 트레이닝 시퀀스 인스턴스에 대한 음성 데이터와 병합될 수 있다. 트레이닝 시퀀스들 중의 제1 트레이닝 시퀀스에 대한 모델은 제1 트레이닝 시퀀스에 대해서 병합된 음성 데이터에 기초하여 생성될 수 있다. 이 모델은 문맥 의존적이며 상태에 특화된 GMM일 수 있다. 예를 들어, 이 모델은 제1 트레이닝 시퀀스 내에 포함된 문맥상 음소의 시퀀스에 의존되는 문맥 의존성 GMM일 수 있는데, 이 GMM은 제1 트레이닝 시퀀스의 중앙 음소의 HMM 상태의 출력 배분을 모델링한다.
생성된 모델은 배분된 관련 배열 내에 저장될 수 있다. 예를 들어, 생성된 모델은 식별된 파티션 설정키에 연계된 배분된 관련 배열의 파티션 내에 저장될 수 있다. 생성된 모델은 제1 트레이닝 시퀀스에 고유하게 대응하는 키에 연계된 배분된 관련 배열 내에 저장될 수 있다. 키는, 예를 들어, 제1 트레이닝 시퀀스에 대한 모델에 연계될 수 있으며, 배분된 관련 배열 내에서, 키는 그 밖의 어떠한 트레이닝 시퀀스에 대한 어떠한 모델과도 연계되지 않는다.
일부 구현예들에서, 선택된 처리 모듈은, 병합된 음성 데이터가 트레이닝 시퀀스 중의 제2 트레이닝 시퀀스 인스턴스 수의 임계값보다 적은 수에 대한 데이터를 포함하고 있는지 판단한다. 이렇게 판단하면, 상기 선택된 처리 모듈은 제2 트레이닝 시퀀스에 대한 모델은 생성하지 않는다.
도 5는 가변 길이의 음성 문맥을 이용하여 음성인식을 수행할 수 있는 시스템(500)의 일례를 도시한 도면이다. 이 시스템(500)은 다양한 음성 문맥의 길이를 인식하는 음향모델(예컨대, 음향모델 (140))을 사용하여 음성 인식을 수행할 수 있다. 이 시스템(500)은 맵연산기(520a-520d)로 표시한 많은 수의 처리 모듈을 포함한다. 이 시스템(500)은 또한, 제어 모듈(510)과, 네트워크(570)를 통해 컴퓨팅 장치(560)와 통신하는 음성인식 시스템(550)을 포함한다.
컴퓨팅 장치(560)는 예를 들어, 데스크톱 컴퓨터, 랩톱 컴퓨터, 셀룰러폰, 스마트폰, 개인 휴대 정보 단말기(PDA), 태블릿 컴퓨터, 착용형 컴퓨터, 네비게이션 시스템, 또는 그 밖의 컴퓨팅 장치일 수 있다. 음성인식 시스템(550)에 의해 수행되는 작업은 개별 컴퓨터 시스템에 의해 수행될 수도 있고 다수의 컴퓨터 시스템들에 분산될 수도 있다. 음성인식 시스템은, 직접 연결될 수도 있고 네트워크(570)를 통해 연결될 수도 있는 하나 이상의 데이터 저장 장치에 저장된 음향모델(540)에 액세스한다. 네트워크(570)는 유선 또는 무선, 또는 이들의 조합일 수 있다. 네트워크(570)는 하나 이상의 공공 또는 사설 네트워크를 포함할 수 있으며, 인터넷을 포함할 수 있다.
시스템(500)은 다양한 크기의 음소 문맥을 이용하여, 발화에 대한 후보 전사본(candidate transcription)들을 평가할 수 있다. 다양한 수의 음소 단위를 갖는 테스트 시퀀스들을, 음향모델(140)에 의해 인식된 문맥과 비교한다. 음향모델(140)에 의해 인식된 가장 큰 음소 문맥은 후보 전사본의 순위를 매기는 데 사용한다. 후보 전사본의 평가시에 작은 문맥을 사용하는 "단축화(backing off)"에는 페널티를 부여한다. 이는, 음향모델(140) 내의 상대적으로 작은 음소 문맥에 일치하는 것은, 음향모델(140) 내의 큰 음소 문맥에 일치하는 것보다 정확성의 가능성이 더 낮음을 암시한다는 것을 반영한다.
예를 들어, 음성 데이터와, 이 음성 데이터에 대한 후보 전사본에 관한 데이터를 수신한다. 후보 전사본에 대한 음소 표기에 액세스할 수 있다. 음소 표기 내의 특정 음소에 대해서 다수의 테스트 시퀀스들을 추출할 수 있다. 다수의 테스트 시퀀스의 각각은 특정 음소 주위에 있는 다른 문맥상 음소 집합을 포함할 수 있다. 다수의 테스트 시퀀스 중 하나 이상에 대응되는 데이터가 음향모델에 포함되어 있는지를 나타내는 데이터를 수신할 수 있다. 하나 이상의 테스트 시퀀스들 중에서, 가장 많은 문맥상 음소 수를 포함하는 테스트 시퀀스를 선택할 수 있다. 후보 전사본에 대한 점수를, 선택된 테스트 시퀀스에 대응하는 음향모델로부터의 데이터에 기초하여 생성할 수 있다.
도 5에 도시된 예에서, 컴퓨팅 장치(560)의 사용자(502)가 말한 발화(562)인 "패션(fashion)"을 포함하는 오디오를 컴퓨팅 장치(560)가 기록한다. 컴퓨팅 장치(560)는 이 발화(562)가 포함된 음성 프레임(564)을 웨이브 형태로 또는 그 밖에 인코드된 오디오 형태로 음성인식 시스템(550)에 보낸다.
음성인식 시스템(550)은 음성 프레임들(564)로부터 음성 파라미터를 추출하는 프런트엔드 모듈을 포함할 수 있다. 예를 들어, 음성인식 시스템(550)은 일련의 음성 프레임(552)들을 추출할 수 있다. 여기서 각 음성 프레임은, 입력된 음성의, 약 10 ms 동안 나타나는 음성적 특징을 나타내는 특징 벡터이다. 적절한 특징 추출 알고리즘(예를 들어, 멜 빈도 켑스트럴 성분(MFCC: Mel-frequency cepstral component)을 추출하는 압축 알고리즘 등)이라도 사용할 수 있다.
음성인식 시스템(550)은 발화(562)에 대한 후보 전사본을 확인하는 음성인식의 "제1과정(first pass)"을 수행한다. 음성인식 시스템(550)은 상기 음향모델(140) 이외의 다른 음향모델을 사용할 수도 있다. 예를 들어, 제1과정에 사용되는 음향모델은 분산형이 아닌 로컬 저장형일 수도 있으며, 길이 가변적인 음성 문맥이 아닌 일정 길이의 음소 문맥(예를 들면, 3개 음소)을 사용할 수도 있다. 일부 구현예에서, 제1과정의 인식에 사용되는 음향모델은 상기 음향모델(140)을 학습시키기 위해 사용된 것과 다른 학습 데이터 또는 학습 기법을 이용하여 학습된다.
제1과정의 인식 단계에서는, 각각 상응하는 점수(555a-555c)가 매겨진 후보 전사본(554a-554c)들을 생성한다. 각 점수(555a-555c)는, 예를 들어, 점수가 부여된 후보 전사본이 발화(562)에 대한 올바른 전사본인지의 가능도를 나타낼 수 있다. 예를 들어, 점수(555a-555c)는, 제1과정의 인식에 사용된 음향모델에서 출력되는 신뢰도 점수일 수 있으며, 이는 후보 전사본이 올바른지에 대한 모델의 신뢰도를 나타낸다. 후보 전사본(554a-554c)은 이들 점수(555a-555c)에 따라 순위가 정해진다.
음성인식 시스템(550)은 음향모델(140)을 이용하여 음성인식의 "제2과정(second pass)"에 의해서 후보 전사본(554a-554c)의 서브세트를 선택한다. 예를 들어, 후보 전사본(554a-554c)들 중 순위가 가장 높은 서브세트(예를 들어, 후보 전사본(554a-554c) 부분집합 중 정확하다고 판단될 가능성이 가장 높은 세트)를 선택할 수 있다. 일부 구현예에서, 음성인식 시스템(550)은 N개의 최고 순위 후보 전사본(554a-554c)을 선택한다(N = 5, 10, 20 등의 정수). 그 밖의 N 값도 사용가능하다.
음성인식 시스템(550)은 음성인식의 제2과정을 수행하는 분산형 컴퓨팅 프레임워크로, 음성 프레임(552)과 인식 데이터(553)(후보 전사본(554a-554c)들과 이에 대응하는 점수(555a-555c)들에 관한 데이터)를 출력한다. 예를 들어, 음성인식 시스템(550)은, 맵-리듀스 기능(MapReduce)를 실시하는 마스터 처리 모듈과 같은 제어 모듈(510)로 인식 데이터(553)를 전송할 수 있다. 제어 모듈(510)은 맵연산기(520a-520d)에 인식 작업을 지시하고, 제2과정의 인식의 출력을 관장한다.
일부 구현예에서, 제어 모듈(510)은 음성 시퀀스 중의 서로 다른 발화를 인식할 것을 맵연산기(520a-520d)에 지시한다. 예를 들어, 제어 모듈(510)은, 사용자(502)가 말한 다수의 단어 시퀀스 중에서 첫 번째 단어에 대한 음성 프레임과 후보 전사본들은 맵연산기 520a로 제공하고, 두 번째 단어에 대한 음성 프레임과 후보 전사본들은 맵연산기 520b로 제공한다. 따라서 사용자(502)가 말한 일련의 발화는 상이한 맵연산기(502a-502d)에 의해 처리될 수 있다. 여러 사용자의 음성을 인식할 때에도 마찬가지로, 서로 다른 맵연산기(502a-502d)가 서로 다른 사용자에 대한 발화를 인식할 수 있다.
도시된 예에서, 제어 모듈(510)은 전체 후보 전사본(554a-554c)을 평가하기 위하여 하나의 맵연산기(예컨대, 맵연산기(520a))를 식별한다. 발화(562)에 대한 후보 전사본(554a-554c)들 모두가 동일한 맵연산기(520a)에서 평가되기 때문에, 다수 맵연산기(520a-520d) 간에 음성 프레임(552)을 복제할 필요가 없어서, 대역폭을 절약할 수 있고 대량의 데이터를 효율적으로 처리할 수 있게 된다.
맵연산기(520a)는 후보 전사본(554a-554c) 각각에 대한 음소 표기를 결정하고, 도 6을 참조하여 다음에 상세히 설명한 바와 같이, 음성 단위들에서 테스트 시퀀스를 추출한다. 예를 들어, 특정 후보 전사본에 있어서, 테스트 시퀀스는, 최대차수의 M-음소와, 후보 전사본에 대한 음소 표기 내의 각 음소의 각 HMM의 상태에 대한 각 대응 단축 M-음소를 포함할 수 있다. 맵연산기(520a)는 최고 순위 후보 전사본들 집합 중에서 각 후보 전사본(554a-554c)에 대한 테스트 시퀀스를 추출한다.
상기 추출된 테스트 시퀀스를 사용하여, 맵연산기(520a)는 음향모델(140)로부터 음향모델 데이터를 취득한다. 음향모델(140)은 배분된 배열 관리 서비스(542)를 통해 액세스될 수 있다. 이 서비스(542)는 S개의 서버 모듈(도시하지 않음)(각각이 1/S의 데이터를 음향모델(140)에 저장함)을 갖는 메모리내장형 키-값 제공장치(예컨대, SSTable 제공장치)일 수 있다. 예를 들어, S개 서버 모듈의 각각은 RAM 내의 파티션(140a-140d)중의 하나 이상을 저장할 수 있다.
요청에 응답하여, 서비스(542)는 주어진 테스트 시퀀스에 대응되는 음향모델 데이터(예를 들어 음향모델(140)에 저장된 GMM)를 참조하여, 대응 음소 시퀀스에 대한 데이터가 음향모델(140)에 존재하는지를 조회한다. 맵연산기(520a)는 추출된 테스트 시퀀스를 확인하는 일괄 요청을 보낸다. 이에 응답하여, 관리 서비스(542)는 음향모델(140)의 각 파티션(140a-140d)에서 온 테스트 시퀀스들에 대한 음향모델 데이터를 검색한다.
주어진 테스트 시퀀스에 대한 데이터를 얻기에 적절한 파티션을 식별하기 위해, 관리 서비스(542)는 음향모델(140)을 학습시키는 데 사용했던 것과 동일한 파티션 설정키를 사용한다. 예를 들어, 테스트 시퀀스를 식별하는 파티션 설정키는 HMM 상태 정체성 및 시퀀스의 중앙 삼음소의 함수이다. 예를 들어, 테스트 시퀀스 "ih_1 / ae k sh
Figure pct00014
n sil ~"에 대해서, 파티션 설정키는 "ih_1 / sh
Figure pct00015
n"이거나, 또는 이 시퀀스의 다른 표기일 수 있다. 관리 서비스(542)는 파티션 설정키에 대응하는 적절한 파티션(140a-140d)을 식별한다. 식별된 파티션 내에서, 테스트 시퀀스에 대한 음향모델 데이터는, 대응 테스트 시퀀스에 대응되는 음향모델(140)의 부분을 고유하게 특정하는 키(예를 들어, 풀(full) 테스트 시퀀스 "ih_1 / ae k sh
Figure pct00016
n ~ "에 기초한 키)를 사용하여 획득된다. 각 테스트 시퀀스마다, 관리 서비스(542)는 데이터를 요청한 맵연산기(520a)로 대응 음향모델 데이터를 보내준다.
맵연산기(520a)는 음향모델 데이터를 사용하여 후보 전사본(554a-554c)에 대한 점수(555a-555c)를 조정한다. 예를 들어, 각 후보 전사본별로, 맵연산기(520a)는 음향모델(140)로부터 수신된 데이터에 기초하여, 후보 전사본이 음성 프레임(552) 그리고 이에 따라 발화(5620에 대한 올바른 전사본이라는 가능도를 나타내는 점수를 생성할 수 있다. 음향모델(140)로부터의 데이터에 기초한 점수들은 인식 제1과정에서 얻은 점수(555a-555c)들과 조합하여 조정된 점수(575a-575c)를 생성한다. 조정된 점수(575a-575c)에 따라 후보 전사본(554a-554c)의 순위를 다시 정한다.
후술하는 바와 같이, 후보 전사본들의 평가는 음향모델(140)이 인식하는 가장 긴 음소 문맥에 대한 모델 데이터를 사용하여 수행된다. 음향모델 데이터가 최대 차수 M-음소(최대 길이의 음성 문맥을 나타냄)의 테스트 시퀀스에 대해 취득될 때, 이 음향모델 데이터는 점수 조정시에 사용된다. 그러나 최대 차수의 M-음소에 대해서 사용가능한 음향모델 데이터가 없는 경우에는, 맵연산기(520a)는 점수 조정을 위해서 가장 많은 수의 문맥상 음소를 갖는 단축 M-음소에 대한 음향모델 데이터를 사용한다. 따라서, 주어진 후보 전사본에 있어서, 다른 HMM 상태를 평가하기 위해 사용되는 음향모델 데이터는 상이한 길이의 음성 문맥에 대응되도록 출력 배분될 수 있다. 사용된 일부 GMM은 대상 음소의 전 및/또는 후의 5개 음소에 기초하여 학습되었을 수 있고, 다른 사용되는 GMM은 중앙 음소의 전 및/또는 후의 4개 음소를 사용하여 학습되었을 수 있다(등등). 그럼에도 불구하고, 가장 긴 음성 문맥에 대한 음향모델 데이터를 이용함으로써, 본 시스템은 인식 정확도를 향상시킬 수 있다.
후보 전사본(554a-554c)의 순위를 다시 정한 후, 맵연산기(520a)는 업데이트된 순위를 나타내는 인식기 데이터(578)를 제어 모듈(510)로 보내는데, 제어 모듈(510)은 이 인식기 데이터(578)를 음성인식 시스템(550)으로 보낸다. 음성인식 시스템(550)은 컴퓨팅 장치(560)로 제공할 하나 이상의 후보 전사본(554a-554c)을 선택하기 위해 업데이트된 순위를 사용한다. 도시된 예에서, 후보 전사본(554b)인 "패션(fashion)"이 발화(562)에 대한 전사본으로서 제공되어 있다. 음성인식의 제1과정에서는 후보 전사본(554a)인 "액션(action)"을 가장 가능도 높은 전사본이라고 판단한 반면에, 음향모델(140)을 사용하는 제2과정에서는 순위가 조정되어 후보 전사본(554b) "패션(fashion)"이 가장 정확할 가능성이 있는 것으로 나타났다.
일반적으로, 많은 수의 문맥상 음소를 사용하여 전사본을 평가하는 것이, 적은 수의 문맥상 음소를 사용하는 것보다 더 정확한 결과를 만들 수 있다. 따라서, 음소 문맥의 다양한 길이를 인식할 수 있는 음향모델(140)을 사용함으로써, 고정된 길이의 음소 문맥만을 인식하는 시스템보다 더 높은 인식 정확도를 얻을 수 있다. 고정된 길이의 음소 문맥만을 사용하는 음향모델을 사용하는 기술에 대한 정밀도의 향상은, 단축 M-음소를 사용하는 음향모델에 있어서의 낮은 단어 오류율(WER: word-error rate)로 정량화될 수 있다.
도 6은 발화에 대한 후보 전사본을 평가하기 위하여 맵연산기에 의해 실행되는 프로세스를 도시한 도면이다. 도시된 예에서, 도 5의 맵연산기(520a)는 앞에서 설명한 인식기 데이터(553)와 음성 프레임(552)을 수신한다. 맵연산기(520a)는 발화(562)에 대한 N개의 고순위 후보 전사본(554a-554c)들을 평가한다.
맵연산기(520a)는 후보 전사본(554a)에 대한 음소 표기(620)를 식별한다(602). 전술한 바와 같이, 맵연산기(520a)는, 예를 들어, 발음 사전으로부터 음소 표기(620)을 얻을 수 있다.
맵연산기(520a)는 전사본(554a)에 음성 프레임(564)을 정렬시킨다(604). 맵연산기(120a)는
Figure pct00017
를 결합하여 문맥의존성 상태 레벨의 비터비 정렬을 생성한다. 여기서 L, C, H는 각각 앞에서 언급한 것과 같이, 발음 사전, 문맥의존성 트리, HMM대 상태 유한 상태 변환기를 의미한다.
맵연산기(520a)는 음소 표기(620)에서 테스트 시퀀스를 추출한다(606). 전술한 바와 같이 테스트 시퀀스(630)은 M-음소일 수 있다. 예를 들어, 음소 표기(620) 내의 각각의 음소의 각 HMM 상태에 대해서, 최대 차수 M-음소를 추출할 수 있고, 또한 단축 M-음소를 중앙 삼음소까지 내려서 추출할 수 있다. M의 최대값은 음향모델(140)을 학습시키기 위해 사용된 최대 M값과 동일할 수 있다. 도시된 예에서는 M의 최대값이 3이지만, 다른 값, 예컨대 2, 4, 5, 7 등도 사용될 수 있다.
상술한 바와 같이, 음소 주변의 음소 문맥이 대칭이 아닌 경우, 맵연산기(520a)는 음소 전과 후에 비대칭 수의 문맥상 음소들을 포함하는 테스트 시퀀스들을 추출한다. 기호 "~"가 비대칭 M-음소에 있는 비어 있는 문맥상 위치를 나타낸다. 테스트 시퀀스(630)로서 비대칭 M-음소를 추출함에 의해서, 예를 들어 더 낮은 차수의 M-음소를 사용하고 끝에서부터 하나 이상의 문맥상 음소를 생략하는 단순한 방법 보다도, 음향모델(140) 내에서 더 큰 길이의 문맥이 가장 긴 문맥에 매칭될 수 있게 할 수 있다. 비대칭 M-음소를 사용하면, 한쪽 음소에서의 음소 문맥이 제한될 수도 있는, 단어 또는 문장의 경계에서 또는 그 근처에서 나타나는 음소들을 인식하는 데 특히 도움이 될 수 있다. 맵연산기(520a)는, 중앙 음소의 가장 많은 수의 문맥상 음소를 포함하는 쪽만으로부터, 중앙 음소 주위에 비대칭 수의 문맥상 음소가 나타날 때까지, 단축화(backing off)를 함으로써 비대칭 테스트 시퀀스를 추출할 수 있다. 다음에, 맵연산기(520a)는 양쪽으로부터 단축화를 할 수 있고, 이후, 중앙 음소 주변에 있는 대칭 수의 문맥상 음소를 갖는 테스트 시퀀스를 생성한다.
일부 구현예에서, 맵연산기(520a)는 음소 표기를 취득하고(602), 이 음소 표기를 음성 프레임(564)에 정렬하고(604), 각 후보 전사본 (554a-554c)에 대한 테스트 시퀀스를 추출한다(606). 예를 들어 맵연산기(520a)는 후보 전사본(554b)의 "패션(fashion)"에 대한 음소 표기에서 테스트 시퀀스(631)을 추출한다. 테스트 시퀀스는 또한, 맵연산기(520a)에 의해 수신된 후보 전사본(554c) 및 그 밖의 후보 전사본들에 대해서도 추출된다. 일부 구현예에서, 맵연산기(520a)는 모든 후보 전사본(554a-554c)에 대한 테스트 시퀀스(630, 631)을 테스트 시퀀스 풀(poll) 또는 세트(set)(640)에 추가한다. 이 세트(640)는 각 발화(예를 들어, 각 단어)에 대해서 1회 초기화된다.
맵연산기(520a)는 세트(640)의 테스트 시퀀스(630, 631)에 대한 음향모델 데이터를 얻는다(608). 예를 들어, 맵연산기(520a)는 세트(640) 내의 테스트 시퀀스(630, 631)을 식별하는 데이터를 일괄 요청으로서 배분 배열 관리 서비스(542)로 전송한다. 특히, 맵연산기(520a)는 세트(640) 내의 테스트 시퀀스(630, 631)을 식별하는, 관리 서비스(542)의 마스터 처리 모듈로 원격 절차 호출을 개시할 수 있다. 이에 마스터 처리 모듈은 세트(640) 내의 각 테스트 시퀀스에 대응되는 GMM의 조회를 시도한다.
마스터 처리 모듈은 각 테스트 시퀀스에 파티션 설정 기능을 적용하여 테스트 시퀀스에 대한 각각의 파티션 설정키를 구한다. 파티션 설정키는, GMM이 음향모델(140) 내에 존재하는 경우, 어느 파티션(140a-140d)이 테스트 시퀀스에 대응되는 GMM에 대한 데이터를 담을지를 식별한다. 파티션(140a-140d) 내의 데이터는, 상이한 파티션 설정키가 할당된 상이한 서버 모듈에 의해 제공될 수 있다. 마스터 처리 모듈은 식별된 파티션 설정키에 할당된 서버 모듈들을 식별하고, 각 서버 모듈로부터, 상기 할당된 파티션 설정키(들)와 연계된 테스트 시퀀스에 대한 GMM 데이터를 요청한다. 테스트 시퀀스에 대한 GMM 항목(예를 들면, 테스트 시퀀스에 고유하게 대응하는 키의 항목)이 서버 모듈에 의해 취급되는 파티션(들)(140a-140d)에 포함되면, 서버 모듈은 GMM 데이터를 마스터 처리 모듈로 보내고, 마스터 처리 모듈은 이 GMM 데이터를 맵연산기(520a)로 제공한다. 서버 모듈의 파티션(들)(140a-140d)이 테스트 시퀀스에 대한 항목을 포함하지 않는 경우에는, 아무런 데이터도 대응 테스트 시퀀스에 보내지지 않는다.
수신된 음향모델 데이터로부터, 맵연산기(520a)는 가장 긴 테스트 시퀀스(예를 들어, 문맥상 음소 수가 가장 많이 포함된 시퀀스)에 대응하는 음향모델 데이터를 선택한다(612). 예로서, 후보 전사본(554a)에 대한 테스트 시퀀스(630)은 "ih_1" HMM 상태에 대해서 3-음소(630a), 2-음소(630b), 및 1-음소(630c)를 포함한다. 만일 음향모델 데이터가 각 테스트 시퀀스(630a-630c)에 대해서 수신된다고 하면, 3-음소(630a)에 대해서 수신된 데이터는 "ih_1"의 HMM 상태의 점수를 매기는 데 사용되고, 2-음소(630b) 및 1-음소(630c)에 대한 데이터는 사용되지 않는다. 그러나, 3-음소(630a)에 대해서 수신된 음향모델 데이터가 없는 경우에는, 차순위의 가장 많은 문맥상 음소(즉, 2-음소 630b)를 갖는 테스트 시퀀스에 대해 수신된 데이터가 사용된다. 가장 많은 수의 문맥상 음소를 갖는 테스트 시퀀스에 대한 음향모델 데이터를 선택함으로써, 맵연산기(520a)는 음향모델(140)에 의해 인식된 최대 길이의 음성 문맥이 사용되는 것을 보장한다.
다음에, 맵연산기(520a)는 선택된 음향모델 데이터를 이용하여 후보 전사본(554a-554c)에 대한 점수(555a-555c)를 조정한다. 음향모델 데이터의 선택과 점수(555a-555c)의 조정에 대해서는 도 7을 참조하여 상세히 설명한다.
도 7은 후보 전사본들의 점수를 도시한 도면이다. 도 7에는 표(700)가 포함되어 있는데, 이 표의 각 행(702a-702f)은 다양한 테스트 시퀀스(704)에 대응한다. 이 표(700)는 또한, 각각의 테스트 시퀀스(704)의 차수(order)(706)(즉, 테스트 시퀀스(704)에 포함된 중앙 음소 전과 후의 문맥상 위치의 수)를 나타내고 있다.
맵연산기(520a)가 테스트 시퀀스(704)에 대한 음향모델 데이터를 요청하면, 배분된 배열 관리 서비스(542)는 전체 테스트 시퀀스(704)보다 적은 시퀀스에 대한 음향모델 데이터를 제공할 수 있다. 즉, 음향모델(140)에 의해서 인식되지 않은 음성 문맥을 나타내는 일부 테스트 시퀀스(704)이 있을 수 있으며, 따라서 대응되는 데이터를 사용가능하지 않게 된다. 가장 높은 차수(도시된 예에서, 차수 M=3인 경우)의 트레이닝 시퀀스에 대한 음향모델 데이터가 사용불가인 경우, 맵연산기(520a)는 이보다 작은 길이의 음소 문맥을 나타내는 트레이닝 시퀀스에 대한 데이터를 사용하기 위하여 단축한다.
예로서, 행(702a-702c)은, 후보 전사본(554a)의 "액션(action)"의 음소 표기 내의 "ih_1"의 HMM 상태에 대응되는 트레이닝 시퀀스(704)을 포함한다. 그러나 이 표(700)는 가장 많은 수의 문맥상 음소를 포함하는 행(702a)에 있는 3-음소에 대해서는 사용가능한 음향모델 데이터가 없음을 나타낸다. 결과적으로, 단축 테스트 시퀀스들 중 하나에 대한 음향모델 데이터가 사용된다. 특히, 행(702b)에 있는 2-음소에 대해서는 음향모델 데이터가 사용가능하므로, 대응 테스트 시퀀스에 대한 음향모델 데이터를 사용하여 "ih_1"의 HMM 상태에 대한 점수를 생성한다.
또 다른 예로서, 행(702d-702f)은 후보 전사본(554b)의 "패션(fashion)"의 음소 표기 내의 "ih_1"의 HMM 상태에 대응되는 트레이닝 시퀀스(704)을 포함한다. 최대 차수의, 즉, 행 702d의 3-음소 테스트 시퀀스에 대해서 음향모델 데이터를 사용할 수 있기 때문에 이 행에 대한 음향모델 데이터가 선택된다.
선택된 음향모델 데이터로, 맵연산기는 각 후보 전사본의 음소 표기의 각 HMM 상태에 대하여 HMM 상태 점수(708)를 부여한다. HMM 상태 점수(708)는 테스트 시퀀스(704)에 음소 문맥이 주어진 때, HMM 상태가 대응 음성 프레임을 정확하게 표현하는 가능도를 나타낸다. 테스트 시퀀스(704)에 대해 검색된 음향모델 데이터에는 특정 HMM 상태에 대해서 학습된 GMM 및 트레이닝 시퀀스(704)로 나타낸 음소 문맥을 기술하는 데이터가 포함될 수 있다.
낮은 차수의 트레이닝 시퀀스의 사용에 페널티를 주기 위하여, 최대의 M값보다 작은 차수(706)를 갖는 트레이닝 시퀀스에 대해서 프레임당 단축 비용이 발생될 수 있다. 단축 트레이닝 시퀀스에 대한 페널티(710)는 아래 식으로 부여될 수 있다.
Figure pct00018
여기서 C는 단축된 음소당 단위 비용이고, Mmax는 M의 최대값이고, o는 테스트 시퀀스의 차수이다. 따라서, 삭제 또는 단축되는 음소가 늘어날수록(이에 따라 테스트 시퀀스에 의해 표기되는 문맥상 위치가 적어질수록), 페널티(710)는 커진다. 일부 구현예에서, 비대칭 수의 문맥상 음소를 포함하는 테스트 시퀀스에는 페널티를 부과하지 않는다. 비대칭 테스트 시퀀스의 차수 o는 중앙 음소 전의 문맥상 음소의 수와 중앙 음소 후의 문맥상 음소의 수 중에서 가장 큰 값으로 계산된다.
도시된 예에서, C의 값은 0.2이고, Mmax는 3이다. 행(702b)의 2-음소에 있어서는, 최대 차수인 3-음소에 대해서 한 문맥상 음소 또는 문맥상 위치가 생략된다. 결과적으로 행(702b)에 대한 페널티(710)는 0.2×(3-2) = 0.2가 된다. 대조적으로, 행(702d)의 3-음소는 최대 차수 트레이닝 시퀀스가며, 문맥상 음소가 생략된 것이 없기 때문에 페널티가 발생하지 않는다.
맵연산기(520a)는 최종 HMM 상태 점수(712)를 생성하기 위해 HMM 상태 점수(708)에 페널티(710)를 적용한다. 페널티(710)의 적용을 위해서 예를 들어, HMM 상태 점수(708)에서 페널티를 뺄 수 있다. 또는 이와 달리, HMM 상태가 올바른지의 신뢰도가 낮게 나타나도록 HMM 상태 점수(708)를 조정함으로써 페널티를 적용할 수도 있다. 다음, 최종 HMM 상태 점수(712)는 후보 전사본에 대한 점수를 생성하는 데 사용된다. 이상 설명할 기법은 후보 전사본에 대한 음소 표기 내의 각 음소의 각 HMM 상태에 대한 최종 HMM 상태 점수를 생성하기 위해 사용할 수 있다.
어떤 경우에는, 음향모델 데이터는 주어진 HMM 상태 및 음소 문맥에 대한 테스트 시퀀스의 어느 것에 대해서도 사용할 수 없는 경우가 있다. 이 경우, 맵연산기(520a)는 음성인식의 제1과정에서 생성된 HMM 상태에 대한 이전의 점수에 의존할 수 있다. 테스트 시퀀스들 중 어느 것도 음향모델(140)에 의해 인식되지 않았기 때문에, 제1과정의 점수에 페널티를 적용할 수 있다. 맵연산기(520a)가 제1과정 음향모델의 사용을 항상 단축하는 경우에는, 차수 o는 0(영)으로 간주될 수 있으며, 음소당 단축 비용은 그 최대값에 이르게 될 수도 있다.
이에, HMM 상태 점수들의 집합을 결합하여서 각 후보 전사본에 대한 총 점수를 생성한다. 도시된 예에서, 점수(720)가 후보 전사본(554a) "액션(action)"에 대한 음소 표기의 다양한 HMM 상태들에 대해 부여된다. 이 점수(720)들을 결합하면 후보 전사본(554a)에 대해서 "0.5"의 총 점수(722)가 생성된다. 점수(730)가 후보 전사본(554b) "패션(fashion)"에 대한 음소 표기의 다양한 HMM 상태들에 대해 부여된다. 이 점수(730)들을 결합하면 후보 전사본(554b)에 대해서 "0.8"의 총 점수(732)가 생성된다. 도시된 예에서, 후보 전사본(554b)에 대한 총 점수가 더 높은 것은, 가변 음소 문맥과 함께 음향모델(140)을 사용할 때에, "액션(action)"보다 전사본 "패션(fashion)"이 음성 프레임(564)에 대한 올바른 전사본일 가능성이 더 크다고 간주됨을 나타내는 것이다.
음향모델(732)에 대한 총 점수(722, 732)는, 도 5에서 후보 전사본(554a-554c)의 순위를 정하는 데 사용되는 조정 점수(575a-575c)를 결정하기 위해, 음성인식의 제1과정으로부터, 점수(555a-555c)와 결합시킬 수 있다. 각 후보 전사본(554a-554c)에 대한 조정 점수(575a-575c)는, 제1과정의 음향모델에 의해 생성된 점수(555a-555c)와 제2과정의 음향모델(140)을 이용해 생성된 총 점수(722, 732) 간에 로그-선형 보간을 하여서 계산된다. 최종 점수는 아래 식을 사용하여 계산할 수 있다.
Figure pct00019
여기서 A는 음향 속성을 나타내고, W는 단어 시퀀스를 나타내고, λ는 제1과정 및 제2과정의 음향모델들의 영향을 설정하는 가중치이다. 도시된 예에서, 제1과정 음향모델 및 제2과정 음향모델에 대한 점수는 동등하게 가중치적용된다. 로그함수 확률 공간에서의 가산(덧셈)은 정규 확률 공간에서의 승산(곱셈)이 된다. 예로서, 후보 전사본(554b)에 대한 점수(575b)는, 점수(555b)의 값(예컨대, 0.7)에 점수 732의 값(예컨대, 0.8)을 곱한 값인 0.56의 값을 가질 수 있다.
일부 구현예들에서, 후보 전사본의 순위를 정하기 위해 사용된 점수들은 또한, 하나 이상의 언어 모델들의 출력에 기초한다. 음향모델 확률 점수와 언어 모델 확률 점수에 기초한, 후보 전사본에 대한 결합된 점수는 아래 식으로 계산될 수 있다.
Figure pct00020
여기서 A는 음향 속성을 나타내고, W는 단어 시퀀스를 나타내고, lmw는 언어 모델 가중치이다. 음향모델 출력과 언어 모델 출력을 모두 반영한 점수는, 가장 정확도 가능성이 높은 것으로 판단되는 하나 이상의 전사본을 선택하는 데 사용할 수 있다.
도 8은 가변 길이의 음소 문맥을 이용하여 음성을 인식하기 위한 프로세스(800)를 도시하는 흐름도이다. 간략하게 설명하면, 이 프로세스(800)는, 음성 데이터와 이 음성 데이터에 대한 후보 전사본을 식별하는 데이터를 수신하고, 후보 전사본에 대한 음소 표기를 액세스하고, 음소 표기에서 여러 테스트 시퀀스를 추출하고, 다수의 테스트 시퀀스 중의 하나 이상에 대응하는 데이터가 음향모델에 포함됨을 나타내는 데이터를 수신하고, 음향모델이 데이터를 포함하는 하나 이상의 테스트 시퀀스 중에서 가장 많은 수의 문맥상 음소가 포함된 테스트 시퀀스를 선택하고, 이 선택된 테스트 시퀀스들에 대응되는 데이터를 음향모델에서 액세스하고, 음향모델로부터 액세스한 선택된 테스트 시퀀스에 대응되는 데이터에 기초하여 후보 전사본에 대한 점수를 생성하는 것을 포함한다.
더 상세하게 설명하자면, 음성 데이터와, 이 음성 데이터에 대한 후보 전사본을 식별하는 데이터를 수신한다(802). 음성 데이터는 음성의 특징을 나타내는 특징 벡터들을 포함할 수 있다. 특징 벡터는 다수의 음성 프레임들로 수신될 수 있는데, 여기서 각 음성 프레임은, 예를 들어, 10 ms의 음성을 나타낸다. 음성 데이터와 전사본은 분산된 컴퓨팅 시스템에서 수신될 수 있다.
전사본에 대한 음소 표기를 구한다(804). 음소 표기는 문맥에 무관한(문맥 독립적인) 음소들의 시퀀스일 수 있다.
음소 표기에서 다수의 테스트 시퀀스들을 추출한다(806). 다수의 테스트 시퀀스는 음소 표기 중의 특정 음소에 대해서 추출되며, 각 테스트 시퀀스는 특정 음소 주위의 다른 문맥상 음소 집합을 포함할 수 있다.
예를 들어, 각 테스트 시퀀스는 전술한 바와 같이, M의 상이한 정수 값을 갖는 M-음소일 수 있다. 추출된 테스트 시퀀스는, 적어도, 예를 들어 특정 음소 앞에 있는 1개의 문맥상 음소 및/또는 이 특정 음소 뒤에 있는 1개의 문맥상 음소를 포함하는 제1시퀀스와, 특정 음소 앞에 있는 2개의 문맥상 음소 및/또는 이 특정 음소 뒤에 있는 2개의 문맥상 음소를 포함하는 제2시퀀스와, 특정 음소 앞에 있는 3개의 문맥상 음소 및/또는 이 특정 음소 뒤에 있는 3개의 문맥상 음소를 포함하는 제3시퀀스를 포함할 수 있다. 각 테스트 시퀀스는 음소 표기 내에서 연속된 음소들의 시퀀스일 수 있다.
특정 음소의 전후에 있는 비대칭 수의 문맥상 음소를 포함하는 하나 이상의 비대칭 테스트 시퀀스를 추출할 수 있다. 또한, 특정 음소의 전후에 있는 대칭 수의 문맥상 음소를 포함하는 하나 이상의 대칭 테스트 시퀀스를 추출할 수 있다. 대칭 테스트 시퀀스의 각각에는 하나 이상의 비대칭 테스트 시퀀스보다 적은 수의 문맥상 음소가 포함될 수 있다. 즉, 단축 M-음소를 생성하기 위해서 최대 차수의 M-음소로부터 단축할 때에, 문맥상 음소들은 가장 많은 문맥상 음소들을 포함하는 특정 음소쪽에서만 제거할 수 있다. 문맥상 음소들은 특정 음소에 주위의 대칭 수의 음소가 나타날 때까지 한쪽에서 제거할 수 있고, 그 다음에는, 문맥상 음소의 양쪽에서 문맥상 음소를 생략하거나 단축시킬 수 있다.
일부 구현예들에서는, 적어도 다섯 개의 테스트 시퀀스가 추출된다. 적어도 다섯 개의 테스트 시퀀스에는, 특정 음소의 앞과 뒤의 1, 2, 3, 4, 또는 5개 문맥상 위치 내에서 나타나는 모든 문맥상 음소를 각각 포함하는 테스트 시퀀스를 포함한다. 테스트 시퀀스에서, 문맥상 음소를 포함하지 않는 문맥상 위치는 빈 것으로 표시할 수 있다.
음향모델이 다수의 테스트 시퀀스 중 하나 이상에 대응됨을 나타내는 데이터를 포함하는 것을 나타내는 데이터가 수신된다(808). 데이터를 수신하기 위해서, 다수의 테스트 시퀀스들 각각을 식별한 요청을 전송할 수 있다. 음향모델로부터 오는 데이터는 음향모델에 의해 인식된 하나 이상의 테스트 시퀀스들 각각에 대해서 수신될 수 있다. 테스트 시퀀스에 대해 수신된 음향모델 데이터는, 이 모델에 데이터가 존재하는 경우, 특정 HMM 상태에 연계된 GMM 및 대응 테스트 시퀀스에 대한 음소 문맥일 수 있다.
일부 구현예들에서, 테스트 시퀀스에 대한 데이터는 배분된 관련 배열로부터 얻어진다. 배분된 관련 배열로부터 데이터를 얻기 위해, 파티션 설정키는 다수의 테스트 시퀀스의 각각에 나타나는 음소의 시퀀스에 기초하여 식별될 수 있다. 예를 들어, 테스트 시퀀스에 대한 파티션 설정키는 테스트 시퀀스의 중앙 삼음소에 기반할 수 있다. 음향모델을 학습하는 데 사용된 것과 동일한 파티션 설정 기능을, 배분된 관련 배열로부터 데이터를 액세스하는 데에도 사용될 수 있다. 배분된 관련 배열의 파티션 구획은 파티션 설정키에 기초하여 식별될 수 있다. 일부 구현예에서는 서버 모듈이, 파티션 설정키를 어디에 할당할지를 결정한다. 다수의 테스트 시퀀스에 대응되는 데이터는 식별된 파티션으로부터, 또는 파티션 설정키가 할당된 식별된 서버 모듈 로부터 얻을 수 있다.
테스트 시퀀스들에 대해서 음향모델이 데이터를 포함하고 있는 하나 이상의 테스트 시퀀스들 중에서 가장 많은 수의 문맥상 음소를 포함하는 테스트 시퀀스를 선택한다(810). 즉, 음향모델에 의해 인식된 가장 긴 테스트 시퀀스가 선택된다. 이 선택된 테스트 시퀀스는, 미리 결정된 최대 개수의 문맥상 음소, 예를 들어, 다수의 테스트 시퀀스의 최대 차수의 M-음소를 포함하는 테스트 시퀀스일 수 있다. 그러나 일부 경우에는, 미리 결정된 최대 수보다 적은 수의 문맥상 음소를 포함하는 테스트 시퀀스 하나가 선택된다. 이 프로세스(800) 부분을 음소 표기의 다른 음소들을 평가하기 위해 반복하는 경우에, 다른 음소에 대해서 선택된 테스트 시퀀스들은, 그들 각각의 중앙 음소 주위의 서로 다른 수의 문맥상 음소를 가질 수 있다.
선택된 테스트 시퀀스에 대응하는 음향모델로부터 데이터를 액세스한다(812). 액세스된 데이터에는 가우시안 혼합 모델(GMM)을 정의하는 파라미터가 포함될 수 있는데, 여기서 GMM은 선택된 테스트 시퀀스의 중앙 음소에 상응한다. GMM은 특정 음소의 HMM 상태에 대한 출력 배분을 정의할 수 있는데, 이 출력 배분은 선택된 테스트 시퀀스에 포함된 문맥상 음소들의 특정 시퀀스에 좌우된다. 액세스된 데이터는 음향모델에 다수 테스트 시퀀스들 중 하나 이상에 대응되는 데이터가 포함되어 있는지를 나타내는 데이터가 수신된 것이다. 데이터를 액세스하는 단계에는, 전술한 바와 같이, 배분된 관련 배열로부터 데이터를 액세스하는 것이 포함될 수 있다.
후보 전사본에 대한 점수를, 선택된 테스트 시퀀스에 대응되는 음향모델로부터의 데이터에 기초하여 생성한다(814). 점수는, 후보 전사본이 음성 데이터에 대한 정확한 전사인지의 가능도를 나타내는 신뢰도 점수 또는 확률 척도일 수 있다. 점수는, 후보 전사본의 특정 부분이 정확함을 나타낼 수 있는 것인데, 여기서, 특정 부분이라 함은 특정 음소, 또는 이 특정 음소를 모델링하는 데 사용되는 여러 HMM 상태들 중의 하나인 하위음소(sub-phone) 성분을 말한다.
선택된 테스트 시퀀스에 미리 결정된 최대 수보다 적은 수의 문맥상 음소가 포함될 때에는, 패널티를 정할 수 있다. 신뢰도 점수 또는 확률 척도와 같은 최초 점수를 이 페널티에 따라 조정할 수 있다. 최초 점수에 비해, 조정된 점수(조정 점수)는 후보 전사본이 음성 데이터에 대한 정확한 전사일 가능성 또는 신뢰도가 더 낮음을 나타낼 수 있다. 페널티의 크기는 선택된 테스트 시퀀스 내의 문맥상 음소의 수와 미리 결정된 최대 음소 수 간의 차이에 기초하여 결정될 수 있다. 예를 들어, 미리 결정된 문맥상 음소의 최대 수가 3 이상인 경우에, 특정 음소의 전 또는 후에 두 개의 문맥상 음소가 있는 테스트 시퀀스에 대한 페널티는, 특정 음소의 전 또는 후에 단 한 개의 문맥상 음소가 있는 테스트 시퀀스보다 작을 수 있다.
일부 구현예들에서, 후보 전사본에 대한 점수를 생성하는 절차에는, 다른 음향모델(가령, 고정된 길이의 음소 문맥을 사용하는 음향모델 또는 음소 문맥에 의존하지 않는 음향모델)을 이용하여 후보 전사본에 부여된 점수를 조정하는 것이 포함된다.
상기 프로세스(800)는 음성 시퀀스 내에 있는 다수의 음소를 평가하는데 사용될 수 있다. 예를 들어, 상기 프로세스(800)에는, 특정 음소와는 다른 제2의 음소에 대한 음소 표기로부터 다수의 제2 테스트 시퀀스를 추출하는 것이 포함될 수 있다. 다수의 제2 테스트 시퀀스의 각각에는 제2 음소 주위에 있는 다른 문맥상 음소의 집합이 포함된다. 음향모델이 다수의 제2 테스트 시퀀스들 중 하나 이상을 포함하고 있음을 나타내는 데이터를 수신한다. 음향모델이 데이터를 포함하고 있는 하나 이상의 제2 테스트 시퀀스들 중에서 가장 많은 수의 문맥상 음소가 포함된 제2 테스트 시퀀스를 선택한다. 선택된 제2 테스트 시퀀스에 대응하는 음향모델로부터 데이터를 액세스한다. 후보 전사본에 대해 생성되는 점수는, 선택된 제2 테스트 시퀀스에 대응되는 음향모델로부터의 데이터 뿐만 아니라, 그 밖에 선택된 다른 테스트 시퀀스에 대응하는 음향모델로부터의 데이터에 기반할 수 있다. 이에 덧붙여, 또는 대안으로, 제2 음소에 대한 점수, 또는 제2 음소의 HMM 상태에 대한 점수를 생성한다.
프로세스(800)는 다수의 후보 전사본에 대해서 반복할 수 있고, 각 후보 전사본에 대해서 생성된 점수를 이용하여, 후보 전사본들이 음성 데이터의 정확한 전사본들이 될 가능도(likelihood) 또는 신뢰도에 따라 후보 전사본들의 순위를 매기거나 순위 조정을 할 수 있다.
본 명세서에서 설명한 본 발명의 구현예들 및 모든 기능상 작용들은 디지털 전자 회로에서, 또는 컴퓨터 소프트웨어, 펌웨어, 하드웨어에서, 본 명세서에서 개시한 구성 및 그 구조적 등가물 또는 이들 중 하나 이상의 조합을 포함하여 실시할 수 있다. 본 발명의 구현예들은 하나 이상의 컴퓨터 프로그램 제품들로서, 즉, 데이터 처리 장치에 의한 실행 또는 이 데이터 처리 장치의 동작 제어를 위하여 컴퓨터 판독가능 매체에 인코딩된 컴퓨터 프로그램 명령어의 하나 이상의 모듈로서 구현될 수 있다. 컴퓨터 판독가능 매체는 비-일시적 컴퓨터 판독가능 저장 매체, 기계가 판독가능한 저장 장치, 기계가 판독가능한 저장 회로, 메모리 장치, 기계가 판독가능한 전달 신호를 발생시키는 복합물, 또는 이들 중 하나 이상의 조합일 수 있다. "데이터 처리 장치(data processing apparatus)"라는 용어는, 예를 들어, 프로그래머블 프로세서, 컴퓨터, 또는 다중 프로세서 또는 컴퓨터를 포함하여 데이터를 처리하는 모든 기구, 장치, 및 기계를 총칭한다. 데이터 처리 장치에는 하드웨어 뿐만 아니라, 대응 컴퓨터 프로그램을 위한 실행 환경을 만들어 주는 코드, 가령, 프로세서의 펌웨어를 구성하는 코드, 프로토콜 스택, 데이터베이스 관리 시스템, 운영체제, 또는 이들 중 하나 이상의 조합이 포함될 수 있다. 전달되는 신호는 인공적으로 생성된 신호로서, 예를 들면, 수신 장치에 적합하게 전송하기 위해 정보를 부호화하기 위해 생성된, 기계가 만들어낸 전기적, 광학적, 또는 전자기적 신호를 말한다.
컴퓨터 프로그램(또는, 프로그램, 소프트웨어, 소프트웨어 애플리케이션, 스크립트, 또는 코드라고도 함)은 임의 형식의 프로그래밍 언어(컴파일된 또는 해독된 언어를 포함)로 작성될 수 있으며, 그것은 독립 실행형 프로그램의 형태로, 또는 모듈, 컴포넌트, 서브루틴, 또는 기타 컴퓨팅 환경에서 사용하기에 적합한 임의의 형태로 설치될 수 있다. 컴퓨터 프로그램이 반드시 파일 시스템의 파일과 일치하는 것은 아니다. 프로그램은, 다른 프로그램 또는 데이터를 갖고 있는 파일의 일부(예를 들면, 마크업 언어 문서에 저장된 하나 이상의 스크립트)에, 대응 프로그램에 전속한 하나의 파일에, 또는 다수의 조합된 파일(예를 들면, 모듈, 서브 프로그램, 또는 코드 부분들을 하나 이상 저장하고 있는 파일들)에 저장될 수 있다. 컴퓨터 프로그램은, 하나의 컴퓨터에서 실행되도록, 또는 한 장소에 위치하는 다수의 컴퓨터에서 또는 여러 장소에 분산되어 통신 네트워크로 서로 연결된 다수의 컴퓨터에서 실행되도록 설치할 수 있다.
본 명세서에서 설명한 프로세스들과 로직 흐름들은, 입력 데이터를 연산하여 출력들을 생성하는 기능들을 수행하는 하나 이상의 컴퓨터 프로그램을 실행하는 하나 이상의 프로그래머블 프로세서들에 의해 수행될 수 있다. 또한 이 프로세스 및 로직 흐름은 특수 목적의 로직 회로, 예를 들면, FPGA(전계에 의해 프로그래밍가능한 게이트 어레이) 또는 ASIC(주문형 집적회로)에 의해 수행될 수 있으며, 또한 이로써 장치가 구현될 수 있다.
컴퓨터 프로그램의 실행에 적합한 프로세서의 예를 들면, 범용 및 특수 목적 마이크로프로세서들과, 임의 종류의 디지털 컴퓨터의 임의의 하나 이상의 프로세서를 들 수 있다. 일반적으로, 프로세서는 읽기 전용 메모리(ROM) 또는 랜덤 액세스 메모리(RAM) 또는 이들 모두로부터 명령어와 데이터를 수신한다. 컴퓨터의 필수 구성요소들은 명령들을 수행하는 프로세서와 명령어와 데이터를 저장하는 하나 이상의 메모리 장치들이다. 또한, 일반적으로 컴퓨터는 데이터를 저장하는 하나 이상의 대용량 저장 장치(예를 들어, 자기식, 광 자기식, 또는 광학식 디스크)를 포함할 것이거나, 데이터를 받고 전달하기 위해 기능적으로 연결될 것이거나, 또는 이들 둘 다에 대응될 것이다. 그러나, 컴퓨터가 이러한 대용량 저장 장치를 가질 필요는 없다. 또한, 컴퓨터는 다른 장치, 가령 몇 가지 예를 들면, 태블릿 컴퓨터, 휴대 전화, 개인용 디지털 보조장치(PDA), 휴대형 오디오 플레이어, 글로벌 포지셔닝 시스템(GPS) 수신기 등에 내장될 수도 있다. 컴퓨터 프로그램 명령어와 데이터를 저장하기에 적합한 컴퓨터 판독가능 매체에는 모든 형태의 비휘발성 메모리, 매체, 및 메모리 장치(예를 들어, 반도체 메모리 소자(EPROM, EEPROM, 플래시 메모리 소자 등), 자기 디스크(내장형 하드디스크 또는 외장탈착형 디스크), 광자기 디스크, 그리고 CD ROM과 DVD-ROM 디스크 등)이 포함된다. 프로세서와 메모리에는 특수 목적 로직 회로가 구비될 수 있고, 또는, 이 회로 안에 프로세서와 메모리가 통합될 수 있다.
사용자와의 상호대화를 제공하기 위해 본 발명에서는, 사용자에게 정보를 표시해주는 디스플레이 장치, 예를 들어, CRT(음극선관) 또는 LCD(액정 디스플레이) 모니터와, 사용자가 컴퓨터에 입력할 수 있는 키보드 및 포인팅 장치, 예를 들면, 마우스 또는 트랙볼이 구현될 수 있다. 사용자와의 인터랙션을 위한 다른 형태의 장치들도 또한 제공할 수 있다. 예를 들면, 사용자에게 전달되는 피드백은 임의 형태의 감각 피드백(예컨대, 시각 피드백, 청각 피드백, 또는 촉각 피드백)일 수 있고, 사용자의 입력 형태도 음향, 음성, 접촉 등 임의의 형태일 수 있다.
컴퓨터 시스템에 여러 구현예들을 실시할 수 있는데, 이들 구현예에는 백엔드 구성부(예를 들어, 데이터 서버), 미들웨어 구성부(예를 들어 애플리케이션 서버), 프런트엔드 구성부(예를 들어, 사용자가 본 발명의 실시예와 인터랙션할 수 있는 그래픽 사용자 인터페이스 또는 웹브라우저가 있는 클라이언트 컴퓨터), 또는 상기 하나 이상의 백엔드, 미들웨어, 프런트엔드 구성부의 임의의 조합이 포함된다. 시스템의 구성부들은 임의의 형식으로 또는 디지털 데이터 통신 매체(예컨대, 통신 네트워크)에 의해서 상호 연결할 수 있다. 통신 네트워크의 예로는, 로컬 영역 네트워크(LAN)와 광역 네트워크(WAN)(예를 들어, 인터넷)가 있다.
컴퓨팅 시스템은 클라이언트들 및 서버들을 포함할 수 있다. 클라이언트와 서버는 일반적으로 서로 원격지에 떨어져 있으며 보통은 통신 네트워크를 통해 상호대화한다. 클라이언트와 서버의 관계는, 각각의 컴퓨터에서 실행되고 서로 간에 클라이언트-서버 관계를 갖는 컴퓨터 프로그램에 의해 이루어진다.
본 명세서에 많은 세부 사항들이 기재되어 있지만, 이들은 본 발명의 범위 또는 청구사항에 대해 제한을 하는 것으로 해석하면 안 되고, 특정 구현예를 구체화한 특징을 설명한 것으로 해석해야 한다. 본 명세서에서 개별적 구현예로서 설명한 특정 특징들을 조합하여 하나의 구현예로 실시할 수도 있고, 반대로, 하나의 구현예로서 설명한 다양한 특징들을 별도의 다수 구현예로 또는 임의의 적절한 하위 조합으로 실시할 수도 있다. 덧붙여, 위에서는 특징들을 특정 조합에서 작용하는 것으로 설명하고 그리고 심지어는 그렇게 일단 청구하였지만, 일부의 경우에는, 청구된 조합으로부터 하나 이상의 특징을 이 조합으로부터 떼어낼 수 있고, 청구된 조합으로부터 하위 조합 또는 하위 조합의 변형을 도출할 수도 있을 것이다.
마찬가지로, 동작을 특정 순서로 도면에 도시하였지만, 원하는 결과를 얻기 위하여서, 동작들이 도시된 특정 순서대로 또는 순차로 수행되어야만 하는 것으로 이해하거나 도시된 동작이 모두 다 실행되어야만 하는 것으로 이해해서는 안된다. 특정 상황에서는 멀티태스킹과 병렬처리가 유리할 수 있다. 또한, 위에서 설명한 구현예에서 각종 시스템 구성부를 분리하였다 하여 모든 실시의 경우에 이러한 분리가 필요하다고 이해해서는 안되며, 설명한 프로그램 구성부와 시스템은 일반적으로, 단일의 소프트웨어 제품에 함께 통합하거나 다수의 소프트웨어 제품으로 패키지화할 수 있음을 이해해야 한다.
HTML 파일이 언급된 각 경우에, 이는, 다른 파일 유형이나 형식으로도 대체할 수 있다. 예를 들어, HTML 파일을 XML, JSON, 일반 텍스트, 또는 기타 형식의 파일로 대체할 수 있다. 또한, 테이블 또는 해시 테이블이 언급된 경우라도, 다른 데이터 구조(예컨대, 스프레드 시트, 관계형 데이터베이스, 또는 구조화된 파일 등)를 사용할 수 있다.
지금까지 발명의 특정 구현형태를 설명하였다. 이하의 특허청구범위 내에는 이와 다른 구현형태들도 포함된다. 예를 들어, 청구범위에서 인용한 동작은 다른 순서로 수행될 수도 있으며, 이에 의해서도 여전히 바람직한 결과를 얻을 수 있을 것이다.

Claims (93)

  1. 하나 이상의 컴퓨터들과, 이 하나 이상의 컴퓨터들의 실행시에 이 하나 이상의 컴퓨터들이 연산을 수행하도록 동작하는 명령어들을 저장하는 하나 이상의 저장 장치를 포함하는 시스템에 있어서,
    상기 명령어들에 의해서 상기 하나 이상의 컴퓨터들이 수행하는 연산은,
    음성 데이터와 상기 음성 데이터에 대한 전사본(transcription)을 식별하는 데이터를 수신하고;
    상기 전사본에 대한 음소 표기(phonetic representation)를 액세스하고;
    상기 음소 표기 내의 특정 음소에 대한 음소 표기로부터 트레이닝 시퀀스(training sequence)들을 추출하되, 상기 트레이닝 시퀀스들의 각각은 상기 특정 음소 주변에 있는 상이한 문맥상 음소들의 세트를 포함하고;
    각 트레이닝 시퀀스에서 나타나는 음소의 시퀀스에 기초하여 파티션 설정키(partitioning key)를 식별하고;
    다수의 처리 모듈들 중에서, 상기 식별된 파티션 설정키에 대응하는 음향모델의 부분을 학습시키도록 이 파티션 설정키가 할당된 처리 모듈을 선택하고; 그리고
    상기 선택된 처리 모듈로, (i) 트레이닝 시퀀스를 식별하는 데이터와 (ii) 가장 많은 문맥상 음소를 포함하는 트레이닝 시퀀스에 대응하는 음성 데이터의 일부를 전송하는 것을 포함하는, 시스템.
  2. 제1항에 있어서, 상기 전사본에 대한 음소 표기를 액세스하는 것은, 문맥 독립적인 음소들을 포함하는 음소 표기를 액세스하는 것을 포함하는, 시스템.
  3. 제1항에 있어서, 음성 데이터를 수신하는 것은, 음성 특징들을 나타내는 특징 벡터들을 수신하는 것을 포함하는, 시스템.
  4. 제1항에 있어서, 적어도 상기 음성 데이터의 일부를 전송하는 것은, 트레이닝 시퀀스 세트 내의 모든 트레이닝 시퀀스들 보다 적은 수에 대한 음성 데이터 인스턴스를 전송하는 것을 포함하는, 시스템.
  5. 제1항에 있어서, 상기 적어도 음성 데이터의 일부를 전송하는 것은, 가장 많은 문맥상 음소들을 포함하는 트레이닝 시퀀스에 대응하는 상기 음성 데이터의 일부를, 상기 선택된 처리 모듈로 전송하되, 다른 트레이닝 시퀀스에 대한 추가 음성 데이터는 전송하지 않는 것을 포함하는, 시스템.
  6. 제1항에 있어서, 상기 하나 이상의 컴퓨터가 수행하는 연산들은,
    상기 선택된 처리 모듈에서, 상기 트레이닝 시퀀스와, 가장 많은 문맥상 음소들을 포함하는 트레이닝 시퀀스에 대응되는 상기 음성 데이터의 일부를 식별하는 데이터를 수신하고; 그리고
    상기 선택된 처리 모듈에서, 상기 트레이닝 시퀀스 각각에 대한 수신된 음성 데이터의 다른 부분집합을 액세스하는 것을 추가로 포함하는, 시스템.
  7. 제1항에 있어서, 각 트레이닝 시퀀스에서 나타나는 음소들의 시퀀스에 기초하여 상기 파티션 설정키를 식별하는 것은, 각 트레이닝 시퀀스에서 나타나는 두 개 이상의 연속된 음소들의 시퀀스에 기초하여 파티션 설정키를 식별하는 것을 포함하는, 시스템.
  8. 제1항에 있어서, 각 트레이닝 시퀀스에서 나타나는 음소들의 시퀀스에 기초하여 상기 파티션 설정키를 식별하는 것은, 상기 특정 음소 앞의 하나의 문맥상 음소 및 상기 특정 음소 뒤의 하나의 문맥상 음소를 포함하는 시퀀스에 기초하여 파티션 설정키를 식별하는 것을 포함하는, 시스템.
  9. 제1항에 있어서, 각 트레이닝 시퀀스에서 나타나는 음소들의 시퀀스에 기초하여 파티션 설정키를 식별하는 것은, 각 트레이닝 시퀀스에 대해 동일한 파티션 설정키가 식별되도록 각 트레이닝 시퀀스에 대한 파티션 설정키를 식별하는 것을 포함하는, 시스템.
  10. 제1항에 있어서,
    상기 트레이닝 시퀀스들은 각각 중앙 삼음소를 포함하는 제1 트레이닝 시퀀스이고,
    상기 각 트레이닝 시퀀스에서 나타나는 음소들의 시퀀스에 기초하여 파티션 설정키를 식별하는 것은, 제1 트레이닝 시퀀스에 포함된 상기 중앙 삼음소에 기초하여 상기 파티션 설정키를 식별하는 것을 포함하고,
    상기 하나 이상의 컴퓨터가 수행하는 연산은,
    상기 제1 트레이닝 시퀀스에 포함된 것과 동일한 중앙 삼음소를 포함하는 제2 트레이닝 시퀀스를 식별하는 데이터를, 상기 처리 모듈로는 전송하나 다수의 처리 모듈 중 그 밖의 처리 모듈에는 전송하지 않는 것을 추가로 포함하되, 상기 제2 트레이닝 시퀀스들은 제2 음성 데이터에 대한 전사본에 대한 음소 표기에서 추출되는, 시스템.
  11. 제1항에 있어서, 상기 음소 표기 내의 특정 음소에 대하여 트레이닝 시퀀스를 추출하는 것은, 적어도,
    상기 특정 음소의 앞에 있는 하나의 문맥상 음소와 상기 특정 음소의 뒤에 있는 하나의 문맥상 음소를 포함하는 제1시퀀스와;
    상기 특정 음소의 앞에 있는 두 개의 문맥상 음소들과 상기 특정 음소의 뒤에 있는 두 개의 문맥상 음소들을 포함하는 제2시퀀스와; 그리고
    상기 특정 음소의 앞에 있는 세 개의 문맥상 음소들과 상기 특정 음소의 뒤에 있는 세 개의 문맥상 음소들을 포함하는 제3시퀀스를 식별하는 것을 포함하는, 시스템.
  12. 제1항에 있어서, 상기 음소 표기 내의 특정 음소에 대하여 상기 트레이닝 시퀀스를 추출하는 것은, 상기 음소 표기 내의 연속된 음소들의 시퀀스를 추출하는 것을 포함하는, 시스템.
  13. 제1항에 있어서, 상기 하나 이상의 컴퓨터가 수행하는 연산은,
    상기 선택된 처리 모듈에서, 상기 트레이닝 시퀀스를 식별하는 데이터를 수신하고; 그리고
    상기 선택된 처리 모듈에서, 상기 음성 데이터의 일부분과 트레이닝 시퀀스의 다른 인스턴스들에 대한 음성 데이터를 병합하는 것을 포함하는, 시스템.
  14. 제13항에 있어서, 상기 하나 이상의 컴퓨터가 수행하는 연산은,
    상기 선택된 처리 모듈에서, 제1 트레이닝 시퀀스에 대한 병합된 음성 데이터에 기초하여 상기 트레이닝 시퀀스들 중의 제1 트레이닝 시퀀스에 대한 모델을 생성하고; 그리고
    상기 생성된 모델을 배분된 관련 배열(distributed associative array)에 저장하는 것을 추가로 포함하되, 상기 생성된 모델은 상기 식별된 파티션 설정키에 연계된 배분된 관련 배열의 파티션에 저장되는, 시스템.
  15. 제14항에 있어서, 상기 제1 트레이닝 시퀀스에 대한 모델을 생성하는 것은, 상기 제1 트레이닝 시퀀스 내에 포함된 문맥상 음소들의 시퀀스에 의존하는 문맥 의존성 가우시안 혼합 모델(context-dependent Gaussian mixture model)을 생성하는 것을 포함하되, 상기 가우시안 혼합 모델은 제1 트레이닝 시퀀스의 중앙 음소의 히든 마르코프 모델(Hidden Markov Model)의 상태의 출력 배분을 나타내하는, 시스템.
  16. 제14항에 있어서, 상기 생성된 모델을 배분된 관련 배열에 저장하는 것은, 상기 생성된 모델이 제1 트레이닝 시퀀스에 고유하게 대응하는 키와 연계되도록, 배분된 관련 배열에 생성된 모델을 저장하는 것을 포함하는, 시스템.
  17. 제13항에 있어서, 상기 하나 이상의 컴퓨터가 수행하는 연산은,
    상기 선택된 처리 모듈에서, 상기 병합된 음성 데이터가 트레이닝 시퀀스 중의 제2 트레이닝 시퀀스 인스턴스 수의 임계값보다 적은 수에 대한 데이터를 포함하고 있는지 판단하고; 그리고
    상기 병합된 음성 데이터가 제2 트레이닝 시퀀스 인스턴스 수의 임계값보다 적은 수에 대한 데이터를 포함하고 있는 것으로 판단하면, 상기 제2 트레이닝 시퀀스에 대한 모델은 생성하지 않는 것을 포함하는, 시스템.
  18. 컴퓨터로 구현되는 방법으로서,
    음성 데이터와 상기 음성 데이터에 대한 전사본을 식별하는 데이터를 수신하고;
    상기 전사본에 대한 음소 표기를 액세스하고;
    상기 음소 표기 내의 특정 음소에 대한 음소 표기로부터 트레이닝 시퀀스들을 추출하되, 상기 트레이닝 시퀀스들의 각각은 상기 특정 음소 주변에 있는 상이한 문맥상 음소 집합을 포함하고;
    각 트레이닝 시퀀스에서 나타나는 음소들의 시퀀스에 기초하여 파티션 설정키를 식별하고;
    복수의 처리 모듈 중에서, 상기 식별된 파티션 설정키에 대응하는 음향모델의 부분을 학습시키도록 이 파티션 설정키가 할당된 처리 모듈을 선택하고; 그리고
    (i) 상기 트레이닝 시퀀스를 식별하는 데이터와 (ii) 상기 가장 많은 문맥상 음소들을 포함하는 트레이닝 시퀀스에 대응하는 음성 데이터의 일부를, 상기 선택된 처리 모듈로 전송하는 것을 포함하는, 컴퓨터로 구현되는 방법.
  19. 제18항에 있어서, 상기 전사본에 대한 음소 표기를 액세스하는 것은, 문맥 독립적인 음소를 포함하는 음소 표기를 액세스하는 것을 포함하는, 컴퓨터로 구현되는 방법.
  20. 제18항에 있어서, 음성 데이터를 수신하는 것은, 음성 특징을 나타내는 특징 벡터들을 수신하는 것을 포함하는, 컴퓨터로 구현되는 방법.
  21. 제18항에 있어서, 적어도 상기 음성 데이터의 일부를 전송하는 것은, 트레이닝 시퀀스 집합 내의 모든 트레이닝 시퀀스들 보다 적은 수에 대한 음성 데이터 인스턴스를 전송하는 것을 포함하는, 컴퓨터로 구현되는 방법.
  22. 제18항에 있어서, 적어도 음성 데이터의 일부를 전송하는 것은, 가장 많은 문맥상 음소들을 포함하는 트레이닝 시퀀스에 대응하는 음성 데이터의 일부를 선택된 처리 모듈로 전송하되, 다른 트레이닝 시퀀스에 대한 추가 음성 데이터는 전송하지 않는 것을 포함하는, 컴퓨터로 구현되는 방법.
  23. 제18항에 있어서,
    상기 선택된 처리 모듈에서, 트레이닝 시퀀스와, 가장 많은 문맥상 음소를 포함하는 트레이닝 시퀀스에 대응하는 음성 데이터의 일부를 식별하는 데이터를 수신하고; 그리고
    상기 선택된 처리 모듈에서, 트레이닝 시퀀스 각각에 대한 수신된 음성 데이터의 다른 서브세트를 액세스하는 것을 추가로 포함하는, 컴퓨터로 구현되는 방법.
  24. 제18항에 있어서, 각 트레이닝 시퀀스에서 나타나는 음소들의 시퀀스에 기초하여 파티션 설정키를 식별하는 것은, 각 트레이닝 시퀀스에서 나타나는 두 개 이상의 연속된 음소의 시퀀스에 기초하여 상기 파티션 설정키를 식별하는 것을 포함하는, 컴퓨터로 구현되는 방법.
  25. 제18항에 있어서, 각 트레이닝 시퀀스에서 나타나는 음소들의 시퀀스에 기초하여 파티션 설정키를 식별하는 것은, 상기 특정 음소 앞의 하나의 문맥상 음소 및 상기 특정 음소 뒤의 하나의 문맥상 음소를 포함하는 시퀀스에 기초하여 상기 파티션 설정키를 식별하는 것을 포함하는, 컴퓨터로 구현되는 방법.
  26. 제18항에 있어서, 각 트레이닝 시퀀스에서 나타나는 음소들의 시퀀스에 기초하여 파티션 설정키를 식별하는 것은, 각 트레이닝 시퀀스에 대해 동일한 파티션 설정키가 식별되도록 각 트레이닝 시퀀스에 대한 파티션 설정키를 식별하는 것을 포함하는, 컴퓨터로 구현되는 방법.
  27. 제18항에 있어서, 상기 트레이닝 시퀀스들은 각각 중앙 삼음소를 포함하는 제1 트레이닝 시퀀스이고,
    상기 각 트레이닝 시퀀스에서 나타나는 음소들의 시퀀스에 기초하여 상기 파티션 설정키를 식별하는 것은, 제1 트레이닝 시퀀스에 포함된 상기 중앙 삼음소에 기초하여 파티션 설정키를 식별하는 것을 포함하고,
    상기 컴퓨터에서 구현되는 방법은,
    상기 제1 트레이닝 시퀀스에 포함된 것과 동일한 중앙 삼음소를 포함하는 제2 트레이닝 시퀀스를 식별하는 데이터를, 상기 처리 모듈로는 전송하나 다수의 처리 모듈 중 그 밖의 처리 모듈에는 전송하지 않는 것을 추가로 포함하되, 상기 제2 트레이닝 시퀀스는 제2 음성 데이터에 대한 전사본에 대한 음소 표기에서 추출되는, 컴퓨터로 구현되는 방법.
  28. 제18항에 있어서, 상기 음소 표기 내의 특정 음소에 대하여 트레이닝 시퀀스를 추출하는 것은, 적어도,
    상기 특정 음소의 앞에 있는 하나의 문맥상 음소와 상기 특정 음소의 뒤에 있는 하나의 문맥상 음소를 포함하는 제1시퀀스와;
    상기 특정 음소의 앞에 있는 두 개의 문맥상 음소들과 상기 특정 음소의 뒤에 있는 두 개의 문맥상 음소들을 포함하는 제2시퀀스와; 그리고
    상기 특정 음소의 앞에 있는 세 개의 문맥상 음소들과 상기 특정 음소의 뒤에 있는 세 개의 문맥상 음소들을 포함하는 제3시퀀스를 식별하는 것을 포함하는, 컴퓨터로 구현되는 방법.
  29. 제18항에 있어서, 상기 음소 표기 내의 특정 음소에 대하여 트레이닝 시퀀스를 추출하는 것은, 상기 음소 표기 내의 연속된 음소들의 시퀀스를 추출하는 것을 포함하는, 컴퓨터로 구현되는 방법.
  30. 제18항에 있어서,
    상기 선택된 처리 모듈에서, 상기 트레이닝 시퀀스를 식별하는 데이터를 수신하고; 그리고
    상기 선택된 처리 모듈에서, 상기 음성 데이터의 일부분과 상기 트레이닝 시퀀스의 다른 인스턴스에 대한 음성 데이터를 병합하는 것을 추가로 포함하는, 컴퓨터로 구현되는 방법.
  31. 제30항에 있어서,
    상기 선택된 처리 모듈에서, 제1 트레이닝 시퀀스에 대한 병합된 음성 데이터에 기초하여 상기 트레이닝 시퀀스들 중의 제1 트레이닝 시퀀스에 대한 모델을 생성하고; 그리고
    상기 생성된 모델을 배분된 관련 배열에 저장하는 것을 추가로 포함하되, 상기 생성된 모델은 식별된 파티션 설정키에 연계된 배분된 관련 배열의 파티션에 저장되는, 컴퓨터로 구현되는 방법.
  32. 제31항에 있어서, 제1 트레이닝 시퀀스에 대한 모델을 생성하는 것은, 제1 트레이닝 시퀀스 내에 포함된 문맥상 음소들의 시퀀스에 의존하는 문맥 의존성 가우시안 혼합 모델을 생성하는 것을 포함하되, 상기 가우시안 혼합 모델은 제1 트레이닝 시퀀스의 중앙 음소의 히든 마르코프 모델의 상태의 출력 배분을 나타내는, 컴퓨터로 구현되는 방법.
  33. 제31항에 있어서, 상기 생성된 모델을 배분된 관련 배열에 저장하는 것은, 상기 생성된 모델이 제1 트레이닝 시퀀스에 고유하게 대응하는 키와 연계되도록, 상기 배분된 관련 배열에 생성된 모델을 저장하는 것을 포함하는, 컴퓨터로 구현되는 방법.
  34. 제30항에 있어서,
    상기 선택된 처리 모듈에서, 상기 병합된 음성 데이터가 트레이닝 시퀀스 중의 제2 트레이닝 시퀀스 인스턴스 수의 임계값보다 적은 수에 대한 데이터를 포함하고 있는지 판단하고; 그리고
    상기 병합된 음성 데이터가 제2 트레이닝 시퀀스 인스턴스 수의 임계값보다 적은 수에 대한 데이터를 포함하고 있는 것으로 판단하면, 상기 제2 트레이닝 시퀀스에 대한 모델은 생성하지 않는 것을 추가로 포함하는, 컴퓨터로 구현되는 방법.
  35. 하나 이상의 컴퓨터들의 실행시에 상기 하나 이상의 컴퓨터들이 연산을 수행하도록 하는 명령어를 포함하는 컴퓨터 프로그램이 인코딩되어 있는 컴퓨터 저장매체에 있어서, 상기 연산은,
    음성 데이터와 상기 음성 데이터에 대한 전사본을 식별하는 데이터를 수신하고;
    상기 전사본에 대한 음소 표기를 액세스하고;
    상기 음소 표기 내의 특정 음소에 대한 음소 표기로부터 트레이닝 시퀀스들을 추출하되, 이 트레이닝 시퀀스들의 각각은 상기 특정 음소 주변에 있는 상이한 문맥상 음소 집합을 포함하고;
    각 트레이닝 시퀀스에서 나타나는 음소들의 시퀀스에 기초하여 파티션 설정키를 식별하고;
    복수의 처리 모듈들 중에서, 상기 식별된 파티션 설정키에 대응하는 음향모델의 부분을 학습시키도록 이 파티션 설정키가 할당된 처리 모듈을 선택하고; 그리고
    상기 선택된 처리 모듈로, (i) 트레이닝 시퀀스를 식별하는 데이터와 (ii) 가장 많은 문맥상 음소들을 포함하는 트레이닝 시퀀스에 대응하는 음성 데이터의 일부를 전송하는 것을 포함하는, 컴퓨터 저장매체.
  36. 제35항에 있어서, 상기 전사본에 대한 음소 표기를 액세스하는 것은, 문맥 독립적인 음소를 포함하는 음소 표기를 액세스하는 것을 포함하는, 컴퓨터 저장매체.
  37. 제35항에 있어서, 음성 데이터를 수신하는 것은, 음성 특징을 나타내는 특징 벡터들을 수신하는 것을 포함하는, 컴퓨터 저장매체.
  38. 제35항에 있어서, 적어도 상기 음성 데이터의 일부를 전송하는 것은, 트레이닝 시퀀스 집합 내의 모든 트레이닝 시퀀스들 보다 적은 수에 대한 음성 데이터 인스턴스를 전송하는 것을 포함하는, 컴퓨터 저장매체.
  39. 제35항에 있어서, 적어도 상기 음성 데이터의 일부를 전송하는 것은, 가장 많은 문맥상 음소들을 포함하는 트레이닝 시퀀스에 대응하는 음성 데이터의 일부를, 선택된 처리 모듈로 전송하되, 다른 트레이닝 시퀀스에 대한 추가 음성 데이터는 전송하지 않는 것을 포함하는, 컴퓨터 저장매체.
  40. 제35항에 있어서, 상기 연산은,
    상기 선택된 처리 모듈에서, 상기 트레이닝 시퀀스와, 가장 많은 문맥상 음소들을 포함하는 트레이닝 시퀀스에 대응되는 음성 데이터의 일부를 식별하는 데이터를 수신하고; 그리고
    상기 선택된 처리 모듈에서, 트레이닝 시퀀스 각각에 대한 수신된 음성 데이터의 다른 서브세트를 액세스하는 것을 추가로 포함하는, 컴퓨터 저장매체.
  41. 제35항에 있어서, 각 트레이닝 시퀀스에서 나타나는 음소의 시퀀스들에 기초하여 파티션 설정키를 식별하는 것은, 각 트레이닝 시퀀스에서 나타나는 두 개 이상의 연속된 음소들의 시퀀스에 기초하여 파티션 설정키를 식별하는 것을 포함하는, 컴퓨터 저장매체.
  42. 제35항에 있어서, 각 트레이닝 시퀀스에서 나타나는 음소의 시퀀스들에 기초하여 파티션 설정키를 식별하는 것은, 상기 특정 음소 앞의 하나의 문맥상 음소 및 상기 특정 음소 뒤의 하나의 문맥상 음소를 포함하는 시퀀스에 기초하여 상기 파티션 설정키를 식별하는 것을 포함하는, 컴퓨터 저장매체.
  43. 제35항에 있어서, 각 트레이닝 시퀀스에서 나타나는 음소의 시퀀스들에 기초하여 파티션 설정키를 식별하는 것은, 각 트레이닝 시퀀스에 대해 동일한 파티션 설정키가 식별되도록 각 트레이닝 시퀀스에 대한 파티션 설정키를 식별하는 것을 포함하는, 컴퓨터 저장매체.
  44. 제35항에 있어서, 상기 트레이닝 시퀀스들은 각각 중앙 삼음소를 포함하는 제1 트레이닝 시퀀스이고,
    상기 각 트레이닝 시퀀스에서 나타나는 음소들의 시퀀스에 기초하여 파티션 설정키를 식별하는 것은, 제1 트레이닝 시퀀스에 포함된 상기 중앙 삼음소에 기초하여 파티션 설정키를 식별하는 것을 포함하고,
    상기 연산은,
    상기 제1 트레이닝 시퀀스들에 포함된 것과 동일한 중앙 삼음소를 포함하는 제2 트레이닝 시퀀스들을 식별하는 데이터를, 상기 처리 모듈로는 전송하나 다수의 처리 모듈 중 그 밖의 처리 모듈에는 전송하지 않는 것을 추가로 포함하되, 상기 제2 트레이닝 시퀀스는 제2 음성 데이터에 대한 전사본에 대한 음소 표기에서 추출되는, 컴퓨터 저장매체.
  45. 제35항에 있어서, 상기 음소 표기 내의 특정 음소에 대하여 트레이닝 시퀀스를 추출하는 것은, 적어도,
    상기 특정 음소의 앞에 있는 하나의 문맥상 음소와 상기 특정 음소의 뒤에 있는 하나의 문맥상 음소를 포함하는 제1시퀀스,
    상기 특정 음소의 앞에 있는 두 개의 문맥상 음소들과 상기 특정 음소의 뒤에 있는 두 개의 문맥상 음소들을 포함하는 제2시퀀스, 및
    상기 특정 음소의 앞에 있는 세 개의 문맥상 음소들과 상기 특정 음소의 뒤에 있는 세 개의 문맥상 음소들을 포함하는 제3시퀀스를 식별하는 것을 포함하는, 컴퓨터 저장매체.
  46. 제35항에 있어서, 상기 음소 표기 내의 특정 음소에 대하여 트레이닝 시퀀스를 추출하는 것은, 상기 음소 표기 내의 연속된 음소들의 시퀀스를 추출하는 것을 포함하는, 컴퓨터 저장매체.
  47. 제35항에 있어서, 상기 연산은,
    상기 선택된 처리 모듈에서, 트레이닝 시퀀스를 식별하는 데이터를 수신하는 것과; 그리고
    상기 선택된 처리 모듈에서, 상기 음성 데이터의 일부분과 상기 트레이닝 시퀀스의 다른 인스턴스들에 대한 음성 데이터를 병합하는 것을 추가로 포함하는, 컴퓨터 저장매체.
  48. 제47항에 있어서, 상기 연산은,
    상기 선택된 처리 모듈에서, 제1 트레이닝 시퀀스에 대한 병합된 음성 데이터에 기초하여 상기 트레이닝 시퀀스들 중의 제1 트레이닝 시퀀스에 대한 모델을 생성하는 것과; 그리고
    상기 생성된 모델을 배분된 관련 배열에 저장하는 것을 추가로 포함하되, 상기 생성된 모델은 상기 식별된 파티션 설정키에 연계된 배분된 관련 배열의 파티션에 저장되는, 컴퓨터 저장매체.
  49. 제48항에 있어서, 제1 트레이닝 시퀀스에 대한 모델을 생성하는 것은, 제1 트레이닝 시퀀스 내에 포함된 문맥상 음소의 시퀀스에 의존하는 문맥 의존성 가우시안 혼합 모델을 생성하는 것을 포함하되, 이 가우시안 혼합 모델은 제1 트레이닝 시퀀스의 중앙 음소의 히든 마르코프 모델의 상태의 출력 배분을 나타내는, 컴퓨터 저장매체.
  50. 제48항에 있어서, 상기 생성된 모델을 배분된 관련 배열에 저장하는 것은, 상기 생성된 모델이 제1 트레이닝 시퀀스에 고유하게 대응하는 키와 연계되도록, 배분된 관련 배열에 생성된 모델을 저장하는 것을 포함하는, 컴퓨터 저장매체.
  51. 제47항에 있어서, 상기 연산은,
    상기 선택된 처리 모듈에서, 상기 병합된 음성 데이터가 트레이닝 시퀀스 중의 제2 트레이닝 시퀀스 인스턴스 수의 임계값보다 적은 수에 대한 데이터를 포함하고 있는지 결정하는 것과; 그리고
    상기 병합된 음성 데이터가 제2 트레이닝 시퀀스 인스턴스 수의 임계값보다 적은 수에 대한 데이터를 포함하고 있는 것으로 결정하면, 제2 트레이닝 시퀀스에 대한 모델은 생성하지 않는 것을 추가로 포함하는, 컴퓨터 저장매체.
  52. 하나 이상의 컴퓨터들과, 상기 하나 이상의 컴퓨터들의 실행시에 이 하나 이상의 컴퓨터들이 연산을 수행하도록 동작하는 명령어를 저장하는 하나 이상의 저장 장치를 포함하는 시스템에 있어서,
    상기 명령어에 의해서 상기 하나 이상의 컴퓨터가 수행하는 연산은,
    음성 데이터와 이 음성 데이터에 대한 후보 전사본을 식별하는 데이터를 수신하는 것과;
    상기 후보 전사본에 대한 음소 표기를 액세스하는 것과;
    상기 음소 표기로부터, 이 음소 표기 내의 특정 음소에 대한 다수의 테스트 시퀀스들을 추출하되, 이 다수의 테스트 시퀀스의 각각은 상기 음소 표기 내의 특정 음소 주변에 있는 상이한 문맥상 음소 집합을 포함하는 것과;
    상기 테스트 시퀀스 중 하나 이상에 대응되는 데이터가 음향모델에 포함됨을 나타내는 데이터를 수신하는 것과;
    상기 음향모델에 데이터가 포함된 하나 이상의 테스트 시퀀스들 중에서, 가장 많은 수의 문맥상 음소들을 포함하는 테스트 시퀀스를 선택하는 것과;
    상기 선택된 테스트 시퀀스에 대응하는 상기 음향모델로부터의 데이터를 액세스하는 것과; 그리고
    상기 선택된 테스트 시퀀스에 대응하는 상기 음향모델로부터 액세스된 데이터에 기초하여 상기 후보 전사본에 대한 점수를 생성하는 것을 포함하는, 시스템.
  53. 제52항에 있어서,
    가장 많은 수의 문맥상 음소들을 포함하는 테스트 시퀀스를 선택하는 것은, 테스트 시퀀스들 중 미리 결정된 문맥상 음소들의 최대 수보다 적은 수를 포함하는 것을 선택하는 것을 포함하고,
    상기 선택된 테스트 시퀀스에 대응되는 음향모델로부터 액세스된 데이터에 기초하여 상기 후보 전사본에 대한 점수를 생성하는 것은, 미리 결정된 문맥상 음소들의 최대 수보다 적은 수를 포함하는 상기 선택된 테스트 시퀀스에 기초하여 페널티를 결정하고; 상기 페널티를 기초로 하여 후보 전사본에 대한 최초 점수를 조정하여 조정된 점수를 생성하는 것을 포함하되, 상기 조정된 점수는 최초 점수에 비해, 후보 전사본이 음성 데이터에 대한 정확한 전사가 될 수 있는 가능도(likelihood)가 더 낮음을 나타내는, 시스템.
  54. 제53항에 있어서, 미리 결정된 문맥상 음소의 최대 수보다 적은 수를 포함하는 선택된 테스트 시퀀스에 기초하여 상기 페널티를 결정하는 것은, 선택된 테스트 시퀀스 내의 문맥상 음소들의 수와 미리 결정된 최대 문맥상 음소 수 간의 차이에 기초하여 상기 페널티의 크기를 결정하는 것을 포함하는, 시스템.
  55. 제52항에 있어서, 상기 특정 음소에 대한 다수의 테스트 시퀀스들을 추출하는 것은, 특정 음소의 전과 후에 있는 비대칭 수의 문맥상 음소들을 포함하는 하나 이상의 비대칭 테스트 시퀀스를 추출하는 것을 포함하는, 시스템.
  56. 제55항에 있어서, 상기 특정 음소에 대한 다수의 테스트 시퀀스들을 추출하는 것은, 상기 특정 음소의 전과 후에 있는 대칭 수의 문맥상 음소를 포함하는 하나 이상의 대칭 테스트 시퀀스를 추출하는 것을 포함하되, 각 대칭 테스트 시퀀스는 하나 이상의 비대칭 테스트 시퀀스보다 적은 문맥상 음소를 포함하는, 시스템.
  57. 제52항에 있어서, 상기 특정 음소에 대하여 다수의 테스트 시퀀스를 추출하는 것은, 적어도,
    상기 특정 음소의 앞에 있는 하나의 문맥상 음소와 상기 특정 음소의 뒤에 있는 하나의 문맥상 음소를 포함하는 제1시퀀스,
    상기 특정 음소의 앞에 있는 두 개의 문맥상 음소들과 상기 특정 음소의 뒤에 있는 두 개의 문맥상 음소들을 포함하는 제2시퀀스, 및
    상기 특정 음소의 앞에 있는 세 개의 문맥상 음소들과 상기 특정 음소의 뒤에 있는 세 개의 문맥상 음소들을 포함하는 제3시퀀스를 추출하는 것을 포함하는, 시스템.
  58. 제52항에 있어서, 상기 특정 음소에 대하여 다수의 테스트 시퀀스들을 추출하는 것은, 적어도 5개의 테스트 시퀀스들을 추출하는 것을 포함하되, 여기서 상기 적어도 5개의 테스트 시퀀스들은, 각각, 상기 특정 음소의 전과 후에 있는 1개, 2개, 3개, 4개, 또는 5개의 문맥상 위치들 내에서 나타나는 임의의 문맥상 음소를 포함하는, 시스템.
  59. 제52항에 있어서, 상기 테스트 시퀀스 중 하나 이상에 대응되는 데이터가 음향모델에 포함되는 것을 나타내는 데이터를 수신하는 것은,
    상기 테스트 시퀀스의 각각에 대해, 상기 테스트 시퀀스에 대응하는 음향모델로부터 데이터를 요청하는 것과;
    상기 음향모델 내에 데이터가 존재하는 하나 이상의 테스트 시퀀스의 각각에 대응하는 음향모델로부터 데이터를 수신하는 것과; 그리고
    상기 하나 이상의 테스트 시퀀스에 대응하는 데이터를 수신한 것에 근거하여, 상기 음향모델에 의해 하나 이상의 테스트 시퀀스가 인식되는지를 결정하는 것을 포함하는, 시스템.
  60. 제52항에 있어서, 상기 선택된 테스트 시퀀스에 대응하는 음향모델로부터의 데이터를 액세스하는 것은,
    상기 다수의 테스트 시퀀스들의 각각에서 나타나는 음소들의 시퀀스에 기초하여 파티션 설정키를 식별하는 것과;
    상기 파티션 설정키에 대응하는 배분된 관련 배열의 파티션을 식별하는 것과; 그리고
    상기 식별된 파티션으로부터, 상기 음향모델에 데이터가 포함된 다수의 테스트 시퀀스들의 각각에 대응하는 데이터를 얻는 것을 포함하는, 시스템.
  61. 제52항에 있어서, 상기 선택된 테스트 시퀀스에 대응하는 음향모델로부터의 데이터를 액세스하는 것은, 상기 선택된 테스트 시퀀스의 중앙 음소에 대응되는 가우시안 혼합 모델을 나타내는 데이터를 액세스하는 것을 포함하는, 시스템.
  62. 제52항에 있어서, 상기 전사본에 대한 음소 표기를 액세스하는 것은, 문맥 독립적인 음소들을 포함하는 음소 표기를 액세스하는 것을 포함하는, 시스템.
  63. 제52항에 있어서, 상기 음성 데이터를 수신하는 것은, 음성 특징들을 나타내는 특징 벡터들을 수신하는 것을 포함하는, 시스템.
  64. 제52항에 있어서, 선택된 테스트 시퀀스에 대응하는 상기 음향모델로부터 액세스된 데이터에 기초하여 후보 전사본에 대한 점수를 생성하는 것은, 상이한 음향모델을 이용하여 상기 후보 전사본에 할당된 점수를 조정하는 것을 포함하는, 시스템.
  65. 제52항에 있어서,
    상기 하나 이상의 컴퓨터가 수행하는 연산은,
    상기 음소 표기로부터, 이 음소 표기 내에 있는, 상기 특정 음소와 다른 제2 음소에 대한 다수의 제2 테스트 시퀀스들을 추출하되, 이 다수의 제2 테스트 시퀀스의 각각은 제2음소 주변에 있는 상이한 문맥상 음소 세트를 포함하는 것과;
    하나 이상의 제2 테스트 시퀀스 중 하나 이상에 대한 데이터가 상기 음향모델에 포함됨을 나타내는 데이터를 수신하는 것과;
    상기 음향모델에 데이터가 포함된 하나 이상의 테스트 시퀀스 중에서, 가장 많은 수의 문맥상 음소들을 포함하는 테스트 시퀀스들을 선택하는 것을 추가로 포함하며,
    상기 후보 전사본에 대한 점수를 생성하는 것은, 상기 선택된 테스트 시퀀스에 대응하는 음향모델로부터의 데이터 및 상기 선택된 제2 테스트 시퀀스에 대응하는 상기 음향모델로부터의 데이터에 기초하여 상기 후보 전사본에 대한 점수를 생성하는 것을 포함하는, 시스템.
  66. 컴퓨터로 구현되는 방법으로서,
    음성 데이터와 상기 음성 데이터에 대한 후보 전사본을 식별하는 데이터를 수신하는 것과;
    상기 후보 전사본에 대한 음소 표기를 액세스하는 것과;
    상기 음소 표기로부터, 이 음소 표기 내의 특정 음소에 대한 다수의 테스트 시퀀스들을 추출하되, 이 다수의 테스트 시퀀스의 각각은 상기 음소 표기 내의 특정 음소 주변에 있는 상이한 문맥상 음소 집합을 포함하는 것과;
    상기 테스트 시퀀스 중 하나 이상에 대응하는 데이터가 음향모델에 포함됨을 나타내는 데이터를 수신하는 것과;
    상기 음향모델에 데이터가 포함된 하나 이상의 테스트 시퀀스들 중에서, 가장 많은 수의 문맥상 음소들을 포함하는 테스트 시퀀스를 선택하는 것과;
    상기 선택된 테스트 시퀀스에 대응하는 음향모델로부터의 데이터를 액세스하는 것과; 그리고
    상기 선택된 테스트 시퀀스에 대응하는 음향모델로부터 액세스된 데이터에 기초하여 후보 전사본에 대한 점수를 생성하는 것을 포함하는, 컴퓨터로 구현되는 방법.
  67. 제66항에 있어서,
    가장 많은 수의 문맥상 음소들을 포함하는 테스트 시퀀스를 선택하는 것은, 테스트 시퀀스들 중 미리 결정된 문맥상 음소의 최대 수보다 적은 수를 포함하는 것을 선택하는 것을 포함하고,
    상기 선택된 테스트 시퀀스에 대응되는 음향모델로부터 액세스된 데이터에 기초하여 상기 후보 전사본에 대한 점수를 생성하는 것은, 미리 결정된 문맥상 음소들의 최대 수보다 적은 수를 포함하는 상기 선택된 테스트 시퀀스에 기초하여 페널티를 결정하는 것과; 그리고 상기 페널티를 기초로 하여 후보 전사본에 대한 최초 점수를 조정하여 조정된 점수를 생성하는 것을 포함하되, 상기 조정된 점수는 최초 점수에 비해, 후보 전사본이 음성 데이터에 대한 정확한 전사가 될 수 있는 가능도가 더 낮음을 나타내는, 컴퓨터로 구현되는 방법.
  68. 제67항에 있어서, 상기 미리 결정된 문맥상 음소들의 최대 수보다 적은 수를 포함하는 상기 선택된 테스트 시퀀스에 기초하여 페널티를 결정하는 것은, 상기 선택된 테스트 시퀀스 내의 문맥상 음소의 수와 미리 결정된 최대 문맥상 음소 수 간의 차이에 기초하여 상기 페널티의 크기를 결정하는 것을 포함하는, 컴퓨터로 구현되는 방법.
  69. 제66항에 있어서, 상기 특정 음소에 대한 다수의 테스트 시퀀스들을 추출하는 것은, 상기 특정 음소의 전과 후에 있는 비대칭 수의 문맥상 음소를 포함하는 하나 이상의 비대칭 테스트 시퀀스를 추출하는 것을 포함하는, 컴퓨터로 구현되는 방법.
  70. 제69항에 있어서, 상기 특정 음소에 대한 다수의 테스트 시퀀스들을 추출하는 것은, 상기 특정 음소의 전과 후에 있는 대칭 수의 문맥상 음소들을 포함하는 하나 이상의 대칭 테스트 시퀀스들을 추출하는 것을 포함하되, 각 대칭 테스트 시퀀스들은 하나 이상의 비대칭 테스트 시퀀스보다 적은 문맥상 음소를 포함하는, 컴퓨터로 구현되는 방법.
  71. 제66항에 있어서, 상기 특정 음소에 대하여 다수의 테스트 시퀀스를 추출하는 것은, 적어도,
    상기 특정 음소의 앞에 있는 하나의 문맥상 음소와 상기 특정 음소의 뒤에 있는 하나의 문맥상 음소를 포함하는 제1시퀀스,
    상기 특정 음소의 앞에 있는 두 개의 문맥상 음소들과 상기 특정 음소의 뒤에 있는 두 개의 문맥상 음소들을 포함하는 제2시퀀스, 및
    상기 특정 음소의 앞에 있는 세 개의 문맥상 음소들과 상기 특정 음소의 뒤에 있는 세 개의 문맥상 음소들을 포함하는 제3시퀀스를 추출하는 것을 포함하는, 컴퓨터로 구현되는 방법.
  72. 제66항에 있어서, 상기 특정 음소에 대하여 다수의 테스트 시퀀스를 추출하는 것은, 적어도 5개의 테스트 시퀀스를 추출하는 것을 포함하되, 여기서 상기 적어도 5개의 테스트 시퀀스는 각각, 상기 특정 음소의 전과 후에 있는 1개, 2개, 3개, 4개, 또는 5개의 문맥상 위치 내에서 나타나는 임의의 문맥상 음소를 포함하는, 컴퓨터로 구현되는 방법.
  73. 제66항에 있어서, 다수의 테스트 시퀀스 중 하나 이상에 대응되는 데이터가 상기 음향모델에 포함되는 것을 나타내는 데이터를 수신하는 것은,
    상기 테스트 시퀀스의 각각에 대해, 테스트 시퀀스에 대응되는 음향모델로부터 데이터를 요청하는 것과;
    상기 음향모델 내에 데이터가 존재하는 하나 이상의 테스트 시퀀스의 각각에 대응하는 상기 음향모델로부터 데이터를 수신하는 것과; 그리고
    상기 하나 이상의 테스트 시퀀스에 대응되는 데이터를 수신한 것에 근거하여, 상기 음향모델에 의해 하나 이상의 테스트 시퀀스들이 인식되는지를 판단하는 것을 포함하는, 컴퓨터로 구현되는 방법.
  74. 제66항에 있어서, 상기 선택된 테스트 시퀀스에 대응하는 상기 음향모델로부터의 데이터를 액세스하는 것은,
    상기 다수의 테스트 시퀀스의 각각에서 나타나는 음소들의 시퀀스에 기초하여 파티션 설정키를 식별하는 것과;
    상기 파티션 설정키에 대응하는 배분된 관련 배열의 파티션을 식별하는 것과; 그리고
    상기 식별된 파티션으로부터, 상기 음향모델에 데이터가 포함된 다수의 테스트 시퀀스의 각각에 대응하는 데이터를 얻는 것을 포함하는, 컴퓨터로 구현되는 방법.
  75. 제66항에 있어서, 상기 선택된 테스트 시퀀스에 대응하는 음향모델로부터의 데이터를 액세스하는 것은, 선택된 테스트 시퀀스의 중앙 음소에 대응되는 가우시안 혼합 모델을 나타내는 데이터를 액세스하는 것을 포함하는, 컴퓨터로 구현되는 방법.
  76. 제66항에 있어서, 상기 전사본에 대한 음소 표기를 액세스하는 것은, 문맥 독립적 인 음소를 포함하는 음소 표기를 액세스하는 것을 포함하는, 컴퓨터로 구현되는 방법.
  77. 제66항에 있어서, 상기 음성 데이터를 수신하는 것은, 음성 특징들을 나타내는 특징 벡터를 수신하는 것을 포함하는, 컴퓨터로 구현되는 방법.
  78. 제66항에 있어서, 상기 선택된 테스트 시퀀스에 대응하는 음향모델로부터 액세스된 데이터에 기초하여 상기 후보 전사본에 대한 점수를 생성하는 것은, 상이한 음향모델을 이용하여 상기 후보 전사본에 할당된 점수를 조정하는 것을 포함하는, 컴퓨터로 구현되는 방법.
  79. 제66항에 있어서,
    상기 음소 표기로부터, 이 음소 표기 내에 있는, 상기 특정 음소와 다른 제2 음소에 대한 다수의 제2 테스트 시퀀스들을 추출하되, 이 다수의 제2 테스트 시퀀스의 각각은 제2음소 주변에 있는 상이한 문맥상 음소 세트를 포함하는 것과;
    하나 이상의 제2 테스트 시퀀스들 중 하나 이상에 대한 데이터가 음향모델에 포함됨을 나타내는 데이터를 수신하는 것과;
    상기 음향모델에 데이터가 포함된 하나 이상의 테스트 시퀀스들 중에서, 가장 많은 수의 문맥상 음소들을 포함하는 테스트 시퀀스를 선택하는 것을 추가로 포함하며,
    상기 후보 전사본에 대한 점수를 생성하는 것은, 선택된 테스트 시퀀스에 대응되는 상기 음향모델로부터의 데이터 및 선택된 제2 테스트 시퀀스에 대응되는 음향모델로부터의 데이터에 기초하여 후보 전사본에 대한 점수를 생성하는 것을 포함하는, 컴퓨터로 구현되는 방법.
  80. 하나 이상의 컴퓨터들의 실행시에 상기 하나 이상의 컴퓨터들이 연산을 수행하도록 하는 명령어들을 포함하는 컴퓨터 프로그램이 인코딩되어 있는 컴퓨터 저장매체에 있어서, 상기 연산은,
    음성 데이터와 상기 음성 데이터에 대한 후보 전사본을 식별하는 데이터를 수신하는 것과;
    상기 후보 전사본에 대한 음소 표기를 액세스하는 것과;
    상기 음소 표기로부터, 이 음소 표기 내의 특정 음소에 대한 다수의 테스트 시퀀스들을 추출하되, 상기 다수의 테스트 시퀀스의 각각은 상기 특정 음소 주변에 있는 상이한 문맥상 음소 세트를 포함하는 것과;
    상기 테스트 시퀀스 중 하나 이상에 대응되는 데이터가 음향모델에 포함됨을 나타내는 데이터를 수신하는 것과;
    상기 음향모델에 데이터가 포함된 하나 이상의 테스트 시퀀스들 중에서, 가장 많은 수의 문맥상 음소를 포함하는 테스트 시퀀스를 선택하는 것과;
    상기 선택된 테스트 시퀀스에 대응되는 음향모델로부터의 데이터를 액세스하는 것과; 그리고
    상기 선택된 테스트 시퀀스에 대응되는 음향모델로부터 액세스된 데이터에 기초하여 상기 후보 전사본에 대한 점수를 생성하는 것을 포함하는, 컴퓨터 저장매체.
  81. 제80항에 있어서,
    가장 많은 수의 문맥상 음소들을 포함하는 테스트 시퀀스를 선택하는 것은, 상기 테스트 시퀀스들 중 미리 결정된 문맥상 음소의 최대 수보다 적은 수를 포함하는 것을 선택하는 것을 포함하고,
    상기 선택된 테스트 시퀀스에 대응하는 상기 음향모델로부터 액세스된 데이터에 기초하여 후보 전사본에 대한 점수를 생성하는 것은, 미리 결정된 문맥상 음소의 최대 수보다 적은 수를 포함하는 선택된 테스트 시퀀스에 기초하여 페널티를 결정하는 것과; 그리고 상기 페널티를 기초로 하여 상기 후보 전사본에 대한 최초 점수를 조정하여 조정된 점수를 생성하는 것을 포함하되, 이 조정된 점수는 최초 점수에 비해, 상기 후보 전사본이 음성 데이터에 대한 정확한 전사가 될 수 있는 가능도가 더 낮음을 나타내는, 컴퓨터 저장매체.
  82. 제81항에 있어서, 미리 결정된 문맥상 음소의 최대 수보다 적은 수를 포함하는 선택된 테스트 시퀀스에 기초하여 페널티를 결정하는 것은, 상기 선택된 테스트 시퀀스 내의 문맥상 음소들의 수와 상기 미리 결정된 최대 문맥상 음소 수 간의 차이에 기초하여 상기 페널티의 크기를 결정하는 것을 포함하는, 컴퓨터 저장매체.
  83. 제80항에 있어서, 상기 특정 음소에 대한 다수의 테스트 시퀀스들을 추출하는 것은, 상기 특정 음소의 전과 후에 있는 비대칭 수의 문맥상 음소들을 포함하는 하나 이상의 비대칭 테스트 시퀀스를 추출하는 것을 포함하는, 컴퓨터 저장매체.
  84. 제83항에 있어서, 상기 특정 음소에 대한 다수의 테스트 시퀀스들을 추출하는 것은, 상기 특정 음소의 전과 후에 있는 대칭 수의 문맥상 음소들을 포함하는 하나 이상의 대칭 테스트 시퀀스를 추출하는 것을 포함하되, 각 대칭 테스트 시퀀스는 상기 하나 이상의 비대칭 테스트 시퀀스보다 적은 문맥상 음소들을 포함하는, 컴퓨터 저장매체.
  85. 제80항에 있어서, 상기 특정 음소에 대하여 다수의 테스트 시퀀스를 추출하는 것은, 적어도,
    상기 특정 음소의 앞에 있는 하나의 문맥상 음소와 상기 특정 음소의 뒤에 있는 하나의 문맥상 음소를 포함하는 제1시퀀스,
    상기 특정 음소의 앞에 있는 두 개의 문맥상 음소들과 상기 특정 음소의 뒤에 있는 두 개의 문맥상 음소들을 포함하는 제2시퀀스, 및
    상기 특정 음소의 앞에 있는 세 개의 문맥상 음소들과 상기 특정 음소의 뒤에 있는 세 개의 문맥상 음소들을 포함하는 제3시퀀스를 추출하는 것을 포함하는, 컴퓨터 저장매체.
  86. 제80항에 있어서, 상기 특정 음소에 대하여 다수의 테스트 시퀀스를 추출하는 것은, 적어도 5개의 테스트 시퀀스들을 추출하는 것을 포함하되, 여기서 상기 적어도 5개의 테스트 시퀀스는 각각, 상기 특정 음소의 전과 후에 있는 1개, 2개, 3개, 4개, 또는 5개의 문맥상 위치 내에서 나타나는 임의의 문맥상 음소들을 포함하는, 컴퓨터 저장매체.
  87. 제80항에 있어서, 상기 다수의 테스트 시퀀스 중 하나 이상에 대응되는 데이터가 상기 음향모델에 포함되는 것을 나타내는 데이터를 수신하는 것은,
    상기 테스트 시퀀스의 각각에 대해, 상기 테스트 시퀀스에 대응되는 음향모델로부터 데이터를 요청하는 것과;
    상기 음향모델 내에 데이터가 존재하는 상기 하나 이상의 테스트 시퀀스의 각각에 대응하는 음향모델로부터 데이터를 수신하는 것과; 그리고
    상기 하나 이상의 테스트 시퀀스들에 대응하는 데이터를 수신한 것에 근거하여, 상기 음향모델에 의해 하나 이상의 테스트 시퀀스들이 인식되는지를 판단하는 것을 포함하는, 컴퓨터 저장매체.
  88. 제80항에 있어서, 상기 선택된 테스트 시퀀스에 대응하는 음향모델로부터의 데이터를 액세스하는 것은,
    상기 다수의 테스트 시퀀스의 각각에서 나타나는 음소들의 시퀀스에 기초하여 파티션 설정키를 식별하는 것과;
    상기 파티션 설정키에 대응하는 배분된 관련 배열의 파티션을 식별하는 것과; 그리고
    상기 식별된 파티션으로부터, 음향모델에 데이터가 포함된 다수의 테스트 시퀀스의 각각에 대응하는 데이터를 얻는 것을 포함하는, 컴퓨터 저장매체.
  89. 제80항에 있어서, 선택된 테스트 시퀀스에 대응하는 음향모델로부터의 데이터를 액세스하는 것은, 선택된 테스트 시퀀스의 중앙 음소에 대응되는 가우시안 혼합 모델을 나타내는 데이터를 액세스하는 것을 포함하는, 컴퓨터 저장매체.
  90. 제80항에 있어서, 상기 전사본에 대한 음소 표기를 액세스하는 것은, 문맥 독립적 인 음소를 포함하는 음소 표기를 액세스하는 것을 포함하는, 컴퓨터 저장매체.
  91. 제80항에 있어서, 상기 음성 데이터를 수신하는 것은, 음성 특징들을 나타내는 특징 벡터들을 수신하는 것을 포함하는, 컴퓨터 저장매체.
  92. 제80항에 있어서, 상기 선택된 테스트 시퀀스에 대응하는 음향모델로부터 액세스된 데이터에 기초하여 상기 후보 전사본에 대한 점수를 생성하는 것은, 상이한 음향모델을 이용하여 상기 후보 전사본에 할당된 점수를 조정하는 것을 포함하는, 컴퓨터 저장매체.
  93. 제80항에 있어서,
    상기 하나 이상의 컴퓨터가 수행하는 연산은,
    상기 음소 표기로부터, 이 음소 표기 내에 있는, 상기 특정 음소와 다른 제2 음소에 대한 다수의 제2 테스트 시퀀스들을 추출하되, 상기 다수의 제2 테스트 시퀀스의 각각은 제2 음소 주변에 있는 상이한 문맥상 음소들의 세트를 포함하는 것과;
    하나 이상의 제2 테스트 시퀀스 중 하나 이상에 대한 데이터가 상기 음향모델에 포함됨을 나타내는 데이터를 수신하는 것과;
    상기 음향모델에 데이터가 포함된 하나 이상의 테스트 시퀀스 중에서, 가장 많은 수의 문맥상 음소를 포함하는 테스트 시퀀스를 선택하는 것을 추가로 포함하며,
    상기 후보 전사본에 대한 점수를 생성하는 것은, 상기 선택된 테스트 시퀀스에 대응하는 음향모델로부터의 데이터 및 상기 선택된 제2 테스트 시퀀스에 대응하는 음향모델로부터의 데이터에 기초하여 상기 후보 전사본에 대한 점수를 생성하는 것을 포함하는, 컴퓨터 저장매체.
KR1020147001000A 2011-06-30 2012-06-29 가변길이 문맥을 이용한 음성인식 KR101780760B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201161503334P 2011-06-30 2011-06-30
US61/503,334 2011-06-30
US201261608753P 2012-03-09 2012-03-09
US61/608,753 2012-03-09
PCT/US2012/045039 WO2013003772A2 (en) 2011-06-30 2012-06-29 Speech recognition using variable-length context

Publications (2)

Publication Number Publication Date
KR20140041735A true KR20140041735A (ko) 2014-04-04
KR101780760B1 KR101780760B1 (ko) 2017-10-10

Family

ID=46489493

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147001000A KR101780760B1 (ko) 2011-06-30 2012-06-29 가변길이 문맥을 이용한 음성인식

Country Status (5)

Country Link
US (2) US8494850B2 (ko)
EP (2) EP2851895A3 (ko)
KR (1) KR101780760B1 (ko)
CN (1) CN103650033B (ko)
WO (1) WO2013003772A2 (ko)

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9653070B2 (en) * 2012-12-31 2017-05-16 Intel Corporation Flexible architecture for acoustic signal processing engine
US8494853B1 (en) * 2013-01-04 2013-07-23 Google Inc. Methods and systems for providing speech recognition systems based on speech recordings logs
AU2013375318B2 (en) * 2013-01-22 2019-05-02 Interactive Intelligence, Inc. False alarm reduction in speech recognition systems using contextual information
US9646605B2 (en) * 2013-01-22 2017-05-09 Interactive Intelligence Group, Inc. False alarm reduction in speech recognition systems using contextual information
US9171542B2 (en) 2013-03-11 2015-10-27 Nuance Communications, Inc. Anaphora resolution using linguisitic cues, dialogue context, and general knowledge
US9761225B2 (en) 2013-03-11 2017-09-12 Nuance Communications, Inc. Semantic re-ranking of NLU results in conversational dialogue applications
US9361884B2 (en) * 2013-03-11 2016-06-07 Nuance Communications, Inc. Communicating context across different components of multi-modal dialog applications
US9269354B2 (en) * 2013-03-11 2016-02-23 Nuance Communications, Inc. Semantic re-ranking of NLU results in conversational dialogue applications
US9734820B2 (en) 2013-11-14 2017-08-15 Nuance Communications, Inc. System and method for translating real-time speech using segmentation based on conjunction locations
US9858919B2 (en) * 2013-11-27 2018-01-02 International Business Machines Corporation Speaker adaptation of neural network acoustic models using I-vectors
US9837070B2 (en) * 2013-12-09 2017-12-05 Google Inc. Verification of mappings between phoneme sequences and words
US8862467B1 (en) 2013-12-11 2014-10-14 Google Inc. Contextual speech recognition
US9858922B2 (en) 2014-06-23 2018-01-02 Google Inc. Caching speech recognition scores
PL3185979T3 (pl) * 2014-08-06 2019-06-28 Bp Corporation North America Inc. Integracja ciepła w procesach dysproporcjonowania lub transalkilowania
US9299347B1 (en) 2014-10-22 2016-03-29 Google Inc. Speech recognition using associative mapping
US10467220B2 (en) * 2015-02-19 2019-11-05 Medidata Solutions, Inc. System and method for generating an effective test data set for testing big data applications
US9984543B2 (en) 2015-02-20 2018-05-29 Tata Consultancy Services Limited Anomaly detection system and method
US20180005626A1 (en) * 2015-02-26 2018-01-04 Longsand Limited Obfuscating training data
CN106205601B (zh) * 2015-05-06 2019-09-03 科大讯飞股份有限公司 确定文本语音单元的方法及系统
US10503764B2 (en) * 2015-06-01 2019-12-10 Oath Inc. Location-awareness search assistance system and method
GB2544070B (en) * 2015-11-04 2021-12-29 The Chancellor Masters And Scholars Of The Univ Of Cambridge Speech processing system and method
WO2017086987A1 (en) * 2015-11-20 2017-05-26 Hewlett Packard Enterprise Development Lp In-memory data shuffling
US10744748B2 (en) * 2016-02-29 2020-08-18 The Industry & Academic Cooperation In Chungnam National University (Iac) Micro nanoporous membrane, preparing method thereof and microfluidic device using thereof
JP6495850B2 (ja) * 2016-03-14 2019-04-03 株式会社東芝 情報処理装置、情報処理方法、プログラムおよび認識システム
TWI610294B (zh) * 2016-12-13 2018-01-01 財團法人工業技術研究院 語音辨識系統及其方法、詞彙建立方法與電腦程式產品
KR102399535B1 (ko) 2017-03-23 2022-05-19 삼성전자주식회사 음성 인식을 위한 학습 방법 및 장치
US10446138B2 (en) 2017-05-23 2019-10-15 Verbit Software Ltd. System and method for assessing audio files for transcription services
CN108039168B (zh) * 2017-12-12 2020-09-11 科大讯飞股份有限公司 声学模型优化方法及装置
US10867609B2 (en) * 2018-05-18 2020-12-15 Sorenson Ip Holdings, Llc Transcription generation technique selection
US11437025B2 (en) * 2018-10-04 2022-09-06 Google Llc Cross-lingual speech recognition
CN111354340B (zh) * 2018-12-20 2023-04-07 北京嘀嘀无限科技发展有限公司 数据标注准确度验证方法、装置、电子设备及存储介质
US11011156B2 (en) * 2019-04-11 2021-05-18 International Business Machines Corporation Training data modification for training model
US10762890B1 (en) 2019-08-19 2020-09-01 Voicify, LLC Development of voice and other interaction applications
US11508365B2 (en) 2019-08-19 2022-11-22 Voicify, LLC Development of voice and other interaction applications
US10614800B1 (en) * 2019-08-19 2020-04-07 Voicify, LLC Development of voice and other interaction applications
US11217245B2 (en) * 2019-08-29 2022-01-04 Sony Interactive Entertainment Inc. Customizable keyword spotting system with keyword adaptation
US11488581B1 (en) * 2019-12-06 2022-11-01 Amazon Technologies, Inc. System and method of providing recovery for automatic speech recognition errors for named entities
US11657799B2 (en) * 2020-04-03 2023-05-23 Microsoft Technology Licensing, Llc Pre-training with alignments for recurrent neural network transducer based end-to-end speech recognition
CN115376491B (zh) * 2022-07-06 2023-08-18 北京数美时代科技有限公司 一种语音置信度计算方法、系统、电子设备及介质

Family Cites Families (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4819271A (en) 1985-05-29 1989-04-04 International Business Machines Corporation Constructing Markov model word baseforms from multiple utterances by concatenating model sequences for word segments
US4759068A (en) * 1985-05-29 1988-07-19 International Business Machines Corporation Constructing Markov models of words from multiple utterances
US4817156A (en) * 1987-08-10 1989-03-28 International Business Machines Corporation Rapidly training a speech recognizer to a subsequent speaker given training data of a reference speaker
US5033087A (en) * 1989-03-14 1991-07-16 International Business Machines Corp. Method and apparatus for the automatic determination of phonological rules as for a continuous speech recognition system
US5268990A (en) * 1991-01-31 1993-12-07 Sri International Method for recognizing speech using linguistically-motivated hidden Markov models
JPH0772840B2 (ja) * 1992-09-29 1995-08-02 日本アイ・ビー・エム株式会社 音声モデルの構成方法、音声認識方法、音声認識装置及び音声モデルの訓練方法
GB9223066D0 (en) 1992-11-04 1992-12-16 Secr Defence Children's speech training aid
US5625749A (en) * 1994-08-22 1997-04-29 Massachusetts Institute Of Technology Segment-based apparatus and method for speech recognition by analyzing multiple speech unit frames and modeling both temporal and spatial correlation
US5729656A (en) * 1994-11-30 1998-03-17 International Business Machines Corporation Reduction of search space in speech recognition using phone boundaries and phone ranking
US6038533A (en) * 1995-07-07 2000-03-14 Lucent Technologies Inc. System and method for selecting training text
JP2871561B2 (ja) * 1995-11-30 1999-03-17 株式会社エイ・ティ・アール音声翻訳通信研究所 不特定話者モデル生成装置及び音声認識装置
US5937384A (en) * 1996-05-01 1999-08-10 Microsoft Corporation Method and system for speech recognition using continuous density hidden Markov models
US5758024A (en) * 1996-06-25 1998-05-26 Microsoft Corporation Method and system for encoding pronunciation prefix trees
US6151575A (en) * 1996-10-28 2000-11-21 Dragon Systems, Inc. Rapid adaptation of speech models
CN1099662C (zh) * 1997-09-05 2003-01-22 中国科学院声学研究所 汉语普通话大词汇连续语音识别方法
US6108627A (en) * 1997-10-31 2000-08-22 Nortel Networks Corporation Automatic transcription tool
US5953701A (en) 1998-01-22 1999-09-14 International Business Machines Corporation Speech recognition models combining gender-dependent and gender-independent phone states and using phonetic-context-dependence
US6141641A (en) * 1998-04-15 2000-10-31 Microsoft Corporation Dynamically configurable acoustic model for speech recognition system
KR100509797B1 (ko) * 1998-04-29 2005-08-23 마쯔시다덴기산교 가부시키가이샤 결정 트리에 의한 스펠형 문자의 복합 발음 발생과 스코어를위한 장치 및 방법
US6243680B1 (en) * 1998-06-15 2001-06-05 Nortel Networks Limited Method and apparatus for obtaining a transcription of phrases through text and spoken utterances
CA2748396A1 (en) 1999-10-19 2001-04-26 Sony Electronics Inc. Natural language interface control system
US7310600B1 (en) * 1999-10-28 2007-12-18 Canon Kabushiki Kaisha Language recognition using a similarity measure
US7085720B1 (en) * 1999-11-05 2006-08-01 At & T Corp. Method for task classification using morphemes
US6681206B1 (en) * 1999-11-05 2004-01-20 At&T Corporation Method for generating morphemes
DE10040063A1 (de) 2000-08-16 2002-02-28 Philips Corp Intellectual Pty Verfahren zur Zuordnung von Phonemen
DE60111329T2 (de) * 2000-11-14 2006-03-16 International Business Machines Corp. Anpassung des phonetischen Kontextes zur Verbesserung der Spracherkennung
US20020087317A1 (en) 2000-12-29 2002-07-04 Lee Victor Wai Leung Computer-implemented dynamic pronunciation method and system
US7113903B1 (en) * 2001-01-30 2006-09-26 At&T Corp. Method and apparatus for providing stochastic finite-state machine translation
US7035789B2 (en) 2001-09-04 2006-04-25 Sony Corporation Supervised automatic text generation based on word classes for language modeling
US6985861B2 (en) 2001-12-12 2006-01-10 Hewlett-Packard Development Company, L.P. Systems and methods for combining subword recognition and whole word recognition of a spoken input
JP3696231B2 (ja) * 2002-10-08 2005-09-14 松下電器産業株式会社 言語モデル生成蓄積装置、音声認識装置、言語モデル生成方法および音声認識方法
US7467087B1 (en) * 2002-10-10 2008-12-16 Gillick Laurence S Training and using pronunciation guessers in speech recognition
US7149688B2 (en) * 2002-11-04 2006-12-12 Speechworks International, Inc. Multi-lingual speech recognition with cross-language context modeling
KR100486735B1 (ko) * 2003-02-28 2005-05-03 삼성전자주식회사 최적구획 분류신경망 구성방법과 최적구획 분류신경망을이용한 자동 레이블링방법 및 장치
US7650331B1 (en) 2004-06-18 2010-01-19 Google Inc. System and method for efficient large-scale data processing
JP4301102B2 (ja) * 2004-07-22 2009-07-22 ソニー株式会社 音声処理装置および音声処理方法、プログラム、並びに記録媒体
US20060031069A1 (en) 2004-08-03 2006-02-09 Sony Corporation System and method for performing a grapheme-to-phoneme conversion
US7584098B2 (en) * 2004-11-29 2009-09-01 Microsoft Corporation Vocabulary-independent search of spontaneous speech
US8296123B2 (en) 2006-02-17 2012-10-23 Google Inc. Encoding and adaptive, scalable accessing of distributed models
WO2008066166A1 (fr) 2006-11-30 2008-06-05 National Institute Of Advanced Industrial Science And Technology Système de site web pour recherche de données vocales
CN101622660A (zh) 2007-02-28 2010-01-06 日本电气株式会社 语音识别装置、语音识别方法及语音识别程序
US7831587B2 (en) 2007-05-10 2010-11-09 Xerox Corporation Event hierarchies and memory organization for structured data retrieval
US8620662B2 (en) * 2007-11-20 2013-12-31 Apple Inc. Context-aware unit selection

Also Published As

Publication number Publication date
EP2727103B1 (en) 2014-12-31
WO2013003772A2 (en) 2013-01-03
CN103650033A (zh) 2014-03-19
US20130006623A1 (en) 2013-01-03
CN103650033B (zh) 2016-10-26
US8494850B2 (en) 2013-07-23
WO2013003772A3 (en) 2013-02-28
EP2851895A2 (en) 2015-03-25
US20130006612A1 (en) 2013-01-03
US8959014B2 (en) 2015-02-17
EP2727103A2 (en) 2014-05-07
EP2851895A3 (en) 2015-05-06
KR101780760B1 (ko) 2017-10-10

Similar Documents

Publication Publication Date Title
KR101780760B1 (ko) 가변길이 문맥을 이용한 음성인식
US20230317062A1 (en) Deep learning internal state index-based search and classification
US9336771B2 (en) Speech recognition using non-parametric models
US10210862B1 (en) Lattice decoding and result confirmation using recurrent neural networks
WO2020226767A1 (en) Online verification of custom wake word
US10381000B1 (en) Compressed finite state transducers for automatic speech recognition
US20140350934A1 (en) Systems and Methods for Voice Identification
EP4018437B1 (en) Optimizing a keyword spotting system
CN107967916A (zh) 确定语音关系
US10872601B1 (en) Natural language processing
WO2022148176A1 (en) Method, device, and computer program product for english pronunciation assessment
Moyal et al. Phonetic search methods for large speech databases
JP2020187282A (ja) 情報処理装置、情報処理方法、およびプログラム
US8639510B1 (en) Acoustic scoring unit implemented on a single FPGA or ASIC
KR20220090586A (ko) 오디오-비주얼 매칭을 사용한 자동 음성 인식 가설 재점수화
JP2015152661A (ja) 重み付き有限状態オートマトン作成装置、記号列変換装置、音声認識装置、それらの方法、及びプログラム
JP6078435B2 (ja) 記号列変換方法、音声認識方法、それらの装置及びプログラム
JP5860439B2 (ja) 言語モデル作成装置とその方法、そのプログラムと記録媒体
Sajjan et al. Kannada speech recognition using decision tree based clustering
Kokkinidis et al. Finding the optimum training solution for Byzantine music recognition—A Max/Msp approach
JP6073952B2 (ja) 学習データ生成装置、方法及びプログラム
CN114783413A (zh) 重打分语言模型训练和语音识别方法、装置、系统及设备
Sim Probabilistic state clustering using conditional random field for context-dependent acoustic modelling.

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right