KR20220122742A - 데이터 입력들을 위한 음성 인식 및 훈련 - Google Patents

데이터 입력들을 위한 음성 인식 및 훈련 Download PDF

Info

Publication number
KR20220122742A
KR20220122742A KR1020227026549A KR20227026549A KR20220122742A KR 20220122742 A KR20220122742 A KR 20220122742A KR 1020227026549 A KR1020227026549 A KR 1020227026549A KR 20227026549 A KR20227026549 A KR 20227026549A KR 20220122742 A KR20220122742 A KR 20220122742A
Authority
KR
South Korea
Prior art keywords
language model
data input
variants
generating
speech
Prior art date
Application number
KR1020227026549A
Other languages
English (en)
Inventor
마르코 노엘
앤드류 프리드
빅터 포바
셰인 마이클 킬몬
Original Assignee
인터내셔널 비지네스 머신즈 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 인터내셔널 비지네스 머신즈 코포레이션 filed Critical 인터내셔널 비지네스 머신즈 코포레이션
Publication of KR20220122742A publication Critical patent/KR20220122742A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • G06F40/289Phrasal analysis, e.g. finite state techniques or chunking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models
    • G06N5/046Forward inferencing; Production systems
    • 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/04Segmentation; Word boundary detection
    • 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/18Speech classification or search using natural language modelling
    • G10L15/183Speech classification or search using natural language modelling using context dependencies, e.g. language models
    • G10L15/19Grammatical context, e.g. disambiguation of the recognition hypotheses based on word sequence rules
    • G10L15/197Probabilistic grammars, e.g. word n-grams
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/26Speech to text systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Artificial Intelligence (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Software Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Machine Translation (AREA)
  • Electrically Operated Instructional Devices (AREA)

Abstract

데이터 입력을 위한 음성 인식 및 훈련(SPEECH RECOGNITION AND TRAINING FOR DATA INPUTS)
영숫자 음성 데이터 입력들을 인식하고, 인식하는 것을 훈련하기 위한 방법, 시스템, 및 컴퓨터 프로그램 제품이 제공된다. 상기 방법은 사전 결정된 규칙에 기초하여 데이터 입력을 순차적인 n-그램 청크들로 분할하는 단계를 포함할 수 있고, 상기 데이터 입력은 음성 인식을 통해서 수신된다. 상기 방법은 또한 상기 데이터 입력의 특성들(characteristics)에 관한 메타데이터를 수신하는 단계를 포함할 수 있다. 상기 방법은 또한 상기 메타데이터에 기초하여 언어 모델을 생성하는 단계를 포함할 수 있다. 상기 방법은 또한 상기 데이터 입력의 언어 모델 변형들의 제1 세트를 생성하는 단계를 포함할 수 있다. 상기 방법은 또한 적어도 언어 모델 변형들의 상기 제1 세트에 기초하여 상기 언어 모델을 훈련하는 단계를 포함할 수 있다. 상기 방법은 또한 상기 훈련된 언어 모델을 사용하여 상기 데이터 입력에 대한 하나 또는 그 이상의 대안들을 생성하는 단계를 포함할 수 있다. 상기 방법은 또한 상기 데이터 입력에 대한 상기 하나 또는 그 이상의 대안들을 포함하는 출력을 전송하는 단계를 포함할 수 있다.

Description

데이터 입력들을 위한 음성 인식 및 훈련
[0001] 본 발명은 음성의 문자로의 변환 기술(speech to text technology)에 관한 것이며, 보다 구체적으로는, 음성의 문자로의 변환 시스템(speech to text system)에서 영숫자(alphanumeric) 음성 데이터 입력들을 인식하도록 상기 시스템을 훈련시키는 것에 관한 것이다.
[0002] 기술이 발달함에 따라, 음성의 문자로의 변환 기술(speech to text capabilities)이 점점 더 많이 이용되고 있다. 예를 들어, 사용자가 업무 지원 센터(help desk), 서비스, 등에 전화를 걸 때, 사용자는 종종 계좌번호, 사회 보장 번호, 생년월일, 비밀번호, 등을 알려줘야 한다. 사용자는 음성으로 상기 요구된 데이터를 입력할 수 있다(예를 들어, 전화기를 통해 목소리로 상기 데이터를 입력). 음성 인식 기술(Speech recognition technology)은 음성을 통해 입력된 내용을 결정하고 이 입력을 컴퓨터 시스템이 인식하고 프로세스할 수 있는 문자(text)로, 변환하거나, 또는 번역하는 데 사용될 수 있다.
[0003] 음성 인식 기술은 다양한 서로 다른 사용 케이스들에서 사용될 수 있다. 이들 사용 케이스들은 다수의 유형들의 발화들(utterances)을 처리하고(handle) 인식하기 위해 음성 인식을 요구할 수 있다. 예를 들어, 종래의 음성 인식 사용 케이스는 의도들 및 주체들(intents and entities)을 식별하기 위해 (사용자로부터) 일반적인 발화들을 사용하는 것을 포함한다. 종래의 음성 인식 기본 모델은 공통 단어들과 문장들을 인식하고 그것들을 문자로 변환시키는 데 사용될 수 있다. 예를 들어, "나의 이름은 존 도우(John Doe)이다"라는 일반적인 발화는, 종래의 음성 인식 모델에 의해서 인식되고 문자로 변환될 수 있다.
[0004] 그러나, 종래의 음성 인식 기술은 더욱 복잡한 발화들에 어려움을 겪을 수 있다. 예를 들어, 음성 인식 기술이 ID들, 날짜들, 또는 기타 영숫자 데이터 입력들과 같은 데이터 입력들을 인식하는 것은 어려울 수 있으며, 종래의 음성 인식 기술은 영숫자 입력들을 인식하는 데 매우 정확하지 않을 수 있다. 영숫자 데이터 입력은 문자들/단어들 및 숫자들을 모두 포함하는 데이터 입력일 수 있다. 예를 들어, " my date of birth is January 8, 1974(나의 생년월일은 1974년, 1월 8일이다)"라는 영숫자 발화는 발화 내의 단어들과 숫자들의 조합으로 인해, 종래의 음성 인식 기술을 사용하여 인식하기 어려울 수 있다. 종래의 음성 인식은 "8(eight: 에잇)"을 "h(에이치)"로부터 구별하지 못하고; "f(에프)"를 "s(에스)"로부터 구별하지 못하며; "d(디)"를 "t(티)"로부터 구별하지 못하고; "m(엠)"을 "n(엔)"으로부터 구별하지 못하며; "4(four: 포)"를 단어 "for(포)"로부터 구별하지 못하고; "to(투)"를 "too(투우)"로부터 숫자 "2(two: 투)"로부터 구별할 수 없을 수 있다. 그러므로, 위의 예에 대해 계속하면, 종래의 음성 인식은 위의 음성 입력을 " my date of birth is January H 1970 For(나의 생년월일은 1970 For년 1월 H일이다)"과 같은 문자로 번역할 수 있으나, 이는 정확하지 않다.
[0005] 그러므로, 종래 기술에서 전술한 문제를 해결할 필요가 있다.
[0006] 제 1의 실시 예에 따라, 본 발명은 컴퓨터-구현 방법을 제공하고, 상기 방법은: 사전 결정된 규칙에 기초하여 데이터 입력을 순차적인 n-그램 청크들(sequential n-gram chunks)로 분할하는 단계(segmenting)-상기 데이터 입력은 음성 인식을 통해서 수신됨-; 상기 데이터 입력의 특성들(characteristics)에 관한 메타데이터를 수신하는 단계; 상기 메타데이터에 기초하여 언어 모델을 생성하는 단계(generating); 상기 데이터 입력의 언어 모델 변형들의 제1 세트(a first set of language model variations)를 생성하는 단계; 적어도 언어 모델 변형들의 상기 제1 세트에 기초하여 상기 언어 모델을 훈련하는 단계; 상기 훈련된 언어 모델을 사용하여 상기 데이터 입력에 대한 하나 또는 그 이상의 대안들(one or more alternatives)을 생성하는 단계; 상기 데이터 입력에 대한 상기 하나 또는 그 이상의 대안들을 포함하는 출력을 전송하는 단계(transmitting)를 포함한다.
[0007] 추가적인 실시 예에서, 본 발명은 하나 또는 그 이상의 컴퓨터 프로세서들을 갖는 시스템을 제공하고, 상기 시스템은 방법을 수행하도록 구성되며, 상기 방법은: 사전 결정된 규칙에 기초하여 데이터 입력을 순차적인 n-그램 청크들(sequential n-gram chunks)로 분할하는 단계(segmenting)-상기 데이터 입력은 음성의 문자로 변환된 전사(a speech to text transcription)임-; 상기 데이터 입력의 특성들(characteristics)에 관한 메타데이터를 수신하는 단계; 상기 메타데이터에 기초하여 언어 모델을 생성하는 단계(generating); 상기 데이터 입력의 언어 모델 변형들의 제1 세트(a first set of language model variations)를 생성하는 단계; 적어도 언어 모델 변형들의 상기 제1 세트에 기초하여 상기 언어 모델을 훈련하는 단계; 상기 훈련된 언어 모델을 사용하여 상기 데이터 입력에 대한 하나 또는 그 이상의 대안들(one or more alternatives)을 생성하는 단계; 상기 데이터 입력에 대한 상기 하나 또는 그 이상의 대안들을 포함하는 출력을 전송하는 단계(transmitting)를 포함한다.
[0008] 추가적인 실시 예에서, 본 발명은 음성의 문자로의 변환 시스템에서 영숫자 음성 데이터 입력들(alphanumeric speech data inputs)을 인식하기 위한 컴퓨터 프로그램 제품을 제공하고, 상기 컴퓨터 프로그램 제품은: 처리회로에 의해 판독 가능한 컴퓨터 판독 가능한 스토리지 매체를 포함하고, 상기 컴퓨터 판독 가능한 스토리지 매체는 본 발명의 단계들을 수행하기 위한 방법을 수행하기 위해 상기 처리 회로에 의해 실행하기 위한 명령들을 저장한다.
[0009] 추가적인 실시 예에서 본 발명은 컴퓨터 프로그램을 제공하고, 상기 컴퓨터 프로그램은 컴퓨터 판독 가능한 매체 상에 저장되고 디지털 컴퓨터의 내부 메모리에 로드할 수 있으며, 상기 프로그램이 컴퓨터 상에서 실행될 때, 본 발명의 단계들을 수행하기 위한 소프트웨어 코드의 부분들을 포함한다.
[00010] 추가적인 실시 예에서, 본 발명은 컴퓨터 프로그램 제품을 제공하고, 상기 컴퓨터 프로그램 제품은 구현된 프로그램 명령들을 갖는 컴퓨터 판독 가능한 스토리지 매체를 포함하고, 상기 프로그램 명령들은 서버에 의해 실행 가능하고 상기 서버가 방법을 수행하도록 하며, 상기 방법은: 사전 결정된 규칙에 기초하여 데이터 입력을 순차적인 n-그램 청크들(sequential n-gram chunks)로 분할하는 단계(segmenting)-상기 데이터 입력은 음성의 문자로 변환된 전사(a speech to text transcription)임-; 상기 데이터 입력의 특성들(characteristics)에 관한 메타데이터를 수신하는 단계; 상기 메타데이터에 기초하여 언어 모델을 생성하는 단계(generating); 상기 데이터 입력의 언어 모델 변형들의 제1 세트(a first set of language model variations)를 생성하는 단계; 적어도 언어 모델 변형들의 상기 제1 세트에 기초하여 상기 언어 모델을 훈련하는 단계; 상기 훈련된 언어 모델을 사용하여 상기 데이터 입력에 대한 하나 또는 그 이상의 대안들(one or more alternatives)을 생성하는 단계; 상기 데이터 입력에 대한 상기 하나 또는 그 이상의 대안들을 포함하는 출력을 전송하는 단계(transmitting)를 포함한다.
[00011] 본 발명은 영숫자 음성 데이터 입력을 인식하고 훈련하기 위한 컴퓨터 구현 방법, 시스템 및 컴퓨터 프로-그램 제품을 제공한다. 상기 방법은 사전 결정된 규칙에 기초하여 데이터 입력을 순차적인 n-그램 청크들로 분할하는 단계를 포함할 수 있고, 상기 데이터 입력은 음성 인식을 통해서 수신된다. 상기 방법은 또한 상기 데이터 입력의 특성들(characteristics)에 관한 메타데이터를 수신하는 단계를 포함할 수 있다. 상기 방법은 또한 상기 메타데이터에 기초하여 언어 모델을 생성하는 단계를 포함할 수 있다. 상기 방법은 또한 상기 데이터 입력의 언어 모델 변형들의 제1 세트를 생성하는 단계를 포함할 수 있다. 상기 방법은 또한 적어도 언어 모델 변형들의 상기 제1 세트에 기초하여 상기 언어 모델을 훈련하는 단계를 포함할 수 있다. 상기 방법은 또한 상기 훈련된 언어 모델을 사용하여 상기 데이터 입력에 대한 하나 또는 그 이상의 대안들을 생성하는 단계를 포함할 수 있다. 상기 방법은 또한 상기 데이터 입력에 대한 상기 하나 또는 그 이상의 대안들을 포함하는 출력을 전송하는 단계를 포함할 수 있다.
[00012] 상기 시스템 및 컴퓨터 프로-그램 제품은 유사한 단계들을 포함할 수 있다.
[00013] 상기 요약은 도시된 각각의 실시 예 또는 본 발명의 모든 구현을 설명하기 위한 것이 아니다.
[00014] 본 출원에 포함된 도면들은 본 명세서에 통합되고, 그 일부를 형성한다. 도면들은 본 발명의 실시 예들을 예시하고, 상세 설명과 함께, 본 발명의 원리들을 설명하기 위해 제공된다. 도면들은 특정 실시 예들을 예시하는 것일 뿐이며 본 발명을 한정하는 것이 아니다.
[00015] 도 1은, 일부 실시 예들에 따라, 영숫자 음성 데이터 입력들을 인식하기 위해 음성 인식 기술을 훈련하고 이 기술을 이용하는 한 세트의 동작들의 플로차트를 도시한다.
[00016] 도 2는, 일부 실시 예들에 따라, 한 세트의 언어 모델 변형들을 생성하기 위한 한 세트의 동작들의 플로차트를 도시한다.
[00017] 도 3은, 일부 실시 예들에 따라, 예시적 음성 인식 환경의 계통도를 도시한다.
[0018] 도 4는, 일부 실시 예들에 따라, 4-그램 청크들을 이용하는 예시적 음성의 문자로의 변환 환경의 계통도를 도시한다.
[0019] 도 5는, 일부 실시 예들에 따라, 5-그램 청크들을 이용하는 예시적 음성의 문자로의 변환 환경의 계통도를 도시한다.
[0020] 도 6은, 일부 실시 예들에 따라, 샘플 컴퓨터 시스템의 블록도를 도시한다.
[0021] 본 발명은 다양한 수정들 및 대안적인 형태들이 만들어질 수 있으며, 이에 관한 구체적인 내용은 도면들에서 예로서 도시되었고 상세하게 기술될 것이다. 그러나, 상기 의도는 본 발명을 기술된 특정한 실시 예들로 한정려는 것이 아님을 이해해야 한다. 그와는 반대로, 상기 의도는 본 발명의 범위에 속하는 모든 수정들, 등가물들 및 대안들을 커버하도록 하는 것이다.
[0022] 본 발명의 실시 예들은 음성의 문자로의 변환 기술과 관련이 있으며, 보다 구체적으로, 음성의 문자로의 변환 시스템에서 영숫자 음성 데이터 입력들(alphanumeric speech data inputs)을 인식하도록 시스템을 훈련시키는 것과 관련이 있다. 본 발명은 그러한 애플리케이션들에만 반드시 한정될 필요는 없으며, 본 발명의 다양한 실시 예들이 이 맥락을 사용하는 다양한 예들의 논의를 통해서 이해될 수 있다.
[0023] 본 발명은 영숫자 음성 데이터 입력들을 인식하고, 및 훈련하기 위한, 컴퓨터-구현 방법, 시스템, 및 컴퓨터 프로-그램 제품을 제공한다. 데이터 입력이 상기 음성 인식 시스템에 의해서 수신된 후(예를 들어, 사용자의 음성을 통해), 일부 예들에서, 상기 데이터는 청크들(chunks)(즉, n-그램 청크들)로 분할되고(segmented), 상기 분할된 청크들을 통해 처리될 수 있다. 다양한 규칙들과 특성들(입력, 일반적인 음성 규칙들 및 변형들, 등에 대한 특정 규칙들을 포함한다)이 사용되고, 상기 규칙들과 특성들에 기초하여 언어 모델(및, 일부 예들에서는, 음향 모델)이 생성될 수 있다. 이 모델, 또는 모델들을 향상시키기 위해서, 이 모델, 또는 모델들은 다양한 데이터 입력들과 함께 다양한 규칙들 및 특성들을 사용하여 훈련될 수 있다. 데이터를 청크들로 분할하고, 다양한 규칙들과 특성들을 사용하여 언어 모델을 생성하여 훈련하면, 영숫자 데이터 입력들에 대한 음성 인식 기술의 정확도를 향상시킬 수 있다.
[0024] 이제 도 1을 참조하면, 음성 인식 기술을 훈련하고 이 기술을 이용하여 영숫자 음성 데이터 입력들을 인식하는 방법(100)을 예시하는 플로차트가, 일부 실시 예들에 따라, 도시된다. 일부 실시 예들에서, 방법(100)은 음성 인식 시스템(예: 음성 인식 시스템(330)(도 3), 음성 인식 시스템(430)(도 4), 및/또는 음성 인식 시스템(530)(도 5)) 상에서, 또는 상기 시스템에 접속된, 서버(예: 컴퓨터 시스템/서버(602)(도 6))에 의해서 실행된다. 일부 실시 예들에서, 방법(100)은 컴퓨터 시스템(예: 컴퓨터 시스템(600)(도 6))에서 실행되거나 접속될 컴퓨터 스크립트 또는 컴퓨터 프로그램(예: 컴퓨터 실행가능 코드)으로 구현된다. 일부 실시 예들에서, 음성 인식 시스템은 상기 컴퓨터 시스템에 연결되거나 접속된다.
[0025] 방법(100)은 데이터 입력을 수신하는 동작(operation)(110)을 포함한다. 데이터 입력은 음성의 문자로의 변환 데이터 입력(a speech to text data input)일 수 있다. 일부 실시 예들에서, 데이터 입력을 수신하는 단계는 음성 데이터 입력을 수신하고 음성을 문자로 변환시키는 단계를(converting the speech to text) 포함한다. 일부 실시 예들에서, 음성은 동작(110)에서 시스템에 의해 수신되기 전에 문자로 이미 변환된다. 음성에서 문자로의 변환(conversion from speech to text)은 종래의 방법들을 사용하여 수행될 수 있다.
[0026] 예를 들어, 클라이언트(예를 들어, 회사)는 사용자 음성을 문자로 번역하기 위해 종래의 음성 인식 기술을 사용할 수 있다. 그러나, 이 종래의 음성 인식 기술은 음성을 문자로 정확하게 번역하지 못할 수 있다. 그러므로, 클라이언트는 문자 데이터 입력(클라이언트에 의해서 문자로 이미 변환된)을 방법(100)을 수행하는 시스템으로 전송하여 문자 데이터 입력을 정정하고 클라이언트가 향후 번역들에서 사용할 수 있는 문자로 음성을 번역하기 위한 향상된 모델을 생성할 수 있다. 예를 들어, 사용자는 클라이언트 시스템(예를 들어, 음성 인식 기술을 이용하는 보험 회사, 의료 회사, 또는 기타 회사)에 정보를 목소리로 입력할 수 있으며, 클라이언트 시스템은 음성을 문자로 변환시킨 다음, 데이터 입력의 문자를 시스템에 전송할 수 있다.
[0027] 일부 예들에서, 제3자 클라이언트는 없으며, 방법(100)을 수행하는 시스템은 사용자로부터 직접 음성을 수신하는 시스템이다. 이들 경우들에서, 상기 시스템은 동작(110)에서 종래의 방법들을 사용하여 음성을 초기에(originally) 문자로 번역할 수 있다. 예를 들어, 사용자는 시스템에 정보(예를 들어, 전화기를 통해)를 목소리로 입력할 수 있으며, 상기 시스템은 음성/목소리 입력(the speech/vocal input)을 문자로 변환시킬 수 있다.
[0028] 방법(100)은 사전 결정된 규칙에 기초하여 데이터 입력을 순차적인 n-그램 청크들로 분할하는 동작(115)을 포함한다. 일단 데이터 입력이 문자로 변환되면(동작(110)에서 논의되었음), 상기 데이터 입력은 n-그램 청크들로 분할될 수 있으며, 이 때 n은 상기 데이터 입력(동작(110)에서 수신되고 문자로 변환된)의 길이에 비례한다(relative). n-그램은 n개의 문자들, 숫자들, 단어들, 또는 이들 3가지의 모든 조합일 수 있다. 일부 실시 예들에서, n-그램 청크들은 4-그램 청크들 또는 5-그램 청크들 중 하나가 될 수 있으므로, 데이터를 순차적인 n-그램 청크들로 분할하는 단계는 데이터를 순차적인 4-그램 청크들 또는 5-그램 청크들로 분할하는 단계를 포함할 수 있다. 일부 실시 예들에서, 데이터 입력을 4-그램(또는 5-그램) 청크들로 분할하는 단계는 데이터 입력을 순차적인 4-캐릭터(또는 5-캐릭터) 청크들로 분할하는 단계를 포함한다. 일부 실시 예들에서, 데이터 입력을 4-그램(또는 5-그램) 청크들로 분할하는 단계는 데이터 입력을 순차적인 4-단어(또는 5-단어) 청크들로 분할하는 단계를 포함한다. 데이터 입력을 n-그램 청크들로 분할하는 단계의 예들은 아래에서 논의된다.
[0029] 일부 실시 예들에서, 사전 결정된 규칙은 자리들(positions)이 9개 또는 그 이하인 데이터 입력들(예: 문자들, 단어들, 등)의 경우, n-그램 청크들은 4-그램 청크들이고, 자리들이 10개 또는 그 이상인 데이터 입력들의 경우, n-그램 청크들은 5-그램 청크들이라는 규칙을 포함한다. 일부 실시 예들에서, 자리들은 캐릭터들(characters)(예: 문자들(letters) 또는 숫자들)일 수 있다. 예를 들어, "12345ABCD"를 포함하는 데이터 입력은 9개의 자리들을 가지며 따라서 4-그램 청크들로 분할된다. 예시적 데이터 입력을 4-그램 청크들로 분할하는 단계는 입력을 청크들 "1234", "2345", "345A", "45AB", "5ABC", 및 "ABCD"로 분할하는 단계를 포함할 수 있다. 이러한 방식으로(This way), 데이터 입력은 모든 캐릭터들이 완전히 분할될 때까지, 제 1의 캐릭터(the first character)로 시작하는 순차적인 4-캐릭터 청크들로 분할된다.
[0030] 또 다른 예에서, 입력에 단어들과 숫자들이 모두 포함된 경우, 데이터 입력은 " my birthday is January 1, 1985"를 포함한다. 이 예에서, 다양한 자리들은 my-birthday-is-January-1,-1985를 포함할 수 있고, 여기서 공백들(spaces)은 데이터 입력의 자리들 사이에서 분리를 표시한다. 이 예에는, 자리들이 6개이므로, 데이터 입력은 4-그램 청크들로 분할된다. 이 예시적 데이터 입력을 4-그램 청크들로 분할하는 단계는 입력을 청크들 “my birthday is January” “birthday is January 1,” “is January 1, 1985.”로 분할하는 단계를 포함할 수 있다.
[0031] 또 다른 예에서, "ABCDE98765"를 포함하는 데이터 입력은 10개의 자리들(즉, 캐릭터들)을 가지므로 5-그램 청크들로 분할된다. 이들 5-그램 청크들은 "ABCDE", "BCDE9", "CDE98", "DE987", "E9876", 및 "98765"의 분할된 청크들을 포함할 수 있다. 더 긴 입력들에 대해 5-그램 청크들로 확장하면 데이터 입력의 문맥의 범위(the contextual coverage)를 향상시킬 수 있으며, 특히 더 긴 자리(또는 캐릭터) 데이터 입력들에 대해서 그러하다. 5-그램 청크들은 데이터 입력의 5개의 자리들이 각 청크에서 함께 있기 때문에, 데이터 입력의 더욱 완전한 범위를 제공할 수 있다. 4-그램 청크들은 각 청크에서 포함된 데이터 입력의 4개의 자리들을 가질 수 있다. 그렇지만, 더 작은 데이터 입력들의 경우, 데이터 입력의 문맥의 범위는, 입력을 (4-그램이 아닌) 5-그램 청크들로 분할하면, 최소한으로 향상되거나, 전혀 향상되지 않을 수 있다. 그러므로, 더 작은 입력들(예: 9개의 자리들 또는 그 이하)은 4-그램 청크들로 분해함으로써 자원들(예: 대역폭, 등)이 절약될 수 있다.
[0032] 4-그램 청크들로 분할된 예시적 데이터 입력이 여기서 더 논의되고 도 4에서 도시된다. 5-그램 청크들로 분할된 동일한 예시적 데이터 입력이 여기서 더 논의되고 도 5에서 도시된다.
[0033] 방법(100)은 데이터 입력의 특성들에 관한 메타데이터를 수신하기 위한 동작(120)을 포함한다. 일부 실시 예들에서, 데이터 입력의 특성들에 관한 메타데이터는 데이터 입력의 특정 요건들을 포함할 수 있다. 예를 들어, 만일 데이터 입력이 사회 보장 번호이면, 데이터 입력이 9개의 자리들(예: 9개의 캐릭터들)을 가지며 각 자리가 숫자라는 것이 특정 요건들일 수 있다. 또 다른 예에서, 만일 데이터 입력이 생일이면, 데이터 입력이 월, 일, 및 연도를 포함하는 것이 특정 요건들일 수 있다.
[0034] 또 다른 예에서, 데이터 입력은 메디케어 수혜자 입력(a Medicare Beneficiary Input: MBI)일 수 있다. MBI는 MBI 번호의 특정 규칙세트, 또는 특정 특성들을, 가질 수 있다. 이러한 특정 특성들은 데이터 입력의 특성들에 관한 메타데이터일 수 있다. MBI의 예에서, 데이터 입력은 11개의 자리들 또는 11개의 캐릭터들을 포함해야 하는 특정 요건이 있을 수 있다. 이들 11개의 캐릭터들은 C/A/AN/N/A/AN/N/A/A/N/N의 특정 형식 내에 있어야 한다. 모든 C 자리의 캐릭터는 1부터 9까지의 숫자여야 한다는 특정 요건들이 있을 수 있다. 모든 N 자리의 캐릭터는 0부터 9까지의 숫자여야 한다는 또 다른 특정 요건이 있을 수 있다. A 자리의 캐릭터는 A부터 Z까지의 알파벳이어야 하지만, S, L, O, I, B, 및 Z는 제외해야 한다는 또 다른 특정 요건이 있을 수 있다. 마지막으로, AN 자리의 모든 캐릭터는 A 또는 N 중 하나여야 한다는 또 다른 요건이 있을 수 있다. MBI의 이러한 모든 예시적 특정 요건들은 시스템에 의해서 수신되는 데이터 입력의 특성들에 관한 메타데이터일 수 있다.
[0035] 일부 실시 예들에서, 데이터 입력의 특성들에 관한 메타데이터는 클라이언트에 의해서 결정된다. 클라이언트(예를 들어, 보험 회사, 의료 회사, 또는 음성 인식 기술을 활용하는 기타 회사)는 그들의 데이터 입력들(의료 ID들, 보험 ID들, 등과 같은)에 대한 특정 규칙들을 가질 수 있으며, 이들 규칙들 또는 특성들을 방법(100)을 수행하는 시스템에서 전송할 수 있다. 일부 실시 예들에서, 방법(100)을 수행하는 시스템도 또한 클라이언트이므로, 특성들이 사전 결정되어 시스템에 입력될 수 있다.
[0036] 방법(100)은 메타데이터에 기초하여 언어 모델을 생성하기 위한 동작(125)을 포함한다. 언어 모델은, 일부 실시 예들에서, 음성 입력을 문자로 번역하기 위한 모델일 수 있다. 여기서 논의된 바와 같이, 수신된 데이터 입력(동작(110))은 종래의 방법들을 사용하여 문자로 번역되었을 수 있다, 그러나, 이들 종래의 방법들은 특히 영숫자 데이터 입력의 경우, 그것들의 번역들에 있어서 매우 정확하지는 않을 수 있다. 그러므로, 상기 언어 모델은 음성을 문자로 더욱 정확하게 번역하기 위해서 생성될 수 있다(그리고 동작(145)에서 논의된 바와 같이, 훈련될 수 있다). 이 언어 모델은, 특히 일단 이것이 훈련되었을 때, 향후 음성 인식 상황들에서 음성을 문자로 번역하는 데 사용될 수 있다. 추가적으로, 상기 언어 모델은 동작(110)에서 수신된 데이터 입력의 번역을 정정하는 데 사용될 수 있다.
[0037] 일부 실시 예들에서, 상기 언어 모델은 머신 러닝 모델이다. 일부 예들에서, 상기 언어 모델은 정규 표현식(정규식)(regular expression (regex)) 알고리즘일 수 있다. 정규식 알고리즘은 표현식에서의 각 캐릭터를 의미(a meaning)와 매치시킬 수 있다. 예를 들어, MBI의 위의 예를 사용하여, 정규식 알고리즘은 각 캐릭터를 캐릭터에 대응하는 특성(들)(예를 들어, C, A, N, 또는 AN의 자리에 관련된)로 매치시킬 수 있다. 일부 예들에서, 상기 언어 모델은 규칙들 매치 알고리즘(a rules match algorithm)일 수 있다. 상기 규칙들 매치 알고리즘은 많은 규칙들 또는 패턴들을 많은 캐릭터들에, 효율적으로 적용하거나, 매치시킬 수 있다. 예를 들어, 위의 MBI 예를 다시 사용하여, 상기 규칙들 매치 알고리즘은 캐릭터가 숫자여야 하는 규칙을 자리들 C 및 N에 매치시킬 수 있다. 상기 규칙들 매치 알고리즘은 또한 캐릭터가 문자여야 한다는 규칙을 자리들 A 및 AN에 대해 매치할 수 있다. 상기 규칙들 매치 알고리즘은 일부 예들에서, 모든 규칙들이 매치될 때까지 자리들에 대한 규칙을 매치하는 단계를 계속할 수 있다. 일부 실시 예들에서, 상기 언어 모델은 음성의 문자로의 변환 문법 모델(a speech to text grammar model)이다.
[0038] 일부 실시 예들에서, 상기 언어 모델을 생성하는 단계(generating)는 메타데이터(데이터 입력의 특성들에 관한)와 데이터 입력 사이의 관계를 도시하는 언어 모델을 생성하는 단계(creating)를 포함한다. 예를 들어, 만일 데이터 입력이 4-자리(4-digit) PIN 번호이면, 데이터 입력의 특성들은 PIN 번호의 각 캐릭터(또는 자리)가 숫자/자리(number/digit)라는 것이 포함될 수 있다. 상기 언어 모델은 PIN 번호와 메타데이터(캐릭터가 숫자/자리임을 나타냄) 사이의 관계를 보여줄 수 있다. 또 다른 예에서, 만일 데이터 입력이 MBI이면, 상기 언어 모델은 제 1의 캐릭터와 메타데이터-제 1의 캐릭터는 1과 9 사이의 숫자여야 함을 표시함-사이의 관계를 보여줄 수 있다. 상기 언어 모델은 또한 제 2의 문자와 메타데이터-제 2의 문자는 A와 Z 사이의 문자여야 함을 표시함(그리고 MBI의 서로의 캐릭터에 대해서도) -사이의 관계를 보여줄 수 있다. 일부 실시 예들에서, 상기 언어 모델은 메타데이터와 데이터 입력의 분할된 n-그램들 사이의 관계를 보여줄 수 있다. 상기 언어 모델을 생성하는 단계는 데이터 입력의 각 컴포넌트와 메타데이터 사이의 관계를 매핑하는 단계를 포함할 수 있다.
[0039] 방법(100)은 데이터 입력의 언어 모델 변형들의 제1 세트(a first set of language model variations)를 생성하기 위한 동작(130)을 포함한다. 상기 언어 모델 변형들의 제1 세트는 특성들에 관한 메타데이터의 기준들을 충족할 수 있는 캐릭터들 및/또는 자리들의 가능한 변형들일 수 있다. 예를 들어, 상기 언어 모델 변형들의 제1 세트는 상기 언어 모델을 여전히 따르는 캐릭터들/자리들의 가능한 변형일 수 있다. 예를 들어, 데이터 입력이 PIN 번호(예: 4-자리 숫자 코드) "1123"인 경우, PIN 번호의 각 자리는 0과 9 사이의 숫자일 수 있다. 네 자리들 각각에 대해 10개의 가능한 숫자들(0부터9까지)이 있기 때문에, 상기 언어 모델 변형들의 제1 세트에서 만 개(104)의 변형들(ten thousand (104) variations)이 있을 수 있다. 4-자리 숫자 코드의 모든 가능한 변형들이 상기 세트에서 열거될 때까지, 상기 만 개의 변형들의 세트는 "1111", "1112", "1113", "1234", "2211", 등을 포함할 수 있다. 일부 실시 예들에서, 상기 모델 변형들의 제1 세트를 생성하는 단계는 적어도 메타데이터와 사전 결정된 규칙에 기초한다.
[0040] 상기 데이터 입력의 언어 모델 변형들의 제1 세트를 생성하는 단계는 여기서 더 논의되고 도 2에서 도시된다.
[0041] 일부 실시 예들에서, 방법(100)은 언어 모델 변형들의 제2 세트를 생성하기 위한 동작(135)을 더 포함한다. 일부 예들에서, 상기 언어 모델 변형들의 제2 세트를 생성하는 데 공통 사용자 메타데이터가 사용된다. 공통 사용자 메타데이터는 공통 음성 패턴들, 구절들, 단어들, 용어들, 등일 수 있다. 상기 언어 모델 변형들의 제2 세트는 공통 음성 패턴들에 기초하여 데이터 입력의 가능한 변형들을 포함할 수 있다. 이전의 예를 계속하면, 데이터 입력은 4-자리 PIN 번호 "1123"일 수 있다. 상기 언어 모델 변형들의 제1 세트는, 위에서 논의된 바와 같이, 만 개의 변형들의 세트를 포함할 수 있다. 상기 언어 모델 변형들의 제2 세트를 결정하기 위해, 공통 음성 패턴들이 사용될 수 있다. 1123에 구체적인, 공통 음성 패턴들은, "11"을 "열하나"로 표기하는 것(stating); "11"을 "하나, 하나"로 표기하는 것; "23"을 "스물-셋"으로 표기하는 것; "23"을 "둘, 셋"으로 표기하는 것; "12"를 "열둘"로 표기하는 것, 등을 포함할 수 있다. 그러므로, 이 예에서, 상기 언어 모델 변형들의 제2 세트는 적어도 "하나, 하나, 둘, 셋"; "열하나, 둘, 셋"; "열하나, 스물셋"; "하나, 하나, 스물셋"; "하나, 열둘, 셋"; 등을 포함한다. 일부 실시 예들에서, 공통 사용자 메타데이터는 머신 러닝을 사용하여 수집 및 학습될 수 있다.
[0042] 일부 실시 예들에서, 방법(100)은 상기 언어 모델 변형들의 제 1의 및 제2 세트들의 서브세트를 위해 추가된 문자(prepended text)와 첨부된 문자(appended text)를 생성하기 위한 동작(140)을 더 포함한다. 추가된 문자는 데이터 입력 전에 입력될 수 있다. 예를 들어, 위의 PIN 번호 예를 사용하면, 사용자는 (음성을 통해) " my PIN number is 1123."라고 말할 수 있다. " my PIN number is"라는 문자(text)가 추가된 문자(prepended text)일 수 있다. 첨부된 문자는 데이터 입력 후에 입력된 문자일 수 있다. 예를 들어, 동일 PIN 번호 예에서, 사용자는 "1123 is my PIN number."라고 말할 수 있다. "is my PIN number"라는 문자가 첨부된 문자(appended text)일 수 있다. 추가된 및 첨부된 문자는 과거(historical) 문자 데이터 입력들(예를 들어, 종래의 방법들을 사용하여 입수됐다)을 사용하여 생성될 수 있다. 일부 예들에서, 추가된 및 첨부된 문자는 공통 음성 패턴들에 관한 음성 데이터를 사용하여 생성된다.
[0043] 추가된 및 첨부된 문자를 생성하는 단계(Creating prepended and appended text)는 상기 언어 모델 변형들의 제1 세트와 상기 언어 모델 변형들의 제2 세트의 서브세트에 기초하여, 데이터 입력에서 사용될 수 있는, 샘플의 추가된 및 첨부된 문자를 생성하는 단계(creating sample prepended and appended text)를 포함할 수 있다. 예를 들어, 만일 데이터 입력이 4-자리 PIN 번호이면, 상기 언어 모델 변형들의 제1 세트는 PIN 번호의 만 개의 가능한 변형들을 포함할 수 있다. 샘플의 추가된 문자(“my PIN number is…”와 같은)와 샘플의 첨부된 문자(“… is my PIN number”와 같은)는 상기 언어 모델 변형들의 제1 세트에서의 만 개의 변형들 각각에 대해 생성될 필요가 없다. 만일 만 개의 변형들 각각에 대해 생성된다면, 추가된 문자와 첨부된 문자는 매우 반복적이 될 수 있다. 그러므로, 추가된 및 첨부된 문자는 예를 들어, 천 개의 무작위로 선택된 변형들(만 개의 변형들로부터)의 서브세트에 대해서 생성될 수 있다. 하나의 변형은 “this is my PIN number…,” 와 같은 추가된 문자를 가질 수 있고, 다른 변형은 “ready? Ok, it is…,”와 같은 추가된 문자를 가질 수 있으며, 또 다른 변형은 단순히 “it is.” 와 같은 추가된 문자를 가질 수 있다. 상기 언어 모델 변형들의 서브세트는 오직 추가된 및 첨부된 문자를 생성하는 단계의 효율성을 높이기 위해서 사용될 수 있다.
[0044] 일부 실시 예들에서, 추가된 문자와 첨부된 문자를 생성하는 단계는 공통 사용자 메타데이터를 분석하는 단계를 포함한다. 여기서 논의된 바와 같이, 공통 사용자 메타데이터는 사용자들에 의해서 사용되는 공통 음성 패턴들(common speech patterns), 구절들, 단어들, 용어들, 등일 수 있다. 공통 사용자 메타데이터를 분석하는 단계는 데이터 입력과 함께 어떤 구절들(예를 들어, 숫자, 또는 영숫자, 데이터 입력을 추가된 및/또는 첨부된)이 사용될 수 있는 지를 표시할 수 있다.
[0045] 일부 실시 예들에서, 추가된 문자와 첨부된 문자를 생성하는 단계는 음성이 입력될 때 사용되는 공통의 추가된 구절들과 첨부된 구절들을, 상기 분석에 기초하여, 결정하는 단계를 포함한다. 일부 실시 예들에서, 시스템은 과거 입력 데이터(historical input data)에 액세스할 수 있다. 과거 입력 데이터는 사용자들에 의해서 제출된(예: 음성을 통해) 입력들에 관한 과거(past) 데이터를 포함할 수 있다. 과거 입력 데이터는, 데이터 입력에 추가하고 및/또는 첨가하는 공통 구절들을 결정하기 위해, 공통 사용자 메타데이터와 함께 사용될 수 있다.
[0046] 일부 실시 예들에서, 추가된 문자와 첨부된 문자를 생성하는 단계는 상기 언어 모델 변형들의 제1 세트와 제2 세트의 서브세트에 대한 복수의 템플릿 문장들(a plurality of template sentences)을 생성하는 단계를 포함한다. 일부 실시 예들에서, 상기 언어 모델 변형들의 제1 세트의 무작위 서브세트와 상기 언어 모델 변형들의 제2 세트의 무작위 서브세트가 선택될 수 있다. 각 언어 모델 변형(상기 서브세트로부터)에 대해, 템플릿 문장(추가된 문자 및/또는 첨부된 문자와 함께)이 생성될 수 있다. 예를 들어, 상기 언어 모델 변형들의 제1 세트(예: PIN 번호 1111)의 서브세트인 언어 모델 변형의 경우, 템플릿 문장은 “eleven-eleven is my PIN.”이 될 수 있다.
[0047] 방법(100)은 적어도 상기 언어 모델 변형들의 제1 세트에 기초하여 상기 언어 모델을 훈련시키는 동작(145)을 포함한다. 초기에(originally) 생성된 언어 모델(동작(125)에서 생성된)은, 데이터 입력에 대한 일반적인 규칙들, 요건들, 특성들, 등(동작(120)에서 수신된 메타데이터로 표시된 바와 같은)과 함께, 데이터 입력 자체에 기초하여 생성될 수 있다. 초기에 생성된 언어 모델은 데이터 입력에 대해 모든 가능한 특정 변형들을 고려하지 않을 수 있다. 예를 들어, 데이터 입력(말할 때)은“one hundred seventy five” 일 수 있고, 상기 데이터 입력에 대한 특성은 상기 데이터 입력이 5-자리 PIN 번호라는 것을 포함할 수 있다. 상기 음성에서 문자로의 초기 번역(예를 들어, 종래의 방법들을 사용하여 수행된)은 상기 음성을 "175"로 번역할 수 있다. 상기 초기에 생성된 언어 모델은 상기 데이터 입력을 "00175"로 정정할 수 있는데, 이는 다섯 개의 자리들이 요구되기 때문이다(메타데이터에 기초하여). 그러나, 이 예에서, 사용자는 상기 데이터 입력이 "10075"라는 것을 전달하려 했을 수 있다. 이 예에서, 5-자리 PIN 번호에 대한 모든 가능한 변형들은 상기 언어 모델 변형들의 제1 세트일 수 있다. 이들 변형들에 기초하여 상기 언어 모델을 훈련시키는 단계는, 상기 모델에게 5-자리 핀의 가능한 각 변형을 학습시키는 단계를 포함할 수 있다. 이러한 방식으로, 상기 훈련된 언어 모델은 상기 음성 입력에 대한 가능한 대체 번역이 "10075"임을 식별할 수 있다(동작(145)에서 상기 훈련된 모델을 사용하여, 동작(150)에서 식별함). 이 대안은 상기 초기의 학습 모델을 사용하여서는 식별되지 않았을 수 있고, 그러므로, 이 예에서, 상기 훈련된 모델이 더욱 정확할 수 있다. 데이터 입력에 대한 가능한 변형들을 포함하는, 상기 언어 변형들의 제1 세트는, 음성 데이터 입력을 정확하게 식별하고 번역하도록 상기 모델을 훈련하는 데 도움을 줄 수 있는데, 이는 상기 언어 모델이 데이터 입력에 대한, 모든 가능한 변형들, 또는 적어도 많은 양의 가능한 변형들을 학습할 수 있기 때문이다.
[0048] 일부 실시 예들에서, 방법(100)이 동작들(135 및 140)을 포함할 때, 상기 언어 모델을 훈련시키는 단계는 상기 언어 모델 변형들의 제2 세트와 상기 추가된 문자 및 상기 첨부된 문자에 더 기초할 수 있다. 상기 언어 변형들의 제2 세트는 공통 음성 패턴들에 기초한 데이터 입력의 변형들을 포함할 수 있고, 상기 추가된/첨부된 문자는 필수(requisite) 데이터 입력에 더하여 가능한 문자/음성을 포함할 수 있다. 상기 언어 모델 변형들의 제1 세트, 상기 언어 모델 변형들의 제2 세트, 및 상기 추가된/첨부된 문자를 사용하여 상기 언어 모델을 훈련하는 단계는 상기 언어 모델이, 데이터가 입력될 때 발생할 수 있는, 가능한 변형들과 음성 습관들(speech habits)을 학습할 수 있게 해주고, 따라서 음성 입력을 문자로 더욱 정확하게 번역할 수 있게 해 준다.
[0049] 일부 실시 예들에서, 음향 모델(an acoustic model)도 또한 언어 변형들의 제1 세트, 언어 변형들의 제2 세트, 추가된 및 첨부된 문자, 및 데이터 입력을 사용하여 생성되고 훈련될 수 있다. 음향 모델은 언어 단위들(linguistic units)(음소(phonemes)와 같은)과 오디오 입력 사이의 관계를 보여줄 수 있다. 일부 실시 예들에서, 음향 모델은 데이터 입력의 음성 녹음(the vocal recording) 및 문자 전사(text transcript)에 기초하여 생성될 수 있다. 그 다음, 상기 모델은 언어 변형들의 제1 세트, 언어 변형들의 제2 세트, 추가된 및 첨부된 문자, 및 데이터 입력을 사용하여 훈련될 수 있다. 일부 예들에서, 음향 모델은 또한 언어 모델을 사용하여 훈련된다(동작(125)에서 생성된다).
[0050] 방법(100)은 훈련된 언어 모델을 사용하여 데이터 입력에 대한 하나 또는 그 이상의 대안들을 생성하는 동작(150)을 포함한다. 일부 실시 예들에서, 동작(150)은 또한 훈련된 음향 모델을 사용한다. 일부 실시 예들에서, 데이터 입력에 대한 하나 또는 그 이상의 대안들은 구체적인 음성 입력의 하나 또는 그 이상의 가능한 (다른)번역들을 포함한다. 예를 들어, 사용자는 “my date of birth is January 8, 1974” 라고 말할 수 있다(예를 들어, 전화기로). 초기 데이터 입력은 상기 음성을 “my date of birth is January H 1970 for.” 라는 문자로 번역했을 수 있다. 초기 데이터 입력은 "8"을 "H"로, 그리고 "4"를 단어 "for”로 잘못 입력했을 수 있다. 훈련된 학습 모델을 사용하면, “January A, 1974;” “January 8, 1970, for;” 및 “January 8, 1974” 과 같은 대안들이 생성될 수 있다. 일부 예들에서, 언어 모델은 계속적으로 학습되고 훈련됨으로, 상기 모델은 데이터 입력을 적절하게 식별하고/번역하는 데 있어서 점점 더 정확해질 수 있다. 일부 예들에서, 대안 “January 8, 1974” 만 생성될 수도 있다(예를 들어, 모델이 잘 훈련되었을 때).
[0051] 방법(100)은 데이터 입력을 위한 하나 또는 그 이상의 대안들을 포함한 출력을 전송하는 동작(155)을 포함한다. 일부 실시 예들에서, 출력은 클라이언트로도 전송될 수 있다. 클라이언트는 사용자와 음성 인식 시스템(예를 들어, 도 3에서 도시된 바와 같이) 사이의 중개자(an intermediate)일 수 있다. 일부 실시 예들에서, 클라이언트는 방법(100)을 수행하는 시스템의 일부이다, 그래서 상기 출력은, 예를 들어, 다양한 사용자들로부터 음성 입력을 직접 수신할 수 있는, 상기 시스템의 서로 다른 컴포넌트로 전송될 수도 있다.
[0052] 도 2를 참조하면, 일부 실시 예들에 따라, 언어 모델 변형들의 세트를 생성하는 방법(200)을 예시하는 플로차트가 도시된다. 일부 실시 예들에서, 방법(200)은 동작(130)(도 1)에 대응할 수 있다.
[0053] 방법(200)은 데이터 입력에 대한 다수의 가능한 변형들을 결정하는 동작(210)을 포함한다. 일부 실시 예들에서, 다수의 가능한 변형들을 결정하는 단계는 데이터 입력에 필요한, 자리들(positions)의, 또는 캐릭터들의, 총 수(예를 들어, 데이터 입력의 특성들에 관한 메타데이터에 의해서 표시되는 바와 같은)에 기초한다. 예를 들어, PIN 번호를 표시하는 데이터 입력은 요구된 네 개의 자리들이 있을 수 있다(PIN은 4-자리 PIN 번호일 수 있으므로). PIN 번호는 숫자들로만 구성될 수 있으며, 그래서 각 자리는 0부터 9(즉, 열 개의 가능한 숫자들) 사이의 디지트(digit)를 가질 수 있다. 그러므로, 이 예에서, 가능한 변형들의 총 수는 104, 또는 만 개의 변형들일 수 있다.
[0054] 위에서의 11 자리의 MBI 예를 사용하면, 각 MBI 자리는 서로 다른 규칙들을 가질 수 있다. 예를 들어, 제 1의 자리(1부터 9까지의 숫자들)는 아홉 개의 가능한 숫자들을 가질 수 있고, 제 2의 자리는 스무 개의 가능한 문자들을 가질 수 있으며, 제 3의 자리는 두 개의 가능한 문자들을 가질 수 있고, 제 4의 자리는 열 개의 가능한 숫자들을 가질 수 있으며, 제 5의 자리는 스무 개의 가능한 문자들을 가질 수 있고, 제 6의 자리는 두 개의 가능한 문자들을 가질 수 있으며, 제 7의 자리는 열 개의 가능한 숫자들을 가질 수 있고, 제 8의 자리는 스무 개의 가능한 문자들을 가질 수 있으며, 제 9의 자리는 스무 개의 가능한 문자들을 가질 수 있고, 제 10의 자리는 열 개의 가능한 숫자들을 가질 수 있다(위에서 논의된, 상기 특정 MBI 규칙들에 기초하여). 이는 대략 80조 개의 가능한 변형들을 생성할 수 있다.
[0055] 방법(200)은 변형들의 양이 작은 수의(small number) 변형들인지를 결정하는 동작(220)을 포함한다. 일부 실시 예들에서, 적은 수의 변형들은 클라이언트에 의해서 사전 결정된 임계 값에 기초한다. "작은" 수의 변형들로 간주될 것인지는 사용 경우에 따라 달라질 수 있다. 예를 들어, 일부 사용의 경우들에서, 작은 수의 변형들은 백만 변형들 보다 적은 수의 변형들일 수 있다. 다른 사용의 경우들에서, 작은 수의 변형들은 5백만 변형들 보다 적은 수의 변형들일 수 있다.
[0056] 일부 실시 예들에서, 가능한 변형들의 수가 작은 수의 변형들인지를 결정하는 단계는 가능한 변형들의 수를 변형들의 임계 수와 비교하는 단계를 포함한다. 만일 가능한 변형들의 수가 변형들의 임계 수보다 크다면, 변형들의 수는 큰(즉, 작지 않은) 수의 변형들일 수 있다(a large (i.e., not small) number of variations).
[0057] 만일 가능한 변형들의 수가 작은 수의 변형들이라고 결정되면, 방법(200)은 모든 가능한 언어 모델 변형들을 생성하기 위한 동작(230)으로 진행할 수 있다. 예를 들어, 이전의 PIN 번호 예를 계속하면, 만 개의 가능한 PIN 번호 변형들은 백만 개의 변형들보다 적기 때문에, 만 개의 가능한 PIN 번호 변형들은 작은 수의 변형들일 수 있다. 그러므로, 만 개의 가능한 PIN 번호 변형들이 모두 생성될 수 있다. 이들은 "1111"; "1122"; "2222"; "2233"; "3333"; "3344"; "4444"; "4455"; "5555"; "5566"; "6666"; "7777"; "8888"; "9999"; 등과 같은 변형들을 포함할 수 있다.
[0058] 만일 가능한 변형들의 수가 크거나, 작지 않은 수의 변형들이라고 결정되면, 방법(200)은 n-그램 청크들에 기초하여 데이터 입력에 대해서 감소된 변형들의 수를 생성하기 위한 동작(235)으로 진행할 수 있다. 예를 들어, 여기서 논의된 바와 같이, MBI의 데이터 입력은 80조 개의 가능한 변형들을 가질 수 있고, 이는 큰 수(즉, 작지 않은 수)의 변형들이라고 결정될 수 있다. 그러므로, 80조 개의 변형들의 모든 가능한 변형들은 생성되지 않을 수 있다. 대신, 변형들은 n-그램 청크들에 기초하여 생성될 수 있다. 예를 들어, 데이터 입력은 4-그램 청크들로 분할되었을 수 있다. MBI 데이터 입력은 영숫자일 수 있으며(즉, 문자들과 숫자들을 모두 포함할 수 있다), 그래서 36개의 가능한 캐릭터들 (26개의 문자들(A-Z) 및 10개의 숫자들(0-9))이 있을 수 있다. 4-그램 청크들로 분할된 영숫자 데이터 입력의 감소된 변형들의 수는 364개, 또는 약 170만 개의 변형들일 수 있다. 5-그램 청크들로 분할된 데이터 입력의 경우, 영숫자 데이터 입력의 감소된 변형들의 수는 365개, 또는 약 6천만 개의 변형들일 수 있다.
[0059] 일부 실시 예들에서, 모든 가능한 언어 모델 변형들이 생성될 때(예를 들어, 동작(230)에서), 어떤 언어 모델 변형들이 대체 단어들을 갖는 숫자(들)를 포함하는지가 결정된다(동작(240)에서 대체 단어들이 생성된 후에). 대체 단어들을 갖는 숫자(들)를 포함하는 각 언어 모델 변형에 대해, 추가적인 변형이 상기 숫자를 대체하는(replacing) 대체 단어로 생성될 수 있다. 예를 들어, (숫자)0을 포함하는 각 변형에 대해, 추가적인 변형이 "0(숫자)"을 "오(oh)"로, 또는 문자 "O"으로 대체하여 생성될 수 있다.
[0060] 일부 실시 예들에서, 감소된 변형들의 수가 생성될 때(예를 들어, 동작(235)에서), 어떤 언어 모델 변형들(감소된 변형들의 수로부터)이 대체 단어들을 갖는 숫자(들)를 포함하는지가 결정된다(동작(240)에서 대체 단어들이 생성된 후). 대체 단어들을 갖는 숫자(들)를 포함하는 각 언어 모델 변형에 대해, 추가적인 변형이 숫자를 대체하는 대체 단어와 함께 생성될 수 있다.
[0061] 방법(200)은 숫자를 나타낼 수 있는 대체 단어들 또는 문자를 생성하는 동작(240)을 포함한다. 예를 들어, " oh"라는 단어는 숫자 0을 나타내기 위해 사용될 수 있다. 공통 디지트 패턴들(Common digit patterns)은 과거 데이터(historical data)에 기초하여 결정될 수 있다. 공통 디지트 패턴들은 숫자들 및/또는 디지트들에 대한 공통 대체 발음들일 수 있다. 예를 들어, 디지트 0은 "oh" 또는 "zero"로 발음될 수 있다. 숫자 100은 " a hundred ", " one hundred ", 등으로 발음될 수 있다. 대체 단어들을 생성하는 단계는 공통 대체 발음들을 갖는 추가적인 언어 모델 변형들을 생성하는 단계를 포함할 수 있다.
[0062] 도 3을 참조하면, 일부 실시 예들에 따라, 예시적 음성 인식 환경(an example speech recognition environment)(300)의 계통도가 도시된다. 음성 인식 환경은 사용자(305), 전화기(310), 클라이언트(320), 및 음성 인식 시스템(330)을 포함할 수 있다. 일부 실시 예들에서, 음성 인식 시스템(330)은 컴퓨터 시스템(600)(도 6)을 포함한다. 음성 인식 시스템(330)은 일부 실시 예들에서, 도 1의 방법(100)(및 도 2의 방법(200))을 수행할 수 있다. 음성 인식 시스템(330)은 음성의 문자로의 변환 모듈(speech to text module)(332), 분할 모듈(segmenting module)(334), 및 머신 러닝 모듈(336)을 포함한다.
[0063] 일부 실시 예들에서, 사용자(305)는 전화기(310)에 대고 말한다. 음성(speech)은 전화기(310)에서 클라이언트(320)에게로 전달될 수 있다. 클라이언트(320)는 음성 입력을 음성의 문자로의 변환 모듈(332)로 전달할 수 있다. 일부 실시 예들에서, 음성의 문자로의 변환 모듈(332)은 음성 입력을 수신하고(예를 들어, 도 1의 동작(110)) 음성 입력을 문자(text)로 번역할 수 있다. 문자 입력은 그 다음에 분할 모듈(334)로 전달될 수 있으며, 분할 모듈은 예를 들어, 도 1의 동작들(115 및 120)을 수행할 수 있다. 분할된 데이터 입력(동작(115)(도 1)으로부터)은 머신 러닝 모듈(336)로 전달될 수 있고 머신 러닝 모듈(336)은, 예를 들어, 방법(100)(도 1)의 동작들(125-155)을 수행할 수 있다. 일부 실시 예들에서, 머신 러닝 모듈(336)은 출력을 클라이언트(320) 에게로 다시 전송할 수 있다. 일부 예들에서, 머신 러닝 모듈은 또한 업데이트된(예를 들어, 훈련된) 학습 모델을 음성의 문자로의 변환 모듈(332)로 전송하기도 한다.
[0064] 일부 실시 예들에서, 클라이언트는 음성 인식 시스템(330)의 소유자일 수 있다. 그러므로, 클라이언트(320)는, 일부 실시 예들에서, 음성 인식 환경(300)에 포함되지 않을 수 있다. 이들 예들에서, 음성 입력 (전화기(310)로부터의)은 음성의 문자로의 변환 모듈(332)로 직접 갈 수 있다.
[0065] 도 4를 참조하면, 일부 실시 예들에 따라, 4-그램 청크들을 이용하는 예시적 음성의 문자로의 변환 환경(400)의 계통도가 도시된다. 음성의 문자로의 변환 환경(400)은 전화기(410)에 대고 음성 입력(407)(이 경우에, MBI)을 진술하는(states) 사용자(405)를 포함할 수 있다. 일부 실시 예들에서, 사용자(405)와 전화기(410)는 도 3의 사용자(305)와 전화기(310)에 대응할 수 있다. 음성 입력(407)은 음성의 문자로의 변환 모듈(432)로 전송될 수 있고 음성의 문자로의 변환 모듈(432)은 음성 입력(407)을 데이터 입력(즉, 문자 입력)(433)으로 번역할 수 있다. 데이터 입력(433)은 분할 모듈(434)로 전달되며, 분할 모듈은 데이터 입력(433)을 4-그램 청크들로 분할할 수 있다. 데이터 입력(433)의 4-그램 청크들은 1AA0; AA0A; A0AA; 0AA0; AA0A; A0AA; 0AA0; 및 AA00을 포함한다. 데이터 입력(433)을 4-그램 청크들로 분할하는 단계는 데이터 입력(433)의 제 1의 자리로 시작하여 다음 세 개의 (제 1의 자리를 포함하지 않는) 자리들을 선택하는 단계를 포함할 수 있다. 이는 제 1의 4-그램 청크일 수 있다. 데이터 입력(433)을 분할하는 단계는 데이터 입력(433)의 제 2의 자리로 시작하여 다음 세 개의 자리들을(제 2의 자리를 포함하지 않는) 선택하는 단계를 더 포함할 수 있다. 이는 데이터 입력(433)의 모든 자리들이 분할될 때까지 반복될 수 있다.
[0066] 음성의 문자로의 변환 모듈(432)과 분할 모듈(434)은 음성 인식 시스템(430)의 일부일 수 있다. 일부 실시 예들에서, 음성의 문자로의 변환 모듈(432), 분할 모듈(434), 및 음성 인식 시스템(430)은 (도 3의) 음성의 문자로의 변환 모듈(332), 분할 모듈(334), 및 음성 인식 시스템(330)에, 각각, 대응한다.
[0067] 도 5를 참조하면, 일부 실시 예들에 따라, 5-그램 청크들을 이용하는 예시적 음성의 문자로의 변환 환경(500)의 계통도가 도시된다. 음성의 문자로의 변환 환경(500)은 전화기(510)에 대고 음성 입력(507)(이 경우에, MBI)을 진술하는 사용자(505)를 포함할 수 있다. 일부 실시 예들에서, 사용자(505)와 전화기(510)는 도 3의 사용자(305)와 전화기(310)에 대응할 수 있다. 음성 입력(507)은 음성의 문자로의 변환 모듈(532)로 전송될 수 있고 음성의 문자로의 변환 모듈(532)은 음성 입력(507)을 데이터 입력(즉, 문자 입력)(533)으로 번역할 수 있다. 데이터 입력(533)은 분할 모듈(534)로 전달되며, 분할 모듈은 데이터 입력(533)을 5-그램 청크들로 분할할 수 있다. 데이터 입력(533)의 5-그램 청크들은 1AA0A; AA0AA; A0AA0; 0AA0A; AA0AA; A0AA0; 및 0AA00을 포함한다. 데이터 입력(533)을 5-그램 청크들로 분할하는 단계는 데이터 입력(533)의 제 1의 자리로 시작하여 다음 네 개의(제 1의 자리를 포함하지 않는) 자리들을 선택하는 단계를 포함할 수 있다. 이는 제 1의 5-그램 청크일 수 있다. 데이터 입력(533)을 분할하는 단계는 데이터 입력(533)의 제 2의 자리로 시작하여 다음 네 개의 자리들을(제 2의 자리를 포함하지 않는) 선택하는 단계를 더 포함할 수 있다. 이는 데이터 입력(533)의 모든 자리들이 분할될 때까지 반복될 수 있다.
[0068] 음성의 문자로의 변환 모듈(532)과 분할 모듈(534)은 음성 인식 시스템(530)의 일부일 수 있다. 일부 실시 예들에서, 음성의 문자로의 변환 모듈(532), 분할 모듈(534), 및 음성 인식 시스템(530)은 (도 3의) 음성의 문자로의 변환 모듈(332), 분할 모듈(334), 및 음성 인식 시스템(330)에, 각각, 대응한다.
[0069] 도 6을 참조하면, 컴퓨터 시스템(600)는 범용 컴퓨터 디바이스의 형태로 도시된 컴퓨터 시스템/서버(602)이다. 일부 실시 예들에서, 컴퓨터 시스템/서버(602)는 연결 디바이스에 위치한다. 컴퓨터 시스템/서버(602)의 컴포넌트들은 하나 또는 그 이상의 프로세서들 또는 처리 유닛들(610), 시스템 메모리(660), 및 시스템 메모리(660)를 포함하는 다양한 시스템 컴포넌트들을 프로세서(610)에 연결하는 버스(615)를 포함할 수 있지만, 이에 국한되지 않는다.
[0070]버스(660)는, 다양한 버스 아키텍처들 중 하나를 사용하는, 메모리 버스 또는 메모리 컨트롤러, 주변 버스, 가속 그래픽 포트, 및 프로세서 또는 로컬 버스를 포함하는, 버스 구조들의 여러 유형들 중 하나 또는 그 이상을 나타낸다. 예를 들어, 그러한 아키텍처들은 ISA(include Industry Standard Architecture) 버스, MCA(Micro Channel Architecture) 버스, EISA(Enhanced ISA) 버스, VESA(Video Electronics Standards Association) 로컬 버스 및 PCI(Peripheral Component Interconnect) 버스를 포함하나, 이에 국한되지는 않는다.
[0071] 컴퓨터 시스템/서버(602)는 일반적으로 다양한 컴퓨터 시스템 판독 가능한 매체를 포함한다. 그러한 매체는 컴퓨터 시스템/서버(602)에 의해 액세스 모든 가능한 이용 가능한 매체일 수 있으며 , 휘발성 및 비휘발성 매체, 착탈식 및 비-착탈식 매체를 모두 포함한다.
[0072] 시스템 메모리(660)은, 예컨대 랜덤 액세스 메모리(RAM)(662) 및/또는 캐시 메모리(664)와 같은, 휘발성 메모리의 형태의 컴퓨터 시스템 판독 가능한 매체를 포함할 수 있다. 컴퓨터 시스템/서버(602)는 또한, 다른 착탈식/비-착탈식, 휘발성/비휘발성 컴퓨터 시스템 스토리지 매체를 포함할 수 있다. 단지 예로서, 스토리지 시스템(665)이 비착탈식, 비휘발성 자기 매체(도시되지 않고 일반적으로 "하드 드라이브"라고 함)로부터 읽고 쓰기 위해 제공될 수 있다. 도시되지는 않았지만, 착탈가능 비휘발성 자기 디스크(예: "플로피 디스크") 에서 읽고 쓰기 위한 자기 디스크 드라이브 및, CD-ROM, DVD-ROM 또는 기타 광학 매체와 같은, 착탈가능 비휘발성 광학 디스크에서 읽거나 쓰기 위한 광학 디스크 드라이브가 제공될 수 있다. 그러한 경우에, 각각은 하나 또는 그 이상의 데이터 매체 인터페이스들에 의해 버스(615)에 연결될 수 있다. 아래에서 추가로 도시되고 설명되는 바와 같이, 메모리(660)는 본 발명의 실시예들의 기능들을 수행하도록 구성된 프로그램 모듈들의 세트(예를 들어, 적어도 하나)를 갖는 적어도 하나의 프로그램 제품을 포함할 수 있다.
[0073] 프로그램 모듈들의 (적어도 하나)세트(669)를 갖는, 프로그램/유틸리티(668)는, 운영 체제, 하나 또는 그 이상의 애플리케이션 프로그램들, 기타 프로그램 모듈들, 및 프로그램 데이터와 함께, 예를 들어, 메모리(660)에 저장될 수 있지만, 이에 국한되는 것은 아니다. 운영 체제들 각각, 하나 또는 그 이상의 애플리케이션 프로그램들, 기타 프로그램 모듈들, 및 프로그램 데이터 또는 이들의 조합은 네트워킹 환경의 구현을 포함할 수 있다. 프로그램 모듈들(669)은 일반적으로 본 명세서에 기술된 바와 같은 본 발명의 실시예의 기능들 및/또는 방법들을 수행한다.
[0074] 컴퓨터 시스템/서버(602)는 키보드, 포인팅 디바이스, 디스플레이(630) 등과 같은, 하나 또는 그 이상의 외부 디바이스들(640); 사용자가 컴퓨터 시스템/서버(602)와 상호작용할 수 있게 하는 하나 또는 그 이상의 디바이스들; 및/또는 컴퓨터 시스템/서버(602)가 하나 또는 그 이상의 다른 컴퓨팅 디바이스들과 통신할 수 있게 하는 모든 디바이스들(예를 들어, 네트워크 카드, 모뎀 등)과 통신 할 수 있다. 그러한 통신은 입/출력(I/O) 인터페이스(620)를 통해 발생할 수 있다. 또한, 컴퓨터 시스템/서버(602)는 근거리 통신망(LAN), 일반 광역 통신망(WAN), 및/또는 네트워크 어댑터(650)를 통한 공중 네트워크(예를 들어, 인터넷)와 같은, 하나 또는 그 이상의 네트워크들과 통신할 수 있다. 도시된 바와 같이, 네트워크 어댑터(650)는 버스(615)를 통해 컴퓨터 시스템/서버(602)의 다른 컴포넌트들과 통신한다. 도시되지는 않았지만, 다른 하드웨어 및/또는 소프트웨어 컴포넌트들이 컴퓨터 시스템/서버(602)와 함께 사용될 수 있음을 이해해야 한다. 이들의 예들에는: 마이크로코드, 디바이스 드라이버들, 리던던트 처리 유닛들, 외부 디스크 드라이브 어레이들, RAID 시스템들, 테이프 드라이브들 및 데이터 아카이벌 스토리지 시스템들이 포함되지만 이에 국한되지는 않는다.
[0075] 본 발명의 실시 예들은 통합의 모든 기술적 세부 수준에서 시스템, 방법, 및/또는 컴퓨터 프로그램 제품이 될 수 있다. 컴퓨터 프로그램 제품은 컴퓨터 판독 가능 스토리지 매체(또는 매체)를 포함할 수 있으며, 이 매체 상에 프로세서가 본 발명의 실시 예들을 수행하도록 하는 컴퓨터 판독 가능 프로그램 명령들을 갖는다.
[0076] 상기 컴퓨터 판독 가능 스토리지 매체는 명령 실행 장치에 의해 사용될 명령들을 유지 및 저장할 수 있는 유형의(tangible) 디바이스일 수 있다. 상기 컴퓨터 판독 가능 스토리지 매체는, 예를 들면, 전자 스토리지 디바이스, 자기 스토리지 디바이스, 광 스토리지 디바이스, 전자기 스토리지 디바이스, 반도체 스토리지 디바이스, 또는 전술한 것들의 모든 적절한 조합일 수 있으며, 그러나 이에 한정되지는 않는다. 컴퓨터 판독 가능 스토리지 매체의 더 구체적인 예들의 비포괄적인 목록에는 다음이 포함될 수 있다: 휴대용 컴퓨터 디스켓, 하드 디스크, 랜덤 액세스 메모리(RAM), 판독-전용 메모리(ROM), 소거 및 프로그램가능 판독-전용 메모리(EPROM 또는 플래시 메모리), 정적 랜덤 액세스 메모리(SRAM), 휴대용 컴팩트 디스크 판독-전용 메모리(CD-ROM), 디지털 다용도 디스크(DVD), 메모리 스틱, 플로피 디스크, 천공-카드들 또는 명령들이 기록된 홈에 있는 융기된 구조들 같이 머신적으로 인코드 된 장치, 및 전술한 것들의 모든 적절한 조합. 본 명세서에서 사용될 때, 컴퓨터 판독 가능 스토리지 매체는 무선 전파들이나 다른 자유롭게 전파되는 전자기파들, 도파관이나 기타 전송 매체(예를 들어, 광섬유 케이블을 통해 전달되는 광 펄스들)를 통해 전파되는 전자기파들, 또는 선(wire)을 통해 전송되는 전기 신호들 같이 그 자체로 일시적인(transitory) 신호들로 해석되지는 않는다.
[0077] 본 명세서에 기술되는 컴퓨터 판독 가능 명령들은, 예를 들어, 인터넷, 근거리 통신망, 광역 통신망 및/또는 무선 네트워크 등의 통신망(네트워크)을 통해 컴퓨터 판독 가능 스토리지 매체로부터 각각 컴퓨팅/처리 디바이스들로 또는 외부 스토리지 디바이스로부터 외부 컴퓨터로 다운로드 될 수 있다. 상기 통신망은 구리 전송 케이블들, 광 전송 섬유들, 무선 전송, 라우터들, 방화벽들, 스위치들, 게이트웨이 컴퓨터들 및/또는 엣지 서버들을 포함할 수 있다. 각 컴퓨팅/처리 유닛 내 네트워크 어댑터 카드 또는 네트워크 인터페이스는 상기 통신망으로부터 컴퓨터 판독 가능 프로그램 명령들을 수신하고 그 컴퓨터 판독 가능 프로그램 명령들을 각각의 컴퓨팅/처리 디바이스 내의 컴퓨터 판독 가능 스토리지 매체에 저장하기 위해 전송한다.
[0078] 본 발명의 연산들을 실행하기 위한 컴퓨터 판독 가능 프로그램 명령들은 Smalltalk, C++ 또는 그와 유사 언어 등의 객체 지향 프로그래밍 언어와 "C" 프로그래밍 언어 또는 그와 유사한 프로그래밍 언어 등의 종래의 절차적 프로그래밍 언어들을 포함하여, 하나 또는 그 이상의 프로그래밍 언어들을 조합하여 작성된(written) 어셈블러 명령들, 명령-세트-아키텍처(ISA) 명령들, 머신 명령들, 머신 종속 명령들, 마이크로코드, 펌웨어 명령들, 상태-셋팅 데이터, 집적회로를 위한 구성 데이터, 또는 소스 코드나 목적 코드일 수 있다. 상기 컴퓨터 판독 가능 프로그램 명령들은 전적으로 사용자의 컴퓨터상에서, 부분적으로 사용자의 컴퓨터상에서, 독립형(stand-alone) 소프트웨어 패키지로서, 부분적으로 사용자의 컴퓨터상에서 그리고 부분적으로 원격 컴퓨터상에서 또는 전적으로 원격 컴퓨터나 서버상에서 실행될 수 있다. 위에서 마지막의 경우에, 원격 컴퓨터는 근거리 통신망(LAN) 또는 광역 통신망(WAN)을 포함한 모든 종류의 네트워크를 통해서 사용자의 컴퓨터에 접속될 수 있고, 또는 이 접속은 (예를 들어, 인터넷 서비스 제공자를 이용한 인터넷을 통해서) 외부 컴퓨터에 이루어질 수도 있다. 일부 실시 예들에서, 예를 들어 프로그램 가능 로직 회로, 필드-프로그램 가능 게이트 어레이들(FPGA), 또는 프로그램 가능 로직 어레이들(PLA)을 포함한 전자 회로는 본 발명의 실시 예들을 수행하기 위해 전자 회로를 맞춤화하도록 상기 컴퓨터 판독 가능 프로그램 명령들의 상태 정보를 활용하여 상기 컴퓨터 판독 가능 프로그램 명령들을 실행할 수 있다.
[0079] 본 발명의 특징들이 본 발명의 실시 예들에 따른 방법들, 장치들(시스템들), 및 컴퓨터 프로그램 제품들의 플로 차트 예시도들 및/또는 블록도들을 참조하여 기술된다. 플로 차트 예시도들 및/또는 블록도들의 각 블록과 플로 차트 예시도들 및/또는 블록도들 내 블록들의 조합들은 컴퓨터 판독 가능 프로그램 명령들에 의해 구현될 수 있다는 것을 이해할 수 있을 것이다.
[0080] 이들 컴퓨터 판독 가능 프로그램 명령들은 범용 컴퓨터, 특수목적용 컴퓨터, 또는 기타 프로그램가능 데이터 처리 유닛의 프로세서에 제공되어 머신(machine)을 생성하고, 그렇게 하여 그 명령들이 상기 컴퓨터 또는 기타 프로그램가능 데이터 처리 유닛의 프로세서를 통해서 실행되어, 상기 플로 차트 및/또는 블록도의 블록 또는 블록들에 명시된 기능들/동작들을 구현하기 위한 수단을 생성할 수 있다. 이들 컴퓨터 판독 가능 프로그램 명령들은 또한 컴퓨터 판독 가능 스토리지 매체에 저장될 수 있으며, 컴퓨터, 프로그램가능 데이터 처리 유닛 및/또는 기타 디바이스들에 지시하여 명령들이 저장된 상기 컴퓨터 판독 가능 스토리지 매체가 상기 플로 차트 및/또는 블록도의 블록 또는 블록들에 명시된 기능/동작의 특징들을 구현하는 명령들을 포함하는 제조품(an article of manufacture)을 포함하도록 특정한 방식으로 기능하게 할 수 있다. 상기 컴퓨터 판독 가능 프로그램 명령들은 또한 컴퓨터, 기타 프로그램가능 데이터 처리 장치들, 또는 다른 디바이스에 로드 되어, 상기 컴퓨터, 기타 프로그램가능 장치 또는 다른 디바이스에서 일련의 동작 단계들이 수행되게 하여 컴퓨터 구현 프로세스를 생성하며, 그렇게 하여 상기 컴퓨터, 기타 프로그램가능 장치, 또는 다른 디바이스 상에서 실행되는 명령들이 플로 차트 및/또는 블록도의 블록 또는 블록들에 명시된 기능들/동작들을 구현할 수 있다.
[0081] 도면들의 플로차트 및 블록도는 본 발명의 다양한 실시예들에 따른 시스템들, 방법들, 및 컴퓨터 프로그램 제품들의 가능한 구현들의 아키텍처, 기능, 및 동작을 예시한다. 이와 관련하여, 플로차트 또는 블록도들의 각 블록은, 특정 논리 기능(들)을 구현하기 위한 하나 혹은 그 이상의 실행 가능한 명령들을 포함하는, 모듈, 세그먼트, 또는 명령들의 일부를 나타낼 수 있다. 일부 대안적인 구현들에서, 블록들에 언급된 기능들은 도면들에 언급된 순서와 다르게 발생할 수 있다. 예를 들어, 연속적으로 도시된 2개의 블록들은, 실제로, 실질적으로 동시에 실행될 수 있거나, 관련된 기능에 따라, 블록들이 때때로 역순으로 실행될 수 있다. 또한 블록도들 및/또는 플로차트의 각 블록, 및 블록도들 및/또는 플로차트 그림의 블록들의 조합들은, 특정 기능들을 수행하거나 특수 목적 하드웨어와 컴퓨터 명령들의 조합들을 수행하거나 수행하는 특수 목적 하드웨어-기반 시스템들에 의해 구현될 수 있다.
[0082] 본 발명의 다양한 실시 예들의 설명들은 예시의 목적으로 제공되는 것이며, 개시된 실시 예들이 전부라거나 이들에 한정하려는 의도가 있는 것은 아니다. 많은 수정들 및 변형들이 설명된 실시 예들의 범위와 정신을 벗어남이 없이 이 기술 분야에서 통상의 지식을 가진 자에게는 명백할 것이다. 여기서 사용된 용어들은 실시 예들의 원리들, 실제 애플리케이션 또는 시장에서 발견된 기술들에 대한 기술적 개선을 가장 잘 설명하기 위해 또는 이 기술 분야에서 통상의 지식을 가진 자들이 여기서 개시된 실시 예들을 이해할 수 있도록 하기 위해 선택되었다.

Claims (18)

  1. 컴퓨터-구현 방법에 있어서, 상기 방법은:
    사전 결정된 규칙에 기초하여 데이터 입력을 순차적인 n-그램 청크들(sequential n-gram chunks)로 분할하는 단계(segmenting)-상기 데이터 입력은 음성 인식을 통해서 수신됨-;
    상기 데이터 입력의 특성들(characteristics)에 관한 메타데이터를 수신하는 단계;
    상기 메타데이터에 기초하여 언어 모델을 생성하는 단계(generating);
    상기 데이터 입력의 언어 모델 변형들의 제1 세트(a first set of language model variations)를 생성하는 단계;
    적어도 언어 모델 변형들의 상기 제1 세트에 기초하여 상기 언어 모델을 훈련하는 단계;
    상기 훈련된 언어 모델을 사용하여 상기 데이터 입력에 대한 하나 또는 그 이상의 대안들(one or more alternatives)을 생성하는 단계;
    상기 데이터 입력에 대한 상기 하나 또는 그 이상의 대안들을 포함하는 출력을 전송하는 단계(transmitting)를 포함하는
    방법.
  2. 제 1항에 있어서, 상기 언어 모델 변형들의 제1 세트를 생성하는 단계는 적어도 상기 메타데이터와 상기 사전 결정된 규칙에 기초하는
    방법.
  3. 제 2항에 있어서, 상기 방법은:
    상기 언어 모델 변형들의 제1 세트를 생성하는 것에 응답하여, 공통 사용자 메타데이터를 사용하여 언어 모델 변형들의 제2 세트를 생성하는 단계; 및
    상기 언어 모델 변형들의 제1 세트 및 제2 세트의 서브세트에 대한 추가된 문자 및 첨부된 문자(prepended text and appended text)를 생성하는 단계를 더 포함하는
    방법.
  4. 제 3항에 있어서, 상기 언어 모델을 훈련하는 단계는 상기 언어 모델 변형들의 제2 세트, 상기 추가된 문자, 및 상기 첨부된 문자에 더 기초하는
    방법.
  5. 제 3항 또는 제 4항 중 어느 하나에 있어서, 상기 추가된 문자와 첨부된 문자를 생성하는 단계는:
    상기 공통 사용자 메타데이터를 분석하는 단계;
    음성이 입력될 때 사용되는 공통의 추가된 구절들과 첨부된 구절들(common prepended phrases and appended phrases)을, 상기 분석에 기초하여, 결정하는 단계; 및
    상기 언어 모델 변형들의 제1 세트 및 제2 세트의 서브세트에 대해 복수의 템플릿 문장들(a plurality of template sentences)을 생성하는 단계를 포함하는
    방법.
  6. 이전의 항들 중 어느 한 항에 있어서, 상기 언어 모델 변형들의 제1 세트를 생성하는 단계는:
    상기 데이터 입력에 대해서 가능한 변형들의 수를 결정하는 단계를 포함하는
    방법.
  7. 제 6항에 있어서, 상기 방법은:
    상기 데이터 입력에 대해서 가능한 변형들의 수가 변형들의 임계 수(a threshold number of variations)보다 아래(below)임을 결정하는 단계;
    상기 결정하는 것에 응답하여, 상기 데이터 입력의 모든 가능한 언어 모델 변형들을 생성하는 단계를 포함하는
    방법.
  8. 제 6항에 있어서, 상기 방법은:
    상기 데이터 입력에 대해서 가능한 변형들의 수가 변형들의 임계 수보다 위(above)임을 결정하는 단계; 및
    상기 결정하는 것에 응답하여, 상기 데이터 입력에 대해서 감소된 변형들의 수를 상기 n-그램 청크들에 기초하여 생성하는 단계를 포함하는
    방법.
  9. 제 6항에 있어서, 상기 데이터 입력의 언어 모델 변형들의 제1 세트를 생성하는 단계는:
    공통 디지트 패턴들(common digit patterns)에 기초하여 숫자(a number)를 나타낼 수 있는 대체 단어들(alternate words)을 생성하는 단계를 포함하는
    방법.
  10. 이전의 항들 중 어느 한 항에 있어서, 상기 n-그램 청크들은 4-그램 청크들과 5-그램 청크들 중 하나인
    방법.
  11. 이전의 항들 중 어느 한 항에 있어서, 상기 모델은 음성의 문자로의 변환 문법 모델(a speech to text grammar model)인
    방법.
  12. 하나 또는 그 이상의 컴퓨터 프로세서들을 갖는 시스템에 있어서, 상기 시스템은 방법을 수행하도록 구성되고, 상기 방법은:
    사전 결정된 규칙에 기초하여 데이터 입력을 순차적인 n-그램 청크들(sequential n-gram chunks)로 분할하는 단계(segmenting)-상기 데이터 입력은 음성의 문자로 변환된 전사(a speech to text transcription)임-;
    상기 데이터 입력의 특성들(characteristics)에 관한 메타데이터를 수신하는 단계;
    상기 메타데이터에 기초하여 언어 모델을 생성하는 단계(generating);
    상기 데이터 입력의 언어 모델 변형들의 제1 세트(a first set of language model variations)를 생성하는 단계;
    적어도 언어 모델 변형들의 상기 제1 세트에 기초하여 상기 언어 모델을 훈련하는 단계;
    상기 훈련된 언어 모델을 사용하여 상기 데이터 입력에 대한 하나 또는 그 이상의 대안들(one or more alternatives)을 생성하는 단계;
    상기 데이터 입력에 대한 상기 하나 또는 그 이상의 대안들을 포함하는 출력을 전송하는 단계(transmitting)를 포함하는
    시스템.
  13. 제 12항에 있어서, 상기 언어 모델 변형들의 제1 세트를 생성하는 단계는 적어도 상기 메타데이터와 상기 사전 결정된 규칙에 기초하는
    시스템.
  14. 제 13항에 있어서, 상기 시스템은:
    상기 언어 모델 변형들의 제1 세트를 생성하는 것에 응답하여, 공통 사용자 메타데이터를 사용하여 언어 모델 변형들의 제2 세트를 생성하는 단계; 및
    상기 언어 모델 변형들의 제1 세트 및 제2 세트의 서브세트에 대한 추가된 문자 및 첨부된 문자(prepended text and appended text)를 생성하는 단계를 더 수행하도록 구성되는
    시스템.
  15. 제 14항에 있어서, 상기 언어 모델을 훈련하는 단계는 상기 언어 모델 변형들의 제2 세트, 상기 추가된 문자, 및 상기 첨부된 문자에 더 기초하는
    시스템.
  16. 제 14항 또는 제 15항 중 어느 하나에 있어서, 상기 추가된 문자와 첨부된 문자를 생성하는 단계는:
    상기 공통 사용자 메타데이터를 분석하는 단계;
    음성이 입력될 때 사용되는 공통의 추가된 구절들과 첨부된 구절들(common prepended phrases and appended phrases)을, 상기 분석에 기초하여, 결정하는 단계; 및
    상기 언어 모델 변형들의 제1 세트 및 제2 세트의 서브세트에 대해 복수의 템플릿 문장들(a plurality of template sentences)을 생성하는 단계를 포함하는
    시스템.
  17. 음성의 문자로의 변환 시스템에서 영숫자 음성 데이터 입력들(alphanumeric speech data inputs)을 인식하기 위한 컴퓨터 프로그램 제품에 있어서, 상기 컴퓨터 프로그램 제품은:
    처리회로에 의해 판독 가능한 컴퓨터 판독 가능한 스토리지 매체를 포함하고, 상기 컴퓨터 판독 가능한 스토리지 매체는 제 1항 내지 제11항의 항들 중 어느 한 항에 따른 방법을 수행하기 위해 상기 처리 회로에 의해 실행하기 위한 명령들을 저장하는
    컴퓨터 프로그램 제품.
  18. 컴퓨터 프로그램에 있어서, 상기 컴퓨터 프로그램은 컴퓨터 판독 가능한 매체 상에 저장되고 디지털 컴퓨터의 내부 메모리에 로드할 수 있으며, 상기 프로그램이 컴퓨터 상에서 실행될 때, 제 1항 내지 제11항의 항들 중 어느 한 항에 따른 방법을 수행하기 위한 소프트웨어 코드의 부분들을 포함하는
    컴퓨터 프로그램.
KR1020227026549A 2020-03-20 2021-02-23 데이터 입력들을 위한 음성 인식 및 훈련 KR20220122742A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/825,183 US11735169B2 (en) 2020-03-20 2020-03-20 Speech recognition and training for data inputs
US16/825,183 2020-03-20
PCT/IB2021/051496 WO2021186268A1 (en) 2020-03-20 2021-02-23 Speech recognition and training for data inputs

Publications (1)

Publication Number Publication Date
KR20220122742A true KR20220122742A (ko) 2022-09-02

Family

ID=77748413

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227026549A KR20220122742A (ko) 2020-03-20 2021-02-23 데이터 입력들을 위한 음성 인식 및 훈련

Country Status (6)

Country Link
US (1) US11735169B2 (ko)
JP (1) JP2023517357A (ko)
KR (1) KR20220122742A (ko)
CN (1) CN115298736A (ko)
AU (1) AU2021238965B2 (ko)
WO (1) WO2021186268A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113793593B (zh) * 2021-11-18 2022-03-18 北京优幕科技有限责任公司 适用于语音识别模型的训练数据生成方法及设备

Family Cites Families (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5303299A (en) 1990-05-15 1994-04-12 Vcs Industries, Inc. Method for continuous recognition of alphanumeric strings spoken over a telephone network
US5651056A (en) * 1995-07-13 1997-07-22 Eting; Leon Apparatus and methods for conveying telephone numbers and other information via communication devices
CN1137449C (zh) 1997-09-19 2004-02-04 国际商业机器公司 在中文语音识别系统中识别字母/数字串的方法
FI981154A (fi) * 1998-05-25 1999-11-26 Nokia Mobile Phones Ltd Menetelmä ja laite puheen tunnistamiseksi
JP2003505778A (ja) * 1999-05-28 2003-02-12 セーダ インコーポレイテッド 音声制御ユーザインタフェース用の認識文法作成の特定用途を有する句ベースの対話モデル化
US7280964B2 (en) * 2000-04-21 2007-10-09 Lessac Technologies, Inc. Method of recognizing spoken language with recognition of language color
AU2001255560A1 (en) 2000-04-21 2001-11-07 Lessac Systems, Inc. Speech recognition and training methods and systems
US7111248B2 (en) 2002-01-15 2006-09-19 Openwave Systems Inc. Alphanumeric information input method
US7284009B2 (en) * 2002-12-13 2007-10-16 Sun Microsystems, Inc. System and method for command line prediction
US7418387B2 (en) * 2004-11-24 2008-08-26 Microsoft Corporation Generic spelling mnemonics
US8332207B2 (en) * 2007-03-26 2012-12-11 Google Inc. Large language models in machine translation
US20100268716A1 (en) * 2009-04-17 2010-10-21 Degaugue Fabien G System and methods of providing interactive expertized communications responses using single and multi-channel site-specific integration
US8374868B2 (en) 2009-08-21 2013-02-12 General Motors Llc Method of recognizing speech
US9489375B2 (en) * 2011-06-19 2016-11-08 Mmodal Ip Llc Speech recognition using an operating system hooking component for context-aware recognition models
US9640175B2 (en) * 2011-10-07 2017-05-02 Microsoft Technology Licensing, Llc Pronunciation learning from user correction
US8918320B2 (en) * 2012-01-03 2014-12-23 Nokia Corporation Methods, apparatuses and computer program products for joint use of speech and text-based features for sentiment detection
EP2946272A4 (en) * 2013-01-21 2016-11-02 Keypoint Technologies India Pvt Ltd TEXT ENTRY SYSTEM AND METHOD
US9626960B2 (en) * 2013-04-25 2017-04-18 Nuance Communications, Inc. Systems and methods for providing metadata-dependent language models
US10181098B2 (en) 2014-06-06 2019-01-15 Google Llc Generating representations of input sequences using neural networks
US9529898B2 (en) * 2014-08-26 2016-12-27 Google Inc. Clustering classes in language modeling
US9378731B2 (en) * 2014-09-25 2016-06-28 Google Inc. Acoustic model training corpus selection
US9444934B2 (en) * 2014-10-02 2016-09-13 Nedelco, Inc. Speech to text training method and system
US9524716B2 (en) * 2015-04-17 2016-12-20 Nuance Communications, Inc. Systems and methods for providing unnormalized language models
JP6580882B2 (ja) * 2015-06-24 2019-09-25 株式会社東芝 音声認識結果出力装置、音声認識結果出力方法及び音声認識結果出力プログラム
US20170031896A1 (en) * 2015-07-28 2017-02-02 Xerox Corporation Robust reversible finite-state approach to contextual generation and semantic parsing
CN105895078A (zh) * 2015-11-26 2016-08-24 乐视致新电子科技(天津)有限公司 动态选择语音模型的语音识别方法及装置
US20170294184A1 (en) * 2016-04-08 2017-10-12 Knuedge Incorporated Segmenting Utterances Within Speech
EP3770903B1 (en) * 2016-06-08 2024-01-31 Google LLC Scalable dynamic class language modeling
US10062385B2 (en) * 2016-09-30 2018-08-28 International Business Machines Corporation Automatic speech-to-text engine selection
US10229685B2 (en) * 2017-01-18 2019-03-12 International Business Machines Corporation Symbol sequence estimation in speech
US10922483B1 (en) * 2017-08-04 2021-02-16 Grammarly, Inc. Artificial intelligence communication assistance for providing communication advice utilizing communication profiles
US10963273B2 (en) * 2018-04-20 2021-03-30 Facebook, Inc. Generating personalized content summaries for users
US10147428B1 (en) * 2018-05-30 2018-12-04 Green Key Technologies Llc Computer systems exhibiting improved computer speed and transcription accuracy of automatic speech transcription (AST) based on a multiple speech-to-text engines and methods of use thereof
US10573312B1 (en) * 2018-12-04 2020-02-25 Sorenson Ip Holdings, Llc Transcription generation from multiple speech recognition systems
WO2021137637A1 (en) * 2020-01-02 2021-07-08 Samsung Electronics Co., Ltd. Server, client device, and operation methods thereof for training natural language understanding model
US11848025B2 (en) * 2020-01-17 2023-12-19 ELSA, Corp. Methods for measuring speech intelligibility, and related systems and apparatus

Also Published As

Publication number Publication date
US11735169B2 (en) 2023-08-22
US20210295829A1 (en) 2021-09-23
AU2021238965A1 (en) 2022-07-28
WO2021186268A1 (en) 2021-09-23
AU2021238965B2 (en) 2023-12-07
CN115298736A (zh) 2022-11-04
JP2023517357A (ja) 2023-04-25

Similar Documents

Publication Publication Date Title
JP7280382B2 (ja) 数字列のエンドツーエンド自動音声認識
US10565987B2 (en) Scalable dynamic class language modeling
JP7092953B2 (ja) エンドツーエンドモデルによる多言語音声認識のための音素に基づく文脈解析
US20110307252A1 (en) Using Utterance Classification in Telephony and Speech Recognition Applications
MXPA05011448A (es) Mnemotecnica generica de deletreo.
US20220122622A1 (en) Cascaded Encoders for Simplified Streaming and Non-Streaming ASR
US20230223009A1 (en) Language-agnostic Multilingual Modeling Using Effective Script Normalization
WO2016008128A1 (en) Speech recognition using foreign word grammar
CN112346696B (zh) 虚拟助理的语音比较
US20230104228A1 (en) Joint Unsupervised and Supervised Training for Multilingual ASR
CN111144102A (zh) 用于识别语句中实体的方法、装置和电子设备
CN117043856A (zh) 高效流式非递归设备上的端到端模型
JP2024512579A (ja) ルックアップテーブルリカレント言語モデル
KR20240065125A (ko) 희귀 단어 스피치 인식을 위한 대규모 언어 모델 데이터 선택
KR20220122742A (ko) 데이터 입력들을 위한 음성 인식 및 훈련
CN115132182A (zh) 一种数据识别方法、装置、设备及可读存储介质
US11893349B2 (en) Systems and methods for generating locale-specific phonetic spelling variations
CN113811946B (zh) 数字序列的端到端自动语音识别
JP2005208483A (ja) 音声認識装置、音声認識プログラム、言語モデル生成方法、及び言語モデル生成装置
US20240177706A1 (en) Monte Carlo Self-Training for Speech Recognition
US12008986B1 (en) Universal semi-word model for vocabulary contraction in automatic speech recognition
US20230143110A1 (en) System and metohd of performing data training on morpheme processing rules
Li et al. N-gram Boosting: Improving Contextual Biasing with Normalized N-gram Targets
Nazari NoLoR: An ASR-Based Framework for Expedited Endangered Language Documentation with Neo-Aramaic as a Case Study
JP2021085996A (ja) 音声認識システム、音声認識方法