KR20200087802A - 적응형 고유명칭 개체 인식 및 이해를 위한 시스템 및 방법 - Google Patents

적응형 고유명칭 개체 인식 및 이해를 위한 시스템 및 방법 Download PDF

Info

Publication number
KR20200087802A
KR20200087802A KR1020207016836A KR20207016836A KR20200087802A KR 20200087802 A KR20200087802 A KR 20200087802A KR 1020207016836 A KR1020207016836 A KR 1020207016836A KR 20207016836 A KR20207016836 A KR 20207016836A KR 20200087802 A KR20200087802 A KR 20200087802A
Authority
KR
South Korea
Prior art keywords
computer
recognizing
words
grammar
implemented method
Prior art date
Application number
KR1020207016836A
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
Priority claimed from US15/811,586 external-priority patent/US10170114B2/en
Application filed by 프롬프튜 시스템즈 코포레이션 filed Critical 프롬프튜 시스템즈 코포레이션
Publication of KR20200087802A publication Critical patent/KR20200087802A/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/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • G06F40/216Parsing using statistical methods
    • 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
    • G06F40/295Named entity recognition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • G06F40/35Discourse or dialogue representation
    • 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/32Multiple recognisers used in sequence or in parallel; Score combination systems therefor, e.g. voting 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/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • General Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Acoustics & Sound (AREA)
  • Human Computer Interaction (AREA)
  • Probability & Statistics with Applications (AREA)
  • Machine Translation (AREA)

Abstract

고유명칭 및 유사한 개체들을 포함할 수 있는 자유롭게 말해진 발언을 높은 정확도로 인식 및 이해할 수 있는 자동 음성 인식(ASR)과 자연어 이해(NLU)를 수행하는 시스템과 방법의 여러 실시예들이 고려되었다. 고유명칭 개체들은 보통으로 구축된 이들 시스템의 어휘목록들에는 존재하지 않는 단어들을 포함하거나 전체가 이로 구성될 수 있다. 문제의 발언의 다른 단어들, 예를 들어 고유명칭 개체들의 일부가 아닌 단어들은 보통 높은 인식 정확도가 이뤄질 수 있다. 여러 실시예들은 출력으로 정확히 표기된 전체 발언의 작동 텍스트뿐 아니라, 사용자의 입력을 더 분석하지 않고 컴퓨터 시스템이 말해진 요청에 적절히 응답하기에 적합한 고유명칭 객체들의 적절한 기호적 표현을 포함하는 입력의 의미의 기호적 표현도 제공한다.

Description

적응형 고유명칭 개체 인식 및 이해를 위한 시스템 및 방법
관련 출원(들)과의 상호 참조
본원은 2017년 11월 13일자로 출원된 미국특허출원 제15/811,586호에 대한 우선권을 주장하는 바, 이는 그 전체로서 이 명세서에 참고로 포함되어 있다.
기술분야
본원의 다양한 실시예들은 유창한, 자연스런 인간 발언(human speech), 특히 고유명칭 개체(proper name entity)들을 포함할 수 있는 발언을 자동 인식 및 이해하는 시스템과 방법들에 관한 것이다.
자동 음성 인식(Automatic speech recognition; ASR) 기술과 자연어 이해(natural language understanding; NLU) 기술은 지난 10년간 현저히 발전해 음성 언어 인터페이스(spoken language interface)의 시대를 시작하고 있다. 예를 들어,"Siri®" 시스템은 사용자가 "iPhone®" 휴대전화에 복수의 질문과 명령을 말할 수 있게 해주며, Google의 유사한 "Google VoiceTM" 서비스가 대중 시장에 수용되었다.
이러한 제품들은 "set a reminder for Dad's birthday on December 1st" 또는 "what does my calendar look like for today" 같은 포괄적 요청들에는 대단히 성공적이지만, 고유명칭(proper name), 특히 흔치 않은 이름을 포함하는 발언(utterance)에 의해 좌절될 수 있다. "set my destination to Barbagelata Real Estate," "tell me how to get to Guddu de Karahi," 또는 "give me the details for Narayanaswamy Harish, DVM" 등의 명령들은 - 이 모두 적절한 문맥(context) 내에서는 합리적인 요청이지만 - 종종 완전히 엉터리는 아니더라도 부정확한 결과를 도출한다.
이에 따라, 고유명칭들의 더 정확한 인식을 제공하는 시스템에 대한 수요가 존재한다.
본 발명으로 소개되는 기술들은 첨부된 도면들에 연계하여 이하의 상세한 설명을 읽으며 더 잘 이해될 것인데, 도면에서 유사한 참조번호들은 동일 또는 기술적으로 유사한 부재들을 나타내며:
도 1은 일부 실시예들의 여러 특징들을 구현하는 개인 비서 앱(personal assistant application)의 예시적 그래픽 사용자 인터페이스(graphical user interface)의 스크린샷(screenshot).
도 2는 일부 실시예들에서, 도 1의 예에서의 요청을 사용하여 생성된 문법의 도표.
도 3은 예시적 단어 문장에 적용된 한 실시예의 처리 작동들을 보이는 예시적 처리 도표.
도 4는 일부 실시예들에서 이뤄질 수 있는, 예시적 시스템의 처리에 따른 결과들을 보이는 예시적 그래픽 사용자 인터페이스의 스크린샷.
도 5는 일부 실시예들에서 이뤄질 수 있는, 발언 파형의 예시적 분석.
도 6은 일부 실시예들에서 이뤄질 수 있는, 발언 파형의 예시적 분석.
도 7은 일부 실시예들에서 이뤄질 수 있는, 발언 파형의 예시적 분석.
도 8은 일부 실시예들에서 이뤄질 수 있는, 서버 및 클라이언트 고유명칭 해석 모듈(server and client proper name resolution module)들을 가지는 예시적 음성 처리 시스템(speech processing system)의 여러 컴포넌트들을 보이는 블록도.
도 9는 자동 음성 인식(ASR) 및 자연어 이해(NLU) 컴포넌트들을 사용하는 여러 가지 실시예들에 대한 고유명칭 인식 프로세스를 개략적으로(at a high level) 보이는 흐름도.
도 10은 일부 실시예들에서 이뤄질 수 있는, 고유명칭 인식 프로세스의 여러 단계들을 보이는 흐름도.
도 11은 일부 실시예들에서 생성될 수 있는 예시적 가설 말뭉치(hypothesis corpus).
도 12는 일부 실시예들에서 이뤄질 수 있는, 도 11의 예에 기반한 제1 가설 분석의 예.
도 13은 일부 실시예들에서 이뤄질 수 있는, 도 11의 예에 기반한 제2 가설 분석의 예.
도 14는 일부 실시예들에서 이뤄질 수 있는, 고유명칭 인식의 서버측 처리의 여러 단계들을 보이는 흐름도.
도 15는 일부 실시예들에서 이뤄질 수 있는, 고유명칭 인식의 클라이언트측 처리의 여러 단계들을 보이는 흐름도.
도 16 및 17은 일부 실시예들에서 이뤄질 수 있는, 각각 점수 융합을 하지 않는 경우와 하는 경우의 추가적 처리 예들.
도 18은 문법 아크(arc)들 상에 포괄적 레이블 n 1, n 2, n 3, ..., n k 들을 보이는, 적응형 문법에 편입되기에 적합한 예시적 목표 섹션.
도 19는 선택된 아크들이 사용자 연락처 목록(contact list)에서 도출된 문언 문장과 의미론적 의미 변수(semantic meaning variable) 상에 수행될 연계 동작들 양자로 표지된(labeled), 적응형 문법에 편입되기에 적합한 예시적 목표 섹션.
도 20은 연계된 1차 인식기 출력과 2차 인식을 수행하는 데 사용될 수 있는 적응형 문법을 가지는, 예시적 파형과 관련 주석들.
도 21은 연계된 1차 인식기 출력과 단어 기본형을 예시하여 2차 인식의 수행에 사용될 수 있는 적응형 문법을 가지는, 예시적 파형과 관련 주석들.
도 22는 채워지지 않은 접두 및 접미 섹션들을 보이는, 예시적 목표 섹션을 포함하는 예시적 슬롯형의 적응형 문법.
도 23은 연계된 1차 인식기 출력과 2차 인식의 수행에 사용될 수 있는 채워진 슬롯들을 가지는 슬롯형의 적응형 문법을 포함하는, 예시적 파형과 그 주석들.
도 24는 단일한 채워지지 않은 접두 슬롯과 단일한 채워지지 않은 접미 슬롯을 가지는 예시적 슬롯형의 적응형 문법.
도 25는 도 23은 연계된 1차 인식기 출력과 각각 접두 및 접미 단어 문장들이 채워진 단일한 접두 슬롯과 단일한 접미 슬롯을 가져 2차 인식의 수행에 사용될 수 있는 채워진 슬롯들을 포함하는 슬롯형의 적응형 문법을 구비하는, 예시적 파형과 그 주석들.
도 26은 너무 작은 스팬(span-too-small) 오류들의 수정을 허용하도록 구성된 예시적 채워지지 않은 슬롯형의 적응형 문법.
도 27은 연계된 1차 인식기 출력과 너무 작은 스팬 오류의 수정과 또한 부정확한 디코딩을 도시하는, 너무 작은 스팬 오류들의 수정을 허용하도록 구성된 채워진 슬롯형의 적응형 문법을 가지는, 예시적 파형과 그 주석들.
도 28은 마찬가지로 부정확한 2차 디코딩을 산출하는, 각각(per) 너무 큰 스팬(span-too-large) 오류로 채워진 접두 및 접미 섹션들을 도시하는 예시적 채워진 슬롯형의 적응형 문법.
도 29는 각각 너무 큰 스팬 오류로 채워진 접두 및 접미 섹션들을 도시하고, 문제의 오류의 수정에는 유효하지 않은 너무 작은 스팬 오류를 수정하기에 적합한 엡실론 아크들을 포함하는 예시적 채워진 슬롯형의 적응형 문법.
도 30은 너무 큰 스팬 오류들을 수정할 수 있는 좌측 끼움말(shim) 및 우측 끼움말 구조를 포함하는 예시적 채워지지 않은 및 채워진 슬롯형의 적응형 문법.
도 31은 연계된 1차 인식기 출력과 너무 큰 스팬 오류의 수정을 도시하는, 너무 큰 스팬 오류들의 수정을 허용하도록 구성된, 완전히 채워진 슬롯형의 적응형 문법을 가지는 예시적 파형과 그 주석들.
도 32는 음소 루프들에 의해 너무 큰 스팬 오류들을 수정할 수 있는 좌측 끼움말 및 우측 끼움말 구조를 포함하는 예시적 채워지지 않은 및 채워진 슬롯형의 적응형 문법.
도 33은 연계된 1차 인식기 출력과 너무 큰 스팬 오류의 수정을 도시하는, 음소 루프들에 의해 너무 큰 스팬 오류들의 수정을 허용하도록 구성된 완전히 채워진 슬롯형의 적응형 문법을 가지는 예시적 파형과 그 주석들.
도 34는 음소 루프들 또는 대체적 문언들에 의해 너무 큰 스팬 오류들을 수정할 수 있는, 좌측 끼움말 및 우측 끼움말 구조를 포함하는 예시적 채워지지 않은 및 채워진 슬롯형의 적응형 문법.
도 35는 다른 타입들의 동시 오류들과, 1차 표기들을 구분(distinct)하기에 적합한 그 두 채워진 경우(instances)들을 포함하는, 너무 작은 스팬 및 너무 큰 스팬 오류들의 양자의 수정을 허용하도록 구성된 예시적 채워지지 않은 슬롯형의 적응형 문법.
도 36은 너무 큰 스팬 오류를 수정하기 위해 도 35의 상부(top)에 채워진 문법의 사용을 도시하는, 예시적 파형과 그 주석들.
도 37은 너무 작은 오류와 또한 부정확한 1차 디코딩을 수정하기 위해 도 35의 하부(bottom)에 채워진 문법의 사용을 도시하는, 예시적 파형과 그 주석들.
도 38은 너무 큰 스팬 오류를 수정하기 위해, 1차 인식기 출력으로부터의 기본형으로 채워진 접두 및 접미 섹션들을 가지는 슬롯형의 적응형 문법을 도시하는 예시적 파형과 그 주석들.
도 39는 너무 큰 스팬 오류를 수정하기 위해, 목표 스팬에 대해 1차 인식기로 디코딩된 음소 시퀀스들을 통해 너무 큰 스팬 오류들을 수정하도록 구성된 좌측 및 우측 끼움말들이 채워진, 슬롯형의 적응형 문법의 사용을 도시하는, 예시적 파형과 그 주석들.
도 40은 목표 스팬에 대해 1차 인식기로 디코딩된 음소 시퀀스들을 통해 너무 큰 스팬 오류들을 수정하도록 구성된 좌측 및 우측 끼움말들이 채워지고, 접두 및 접미 섹션들이 너무 큰 스팬 오류를 수정하기 위한 내포 엡실론 아크(nested epsilon arc)들을 통해 너무 작은 수팬 오류를 수정하도록 구성된 예시적 파형과 그 주석들.
도 41은 격자(lattice)를 포함하는 1차 인식기 출력으로 적응형 고유명칭 인식 방법의 사용을 보이는 예시적 파형 및 그 주석들.
도 42는 일부 실시예들의 특징들을 구현하는 데 사용되는 컴퓨터 시스템의 블록도.
이 명세서에 제공되는 표제(heading)들은 편의를 위한 목적뿐이며 청구된 실시예들의 범위나 의미에 반드시 영향을 미치지는 않는다. 또한 도면들이 반드시 축척대로 도시된 것은 아니다. 예를 들어, 도면들의 일부 요소들의 크기는 실시예들의 이해를 돕기 위해 확대 또는 축소되었다. 마찬가지로, 일부 컴포넌트 및/또는 작동들은 일부 실시예들을 논의할 목적으로 다른 블록들로 분리되거나 단일한 블록으로 조합되었다. 뿐만 아니라, 다양한 실시예들이 다양한 수정과 대체적 형태를 취할 수 있지만, 특정한 실시예들이 예시로서 도면들에 보이고 이하에 상세히 설명된다. 그러나 이는 기재된 특정한 실시예들에 한정할 의도가 아니다. 오히려, 실시예들은 모든 변경, 등가물, 대체들을 첨부된 청구항들로 규정된 본 발명 실시예들의 범위에 포괄하고자 의도하는 것이다.
용어 해설(glossary)
다음 용어 해설은 두문자어(acronym), 약어(abbreviation), 부호(symbol), 및 이 명세서 전체에 사용되는 전문적 용어들을 한 자리에 모아 독자의 편의를 위해 제공된다.
이 명세서에 사용된 "음향 접두(acoustic prefix)"는 목표 스팬(target span)에 선행하는, 1차 인식(primary recognition) 단계에서 디코딩된(decoded) 하나 이상의 단어들이다. 이는 "좌측 음향 문맥(left acoustic context)"로도 지칭될 수 있다.
"음향 스팬(acoustic span)"은 음성 파형(audio waveform)의 일부이다.
"음향 접미(acoustic suffix)"는 목표 스팬에 후행하는, 1차 인식 단계에서 디코딩된 하나 이상의 단어들이다. 이는 "우측 음향 문맥(right acoustic context)"로도 지칭될 수 있다.
"적응형 문법(adaptation grammar)"은 문법 기반 ASR 시스템과 연계하여 적응 객체(adaptation object)로 사용되는 문법이다.
"적응 객체(adaptation object)"는 인식 가능한 단어들과 단어 시퀀스(word sequence)의 특정한 모음(collection)에 대한 2차 인식기(secondary recognizer)의 적응(일부 실시예들에서는 초고속 적응)을 가능하게 하는 컴퓨터에 저장된 정보이다. 문법 기반 ASR 시스템에서 이것은 컴파일되거나 완성된(finalized) 형태에 있는 문법이다.
"적응 객체 생성 모듈(adaptation object generation module)"은 적응 객체들을 생성한다. 이는 입력 단어나 단어 시퀀스들로 수용될 수 있으며, 그 일부는 완전히 신규(novel)할 수 있고, 주어진 단어 또는 단어 시퀀스들을 조립하는 허용된 방식들의 사양(specification)들이 될 수 있다.
"적응 객체 생성기(adaptation object generator)"는 "적응 객체 생성 모듈"과 동일하다.
"적응 객체 생성 단계(adaptation object generation step)"는 적응 객체 생성 모듈의 사용을 포함할 수 있는 일부 실시예들의 작동에서, 적절한 입력들로 작동하여 적응 객체를 생성하는 단계이다. 이 프로세스는 각각 대상 준비(object preparation)와 대상 완성(object finalization)의 두 스테이지(stage)로 분할될 수 있다. 2차 인식기가 문법 기반 ASR 기술을 사용한다면 "대상 준비"는 문법 컴파일(grammar compilation)을 포함하고 "대상 완성"은 문법 슬롯(grammar slot)들의 채움(population)을 포함할 수 있다.
"집합 단어(aggregate word)"는 고유명칭들의 전체 모음을 의미하는 아주 많은 발음들을 가지는 개념적 "단어"이다. 이는 "플레이스홀더(placeholder)" 또는 "플레이스홀더 단어(placeholder word)"와 동일할 수 있다.
"ARPAbet"은 영어의 음성표기법(phonetic alphabet)을 지칭한다. http://en.wikipedia.org/wiki/Arpabet 참조.
"ASR"은 자동 음성 인식(automatic speech recognition)과: 구어(spoken language)의 텍스트(text)로의 자동 변환을 지칭한다.
"ASR 신뢰도 점수(ASR confidence score)"는 주어진 음성 신호의 특정한 표기(transcription)에 대한 증거력(strength of evidence)을 반영하는 수치적 점수이다.
"기본형(baseform)"은: 어휘 객체로서의 단어(즉 그 단어가 전형적으로 적히는 문자들의 시퀀스)와; (2) 동일한 단어에 대한 여러 기본형들을 서로 구분하는 색인번호(index)와; 및 (3) 음소(phoneme)들의 시퀀스를 포함하는 발음 등에 연계된 셋을 지칭한다. 주어진 단어는 그 발음에 의해 구분되는 몇 개의 연계된 기본형을 가질 수 있다. 예를 들어, 지난 유행가 "Let's Call the Whole Thing Off"의 가사에서 기념되는 단어 "tomato"는 두 인정된 발음들을 가진다. 괄호에 포함된 숫자는 전술한 색인번호이다:
tomato(01) T AX M EY T OW
tomato(02) T AX M AA T OW
(이 발음들은 "ARPAbet" 음성표기법으로 표기되었다.)
"디코딩 스팬(decode span)" 또는 "디코딩 음향 스팬(decode acoustic span)"은 "전체 스팬(full span)" 또는 "전체 음향 스팬(full acoustic span)"과 동일하다.
"w ε"로 표기되는 "엡실론 단어 객체(epsilon word object)" 또는 동등하게 "엡실론 단어(epsilon word)"는 디코딩되는 파형의 어느 부분과도 대응(matching)되지 않게 디코더가 이것이 표지하는(label) 아크(arc)를 횡단할 수 있게 하는 문법 레이블(grammar label)이다.
"특성 벡터(feature vector)"는 담화(speech)의 한 프레임 내의 음성의 처리된 표현(representation)을 포함하는, 전형적으로 실수인 요소들을 가지는 다차원 벡터이다. 새 특성 벡터는 소스 발언(source utterance) 내에서 10ms마다 미리 연산된다. "프레임(frame)" 참조.
"프레임(frame)"은 ASR 시스템의 음향 모델로 대응되는 최소의 개별 요소로, 전형적으로 담화의 약 200ms를 포함한다. 특성 벡터를 연산할 목적으로, 담화의 연속적 프레임들은 각 새 프레임이 소스 발언 내에서 예를 들어 10ms 선행하도록 중첩될 수 있다.
"전체 스팬(Full span)" 또는 "전체 음향 스팬(Full acoustic span)"은 2차 인식 단계로 디코딩된 전체 음성 세그먼트(segment)로, 음향 접두 단어들과 음향 접미 단어들의 음성과, 이에 더하여 추정(putative) 목표 스팬을 포함한다.
"문법(grammar)"은 문법 기반 ASR 시스템의 특정한 경우(instance)에 인식할 수 있는, 단어들의 모든 허용된 시퀀스들의 기호적 표현(symbolic representation)이다. 이러한 문법을 표현하는 한 방식의 논의에 대해서는 이 용어 사전의 "VXML" 참조. 문법 기반 ASR 시스템에 의해 사용되는 문법은 변경이 용이할 수 있다.
"문법 기반 ASR(Grammar-based ASR)"은 적절히 규정된 문법으로 허용된 단어 시퀀스들만을 주어진 음성 입력으로부터 인식할 수 있는 기술이다. "공개 구술 ASR(open dictation ASR)"과 비교하라.
"문법 레이블(grammar label)"은 문언(literal), 기본형, 음소, 문맥 의존(context-dependent) 음소, 또는 디코더가 그 아크를 횡단할 때 파형 내에서 대응되어야 하는 다른 어떤 개체(entity)를 식별하도록 문법 내에서 주어진 아크에 연계될 수 있는 - 이에 따라 그 아트를 "표지하는(labeling)" - 객체이다. 이 명명법은 슬롯형 문법(slotted grammar)의 슬롯들을 채우는(populate) 객체에도 마찬가지로 사용될 수 있다.
변수 "h"는 전형적으로 둘 이상의 선행 단어들을 포함하는, "이력(history)" 또는 "언어 모델 문맥(language model context)"을 지칭한다. 이는 언어 모델 확률에 있어 p(w|h) 등의 조건화 정보(conditioning information)로 기능한다.
"레이블(label)"은 문법 또는 슬롯형 문법을 논의하는 문맥에서는 "문법 레이블(grammar label)"과 동일하다.
"문어(literal)"는 단어의 문자 형태이다.
"NLU"는 자연어 이해(natural language understanding)를 지칭하는데: 인간 판독 가능한 텍스트로부터 추가적인 인간의 안내 없이 요청된 동작을 실행하는 적절한 설계의 완전히 기계적 장치에 충분하게, 그 텍스트의 의미의 기호적 표현을 자동 추출하는 것이다.
"NLU 신뢰도 점수(NLU confidence score)"는 특정한 NLU 의미 가설에 대한 증거력을 반영하는 수치적 점수이다.
"공개 구술 ASR(Open dictation ASR)"은 원칙적으로 고정된 어휘 목록(vocabulary)으로부터 단어들의 임의의 시퀀스들을 인출하지만 그 외에는 주어진 음성 입력으로부터 인식될 수 있는 어떤 특정한 문법적 순서에 구속 받지 않는 자동 음성 인식 기술이다. "문법 기반 ASR(grammar-based ASR)" 참조.
"플레이스홀더(placeholder)" 또는 "플레이스홀더 단어(placeholder word)"는 "집합(aggregate)" 또는 "집합 단어(aggregate word)"와 동일하다.
"음성표기법(phonetic alphabet)"은 주어진 단어의 발음(pronunciation)을 규정하기 위한 이 음소들의 기록 시퀀스들에 대한 표기법(notation)을 가지는 주어진 언어 내에서 발견되는 모든 개별적 음성 단위("음소(phoneme)")들의 목록이다.
"1차 인식 단계(primary recognition step)" 또는 "1차 디코딩 단계(primary decoding step)"는 사용자의 구두(spoken) 명령 또는 요청을 1차 인식기에 입력으로 공급하는 단계와, 이 입력의 하나 이상의 표기(transcription)를 출력으로 산출하는 단계와, 선택적으로 이 입력 내의 각 표기 단어의 시작 시간과 종료 시간을 표지하는 단계를 포함하는, 일부 실시예들의 작동의 단계이다.
"1차 인식기(primary recognizer)" 또는 "1차 디코더(primary decoder)"는 시스템의 크지만 공칭으로(명목상, nominally) 고정된 어휘목록 내의 임의의 단어들의 시퀀스를 포함하는 발언을 표기할(transcribe) 수 있는, 종래의 공개 구술(open dictation) 자동 음성 인식(ASR) 시스템이다.
"1차 표기(primary transcription)" 또는 "1차 디코딩(primary decoding)"은 전체 또는 부분적으로, 1차 인식기에 의해 생성된 텍스트 형태의 보편적인(regular) 인간 언어의 단어들의 시퀀스, 또는 음성 입력 신호의 내용을 공칭으로 나타내는 다른 텍스트형 객체들이다.
"고유명칭(proper name)" 또는 "고유명칭 개체(proper name entity)"는 특정한 사람, 장소, 사업체 또는 사물(thing)을 지칭하는 하나 이상의 단어들의 시퀀스이다. 영어 철자법(orthography)의 전통에 의해, 전형적으로 고유명칭 개체의 기록 형태는 예를 들어 "Barack Obama," "Joseph Biden," "1600 Pennsylvania Avenue," "John Doe's Diner," "The Grand Ole Opry," "Lincoln Center," "cafe des Artistes," "AT&T Park," "Ethan's school," "All Along the Watchtower," "My Favorite Things," "Jimi Hendrix," "The Sound of Music" 등등에서와 같이 하나 이상의 대문자화된 단어들을 포함할 것이다. 그러나 이는 필요조건이 아니며, 이 명세서의 문맥 내에서 "daycare" 또는 "grandma's house" 같이 순수한 서술적 문구 역시 고유명칭 개체로 간주될 수 있다.
"2차 인식(secondary recognition)" 또는 "2차 디코딩(secondary decoding)"은 (1) 2차 인식기에 의한 전체적 또는 부분적인 2차 인식 단계의 실행, 또는 (2) 2차 인식 단계의 전체적 또는 부분적인 결과들 중의 어느 하나를 지칭한다.
"2차 인식 단계(secondary recognition step)" 또는 "2차 디코딩 단계(secondary decoding step)"는 사용자의 구두 명령 또는 요청의, 이 구두 명령 또는 요청의 전체를 포함할 수 있는 선택된 부분을 2차 인식기에 입력으로 공급하는 단계와, 이 입력의 하나 이상의 표기들을 출력으로 산출하는 단계로, 각 표기가 (1) 신뢰도 점수와 (2) 하나 이상의 연계된 의미 변수들과 그 값들로 표지되는 단계를 포함하는, 일부 실시예들의 작동의 단계이다.
"2차 인식기(secondary recognizer)" 또는 "2차 디코더(secondary decoder)"는 완전히 신규한 고유명칭과 단어들을 포함하여 새로운 어휘 단어들과, 신규한 단어 시퀀스들, 또는 양자에 초고속 적응(very rapid adaptation)을 수행할 능력으로 특징지어지는 자동 음성 인식(ASR) 시스템이다. 2차 인식기는 그 출력에 대한 ASR 신뢰도 점수를 생성할 수 있고, 각각 연계된 ASR 신뢰도 점수를 가질 수 있는 구분(distinct) 출력의 주어진 수 n까지의 "n 최선 모드(n-best mode)에서 작동할 수 있다.
"2차 표기(secondary transcription)" 또는 "2차 디코딩(secondary decoding)"은 전체 또는 부분적으로, 1차 인식기에 의해 생성된 텍스트 형태의 보편적인 인간 언어의 단어들의 시퀀스, 또는 음성 입력 신호의 내용을 공칭으로 나타내는 다른 텍스트형 객체들이다.
"의미론(semantics)"이라는 용어는 (1) NLU 시스템으로 추출된 대로의 의미의 또는 이에 관계된, (2) 전체적으로 NLU 시스템에서 추출될 수 있는 가능한 의미들의 집합(set)을 지칭한다.
"문법(grammar)"은 적응 객체로 사용될 수 있는 슬롯형 문법이다.
"슬롯형 문법(slotted grammar)"은 문법인데, 어떤 달리 표지되지 않은(unlabeled) 문법 아크들은 슬롯형 문법의 공칭 컴파일(compilation) 이후 0, 또는 문법 레이블들의 하나 또는 시퀀스가 채워질 수 있는 플레이스홀더 슬롯을 가진다. 슬롯이 채워지지 않고 남아 있으면 문법은 디코딩에서 연계된 아크가 존재하지 않는 것처럼 거동한다.
"스팬(span)"은 입력 발언(input utterance)의 전체 내에서 시작 시간과 종료 시간으로 식별(이하 "스팬 범위(span extent)"로 지칭함)되고, 고유명칭 개체를 포함한다고 가정되며(hypothesized), 이 개체의 추정 타입(putative type)(이하 "스팬 타입(span type)으로 지칭함)으로 표지되는(labeled) 입력 발언의 인접한 부분이다. 이 용어는 또한, 공칭으로 고유명칭 개체 자체의 일부가 아니더라도 음향 접두 및 접미 단어들을 포함한다. "음향 접두(acoustic prefix)", "음향 접미(acoustic suffix)", "목표 스팬(target span)" 및 "전체 스팬(full span)"도 참조.
"스팬 범위(span extent)"는 입력 발언 내의 스팬의 시작 시간과 종료 시간이다.
"스팬 타입(span type)"은 스팬 내에 존재한다고 믿어지는 고유명칭 개체의 추정 타입으로; 이에 따라 개인 명칭, 업체 명, 번지가 붙은 거리 주소(numbered street address) 등이다.
"목표 스팬(target span)"은 2차 인식 단계로 디코딩된 음향 스팬의 일부로, 공칭으로 고유명칭 개체의 단어를 포함한다. 이에 따라 이 용어는 음향 접두와 음향 접미를 제외한 음향 스팬을 지칭한다.
"이해 단계(understanding step)"는 1차 인식기로 생성된 사용자 발언의 텍스트와 단어 타이밍(word timing)들을 입력으로 공급하는 단계와, 사용자 입력의 하나 이상의 가정된(hypothesized) 기호적 의미(symbolic meaning)들을 출력으로 산출하는 단계를 포함하며, 이러한 각 의미는 하나 이상의 음향 스팬들의 식별을 포함하고, 스팬 범위와 스팬 타입을 포함하며, 각 스팬은 2차 인식 단계에 의해 별도로 처리되는, 일부 실시예들의 작동의 단계이다. 선택적으로, 각 가설상의 기호적 의미들은 연계된 NLU 신뢰도 점수를 포함할 수 있다.
"발언(utterance)"은 ASR 시스템에 입력으로 주어져, 그 시스템에 의해 표기(텍스트로 변환)될 음성이다.
하나 이상의 단어들의 "발성(verbalization)"은 이 단어들의 구어 형태(spoken form)를 포함하는 음성신호이다.
"어휘 목록(vocabulary)"은 비공식적으로 발음들에 연계된 단어들의 목록으로, 이는 ASR 시스템의 입력의 일부를 형성하고, 원칙적으로 이러한 시스템으로 인식될 수 있는 단어들을 규정한다. 공식적으로, 이 용어는 기본형들의 목록을 지칭할 수 있다. 또한 어떤 때는 "lexicon(어휘 목록)"으로도 지칭된다.
"VXML"은 문법 기반 ASR 시스템을 위한 문법을 규정하는 대중적(popular) 기준이다.
변수 "w"는 집합 단어(aggregate word)를 포함하는 총칭 단어(generic word)를 지칭한다.
"단어(word)"라는 단어는: 일반적(ordinary) 인간 언어의 일상적(conventional) 단어의 구어 형태, 이에 따라 이 단어의 발성; 일상적 인간언어의 일상적 단어의 텍스트형, 이에 따라 "문언(literal)"이 이 단어에 해당하거나; 또는 집합 단어(aggregate word) 중의 어느 하나를 지칭한다.
"ww"는 "전체 파형(whole waveform)"의 약자이다.
"wwapnr"은 "전체 파형 적응형 고유명칭 인식(whole waveform adaptive proper name recognition)"의 약자이다.
상세한 설명
실시예들의 개관(Embodiments Overview)
본 발명 기술들의 여러 예들을 이하 더 상세히 설명할 것이다. 이하의 설명은 이 예의 설명들을 완전히 이해하고 구현할(enabling) 수 있도록 구체적 상세를 제공한다. 그러나 관련 분야에 통상의 기술을 가진 자라면 이 상세들의 많은 부분이 없어도 이 명세서에 논의된 기술들을 구현할 수 있음을 이해할 것이다. 마찬가지로 관련 분야에 통상의 기술을 가진 자는 이 기술이 이 명세서에 상세히 설명되지 않은 많은 다른 자명한 특징을 포함할 수 있다는 것 역시 이해할 것이다. 또한 일부 잘 알려진 구조 또는 기능들은 관련 설명을 불필요하게 모호하게 하지 않도록 이하에 도시되거나 상세히 설명되지 않을 수 있다.
이하에 사용된 용어들은 실시예들의 어떤 구체적인 예들의 상세한 설명에 연계되어 사용되더라도 최광의의 합리적인 방식으로 해석되어야 한다. 실제, 어떤 용어들이 이하에서 강조되더라도; 어떤 제한적인 방식으로 해석되고자 의도한 어떤 용어는 이 부분에서와 같이 명시적이고 구체적으로 규정될 것이다. 동일한 사항이 여러 다른 방식으로 설명될 수 있고, 명세서의 다른 부분들이 동일 또는 유사한 개념들을 상세히 설명할 수 있음을 알 수 있을 것이다.
본 발명 실시예들의 여러 실시예들은 예를 들어 개인, 거리, 도시, 사업체, 랜드마크(landmark), 노래, 비디오 또는 이러한 사용자의 특정한 사용자에 관련된 것으로 알려진 다른 개체(entity)들의 명칭 등의 고유명칭을 포함하는 자유로운 구두 발언(freely spoken utterance)의 높은 인식 정확성과 이해를 달성한다. 여러 실시예들은 이전에 문제의(in question) 시스템에 포함된 적이 없는 완전히 신규한 고유명칭을 인식 및 이해하는 방법들로 인식 시스템을 강화시킨다. 여러 실시예들은 이 이점을 예를 들어 수백 밀리초 정도의 극히 낮은 지연(latency)으로 달성할 수 있다.
일부 실시예들은 그 안에 거리 명과 가능하기로 도시 명 및 주 명 역시 포함하는 번지가 붙은 거리 주소, 또는 거리 교차로들 등의 개체를 인식하는 데 사용될 수 있다. 후자의 예는 "333 Ravenswood Avenue" 또는 더 정확한 "333 Ravenswood Avenue, Menlo Park, California"이 될 수 있다. 일부 실시예들에서 "grandma's house," "The office," "daycare," "The playground" 등등과 같이 순전히 서술적이고 포괄적인(generic) 단어 시퀀스들도, 사용자가 시스템에 개인적으로 중요한 것으로 식별시킨 적이 있다면, 역시 처리될(addressed) 수 있다. 이 명세서 전체를 통해, "고유명칭(proper name)" 및 "고유명칭 개체(proper name entity)"라는 용어는 고유명칭과 이 문단 및 앞 문단에서 논의한 단어 시퀀스를 지칭한다.
일부 실시예들은 인식된 개체의 신원(identity)과 관련 명세(relevant particulars)에 적합하고 이에 연계된 (사업체 또는 연락처 명의 목록 내의 특정한 개체(entry), 거리 주소의 번지 부분, 사용자의 현재 주소 또는 지도 또는 내비게이션 시스템 내의 거리 명의 내부 기호적 레이블(inner symbolic label)의 색인번호(index) 등의) 기호적 의미 역시 추출하여 시스템이 전체로서 사용자의 구두 요청에 적절히 반응할 수 있다.
일부 실시예들의 추가적 이점은 공개 구술 ASR 시스템의 직접 적응 등의 종래 방법으로 달성될 수 있던 것보다 더 높은 정확도의 고유명칭 개체의 인식이다, 이 이점은 일부 실시예들이 음성 디코딩(speech decoding)과 의미 할당(meaning assignment) 프로세스가 정보의 추가 소스(source)를 활용할 수 있게 하였기 때문이다. 이 정보는 전적은 아니더라도 주로 NLU 처리 단계로부터, 최근의 이전 사용자 입력들과 검색 결과들 등의 시스템 전체의 상태 또는 개인 또는 전문 일정표(personal or professional calendar)의 내용 등의 사용자에 연계된 정보로부터 도출될 수 있다.
일부 실시예들의 추가적인 이점은 이 명세서에 기재된 방법의 일부로 준비된 시스템의 공개 구술 ASR 컴포넌트가 그 어휘 목록에 처음에 존재하지 않던 명칭과 개체들을 인식할 수 있게 하는 데 추가적 적응(adaptation)이나 수정(modification)이 필요 없다는 것이다. 이에 따라, 고유명칭들을 인식 가능하게 하는 데 필요한 적응은 시스템의 다른 컴포넌트들에 한정하고 이 공개 구술 ASR 컴포넌트가 복수의 사용자들에게 공유될 수 있다. 이는 몇 가지 중요한 이점들을 제공한다.
첫째, 공개 구술 ASR 시스템의 적응은 일반적으로, 수일 또는 수주는 아니더라도 몇 시간에 걸친 코스로 실행되는 시간 소모적인 프로세스이다. 이러한 연산 요건은 공개 구술 ASR 시스템이 예를 들어 사용자가 막 연락처 목록에 추가한 개인 명, 사용자가 막 전자 일정표에 추가한 사건 또는 약속 기록의 업체 명, 사용자가 현재 운행(navigate) 중이거나 운행할 예정인 지역의 거리 명 등을 공개 구술 ASR 시스템이 인식할 수 있게 신속히 수정하는 것을 실행 불가능하게 할 수 있다. 이에 비해, (본 발명의) 여러 실시예들은 시스템 전체가 이러한 명칭들에 효율적 및 즉각적으로 적응될 수 있게 해준다.
둘째, 공개 구술 ASR 시스템의 이러한 적응은 전형적으로, 각각 전자 컴퓨터 파일인 새로운 어휘 목록, 언어 모델 및 음향 모델 또는 그 일부 부분집합(subset)의 준비를 수반한다. 이러한 파일들은 전자 저장 기술의 현재의 기준으로도 커질 수 있다. 예를 들어, 전형적인 언어 모델은 저장장치의 약 4GB를 차지한다. 이 특별히 적응된 파일들을 준비하는 연산 및 이에 따른 경제적 경비와, 이들을 저장하고 요구에 따라 로딩하는 관련 경제적 경비는 시스템의 각 개별 사용자에게는 사용 불가능할 만큼(prohibitively) 높을 수 있다. 이에 비해, (본 발명의) 일부 실시예들은 공개 구술 ASR 시스템의 적응을 요구하지 않으면서도, 종래의 방식으로 적응된 공개 구술 ASR 시스템의 성능과 비슷하거나 더 우수한 정확도를 산출한다.
셋째, (본 발명의) 일부 실시예들에서 "1차(primary)" 개방 구술 ASR 시스템은 중앙 서버에 탑재되는 반면 "2차(secondary)" 문법 기반 ASR 시스템은 사용자의 개인 자산인 스마트폰, 자동차 대시보드, 텔레비전, 랩탑 또는 다른 전자 컴퓨팅 장치에 탑재될 수 있다. 후자의 장치는 이 명세서에서 "클라이언트 장치(client device)" 또는 "클라이언트(client)"로 지칭된다. 특정 사용자에 연계된 고유명칭 개체들의 인식과 이해를 가능하게 하는 시스템 조정은 2차 ASR 시스템에 한정되어 클라이언트 장치 내에서 독점적으로 실행될 수 있다.
이는 이 적응의 실행에 있어서, 사용자의 프라이버시가 중앙 서버에서 사용자의 개인 주소록의 내용의 전송, 저장 및 처리로 타협되지 않음을 의미한다. 매달마다 상용 및 정부의 "고도 보안(high security)" 컴퓨터 시스템의 침투 뉴스가 들리므로, 사용자의 개인 정보를 다른 장치로 보내지 않을 것을 보장하는 아키텍처는 매우 바람직하다.
시스템 개관(System Overview)
여러 실시예들은 특히 하나 또는 몇 개의 고유명칭들, 또는 일반적 단어들이지만 특이한 시퀀스들을 포함할 수 있는 유창한 인간 발언(human speech)을 포함하는 음성 신호를 입력으로 수용한다. 실시예들은 이 음성 신호의 정확한 텍스트 표기(textual transcription)와, 선택적으로 그 의미의 기호적 표현(symbolic rendering)을 출력으로 산출할 수 있다.
일부 실시예들에서, 시스템은 네 주요 기능 컴포넌트들을 포함하는데, 각각 1차 음성 인식기(primary speech recognizer)(또는 더 간단히 1차 인식기)와, 자연어 이해 모듈(a natural language understanding module)(NLU 모듈, 언어 이해 모듈, 또는 단순히 이해 모듈로도 지칭됨)과, 적응 객체 생성기(adaptation object generator), 및 2차 음성 인식기(secondary speech recognizer)(또는 2차 인식기) 들이다. 일부 실시예들은 또한 다섯 번째 주요 기능 컴포넌트, 점수 융합 및 가설 선택 모듈(score fusion and hypothesis selection module)을 포함하는데, 이는 뒤의 섹션들에서 논의할 것이다. 시스템 전체로서 일부 실시예들의 작동 동안 이 컴포넌트들이 이 명세서에 기재된 대로 작동하고 통신하며, 입력 음성 신호를 재처리될 수 있는 형태로 저장하도록 유발하는 기구(mechanism)들을 포함할 수 있다.
1차 인식기는 종래의 공개 구술(open dictation) 자동 음성 인식(automatic speech recognition; ASR) 시스템을 포함할 수 있다. 이러한 시스템은 인간 발언을 포함하는 음성 신호를 입력으로 수용한다. 이는 이 입력의 입력 음성 신호에서 각 표기된 단어의 시작 시간과 종료 시간이 표지된(labeled with) 텍스트 표기를 출력으로 산출할 수 있다. 이는 또한 각 표기된 단어에 ASR 신뢰도 점수(confidence score)를 첨부할 수 있고, 선택적으로 표기를 전체로 출력할 수 있다. 1차 인식기는 그 어휘 목록에 속하는 단어들의 임의의 시퀀스를 포함하는 발언(utterance)을 표기할 수 있다는 점에서 "공개 구술(open dictation)" ASR 시스템이 될 수 있다. 이는 단지 어떤 주어진 단어 시퀀스들만을 인식할 수 있다는 점에서 문법 기반(grammar-based) ASR 시스템과 다르다. 인식기가 "종래의 것(conventional)"인 실시예들에서는 이 지적이 인식기가 이 명세서에 기재된 실시예를 이용하지 않는다는 의미로 사용된다. 결과적으로 1차 인식기는 크지만 고정된 어휘 목록을 가진다고 추정될 수 있다.
이 어휘 목록은 고유명칭 또는 어휘 목록에 존재하지 않은 다른 신규한 단어들을 추가하는(augment with) 것이 어렵거나 불가능하다. 추가를 시도하는 것은 많은 분들, 시간들, 심지어 가능하기로는 수일의 연산 노력을 소요할 것이다. 이에 따라 이러한 미지의 고유명칭 또는 다른 신규 단어들은 - 전술한 고정된 어휘 목록 내에 열거되지 않았다는 의미에서 "미지(unknown)" - 이 1차 인식기로는 인식 가능하지 않다. 더구나, "The The"(1979년에 결성된 영국 음악 그룹)와 같이 단어는 어휘 목록에 속하지만 특이하고 가능하기로는 공칭으로 의미 없는 시퀀스를 포함하는 음성 신호가 제공되면, 1차 인식기가 정확한 표기를 생성하는 데 어려움이 있을 것이다. 또한, 이러한 특이한 단어 시퀀스들을 현저한 연산 노력 없이 1차 인식기가 정확히 표기하기는 종종 어렵다.
일부 실시예들에서, 자연어 이해 모듈이 1차 인식기에서 생성된 표기와 단어 타이밍(timing)들과, 선택적으로 추가적인 관련 정보를 입력으로 수용하여, 발언의 의미의 하나 이상의 가설(hypothesis)들(NLU 가설, 의미 가설, 또는 단순히 의미로도 지칭됨)을 출력으로 산출할 수 있다. 이 의미는 컴퓨터로 처리 또는 실행되기에 적합한 기호 형식(symbolic form)으로 표현될 수 있다. 각 의미 가설은 선택적으로, 그 특정한 의미에 대한 증거력(strength of evidence)을 반영하는 수치적 NPU 신뢰도 점수를 포함할 수 있다.
이 모듈은 추정 타입(putative type)을 가지는 (예를 들어 개인 명, 거리 교차로, 번지가 붙은 거리 주소 등등의) 고유명칭 개체(proper name entity)와 이 단어 또는 단어 시퀀스를 잠재적으로 포함하는 입력 표기로부터 특정한 단어 또는 단어 시퀀스를 식별할 수 있다. 이러한 각 단어 또는 단어 시퀀스는 고유명칭 개체 음향 스팬(proper name entity acoustic span) 또는 고유명칭 개체의 음향 스팬(acoustic span of a proper name entity) 또는 단순히 음향 스팬(acoustic span)으로 지칭된다. 이 단어 또는 단어 시퀀스를 음향 스팬으로 마킹(marking)하는 근거는 상당히 간접적일 수 있어서, 이를 포함하는 단어들의 공칭 의미를 반영하지 않을 수 있다.
주어진 가설은 하나 이상의 이런 음향 스팬들을 포함할 수 있는데, 각각 그 문구의 의미를 규정하기 위해 반드시 해석해야(resolve) 할 정보 요소를 구성한다. 스팬의 표기와 스팬의 의미는 그 실시예가 적용된 문맥(context)에 의해 판단(determine)될 수 있다. 일부 실시예들에서, 주어진 가설은 어떤 음향 스팬을 전혀 포함하지 않을 수 있다. 이 경우, 이 명세서에서 논의되는 고유명칭 인식 실시예들이 적용되지 않을 수 있다.
적응 객체 생성 모듈(adaptation object generation module) 또는 적응 객체 생성기(adaptation object generator)는 2차 인식기를 다음 문단에 기재된 방식으로 적응시키는 데 사용되는 연산 객체들을 생성할 수 있다. 이 명세서에 상세히 설명되는 바와 같이 이 프로세스는 두 스테이지(stage)로 분할될 수 있는데, 각각 객체 준비(object preparation)와 객체 완성(object finalization)이다.
마지막으로, 음성 신호를 입력으로 수용하여 표기 및 다른 정보를 출력으로 생성하는 한, 2차 인식기(secondary recognizer) 역시 ASR 시스템을 포함한다. 각 표기된 단어 및 선택적으로 출력 표기 전체에 ASR 신뢰도 점수를 첨부할 수 있는데; 이는 각각 연계된 ASR 신뢰도 점수를 가질 수 있는 구분(distinct) 출력들의 주어진 수(n)까지 생성할 수 있는 "n-최선 모드(n-best mode)"로 작동할 수 있다. 그러나 그 특성은 1차 인식기의 그것과 현저히 다를 수 있다. 구체적으로, 2차 인식기는 완전히 신규한 고유명칭과 단어들을 포함하는 신규한 어휘의 단어들, 신규한 단어 시퀀스, 또는 양자에 매우 신속하게 적응될 수 있다. 여기서 "매우 신속(very rapid)"은 "전형적으로 수백 밀리초 이하 내에 수행되는 것"을 의미한다. 이 적응은 전형적으로 2차 인식기에 적응 모듈에서 생성된 적을 객체를 로딩(loading)함으로써 이뤄진다. 2차 인식기는 또한 1차 인식기로 지원되는 수십억 개의 문구 대신 예를 들어 수십, 수백 또는 수천의 문구, 수치들의 비교적 적은 모음만을 표기하는 것으로 한정되는 점에서 1차 인식기와 다르다.
1차 및 2차 인식기는 또한 그 사용에 기반하여 구분될 수도 있다. 2차 인식기는 사용자의 구두 입력 전체를 포함하는 음성 신호를 처리하는 대신, 예를 들어 신호의 저장된 사본으로부터 추출된 하나 이상의 짧은 세그먼트(segment)들 만에 대해 작동될 수 있다. 이 세그먼트들은 이 명세서에서 음향 스팬(또는 간단히 스팬)으로 지칭된다.
위에 제공된 일반적 설명, 또는 이하에서 파악할 수 있는 본 발명과 그 실시예들의 교시 이외에 1차 및 2차 인식기의 내부 구조에 대해서는 더 이상 명문화하지 않는다. 이들은 예를 들어 자동 음성 인식의 딥러닝 접근(Automatic Speech Recognition A Deep Learning Approach), 저자 Dong Yu 및 Li Deng, Springer-Verlag London 간행, ISBN 1860-4862, ISBN 1860-4870, ISBN 978-1-4471-5778-6, ISBN 978-1-4471-5779-3 등의 책 또는 그 참고문헌들에서 파악할 수 있는, 자동 음성 인식을 수행하는 데 적합한 임의의 내부 구조, 연산 방법, 설계, 전략 또는 기법들을 사용할 수 있다. 특히 한정이 아니라 예시로, 이는 멜 주파수 켑스트럼(mel-frequency cepstral) 상수(coefficient), 선형 예측 부호화(linear predictive coding; LPC) 상수, 최대 가능도 선형 회귀(maximum likelihood linear regression), 음향 모델(acoustic model), 가우시안 혼합 모델(Gaussian mixture model) 및 이로부터 연산된 관측 가능도(observation likelihood), 심층 신경망(deep neural networks)을 포함하는 신경망, 회귀 신경망(recurrent neural networks), 컨볼루션 신경망(convolutional neural networks), 장단기 메모리 신경망(LSTM networks), 그리고 언어 모델의 여기(excitation), 활성화(activation), 또는 이에 연계된 출력값들, 은닉 마코프 모델(Hidden Markov model), n 그램 모델(n-gram model), 최대 엔트로피 모델(maximum entropy model), 하이브리드 구조(hybrid architecture), 탠덤 구조(tandem architecture), 및 어떤 다른 값, 방법, 또는 구조(architecture)를 포함할 수 있다. 뿐만 아니라, 1차 및 2차 인식기들은 (전술 및 후술하는 바와 같이 서로 구분되는 점을 제외하고) 완전히 동일한, 일부는 같지만 다른 부분은 다르거나 모든 부분에서 완전히 다른 내부 구조 또는 아키텍처를 사용하거나, 기법을 채택하거나, 또는 방법을 처리할 수 있다.
음향 스팬(Acoustic Spans)
전술한 1차 인식기는 다음 베이지안(Bayesian) 최소 오류 디코딩 방정식(minimum-error decoding equation)이 성립하는 대어휘(large-vocabulary) 공개 구술 ASR 시스템과 유사할 수 있는데, W* = argmax w P(A|W) * P(W), 여기서 A는 디코딩될(표기될) 음성 신호, W는 정확한 디코딩(표기)에 대한 가설(추정), 그리고 P(A|W) 및 P(W)들은 각각 표시된(indicated) 입력들에 대한 음향 모델과 언어 모델의 수치 값들이다. 이러한 시스템은 그 일반성(generality)을 통계적 언어 모델로부터 도출하여 양 P(W)를 연산할 수 있다. 그러나 바로 이 일반성이 1차 인식기의 특성 중의 하나인 수정 또는 적응의 곤란성(intractability)을 의미한다. 마찬가지로, 적응 개체 생성기의 특성과 성능이 문법 컴파일러(grammar compiler)의 특성과 성능이 될 수 있듯; 2차 인식기의 특성과 성능은 문법 기반 ASR 시스템의 특성과 성능이 될 수 있다.
이들은 일부 실시예들에서 발견될 수 있는 ASR 기술의 예시들일 뿐이며 이 실시예들이 이러한 경우들에 한정되는 것으로 이해되어서는 안 된다는 것에 주의를 요한다. 중요한 것은 1차 및 2차 인식기들의 능력들이며, 그 기능들이 달성되는 구체적인 수단들이 아니다. 그러나 일부 실시예들에서, 1차 인식기는 전술한 바와 같이 통계적 언어 모델을 사용하는 대어휘의 공개 구술 ASR 시스템이고, 2차 인식기는 문법 기반 ASR 시스템이다. 이를 기반으로 이 명세서에 많은 예들이 제공될 것이다.
예시적 기준 처리 개관(Example Standard Processing Overview)
다음은 일부 실시예들의 예시적 적용이다. 이 예는 두 명령들의 처리를 고려하는데, 첫 번째 것은 (본 발명으로) 개시된 실시예를 채택하지 않으며, 두 번째 것은 채택한다. 이 논의는 독자가 두 작동들의 시퀀스들을 비교 및 대조할 수 있게 하는 단순한 예시임을 알 수 있을 것이다. 휴대용 인터넷 연결 태블릿 컴퓨터상에서 작동하고, 사용자가 사업체(business)들을 카테고리 또는 서비스로 검색할 수 있게 하며, 원한다면 조회된(retrieved) 개별 기업(enterprise)들에 대한 추가적 관련 정보를 문의할 수 있는 구어 인터페이스(spoken language interface)를 가지는 시스템을 고려해 보자.
예를 들어 사용자가 San Francisco의 Golden Gate Heights 인근(neighborhood) 에 위치하여 "근처의 인도 식당들 좀 찾아줘(find some nearby Indian restaurants)"라는 구두 명령을 내렸다고 가정해 보자. 다음 설명은 고유명칭 개체들을 포함하지 않는 이 초기 명령이 어떻게 표기되어 의미가 해석되는지에 대한 설명한다. 즉 이 명령이 고유명칭 또는 고유명칭 개체들을 포함하지 않으므로 여러 본 발명 실시예들을 채택할 필요가 없다. 이에 따라, 본 발명 실시예들을 사용하지 않고 다음 작동들이 각각 1차 인식기와 자연어 이해 모듈에 의해 수행된다.
먼저, 음성 입력이 1차 인식기에 공급되고, 이는 1차 인식기의 어휘 목록에 있는 단어들의 시퀀스를 포함하는 표기(transcription)를 산출한다. 위 샘플 명령 내의 모든 단어들이 이 어휘 목록에 있다고 가정된다. 다음, 이 표기가 자연어 이해 모듈에 입력으로 공급된다. 고유명칭 개체 음향 스팬이 식별되지 않고 단일 의미 가설(single meaning hypothesis)이 생성된다고 가정하자. 이는 이 명령의 의미에 대한 (다음) 기호 표현(symbolic representation)을 산출하는데
YelpSearch [m_latitude=37.755196,
m_longitude=-122.46853,
m_sortBy=PROXIMITY,
m_categories=[indpak],
m_maxResults=5]
시스템은 이어서 이를 "Yelp®" 온라인 업체 검색 서비스로의 문의(query)로 변환한다. 이 문의는 Yelp® 서비스로 전달되고, 이는 사용자의 현재 위치에 해당하는 표시된 위도 및 경도 부근에 산재하는 인도 요리를 제공하는 5개의 레스토랑들의 목록을 회신한다. 그러면 시스템은 다른 온라인 서비스 및 그 내장 로직(inbuilt logic)을 사용하여 사용자에 대한 최종 응답을 생성한다. 5개의 조회된 레스토랑들을 열거하고, 그 지도상의 위치를 보이는 태블릿 디스플레이의 내용들이 도 1에 보인다.
도 1에서, 조회된 업체들은 "Masala Dosa," "Tikka Masala," "Guddu de Karahi," "Naan-N-Curry," 및 "Noori Pakistani & Indian Cuisine"들이다. 예를 들어 "cuisine," "curry," "Indian" 및 "Pakistani" 등 이 업체 명들 중의 일부는 표준 미국 영어에 속한다고 널리 인정되며, 이에 따라 어떤 합리적으로 견실한 ASR 시스템의 어휘 목록에서라도 찾아질 가능성이 높다. 그러나 "masala" 및 "Tikka" 등의 다른 것들은 더 의심스럽다. "Karahi"는 이것이 일부 사전들에 존재하는 한 실제 명목상으로는 영어 단어지만, 너무 특이하여 어떤 ASR 시스템 어휘 목록에서 발견될 가능성은 낮다. 그리고 인도 아대륙의 남자 아이의 이름(given name)인 "Guddu"는 북미시장을 위한 어느 상용 ASR 시스템에서도 발견될 수 없다고 거의 보증할 수 있다.
시스템이 "de," "Dosa," "Guddu, " "Karahi," "Masala," "Noori" 또는 "Tikka"의 어느 것도 그 ASR 어휘 목록에 포함하지 않지만, 본 발명 실시예들을 구현하는 시스템은 그럼에도 불구하고 "Guddu de Karahi에 어떻게 갈지 말해줘(tell me how to get to Guddu de Karahi)" 등의 명령을 인식하여 적절히 반응할 수 있다. 이는 일부 실시예들에서 적절한 음향 스팬을 식별하도록 1차 인식기와 자연어 모듈 양자로 얻어진 정보들, 및 다른 적절할 수 있는 이런 정보를 활용하여 표시된 업체 명(일부 실시예들에서는 가장 중요(nothing else))을 처리할 수 있는 전문화된(specialized) 인식기를 생성하고, 이어서 이 전문화된 인식기를 효율적으로(to good effect) 사용한다.
첫째, 후속 명령이 태블릿 디스플레이 상에 열거된 업체 중의 하나에 대한 명칭을 참조할 것을 예상하고, 시스템은 적응 객체 생성기가 2차 인식기가 이 명칭을 정확히 인식하도록 적응하기에 적합한 객체를 생성하도록 작동한다. 이는 이 명칭들을 정확히 포함하는 도 2에 도표 형태로 도시된 문법을 준비하고, 이를 2차 인식기가 쉽게 사용하도록 2진 형태로 컴파일(compile) 함으로써 이뤄진다. 전형적으로 수백 밀리초가 걸리는 이 작동은 Yelp®로부터 태블릿 디스플레이에 보일 명칭들의 목록을 수신하는 즉시 수행될 수 있다. 컴파일(compilation)은 다음을 포함할 수 있다. (1) 문법 내의 각 표시된 단어에 대한 하나 이상의 발음(pronunciation)들의 취득(이는 전형적으로 어휘 목록의 첫 검색으로 이뤄질 수 있지만, 이 검색이 실패하면 어떤 요구되는 발음들이 주어진 단어 스펠링에 표준 영어 발음의 기준 규칙들을 적용하여 하나 이상의 타당한 발음들을 산출하는"문자소 대 음소(grapheme to phoneme)" 또는 "g2p" 처리 모듈에 의해 자동으로 생성), (2) 단어들이 문법으로 허용된 순서로만 디코딩되도록(decoded) 허용하는 연산 구조의 생성, (2) 주어진 디코딩이 얻어지면 이 구조에 작동들이 표시된 의미 변수들 상에 수행되도록 첨부(이는 전형적으로 이 변수들에의 값의 할당을 포함), 및 (4) 이 구조를 적절한 문법 기반 ASR 시스템에 즉시 로딩되기에 적합한 형태로 산출하여 음성 입력의 디코딩의 안내에 사용한다. 도 3에 "business-names.g"로 표기된 이 컴파일된 문법은 그 타입(이 경우 유효하기로 business-names)으로 표지된(labeled) 다음 가능한 후속 사용을 위해 보유된다. 일부 실시예에서, 이는 적응 객체 생성 단계를 포함한다.
이 문법은 추정으로(speculatively) 생성될 수 있으므로 시스템 쪽에서는 이 작용이 어떤 뛰어난 예지력을 요구하지 않는다는 점에 주의해야 한다. 일부 실시예들에서, 예를 들어 사용자의 연락처 목록, 사용자의 개인 일정표 내의 업체들, 사용자의 iPod® 또는 USB 플래시 드라이브에 저장된 가수(artist) 이름, 노래 제목, 및 앨범 명, 또는 사용자가 현재 위치한 도시에 대한 모든 번지가 붙은 거리 주소 등을 포괄하는 다른 문법들이 마찬가지로 추정 기반으로 생성될 수 있다. 그 최종 결과(net result)는 특별히 적응된 2차 인식기들의 모음(panoply)이 2차 인식 단계에 사용되어 식별될 수 있는 여러 타입의 여러 스팬들을 처리할 수 있는 것이다.
시스템은 이제 추가 입력을 기다릴 수 있다. 다음 명령이 이 업체들 중의 하나를 참조할 것이라는 보장은 없다. 실제 사용자는 아마도 "사실은 대신 이탈리아 요리가 더 끌리네(actually I feel more like Italian food instead)"라고 말하며 다른 요리에 대한 요청을 낼 가능성이 있다. 이 문장은 인도 레스토랑에 대한 이전의 예시적 요청처럼, 어떤 고유명칭 개체가 없으므로, 이 명령은 전술한 바와 같이 처리되어 다음 기호적 의미를 산출할 수 있다.
YelpSearch [m_latitude=37.755196,
m_longitude=-122.46853,
m_sortBy=PROXIMITY,
m_categories=[italian],
m_maxResults=5]
이는 다음 이탈리안 레스토랑들에 대한 유사한 문의와 그 결과들의 화면상 디스플레이를 촉발한다. 마찬가지로, "show me some nearby hardware stores," 또는 "where can I get my shoes repaired" 등의 전혀 다른 명령들이 내려질 수 있는데, 이들은 마찬가지 방식으로 처리될 수 있을 것이다.
그러나 설명을 위해 사용자가 이제 "tell me how to get to Guddu de Karahi"라는 명령을 말했다고 가정하자. 전술한 바와 같이, 음성 입력은 먼저 1차 인식기를 통과하고, 이는 그 입력의 초기 공칭의 표기를 생성하여 단어 타이밍들을 표지한다. 이는 이 명세서에서 1차 인식 단계로 지칭된다. 사용자의 음성 입력은 2차 인식기에 의한 후속 처리를 위해 역시 보유될 수 있다.
초기 표기는 흔히 부정확할 수 있다. 실제, 1차 인식기의 어휘 목록이 사용자에 의해 말해지는 모든 단어들을 포함하지는 않으므로 부정확할 것이 확실하다. 현재 논의 중인 샘플 명령에서 이 명령의 발성(vocalization)을 포함하는 한 특정한 음성 입력에 대해, 1차 인식기는 실제 도 3에 도시된 바와 같이 단어 타이밍들로 표지된 단어 시퀀스 "tell me how to get to go to do a call Rocky"를 출력으로 산출한다.
다음, 이 불완전한 초기 표기가 자연어 이해 모듈에 제공될 수 있다. 이 모듈은 입력 단어 시퀀스를 처리하여 표기의 첫 여섯 단어들 - "tell me how to get to" - 에 컴퓨터 언어학(computational linguistics)의 표준 방법들을 적용함으로써 사용자가 방향을 요청한다고 판단한다. 표기의 나머지 - "go to do a call Rocky" - 는 공칭으로 약간 무의미하기도 하고 문구에서 전체적으로, 일상적인 회화체 영어(conventional conversational English)에서 운행(navigate)할 목표의 명칭을 포함할 가능성이 있는 위치를 점유하므로, 자연어 이해 모듈은 또한 표기의 이 부분에 해당하는 음성 입력의 부분에 아마도 디스플레이된 업체 명 중의 하나의 구두 표현(spoken rendering)이 포함될 것이라 판단한다. 이 명세서에 논의되는 바와 같이, 음성 입력의 이 선택된 부분은 고유명칭 개체 음향 스팬, 또는 고유명칭 개체의 음향 스팬, 또는 그냥 짧게 음향 스팬으로 지칭되는데, 이것이 이제 2차 인식기로 처리될 부분이다. 1차 인식기에서 생성한 단어 타이밍들 덕분에, 문제의 음향 스팬은 음성 입력의 1330ms에서 시작하는데, 이는 단어 "go"의 시작에 해당하고, 음성 입력의 2900ms에서 종료하는데, 이는 단어 "Rocky'의 종료에 해당한다는 것에 유의하기 바란다. 이러한 방법으로 스팬에 연계된 범위(extent)가 결정된다. 이 전체 작동은 이 예에서 자연어 이해 단계를 포함한다.
시스템은 이어서 2차 인식 단계로 진행한다. 언어 이해 모듈이 음성 입력의 특정 부분이 아마도 디스플레이된 업체 명들 중의 하나를 포함할 것이라고 결정한 덕분에, 이 명칭들(일부 실시예들에서는 이 명칭들만)의 인식을 가능하게 하는 미리 컴파일된 문법이 2차 인식기에 로딩된다. 추정 업체 명의 음향 스팬 - 즉, 음성 입력 신호의 1330 ms 내지 2900 ms의 샘플들의 시퀀스 - 이 2차 인식기에 입력으로 제공된다. 관련 없는 단어들 "tell me how to get to"를 포함하는 음성이 2차 인식기의 입력에서 억제되었고, 2차 인식기가 그 문법에 의해 "Masala Dosa," "Tikka Masala," "Guddu de Karahi," "Naan-N-Curry," 및 "Noori Pakistani & Indian Cuisine,"라는 문구들만을 인식하도록 문법에 의해 제약되므로, 음향 스팬의 정확한 표기 "Guddu de Karahi"가 용이하게 얻어진다. 뿐만 아니라, "Guddu de Karahi"의 성공적인 인식에 연계된 의미 변수 selected_business_index가 값 3으로 설정된다. 이것으로 이 예에서의 2차 인식 단계를 완료한다.
이 2차 인식의 결과를 입수하면, 음향 스팬 표기 "Guddu de Karahi"가 1차 인식기의 표기에 삽입(interpolate)되어 이 스팬에 대해 처음 추정되었던 단어 시퀀스 "go to do a call Rocky"를 대체함으로써 최종 표기 "tell me how to get to Guddu de Karahi"를 산출한다. 이에 따라 기호적 의미 directionApnrCommand에 항행 목표를 식별하는 파라미터가 채워져(populate) 완전한 기호적 의미를 산출한다.
directionApnrCommand [selected_business_index=3].
이 기호적 의미는 이어서 시스템의 다른 기능적 요소들로 처리되어 이 목표의 5개의 요소 어레이(array) 중 세 번째 업체에 관련된 정보(위치 포함)를 추출하고, 사용자의 현재 위치로부터 표시된 위치로의 경로를 발견하기 위한 적절한 작동들을 실행하고, 지도가 이 경로 등을 보이게 한다. 지도는 시스템 설계자에 의해 유용하다고 간주되고 앱(application) 맥락(context)에 적절한 다른 연계된 정보를 표시할 수 있다. 이 예의 결과적인 화상을 도 4에 보인다.
이 예가 보인 바와 같이, 개시된 실시예는 종래 시스템에 비해 많은 이점들을 제공한다. 문법 기반 ASR 기술의 "약점(아킬레스 건; Achilles heel)"은 사용자가 문법 내에서 발언하지 않으면 이 기술이 기능하지 않는다는 것이다. 이와 대조적으로, 본 발명 실시예들은 그의 요청을 발언할 때, 단순히 문법 내에 머물도록 시키지 않는다.
본 발명 실시예들은 사용자가 원하는 행위를 표현할 때 자연스럽게 나오는 단어들과 문구 구조를 사용하여 자유로이 발언할 수 있게 해준다. 그러면 연계된 음성입력이 1차 인식기와 언어 인식 모듈에 의해 분석되어, 명령의 정확한 처리에 실질적인, 고유명칭 개체가 실제 발언되었는지 판단하기 위해 분석된다. 그렇다면 음성 입력 내의 고유명칭 개체의 범위 및 추정 타입이 식별되고, 이어서 음성의 이 특정한 세그먼트가 2차 인식기에 의해 처리되어, 비교적 작은 후보(possibility)들의 목록 내에서 고유명칭 개체를 인식하도록 적응된다. 두 가지 중요한 관점에서의 이 과업의 좁힘(narrowing), 첫째로 문법 기반 ASR 시스템을 혼동시킬 수 있는 자유로이 형성되어 이제 필요 없는 음성을 잘라내고, 둘째로 가능한 표기의 공간을 극적으로 축소시키도록 2차 인식기를 적응시킴으로써, 이 2차 인식 단계가 성공되도록 할 수 있다. 이 분석 및 이어지는 좁힘은 또한 개시된 여러 실시예들이 제공하는 일반적으로 ASR 기술의 범위 너머에 있는 정보와 통찰력을 통합할 수 있는 능력에 좌우되는데, 구체적으로 이 경우에는 이전 명령이 업체들의 목록을 생성하여 후속 명령이 그 중의 하나를 호출할(naming) 가능성이 낮지 않다는 것과, 이에 더하여 "tell me how to get to"라는 문구 또는 유사한 의미의 무수한 다른 문구들은 아마도 고유명칭 또는 다른 항행 목표의 발성이 따를 것이라는 관찰이다.
1차 인식기와 언어 이해 모듈이 2차 인식기로 처리되기에 적합한 음향 스팬이 존재한다고 판단할 수 있는 많은 방법들이 있다는 것을 알 수 있을 것이다(일부 예들이 뒤에 제공된다). 이 많은 다른 방법들이 사용될 수 있다. 스팬들의 식별과, 2차 인식기의 적응과, 이어서 적절히 적응된 2차 인식기가 각 스팬에 작동하는 데 유효하다면, 당업계에 알려진 어떤 적절한 정보와 방법들이 채택될 수 있다. 실제 기존의 툴(tool)들을 전술한 기능들을 수행하도록 재설정함으로써 (본 발명) 실시예들이 기존의 설계들에 용이하게 구현될 수 있다.
일부 실시예들은 심지어 음향 스팬들을 식별하는 데 몇 개의 다른 상충되는(competing) 기구들을 포함하여, 이 모두들을 달리 별도로 적응된 2차 인식기들로 처리하고, 이 명세서에 논의되는 '점수 융합 및 가설 선택" 모듈에 의해 수행되는 하나 또는 몇 개의 생존 가설(사용자에 의한 발표(presentation)와 궁극적인 명확화(ultimate disambiguation)에 대한 생존)을 최종 결정한다.
특징들의 상세한 논의(Detailed Discussion of Features)
다음 섹션들은 여러 실시예들의 더 상세한 설명을 제공하는데, 효과적으로 적용될 수 있는 중요한 방식들을 설명하고, 특정한 응용들에 맞는 특별한 아키텍처와 여러 장애들을 극복하는 상세한 기술들을 기재하며, 스팬의 범위 또는 타입 식별에서의 오류를 처리하는 방법을 설명하고. 그리고 사용자의 구두 입력의 복수의 상충되는 표기 및 의미들 간에서 선택하는 방법들을 기재한다.
여러 실시예들은 음성 디코딩 프로세스(speech decoding process)(의미 추출, 즉 "이해" 프로세스 역시 살펴야 한다)를 1차 인식 단계와, 하나 이상의 이해 단계들, 하나 이상의 적응 객체 생성 단계들(객체 준비 스테이지와 객체 완성 스테이지를 포함할 수 있다)과, 하나 이상의 2차 인식 단계와, 그리고 (선택적으로) 점수 융합 및 가설 선택 단계로 분할한다.
1차 인식 단계는 종래의 공개 구술 ASR 시스템에 의한 입력 발언의 인식을 포함하는데, 이 시스템은 하나 이상의 스팬들의 범위와 타입을 식별하도록 언어 이해 모듈을 지원하도록 특별히 준비된다. 이는 공개 구술 인식기의 어휘 목록에 있는 발언의 표기(및 가능하기로 대체 표기 역시)와, 이에 더하여 각 표기된 단어들의 공칭의 시작 및 종료 시간들을 산출한다.
공칭으로 더 강력하고, 더 유연하며 더 연산의 부담이 큰 1차 인식기("더(more)"의 비교 대상은 2차 인식기)에 의해 이뤄지는 1차 인식 단계는 입력 발언의 최종 표기를 생성할 완전한 책임을 부담하지 않을 수 있다. 그 대신 이 단계의 주된 목적은 언어 이해 모듈이 의미의 완전한 사양(specification) 내에 출현할 수 있는 어떤 고유명칭 개체 음향 스팬들의 범위와 타입을 포함하는, 사용자의 명령의 하나 이상의 기호적 의미들을 가정하는 그 과업을 수행하는 데 충분히 정확한 표기를 제공하는 것이다. 1차 인식기의 표기 내의 단어들이 정확과 거리가 멀 수 있다는 것을 개관 내의 예에서 명확히 해야 한다. 실제, 1차 인식기는 각각 후술하는 처리 단계들을 겪게 되는 입력 파형의 몇 개의 대체적 표기들을 제공할 수 있는데; 바람직한 표기와 이에 연계된 의미를 최종 선택하는 수단이 짧게 설명될 것이다.
1차 인식 단계의 출력은 (1) 공칭의 표기와, (2) 한 프레임의 입도(granularity)로, 표기된 각 단어의 파형 내에서의 시작 및 종료 시간들, 및 (3) 가능하기로 어떤 음향 스팬의 범위와 타입을 판단하는 데 사용될 후술하는 다른 정보들을 포함할 수 있고, 이어서 이해 단계로 전달된다.
이해 단계는 자연어 이해의 방법들을 적용하여 공칭 표기에 대한 하나 이상의 기호적 의미들을, 이 의미에 기여하는 고유명칭 개체 음향 스팬의 범위와 타입의 식별에 적절하게 가정한다. 각 음향 스팬은 연계된 2차 인식 단계에서 처리될 가설의 요소가 되어, 그 스팬의 표기와 의미를 산출한다.
이 시점에서, 관련되지만 지금까지는 사용될 수 없던 정보가 이제 음성 인식 및 의미 추출 프로세스에 포함될 수 있다. 특히 1차 인식기의 현재 발언의 표기의 어느 부분, 이전에 디코딩된 발언들, 또는 심지어 GPS로 결정된 사용자의 물리적 위치, 또는 사용자의 알려진 선호 또는 특성 등의 완전히 비언어적인 정보 소스(source)들로부터 도출된 정보가 이 스테이지에서 사용되어 스팬 범위와 타입들을 할당하고 2차 인식기를 적절히 적응시킬 수 있다. 2차 인식기의 적응, 더 정확히(or rather) 2차 인식기의 하나 이상의 경우(instance)들의 적응에 사용될 수 있는 하나 이상의 객체의 준비는 적응 객체 생성 단계를 포함한다. 위 예에서 주의한 바와 같이, 여러 실시예들은 처리될 스팬들의 타입 또는 타입들에 적합한 여러 가지 적응 개체들을 추정으로 생성 또는 사용할 수 있다. 이 적응은 제2 인식기가 완전히 신규한 단어들을 인식할 수 있도록 준비하고, 제2 인식기가 그 어휘 목록에 있는 어떤 다른 단어들을 사용하지 않거나 이들은 특정한 순서로만 사용하거나 양자 모두로 제한하는 것을 포함한다.
이해 단계의 출력에 관해서는, 이 출력이 각각 하나 이상의 음향 스팬들을 가지는 가설들의 모음(collection)들을 포함할 수 있다. 이제 세 번째 단계로 진행하는데, 바로 제2 인식 단계이다. 이러한 각 스팬이 문법 기반 음성 인식기로 디코딩되고 이는 스팬 타입에 특별히 적응되었으므로, 실제 이런 단계들이 많이 존재할 수 있다. 공개 구술 인식기의 전문화된(specialized) 어휘 목록 또는 문맥으로의 적응은 전형적으로 연산에 고비용이 소요되므로(computationally expensive), 새로운 문법은 생성 또는 컴파일되거나, 또는 채워지지 않은(unpopulated) 플레이스홀더(placeholaer) "슬롯(slot)"이 완성되어 일부 실시예들에서 수백 밀리초 이내에 서비스에 제공될 준비가 된다. 적절히 전문화된 문법을 사용하여 대상(subject) 음향 스팬에만 수행된 이 2차 인식 단계의 출력은 그 스팬의 공칭(nominal) 표기로 취급될 수 있다. 이 시점에서, 이 동일한 문법의 문언(literal) 시퀀스들이 적절한 일반적 방식으로 문법을 통한 각 가능한 디코딩 경로의 의미들로 표지될 수 있다는 것에 주목해야 한다. 이에 따라 스팬을 표기하는 행위는 이와 동시에 그 표기에 연계된 적절한 기호적 의미를 생성한다.
이에 따라, 전형적으로 아주 정교한 문법들이라도 그 범위 밖에 위치하는 자유롭게 형성된 인간 발언이 제공되었을 때 문법 기반 ASR이 실패해도, 본 발명 실시예들은 문법 내의 발언이 제공되었을 때처럼 잘 수행된다. 선행하는 처리 스테이지들이 이 바람직한 조건을 설정한다. 사용자의 일간 약속 일정표에서 특정한 날에 대해 열거된 것으로부터 추출한 몇 개의 업체들 중의 하나의 명칭으로 구성된다고 이전 단계들에서 알려지거나 또는 더 정확히 가정된 음향 스팬을 고려해보자. 원래의 발언의 그 유일한(sole) 부분이 문법 기반 ASR 시스템에 음성 신호로 제공되고 디코딩에 사용되는 문법이 그 날에 대한 사용자의 일정표에서 추출된 업체 명만을 모두(all and only) 포함한다면, 정확한 고유명칭이 디코딩될 가능성이 매우 높다.
이러한 2차 인식은 이전 디코딩 스테이지들에서 식별된 각 음향 스팬들에 대해 원래 발언의 전체에 대한 최종 표기가 얻어질 때까지 수행될 수 있다. 이전 처리 단계들에서 상충하는 대체적 의미 가설들이 제안되지 않았다면 디코딩이 완료된다. 그러나 언제나 그렇지는 않을 것이다. 더 가능성이 높기로는 각각 하나 이상의 연계된 의미 가설들을 가지는 몇 개의 대체적 표기들이 생성될 수 있고, 각 가설은 NLU 및 ASR 신뢰도 점수들을 가진다. 최종적인 바람직한 디코딩을 선택하거나 최소한 각 전체 디코딩에 신뢰도 점수를 매겨 대안(alternative)들의 순위 목록을 제공하는 것이 아직 남아있다. 다른 가설들은 다른 수의 음향 스팬들을 포함할 수 있는데, 이는 다른 수의 신뢰도 점수들에 근거하는 가설들을 비교하길 강요할 수 있다. 의미 있고 신뢰성 높은 점수 근거의 순위가 가능하도록 이러한 점수들을 일관된 방식으로 조합하는 여러 가지 접근 방법들을 알 수 있을 것이다. NLU 시스템 자체도 이 순위의 생성에 관련된다.
이는 최종 단계인 점수 융합 및 가설 선택의 기능이다. 이 단계에서 특별한 "완전한 가설 순위 문법(complete hypothesis ranking grammar)"이 준비되는데, 여기서 각 허용 가능한 경로는 하나의 개별적인 완전한 표기의 전체를 포함한다. 그러면 원래의 발언은 그 전체가, 각 완전한 가설에 대해 공칭으로 P(T i |A)로 표현되는 음향 신뢰도 점수를 산출하는 n 최선 모드(n-best mode)로 작동하는 2차 인식기에 의해 이 문법에 대해 디코딩된다. 여기서 T i i번째 가설에 연계된 텍스트, A는 순위가 매겨지는 가설들에 걸쳐 상수인 음향 입력이다. 이것으로 충분하여 가설들의 순위가 순전히 이 음향 점수에 따라 매겨질 수도 있다.
그러나 NLU 신뢰도 점수들이 확률들에 대해 평균화(normalize)될 수 있다면 이들은 조건부 확률의 법칙(laws of conditional probability)의 이어지는 적용으로 ASR 신뢰도 점수와 유의미하게 조합될 수 있다. T i A가 위와 같이 표기와 음향 입력을 표기하고, M i i번째 가설에 대해 NLU 처리가 할당한 기호적 의미를 나타낸다고 하자. 주어진 연계 표기에 대한 i번째 가설의 NLU 신뢰도 점수에 대한 P(M i |T i )를 써보자. 그러면 조건부 확률의 곱(product) 법칙에 의해 P(M i ,T i |A) = P(M i |T i ,A) * P(T i |A)를 얻게 된다. 이제 합리적인 근사 P(M i |T i ,A) ?? P(M i |T i )를 하는데, 이는 사용자의 구두 입력이 사용자 발언의 정확한 표기에 의해 정확히 전달되었다는 개념을 수학적으로 표현한다. 그러면 이는 P(M i ,T i |A) ?? P(M i |T i ) P(T i |A)로 산출되는데, 이는 (고정된) 음향 입력 A의 정확한 의미와 표기를 가졌다는 신뢰성을 표현한다.
예시적 적용(Example Applications)
이제 본 발명 실시예들의 여러 가지 적용을 논의하고 이들이 어떤 원하는 기능들을 달성하는 데 어떻게 사용하는지를 보인다. 예를 들어, 본 발명 실시예들은 예를 들어: (검색의 결과인) 업체 명; (개인 전화번호부, 개인 일정표 또는 양자로부터 조회된) 업체 명; (전화번호부, 또는 일정표로부터 조회된) 개인 연락처 명; 위치(번지가 붙은 주소); 위치(교차로); 위치(랜드마크); 음악 라이브러리 검색; 비디오 라이브러리 검색; (예를 들어 텔레비전 채널 명, 호출부호(call sign) 또는 번호 등의) 비디오 소스 명칭; (예를 들어 라디오방송국 명칭, 호출부호, 또는 주파수 번호 등의) 오디오 소스 명칭; (예를 들어 주어진 스포츠, 리그, 또는 부(division)의 프로 또는 대학 팀의 명칭 등) 스포츠 팀의 명칭, (예를 들어 전술한 스포츠 팀의 멤버의 이름, 또는 경주마(race horse) 또는 다른 경주 동물의 이름 등) 스포츠 참여자의 이름; 및 (예를 들어 스타디움, "box seats" 등의 총칭과 "Coca-Cola All You Can Eat Section" 같은 고유명칭 등의) 엔터테인먼트 장소와 그 섹션들; 및 (예를 들어 공항 및 기차역 등의) 여행 터미널의 명칭에 적용될 수 있다.
각 적용에 있어서, 이 명세서에 기재된 본 발명의 여러 실시예들과 같이 스팬의 타입에 맞추는 방식으로 2차 인식기를 좁히면서도 그 어휘목록을 증가시킬 수 있는 적응 객체를 어떻게 구축할 것인가를 지적할 것이다. 여러 예들에 연계된 적응 객체들의 내용은 스팬 내에서 명명된 개체의 특성에 있어서 서로 광범위하게 다를 수 있다.
적응이 수행되어야 하는 속도와, 적응 객체 내의 개체들 간에 존재하는 공통적 관계의 특성들의 지속성에 있어서도 역시 다를 수 있다. 역으로 표현하면, 적응 객체들은 이들의 관계의 일시성(ephemerality)의 정도에 있어 변화될 수 있다. 앞 문단의 예에서와 같이 한 극단에서는 이 명칭들 간의 관계가 아주 잠깐이어서 (예를 들어) 사용자의 현재 위치 근방의 최고의 인도 요리 레스토랑의 목록을 원하는, 주어진 사용자의 변덕(whim)에서 발생된다. 마찬가지로, 이는 특정 레이스를 우연히 달리게 된 말의 이름에서 발생할 수도 있는데; 상기 관계는 그 레이스를 언급할 때만 관련하여 유의미하다. 다른 극단에는, 예를 들어 스포츠 스타디움 등의 특정한 엔터테인먼트 장소의 좌석 섹션의 명칭이 있는데, 좌석 섹션 그 자체는 문언상 아주 확정적이어서, 이에 붙은 명칭은 홍보 계약(promotional contract)을 나타내거나 역사적 사건들에서 도출되는데; 이 경우 상기 관계는 지속적이고 변화가 느리다. 더 일시적인 경우에는 적응 객체를 필요에 따라(as-needed) 기반으로 생성하는 것이 바람직할 것이다. 역으로 좀 더 지속적인 경우는, 적응 객체들을 미리 생성하여 나중에 조회하여 사용하도록 이들을 저장할 수 있다. 그러나 이 모든 예들은 본 발명의 하나 또는 다른 실시예를 이용함으로써 사용자의 구두 명령을 정확히 표기하고 이에 기호적 의미를 할당하는 구어 인터페이스(spoken language interface)를 구비하는 것이 바람직하다.
업체 명의 첫 경우에, 적응 개체는 막 실행된 검색에서 조회된 명칭들로부터 구축될 수 있다. 업체 명의 두 번째 경우, 적응 객체는 개인 전화번호부, 개인 일정표 또는 양자로부터 조회된 업체 명들로부터 구축될 수 있는데, 가능하기로 현재 날짜의 개인 일정표로 제한된다. 개인 연락처 명의 경우, 적응 객체는 개인 전화번호부, 개인 일정표 또는 양자로부터 조회된 업체 명들로부터 구축될 수 있는데, 가능하기로 현재 날짜의 개인 일정표로 제한된다. 첫 번째 위치(특히 번지가 붙은 거리 주소)의 경우, 적응 객체는 미리 구축된 웰(well) 중의 하나가 될 수 있는데, 각 객체는 지역(전형적으로 시) 내의 모든 자치구(political subdivision) 내의 모든 거리에 대한 거리 주소들을 포함하여, 실제 사용되는 적응 개체는 그 자치구에 대한 명시적 또는 암시적인 선행 요청에 따라 GPS 등으로 결정된 사용자의 현재 위치, 또는 (예를 들어 "tell me how to get to three thirty three Ravenswood Avenue in Menlo Park"라는 1차 인식기 표기에서 표기된 단어 "Menlo Park" 등) 사용자의 발언의 어느 부분으로부터 1차 인식기로 디코딩된 자치구의 식별 중의 어느 하나에 의해 결정된다.
두 번째 장소(특히 교차로)의 경우, 적응 객체는 마찬가지로 미리 구축된 많은 웰들 중의 하나가 될 수 있는데, 각 객체는 어떤 지역의 모든 주어진 자치구 내의 모든 거리의 교차로들을 포함하고, 실제 사용되는 적응 객체는 전술한 바와 같이 결정된다. 음악 라이브러리 검색의 경우, 다양한 적응 객체들이 사용자의 개인 음악 저장 장치 내의 가수 이름, 노래 제목, 앨범 명, 장르 명 등으로부터 구축된다. 비디오 라이브러리 검색의 경우, 항행할 비디오 내용의 주어진 카탈로그 내의 다양한 적응 객체들이 배우 이름, 감독 이름, 및 장르 명으로부터 구축된다.
예를 들어 케이블 텔레비전 시스템을 통해 근접하는 비디오 소스의 경우, 채널 명, 호출부호(call sign) 또는 번호들의 목록은 발언이 수신될 수 있는 주어진 가정(household)으로부터 물리적 또는 논리적으로 연결된 케이블 시스템 운영자 분배 허브(hub) 또는 "분배소(headend)"에 좌우될 수 있다. 적응 객체는 이 목록의 요소들로부터 구축될 수 있는데, 그 일부는 매우 기이할(idiosyncratic) 수 있다. 케이블 시스템 운영자는 수천 개의 별도의 분배소를 가질 수 있으므로 적응 개체의 준비는 (1차 인식기의 적응과 반대로) 신속하고도 염가이며, 이 명세서의 실시예들은 각 분배소의 상세에 적응된 텔레비전 제어를 위한 구어 인터페이스를 제공할 경제적인 수단을 제공할 수 있다. 여기서의 모델은 처리를 위해 수신된 각 발언이 공칭의 어떤 중앙 설비에서, 명시적 또는 암시적으로, 서비스되는 분배소와, 하나 이상의 적절한 적응 대상들을 식별하는 데 적합한 다른 어떤 요소 또는 요소들, 또는 이를 생성할 정보로 표지될 수 있다. 그러면 문제의 발언은 미리 존재하여 저장장치로부터 조회되거나 바로 생성되는 것 중의 하나인 이 하나 이상의 적응 객체들에 대해 처리될 수 있다. 이러한 방식으로, 소비자는 본 발명의 하나 이상의 실시예들이 채택되어 이에 따라 주어진 가정의 상세에 맞춰지면서도 서비스가 수용할 만큼 저렴한 경제적 비용으로 제공될 수 있는 구어 인터페이스의 우수한 서비스를 경험할 수 있다. 이는 구두 명령으로 시청 또는 녹화할 비디오 소스를 선택함으로써 예를 들어 케이블 텔레비전 시스템 등의 제어에 유용할 것이다.
타이틀들은 방영시간표에 따라 방영되거나 주문에 따라(on demand) 방영될 수 있는데, 양자는 서비스하는 분배소에 따라 변화되므로, 동일한 논의가 비디오 타이틀의 근접에도 마찬가지로 적용될 수 있다.
유사한 논의가 오디오 소스의 경우에도 적용될 수 있는데, 예를 들어 사용자의 현재 지리적 위치에 따라 달라질 수 있는 라디오 방송국 명, 호출부호, 주파수, 있다면 위성 라디오 서비스 제공자, 사용자가 첨부한 미디어의 내용, 또는 다른 이런 상세들이다. 이는 구두 명령에 의해 청취할 오디오 소스를 선택하는 예를 들어 케이블 텔레비전 시스템, 홈 오디오 시스템 등의 비디오 또는 오디오 시스템의 제어에 유용할 수 있다.
스포츠 팀의 경우, 적응 객체는 사용자의 현재 지리적 위치와, 사용자의 개인적인 친밀감, 또는 현재의 달력상 날짜에 따라 달라질 수 있는 스포츠, 프로 또는 대학 팀, 리그 또는 부의 어떤 주어진 선택에 대해 주어진 명칭, 별명, 마스코트 이름, 또는 다른 대체적인 참조 수단의 하나 이상으로부터 구축될 수 있다. 이는 구두 명령으로 시청 또는 녹화할 비디오 소스를 선택함으로써 예를 들어 케이블 텔레비전 시스템 등의 제어에 유용할 것이다. 이는 또한 구두 명령에 의해 예를 들어 시합의 특성과 결과, 팀의 위치 또는 다른 관련 정보를 문의함으로써 정보 시스템을 제어하는 데 유용할 것이다.
스포츠 참여자의 경우, 예를 들어 메이저 리그 야구TM(Major League BaseballTM) 및 경마 등의 어떤 스포츠는 더 자주는 아니더라도 매일 바뀔 수 있는 참여자들 - 반드시 인간일 필요는 없다 - 을 명명해왔다는 사실에 독자의 관심을 요한다. 야구의 경우, 선수들은 팀 간에 트레이드되거나, 메이저 리그 팀 명단으로 승진(명단의 크기를 제한하는 MLBTM 규정을 준수하기 위해 이에 따른 다른 선수의 강등을 수반)할 수 있다. 더구나, 신흥 "강자"(rising "phenom")의 이름을 인식하고 이해하는 것이 아주 갑자기 중요해질 것이다. 이에 따라 메이저 리그 야구에 대한 문의를 서비스하는 구어 인터페이스에 있어서는, 적응 객체가 가능하기로 강등된 선수들의 이름 역시 포함하고, 아직 승진하지 못한 마이너 리그 선수들 역시 포함하는, 메이저 리그 팀 명단 상의 선수들의 현재의(instant) 목록으로 구성될 수 있다. 이는 구두 명령에 의해 예를 들어 주어진 선수의 특성 또는 성적을 문의하는 정보 시스템의 제어에 유용할 수 있다.
마찬가지로 경마의 경우, 참여자들 - 말과 기수, 및 조교사를 포함할 수 있다 - 의 이름이 레이스마다 바뀐다. 그러므로 이에 따른 적응 객체는 상기 경기에 대해 문의와 베팅(betting)을 지원하는 시스템에 대한 구어 인터페이스에 대해 각 개별 레이스마다 준비되어야 한다. 말들의 이름은 매우 기이한 경향이 있고, 이에 따라 아주 성능 좋은 1차 인식기의 어휘 목록이라도 나타날 가능성이 낮다는 점에도 유의해야 한다. 예를 들어 Gulfstream Park West 트랙에서의 최근의 레이스에 공적으로 등록한 말들의 이름은: Il Biondo, The Real Ralph, Galleguin, Papa Rizzo, Moon Lover, Here Comes Surgio, Gran Network, Hollander, Money Broker, Seeyainthetestbarn이다. 이 상황은 이 명세서에서 전술한 기이한 업체 명의 예와 다르지 않다. 또한 어휘 목록에 단어들로 존재하여 시스템에 제공될 수 있는 온갖 문의들에 적절한 언어 모델 확률에 부합한다 하더라도 이는 말 이름일 가능성이 낮다. "what are the odds for Secretariat" 또는 "I'll wager $100 on Man o' War" 등의 문구에 부합하는 언어 모델 확률에 대해 추정해보면 - 이 유명한 동물들의 두 이름 모두, 각 말이 유명해지기 전에는, 보통 소문자 형태로 나타나기는 하지만 이 단어들을 포함하는 실행(running) 텍스트의 자연 n 그램 계수에 기반하여 완전하게 타당한 영어 단어들이다. 이는 구두 명령에 의해 예를 들어 특정한 말의 특성 또는 성적을 문의하는 정보 시스템의 제어에 유용할 수 있다. 이는 또한 구두 명령에 의해 특정 레이스의 결과에 베팅하는(place bets upon) 도박 시스템(wafering system)의 제어에도 유용할 수 있다.
스포츠 장소의 경우, 예를 들어 스포츠 이벤트의 티켓을 판매하는 시스템의 구어 인터페이스를 고려할 수 있다. 여기서 적응 객체는 좌석들을 구매하는 구두 명령에 관련될 수 있는 특정한 좌석 섹션의 명칭을 포함할 수 있다. 티켓의 판매는 다단계(multi-stage) 프로세스가 될 수 있는데, 이는 장소의 사용자와 문제의 이벤트의 날짜의 식별로 시작될 수 있다. 또는 날짜와 장소가 동일한(one and the same) 구두 명령의 다른 부분에서 식별될 수 있다. 어느 방법이건 일단 이 정보가 알려지고 나면 그 명칭이 기이하더라도 구어 인터페이스를 문제의 장소의 좌석 섹션들의 명칭에 적응시키는 데 도움이 될 것이다. 예를 들어, 확실히 내야(baseball diamond)와 두 더그아웃(dugout)들과 외야를 가지기는 하지만, 모든 메이저 리그 야구TM 스타디움은 이상한 이름들의 좌석 섹션들을 가진다. 이상한 좌석 섹션 명칭들, 이들을 찾을 수 있는 야구장(ball park)들, 및 스타디움에 연계된 팀의 불완전한 목록을 포함하는 아래 표 1을 참조하라. 티켓을 구매하기 원하는 좌석 지역을 식별하기 위해 티켓 구매자는 이러한 섹션 명칭을 언급하기를 원할 것이므로, 표기와 이해의 높은 정확도를 보장하도록 구어 인터페이스가 연계된 장소에 관련된 좌석 섹션 명칭을 인식하게 적응시키는 것이 바람직할 것이다. 이는 구두 명령에 의해 스포츠 또는 다른 엔터테인먼트 장소의 티켓의 구매를 제어하는 시스템에 유용할 것이다.
스타디움 이름 선택된 좌석 섹션 이름
Minute Maid Park Houston Astros Lexus Field Club, Raymond James-Alex Brown Diamond Club, Insperity Club, Crawford Boxes, Budweiser Brewhouse, Torchy's Party Deck
Dodger Stadium Los Angeles Dodgers Lexus Dugout Club, Baseline Club, Time Warner Cable Left Field Pavilion, Coca-Cola All-You-Can-Eat Right Field Pavilion
Chase Field Arizona Diamondbacks All You Can Eat, La Terraza, The Draft Room, Coors Light Strike Zone, PetSmart Patio
표 1: 예시적인 기이한 MLBTM 스타디움 좌석 섹션 이름들
여행 터미널의 경우, 적응 객체는 특정 모드의 수송에 종사하는 터미널들, 또는 운영 중인 수송회사, 또는 사용자의 빈번하거나 가능성 높은 것으로 알려진 목적지로 구성될 수 있다. 이는 구두 명령에 의한 티켓 구매 시스템의 제어에 유용할 것이다.
이 모든 경우들에, 그리고 또한 더 일반적으로, 즉시 좁게 집중됨에 따라 우수한 음성 인식과 언어 이해 성능을 나타내지만 이와 동시에 낮은 지연(latency)와 낮은 경제적 비용으로 원하는 적응 또는 적응들을 구현할 수 있는, 구어 인터페이스를 관련 개체들에 적응시키는 수단을 가지는 것이 바람직할 것이다.
그러나 이 목록은 단지 예시적일 것을 의도한 것이지 완전한 것이 아니다. 본 발명 실시예들은 다른 방식으로도 마찬가지로 적용될 수 있을 것이다.
음향 문맥의 결합(Incorporating Acoustic Context)
음운(phonological) 언어학자와 ASR 기술 개발자들에게 마찬가지로 잘 알려진 바와 같이, 유창하게 발언되는 문구에서 어떤 주어진 단어 전후에 발성된 단어들이 주어진 단어의 발성에 현저한 영향을 끼친다. 이는 동시조음(coarticulation) 현상이다. 두 변형예가 흔히 인식되는데: 주어진 단어 뒤에 발성될 단어 또는 단어들이 주어진 단어의 발성을 변화시키는 예측 동시조음(anticipatory coarticulation)과, 및 주어진 단어 앞에 발언된 단어 또는 단어들이 마찬가지로 주어진 단어의 발성을 변화시키는 이월(carryover) 또는 반복 동시조음(perseverative coarticulation)이다.
동시조음의 원인들은 복잡하지만 이 효과는 적어도 부분적으로 인간의 발성기관(입술, 턱, 혀, 성대주름(vocal fold) 등)의 요소들이 0이 아닌 질량을 가지는 물체(physical object) 객체이며 이에 따라 한 구성에서 다른 것으로 즉시 이동하지 못한다는 사실에 기인한다. 이에 따라 화자가 주어진 음소를 발성하기 전의 이 기관의 위치, 마찬가지로 다음에 올 것으로 의도한 위치가 음소를 발성할 때 사용되는 위치에 영향을 미쳐 그 자체의 소리를 내는 것이다.
이음(異音; allophone)들이 이 현상을 설명하는 데 사용될 수 있는데, 특정한 음소에 맞추는 데 사용되는 템플릿(template) 또는 모델이 이를 선행하는 음소들의 시퀀스와 후행하는 시퀀스에 따라 만들어진다. 그러나 일부 실시예들의 2차 인식 단계, 또는 더 적절하기로 이 단계에 연계된 적응 객체의 생성은 동시조음을 처리하지 못한다. 전술한 예에서, 준비된 적응 객체 - 업체 명의 문법 예에서 - 는 열거된 명칭들을 선행 또는 후행하는 단어들을 보여주지 않는다. 이러한 문법은 선행 또는 후행 단어들이 없이 고립되어 발성된 명칭들 중의 하나로 구성된 발언을 디코딩하는 데 적절할 것이다. 그러나 실제 디코딩될 발언은 더 길고 유창하게 발언된 문구로부터의 추출물이다. 위 예에서는 발성된 명칭 뒤에 침묵만이 후행하지만, 실제로는 몇 개의 단어들이 이를 선행하고, 이들이 업체 명 자체 내의 하나 이상의 단어들의 사용자의 발음에 영향을 끼칠 가능성이 있다. 이 음향 문맥이 인식 프로세스에 어떻게든 반영되지 않는다면 2차 인식이 실패할 수 있다.
이에 따라, 일부 실시예들은 음향 문맥을 적응 객체 생성 단계에 포함하는 방법을 채택하여, 2차 인식기가 동시조음을 수용할 수 있다. 이하의 논의는 이 방법의 한 실시예의 작동을 보이는 실행예이다. 이 예는 도 5, 6, 및 7에 관련하여 논의된다.
사용자가 시스템에 "send a message to Steve Youngest hi Steve how are you"라는 명령을 발언했다고 가정해보자. 1차 인식기는 이 음성 입력을 표기하여 "send a message to steve young us hi steve how are you"라는 공칭 출력을 산출한다. 자연어 모듈은 이 표기 및 연계된 단어 타이밍들을 수신하고, 제공된 증거들에 근거하여 "Steve young us"이라는 단어들이 입력 발언 내에서 1690 ms 내지 2530 ms의 범위로 개인 연락처 명칭 타입의 음향 스팬을 포함한다고 결정한다.
사용자의 주소록 내의 연락처 명을 포함하는 공칭의 적응 객체는 도 5에 도시된 구조를 가진다. 다시 말해, 이는 각각 한 개인 연락처 명이고 연계된 문언 시퀀스가 2차 인식기에 의해 디코딩된다면 실행될 어떤 적절한 의미 변수 명령으로 표지된 대안들의 목록을 포함한다. 그러나 이는 연락처 명이 발성된 음향 문맥에 대한 정보는 포함하지 않는다. 이런 정보가 없이 문법이 컴파일되면, 각 연락처 명을 문언으로 표현하는 데 사용된 음소 모델들이, 디코딩될 발성 명칭이 유창하게 발성된 단어들 "message to"로 선행되고 침묵이 뒤따른 다음 발성된 단어 "hi"가 후행된다는 사실을 처리하도록 조정하는 것이 불가능하다(발성된 연락처 명의 후단(trailing) 음소들이 실제로 예측 동시 조음을 겪지 않을 것을 암시하므로 발성된 명칭에 침묵이 후행한다는 것 자체가 문법 컴파일 프로세스에 정보를 준다는 사실에 주목 바란다).
그러나 이 정확한 정보는 추정 연락처 명에 선행하는 어떤 복수의 단어들과 마찬가지로 후행하는 단어들을 포함하도록 스팬 범위를 확장하는 컴파일 프로세스에 노출될 수 있다. 이는 도 6에 도시되어 있는데, 역시 일부 새로운 명명법을 도입한다. 여기서 실시예는 추정 연락처 명 앞에 두 단어들 "message to"을 포함하고 추정 연락처 명 뒤에 두 단어들 "SIL hi"를 포함하도록 선택된다(침묵을 처리할 때는 그 자체를 단어로 간주하는데, 여기서는 1차 인식기에 의한 표기에서 "SIL"로 표기한 것에 주목 바란다). 도 6에 도시된 바와 같이, 이 단어들은 각각 음향 접두음향 접미로 지칭된다(동등하게 "접두 음향 스팬(prefix acoustic span,)" "접두 스팬(prefix span)" 또는 "선행 문맥(precontext)", 그리고 마찬가지로 "접미 음향 스팬(suffix acoustic span)," "접미 스팬(suffix span)" 또는 "후행 문맥(postcontext)"). 추정 연락처 명 자체 - 이전에 단순히 '스팬'으로 지칭되던 - 는 이제 "목표 음향 스팬(target acoustic span)", "목표 스팬(target span)" 또는 짧게 그냥 "목표(target)"로 표기된다. 마지막으로, 접두, 목표, 및 접미 셋 모두를 포함하는 스팬의 이제 확장된 범위를 암시한다는 것을 명확히 하기 위해, "전체 음향 스팬(full acoustic span)" 또는 "디코딩 음향 스팬(decode acoustic span)"(또는 짧게 그냥 "전체 스팬(full span)" 또는 "디코딩 스팬(decode span)")으로 지칭한다.
이제 다시 컴파일 프로세스로 돌아와, 적응 문법은 도 6에 보이는 구조로 개정된다. 즉 1차 인식기의 음향 접두의 디코딩이 문언으로 이전 구조에 선행하는 아크(arc)들을 따라 삽입되고, 접두로 디코딩된 단어들이 마찬가지로 이를 선행하는 아크들을 따라 삽입된다. 이 예에서, 이 문언들은 그 스팬의 의미의 결정에는 기능하지 않으므로 어떤 의미 변수들을 가지지 않는다. 오히려 그 기능은 문맥의 목표 섹션 내의 각 개인 연락처 명의 발음에 연계되는 이음들의 선택에 있어서 컴파일 프로세스에 필요한 음향 문맥을 제공하는 것이다.
이 실시예의 예에서, 연계된 2차 인식 단계가 수행되면, 처리된 음성 발췌(audio excerpt)는 음향 접두의 첫 단어의 공칭 시작으로부터 음향 접미의 마지막 단어의 공칭 종단까지의 전체 스팬을 포함한다(전체 범위가 실제 2차 인식기로 처리-디코딩되므로, 이것이 이 명세서에서 "디코딩 스팬"으로도 지칭되는 이유이다). 접두 및 접미에 대한 문법에는 대체적인 경로들이 없으므로, 이는 2차 인식기가 접두 문언과 그 대응 음성 간, 마찬가지로 접미 문언과 그 음성 간에 강제 정렬(forced alignment)을 수행하도록 유발하는 효과를 가진다.
이 예시적 과정은 다른 중요한 이점 역시 가진다. 컴퓨터 또는 훈련된 사람이라도 파형 내에서 한 단어가 어디서 끝나고 다음 단어가 시작하는지 정확히 결정하기 때로 어려울 수 있다. 도 6을 참조하면, 단어 "steve"의 첫 출현이 정확히 1690 ms에서 시작되는가? 또는 하나 또는 두 프레임 일찍 1680 ms 또는 1670 ms에서 시작하는가? 또는 가능하기로 약간 늦게 1700 ms 또는 1710 ms에서 시작하는가? 비슷한 의문이 목표 스팬의 종료를 규정하는 단어 "us"의 종단에 대해서도 발생된다. 2차 인식기가 목표 스팬 범위만을 처리한다면, 연계된 단어 타이밍들이 매우 정확할 필요가 있지만, 아마 그러기는 불합리할 것이다.
이에 비해, 접두 및 접미 문언들을 문법에 포함하여, 스팬 범위를 대응 음성을 포함하도록 확장하면, 스팬 경계를 파악하는 문제를 각각 접두의 시작과 접미의 종단으로 이동시킨다. 대안들 간의 선택이라는 관점에서의 실질적인 디코딩이 수행되지 않으므로, 이 경계들을 할당하는 데 있어서의 사소한 오류는 이제 문제가 되지 않는다. 단어 "message"의 시작의 몇 프레임이 스팬에서 빠지거나 종단의 프레임에 "a"가 잘못 포함되더라도, 음향 접두 문언의 강제 정렬은 그럼에도 성공할 것이다. 이는 접미에 대해서도 참일 것이다. 그러나 이 예에서, 목표를 포함하는 모든 프레임들을 더 분명히 찾을 수 있으므로 인식기는 문법의 목표 섹션 및 연계 음성 신호에서 자유로이 대체 문언들을 간의 최선의 음향 대응(acoustic match)을 연산할 수 있다.
이 실시예의 예에서, 적응 객체 - 즉 이 실시예에서 개인 연락처 명 문법 - 는 1차 인식 단계에서 결정된 대로 접두와 접미를 채울(populate) 수 있다. 사용자의 구두 문구를, 이제 언어 이해 단계와 하나 이상의 인식 단계들 사이에 실행되는 적응 단계의 일부로서 저지연(low latency)으로 달성하고자 하는 욕구에 대한 도전으로 출현하는 것으로 보일 수 있다.
여러 실시예들이 소위 "슬롯(slot)"을 가지는 문법을 고려하고 있는데, 이는 아주 마지막 순간에 아주 저지연으로 채워질 문언에 대한 플레이스홀더(placeholder)이다. 사용자의 개인 연락처 목록으로 부터의 명칭들을 포함하고, 음향 접두 문언과 음향 접미 문언들을 위한 네 채워지지 않은(unpopulated) 슬롯들을 가지는, 목표 섹션을 가지는 이 "슬롯형 문법(slotted grammar)"은 이 명칭 목록이 입수되는 즉시 시스템의 여유시간에 추정으로 생성될 수 있다. 이 문법이 도 7에 도시되어 있다. 이 문법을 생성 및 컴파일하고, 슬롯들을 채우지 않은 채 두는 것이 적응 객체 생성 단계의 준비 스테이지(preparation stage)이다. 그러면 이는 적절한 순간(moment)에 사용될 준비를 유지한다. 이 슬롯형 문법은 이어서 적응 객체 생성 단계의 완성 스테이지(finalization stage)에서 1차 인식기의 표기로부터 추출된 적절한 단어들이 채워진다.
예시적 클라이언트 및 서버 토폴로지(Example Client and Server Topology)
도 8은 일부 실시예들에서 이뤄질 수 있는, 서버 및 클라이언트 고유명칭 해석 모듈(proper name resolution module)들을 가지는 음성 처리 시스템(speech processing system 800)의 여러 컴포넌트들을 도시하는 블록도이다. 도시된 토폴로지는 설명의 목적으로 제공되는 단순한 예이며 쉽게 변경될 수 있음을 일 수 있을 것이다. 예를 들어, 도시된 모듈들은 클라이언트로부터 서버로 재배치될 수 있으며 역도 마찬가지다(예를 들어 이행(fulfilment)(모듈)이 서버에서 수행되어 결과들을 클라이언트에 반환할 수 있다). 이에 따라 도시된 컴포넌트들의 배치와 토폴로지는 많은 가능한 구성들 중의 단순한 한 예시이다.
전술한 바와 같이, 도시된 시스템은 고유명칭 개체를 포함하지 않는 발언(예를 들어 "show me nearby restaurants")들뿐 아니라 고유명칭 개체를 포함하는 발언(예를 들어 "tell me how to get to Guddu du Karahi")들을 처리하는 데 사용될 수 있다. 사용자(805)는 클라이언트 장치(815)에 명령(810)을 발언할 수 있다. 클라이언트 장치는 iPhone®, iPad®, 태블릿, 개인용 컴퓨터, 개인 휴대 정보 단말기(personal digital assistant) 등, 또는 사용자(805)로부터 음성을 수신할 수 있는 어떤 장치가 될 수 있다. 사용자 인터페이스(820)는 유입된 명령을 파형(waveform; 825a)으로 변환한다. 이 파형(825a)은 서버(850)로 전송되기 전에 로컬로(locally) 저장될 수 있다. 파형을 로컬로 저장하면, 그 파형(825b)을 서버로부터 클라이언트로 다시 전송해달라고 요청할 필요 없이, 파형의 일부를 가설들에 근거하여 클라이언트 장치에서 나중에 고려할 수 있게 해준다(일부 다른 실시예에서는 서버가 대신 파형의 전부 또는 일부를 클라이언트에 다시 전송할 수 있음을 알 수 있을 것이다).
서버(850)는 파형(850b)을 1차 인식기(830)에 제출할 수 있다. 1차 인식기는 당업계에 알려진 "공개 구술(open-dictation)" ASR 시스템이 될 수 있다. 예를 들어, 1차 인식기(830)는 단위 음소(phonetic component)들로 파형 내의 어휘 연계 에너지 패턴(lexicon associating energy pattern)들을 사용(employ)하여 단위 음소들에 해당하는 단어들을 식별한다. 당업계에 알려진 베이지안(Bayesian) 기법들이 적용될 수 있다.
서버 시스템(850)응 1차 인식기(830)로부터의 표기와 단어 타이밍들을 가설들로 변환하도록 구성된 자연어 이해 모듈(Natural Language Understanding module; NLU)(855)을 포함한다. 가설(815)들 및 연계된 메타데이터(metadata)들은 (예를 들어 인터넷 등의) 매체를 통해 클라이언트 시스템(815)로 전송된다. 전술한 바와 같이, 발언에 고유명칭 개체가 출현하지 않으면 가설은 어떤 음향 스팬 없이 생성됨에 유의하기 바란다. 그러나 (예를 들어 "Guddu du Karahi" 등의) 고유명칭 개체가 발언에 나타나면, 하나 이상의 음향 스팬들이 가설들 내에 표시된다. 가설들의 메타데이터는 단어 발생에 대한 타임스탬프(timestamp)와 주어진 단어에 대한 인식 신뢰도 등의 ASR의 결과들을 포함할 수 있다.
가설들은 2차 인식기(860)에 수신될 수 있다. 2차 인식기(860)는 이 명세서에 논의하는 바와 같이 문법 기반 ASR 시스템이 될 수 있다. 가설들이 음향 스팬들을 포함하지 않으면, 가설들은 (필요시) 채점 모듈(scoring module; 885)을 통과하여 최선 대응(best match)을 식별하고, 가능하기로 기호 표현으로 이행 유닛(fulfillment unit; 890)으로 진행하는데, 이는 (예를 들어 Yelp??에 요청하는 등) 요청을 이행하려 시도할 것이다. 예를 들어 예시적 요청 "근처 식당을 보여줘(show me nearby restaurants)"에 대해, 이행 유닛(890)은 지도 서버에 접촉하여 사용자(805)의 좌표 근방의 식당들의 목록을 요청할 수 있다. 결과(870)들이 조회되고 나면 클라이언트 장치는 이 결과들을 사용자에게 제공한다.
그러나 가설들이 (예를 들어 요청 "tell me how to get to Guddu du Karahi" 등에서와 같이) 음향 스팬들을 포함하면, 2차 인식기(860)는 적응 객체 생성기(855)를 참조(consult)하여 사용자 장치의 여러 컴포넌트(840a-e)로부터 고유명칭의 적절한 문법을 식별할 수 있다. 음향 스팬들에 대해 가능한 고유명칭들이 식별되면 2차 인식기(860)는 여러 식별된 고유명칭 개체들을 적용하여 해당 신뢰도 수준들을 결정할 수 있다. 이 디코딩들은 채점 모듈(885)에 조회되어 가장 가능성 높은 후보가 식별될 수 있다. 그러면 가장 가능성 높은 후보는 전술한 바와 같이 이행 모듈(890)로 전달된다.
이와 같이, 사람, 장소, 또는 다른 개체들의 특이한(fanciful) 상표명의 고유명칭을 인용하지 않는 문의는 종래의 방식으로 처리될 수 있다. 그러나 이러한 고유명칭 개체를 포함하는 문의 역시 전술한 바와 같이 2차 인식기를 사용하여 쉽게 식별할 수 있다. 또한, 도 8이 고유명칭 식별 모듈들이 장치들 간에 분할된 클라이언트-서버 아키텍처를 도시하지만 이 토폴로지에 대한 변형들을 쉽게 알 수 있을 것이다. 예를 들어, 클라이언트-서버 아키텍처 대신 모든 논의된 작동들이 (예를 들어 클라이언트 장치(815) 등의) 단일한 장치에서 이뤄질 수도 있다.
예시적 프로세스 흐름 개관(Example Process Flow Overview)
도 9는 자동 음성 인식(ASR)과 자연어 이해(NLU) 컴포넌트들을 사용하는 여러 실시예들에 대한 고유명칭 인식 프로세스를 대략(at a high level) 도시한 흐름도이다. 이 명세서에 논의한 바와 같이, 발언 내에서의 고유명칭의 인식은 일반적으로 도 9에 도시된 4단계로 진행된다. 이 단계들은 이 명세서에서 일반적으로 "1차 인식(primary Recognition)"(905), "이해(Understanding)"(910), "2차 인식(Secondary Recognition)"(915), 및 "융합(Fusion)"(920)으로 지칭된다. 도시된 순서는 단지 예시적 목적일 뿐이며, 여기 도시된 것과 다른 실시예들에서는 프로세스 블록이 다른 시간들에 이뤄질 수 있음을 알 수 있겠지만, 클라이언트는 블록 900a에서 "적응 객체 생성(Adaptation Object Generation)"의 객체 준비 스테이지를 수행할 수 있다.
예시적 문구 "tell me how to get to Guddu du Karahi"에 대한 "1차 인식"(905)은 공개 구술(ASR) 유닛(830)에서 이뤄질 수 있다. "1차 인식"(905)의 출력(805)은 공칭 표기와, 한 프레임의 입도(granularity)의 각 표기된 단어의 파형 내에서의 시작 및 종료 시간과, 이에 더하여 하나 이상의 추정 고유명칭 개체 음향 스팬들과 각 스팬의 타입에 관련된 정보를 포함할 수 있다.
이어서 NLU(855)는 "이해" 단계(910)를 수행하여, 자연어 이해 방법들을 적용함으로써 각 스팬에 대한 하나 이상의 타입들을 가정하고, 가능하기로 1차 인식 단계에서 할당된 스팬 경계(시작 프레임과 종료 프레임)들 역시 조정하며, 모두 이후에 규정되어 각 스팬의 디코딩을 도울 잠재적인 끼움말(shim) 단어들, 및 접두 및 접미 음향 문맥 단어들 등의 추가적 정보를 제공할 수 있다.
이에 따라, 서버는 후술하는 바와 같이 텍스트 내에 고유명칭이 존재함을 추론하여 그 해석(resolution)에 대한 하나 이상의 가설(815)들을 준비할 수 있다. 이 가설(815)들은 클라이언트에 제출될 수 있다. 그러면 클라이언트는 사용자 장치의 여러 컴포넌트(840a-e)로부터 고유명칭을 식별할 수 있다. 예를 들어, GPS(840a) 컴포넌트는 사용자의 위치 근방의 관련 거리 명을 제공할 수 있고, 주소록(840c)은 사용자(805)의 연락처들을 저장할 수 있으며, 검색 캐시(search cache; 840d)는 사용자(805)에 의해 수행된 최근의 문의와 작동들을 반영할 수 있고, 그리고 일정표(840b)는 사용자(805)에 연계된 미팅과 사건들을 반영할 수 있다. 하나 이상의 이들 컴포넌트들로부터의 내용은 이 명세서에 논의된 바와 같이 고유명칭 개체를 식별할 때 고려될 수 있다.
클라이언트는 단계 900b에서 "적응 객체 생성"의 완성 스테이지를 수행할 수 있다. 예를 들어, 클라이언트는 (예를 들어 검색 캐시 등의) 여러 로컬 모듈들을 참조하여 "2차 인식"(915)에 대한 문법에서 고려될 적절한 고유명칭 개체를 식별할 수 있다. 단계들이 반드시 이 순서로 진행될 필요는 없어 "적응 객체 생성"이 프로세스에서 더 일찍 이뤄질 수도 있음을 알 수 있을 것이다.
이어서 클라이언트는 "2차 인식"(915)을 수행하는데, 그 음향 스팬들에 대한 대체적인 여러 고유명칭 개체들을 찾음으로써 적절한 로컬 해석 결과들을 달성한다. 예를 들어, 클라이언트는 ASR 또는 별도의 문법 기반 ASR 시스템을 사용하여 파형의 주어진 부분이 컴포넌트(840a-d)로부터 식별된 고유명칭 개체에 대응할 확률을 결정한다.
"2차 인식"(915) 동안, 컴포넌트(840a-d)에 기반하여 타입과 시스템의 사용자에 특별히 적응된 문법을 사용하여 클라이언트측의 고유명칭 해석들 내에서 이러한 각 스팬은 이제 문법 기반 음성 인식기로 디코딩된다. 공개 구술 인식기의 전문화된 어휘 또는 문맥으로의 적응이 연산적으로 고가인 반면, 채워지지 않은 플레이스홀더 "슬롯"들을 가지는 문법 또는 새로운 문법은 클라이언트 상에서 수 초 이내에 생성되어 서비스 준비가 될 수 있다.
적절히 전문화된 문법을 사용하여 주제의 음향 스팬 상에 수행된 "2차 인식" 단계(915)의 출력은 그 스팬의 공칭 표기로 간주될 수 있다. 이 동일한 문법의 문언 시퀀스들이 문법을 통한 각 잠재적인 디코딩 경로의 의미와 함께 표지될 수 있다. 이에 따라 표기의 생성은 이와 동시에 선택된 경로에 대한 적절한 기호적 의미를 생성한다. 고유명칭에 연계된 원래 발언의 일부만이 문법 기반 ASR 시스템에 음성 입력으로 제공되고 디코딩에 사용된 문법이 그 날에 대한 사용자의 일정표에서 추출한 모든(all and only) 업체 명들을 포함한다면, 정확한 고유명칭이 디코딩될 가능성이 아주 높다.
이전 처리 단계들에서 제안된, 각 스팬의 존재, 타입, 또는 범위에 관해 상충되는 대체적 가설들이 없다면, "2차 인식"(915)이 완료되고, 디코딩된 결과가 이행을 위해 제출될 수 있다. 그러나 각각 NLU 및 ASR 신뢰점수들을 가지는 (고유명칭 개체에 해당하는 음향 스팬이 포함될 수도 포함되지 않을 수도 있는) 몇 개의 대체적인 디코딩들이 가정될 수 있으므로 어떨 때는 그렇지 않다. 이 상황에서, 클라이언트 모듈은 최종 선호하는 디코딩을 선택하거나 각 전체 디코딩에 신뢰도 점수를 할당하여 대안들의 순위 목록을 서버에 제공할 수 있다. 다른 가설들은 다른 수의 음향 스팬들을 포함할 수 있으므로, 이는 다른 수의 신뢰도 점수들에 근거하는 가설들의 비교를 강요할 수 있다. 고유명칭들이 NLU 유닛의 문맥 내에 있다고 간주되는 경우 다른 점수들의 "융합"(920)이 이뤄질 수 있다.
전술한 바와 같이, "1차 인식" 단계(905)는 더욱 강력하고 더욱 유연하지만 문법 기반 ASR보다 연산상의 요구가 더욱 큰 공개 구술 ASR(830)에 의해 이뤄질 수 있다. "1차 인식" 단계(905)는 고유명칭을 인식하는 일부 실시예들에서 입력 발언의 최종 표기를 생성할 주된 책임을 지지 않을 수 있다. 오히려, 이 단계는 하나 이상의 고유명칭 개체들을 포함하는 입력 파형의 부분 또는 부분들을 결정할 수 있다. 예를 들어, 공개 구술 ASR(830)은 식별된 단어들이 특히 낮은 신뢰성 수준을 자지는 파형의 부분들을 단순히 표시(note)할 수 있다.
공개 구술 ASR(830)이 처음에 사용되므로, 이 접근 방법은 전체로서 ASR 문법에 부합하도록 제약되지 않는 발언 내에 발생하는 고유명칭 및 유사한 개체들(이하 "고유명칭 개체들(proper name entities)로 지칭함)의 높은 정확도의 인식 및 이해를 달성할 수 있다. 더구나, 고유명칭 개체들은 정상적으로 구성된 ASR 시스템의 어휘 목록에는 존재하지 않는 단어들을 포함하거나 전적으로 이들로 구성될 수 있다.
동일한 기법이 그 안에 거리 이름과 가능하기로 도시와 주 명 역시 포함하는 번지가 붙은 거리 주소 등의 개체들의 인식에도 사용될 수 있다. 후자의 예는 "333 Ravenswood Avenue" 또는 더 정확한 "333 Ravenswood Avenue, Menlo Park, California"가 될 수 있을 것이다. 마지막으로, 사용자가 개인적으로 중요하다고 시스템에 식별시킨 "grandma's house," "he office," "daycare," "che country club" 등과 같이 순전히 서술적이고 총칭인 단어 시퀀스들 역시 도 9의 프로세스로 처리될 수 있다.
일부 실시예들은 - 중간의 NLU 처리 단계에서 도출된 - 추가적인 정보 소스를 음성 디코딩 및 의미 할당 프로세스에 전체로서 사용되도록 한다. 일부 실시예들에서, 시스템의 공개 구술 ASR 컴포넌트는 이 명세서에 설명된 방법으로 준비되면, 심지어 그 어휘 목록에 존재하지 않는 명칭과 개체들의 인식이 가능하게 하는 데 더 이상의 적응 또는 수정을 요하지 않는다. 이에 따라, 고유명칭을 인식할 수 있게 하는 적응을 시스템의 다른 컴포넌트들에 한정하고, 이 컴포넌트가 복수의 사용자들에게 공유될 수 있다.
일반화된 고유명칭 인식 프로세스(Generalized Proper Name Recognition Process)
도 10은 일부 실시예들에서 이뤄질 수 있는 고유명칭 인식 프로세스의 여러 단계들을 보이는 흐름도이다. 블록 1005에서, 시스템은 사용자로부터 발언 파형을 수신할 수 있다. 이 프로세스가 클라이언트와 서버 장치들 간에 분할되어 있으면 이 명세서에 논의한 바와 같이 파형의 사본이 클라이언트에 보유된다.
블록 1010에서, "표준(standard)" 공개 구술 ASR이 이 파형에 적용될 수 있다. 이는 심지어 신뢰도 수준이 극히 낮은 경우라도 파형의 모든 특성(aspect)에 대한 완전한 텍스트 단어를 산출할 수 있다. 그러나 일부 실시예들은 공개 구술 ASR의 수정판을 파형에 적용하여 고유명칭을 반영할 수 있는 단어들이 명시적으로 식별되는 하나 이상의 텍스트 판독(reading)들을 달성하도록 할 수 있다(예를 들어 여전히 임계값을 초과하지 못하는 단어에 대한 가능한 최고 신뢰 수준(highest possible confidence level)에 근거하여). 이 수정된 시스템은 잠재적 고유명칭에 대한 플레이스홀더 단어들을 지적할 수 있다(예를 들어 이 명세서에 논의되는 바와 같이 fna, lna, sa 행선(destination)들). 블록 1010은 대략 "1차 인식" 단계(905)에 해당할 수 있다. 블록 1020은 대략 "이해" 단계(910)에 해당할 수 있다.
블록 1030에서, 시스템은 예를 들어 신뢰도 수준이 임계값 미만에 해당하여 하나 이상의 단어의 신뢰도 값들이 부족(deficient)한지, 또는 수정된 시스템이 그렇지 않고 하나 이상의 잠재적 고유명칭을 식별하였는지를 판단할 수 있다. 모든 신뢰도 점수들이 임계값을 초과하거나 또는 고유명칭 후보가 달리 식별되지 않는 경우, 시스템은 블록 1035로 천이한다. 블록 1035에서, 시스템은 처리를 완료하여 요청의 기호적 표현을 생성할 수 있다. 단계 1040에서, 시스템은 기호적 표현을 사용하여 이행을 시도하고 어떤 결과를 사용자에게 반환한다. 이에 따라, 블록 1035 및 1040은 예를 들어 클라이언트 장치에서 작동들을 수행하는 등 다른 앱(application)들로 용이하게 대체될 수 있다.
역으로, 가능한 고유명칭들이 블록 1030에서 식별되면, 블록 1045에서 시스템이 이 명세서에 더 상세히 설명된 바와 같이 음향 스팬들을 포함하는 부족한 단어들에 근거하여 하나 이상의 가설들을 생성한다. 블록 1050에서, 예를 들어 클라이언트 장치 등의 시스템이 그 첫 명칭 문법에 대해 각 가능한 첫 명칭 세그먼트를 디코딩할 수 있다. 블록 1050은 일반적으로 "2차 인식" 단계(915)에 해당할 수 있다. 일부 실시예들에서, "2차 인식" 단계(915)는 "1차 인식"(905) 및/또는 "이해"(910) 작동들에 의한 텍스트 출력의 적당한 위치에 가장 가능성 높은 문법 디코딩 결과들을 삽입하는 정도로(little more than) 축소될 수 있다.
블록 1055에서, 시스템은 음향 스팬들(및/또는 음향 스팬들이 없는 가설에 연계된 신뢰도 수준)에 대해 제안된 고유명칭 개체들 중 어느 것이 발언에 가장 잘 부합하는지를 판단할 수 있다. 예를 들어, 시스템은 가장 높은 누적(cumulative) 신뢰도 값들을 가지는 해석을 식별할 수 있다. 이 결정은 하나 이상의 원래의, 공개 구술 ASR의 신뢰도 값들과, 블록 1050에서 결정된 ASR 문법 기반의 신뢰도 값들과, 및 가능하기로 "점수 융합"(920)의 일부로서 ASR 문법 기법 결과들을 사용하는 2차 NLU 판단을 감안하여 이뤄질 수 있다.
적절한 해석이 식별되면, 시스템은 단계 1060에서 고유명칭을 기호적 형태로 변환하여 전체 발언의 기호적 표현을 이행을 위해 제공한다. 역으로, 단계 1055에서 적절한 해석이 발견되지 않으면, 시스템은 단계 1065에서 실패를 통지하고, 시스템은 그 대신 부족한(deficient) 확률 또는 가장 가까운 근사치를 가지는 단어들로 이행을 시도할 수 있다.
"이해"/ 가설 생성의 예("Understanding"/ Hypothesis Creation Example)
도 11은 일부 실시예들에서 생성될 수 있는 예시적 가설 말뭉치(corpus)이다. 이 예시적 가설들은 단계 1045의 일부로서 생성될 수 있다. 파형(1105)은 사용자 발언 "where is Guddu de Karahi, the restaurant, located?"(1110)에 연계될 수 있다. 클라이언트 ASR/NLU 및/또는 서버 ASR/NLU가 제안된 디코딩(1115a-c)들을 생성할 수 있다. 디코딩(1105a)은 단어들 "goose" 및 "karate"에 연계된 신뢰도 값이 각각 110 및 105로 발언을 "where is goose karate the restaurant, located?"로 해석한다. 낮은 신뢰도 값이 생성되었지만 어떻게든 단어들이 식별되는 이 예는 전술한 블록 1015 및 1045를 통한 경로에 해당한다. 이 신뢰도 값은 예를 들어 300의 임계값보다 낮아 부정확한 연계를 나타낼 수 있다. 이 예에서, 단어들이 피상적으로 유사하므로 "goose"가 "Guddu"에 잘못 대응되고 "karate"가 "Karahi"에 잘못 대응되었다. 이에 따라 110 및 150 신뢰도 수준은 가능성 낮은 대응을 반영한다(예를 들어, 파형의 스펙트럼 특성이 이 단어들 내의 음소들의 기대 특성에 일치하지 않기 때문에). 그러나 제안(1115b-c)에서 더 나은 고유명칭 대응이 발견되지 않으면, 시스템은 이 해석을 디폴트(default)로 수용하고, 이 단어들을 이행을 위한 기호적 표현에 제출한다.
두 번째 제안된 디코딩(1115b)에 있어서는, 클라이언트 ASR/NLU 및/또는 서버 ASR/NLU가 90 및 75의 낮은 대응 신뢰도 수준으로 "Guddu"를 "parking for"로 해석할 수 있다. 여기서 시스템은 "Karahi" 내의 파형의 일부를 알 수 없고 이에 따라 잠재적 고유명칭으로 간단히 식별했다. 후술하는 바와 같이, 적절한 대체적 식별자(identifier)(fna, lna, 등)가 가설을 위해 삽입될 수 있다.
마지막으로, 제안된 디코딩(1115c)에서, 시스템은 간단히 "Guddu de Karahi" 파형의 전체를 인식 불가능하다고 인식하였다. 시스템은 두 별도의 단어들이 발언된 것은 인식할 수 있지만, 단어들의 신원(identity)은 알 수 없다. 플레이스홀더가 가능한 고유명칭을 식별하기 위해 사용되는 디코딩(115b 및 115c)들의 예는 블록 1010 및 블록 1020을 통하는 경로에 해당할 수 있다.
도 12는 일부 실시예들에서 이뤄질 수 있는, 도 11의 예에 기반한 제1 가설의 분석(breakdown)의 예이다. 제2 제안(1115b)에 대해, 시스템은 1520ms와 1750ms 사이의 "Karahi" 부분을 인식할 수 없다고 인식하였다. 이에 따라 1520ms와 1750ms 사이에 음향 스팬을 가지는 가설(1205)이 생성될 수 있다(1520과 1750이란 값들은 단순히 예시이고 예를 들어 밀리초 등의 다른 표현이 사용될 수 있음을 알 수 있을 것이다). NLU는 발언의 "where" 및 "parking for" 부분에 근거하여 이를 "위치 문의(Location inquiry)"로 추론하고 이에 해당하는 잠재적 의미를 부여할 수 있다. 마찬가지로 NLU는 문구 "restaurant"에 근거하여 이 스팬이 "업체 명(business name)" 타입이라고 추론할 수 있다. 가설에서의 잠재적 의미(Potential Meaning)와 추정 타입(Putative Type)은 클라이언트 장치 상에서의 고유명칭의 검색으로 국한(localize)하는 데 사용될 수 있다. 예를 들어 이것이 "위치 문의(Location Query)"임을 알면, 클라이언트 장치는 주소록의 첫 번째 및 마지막 명칭은 고려하지 않고 대신 일정표의 미팅 장소들만을 고려할 것이다. 스팬의 추정 타입에 근거하여 일정표에서 장소들에 연계된 업체 명만을 고려할 수 있다.
이 명세서에서 논의하는 바와 같이, 고유명사의 발음은 선행 및 후행하는 단어들에 영향을 받을 수 있다. 이에 따라 접두 부분과 접미 부분 역시 고유명칭들을 검색하는 컴포넌트들로 고려되도록 가설 내에서 식별될 수 있다. 이와는 달리 일부 실시예들은 발언의 공칭 출력에 대해 상당히 낮은 출력으로부터 승강(ramp)하는 침묵(또는 저출력 배경 잡음)의 짧은 세그먼트들을 앞뒤에 붙일(prepend and post-pend) 수 있다(예를 들어, 앞에 붙일 음성은 저출력으로부터 공칭 출력으로 상승, 뒤에 붙일 음성은 공칭 출력으로부터 저출력으로 하강). 음성 입력의 이 일시적 평활(smoothing)은 마찰 음소로 잘못 대응될 수 있는 급격한 음성 천이를 방지할 수 있다.
플레이스홀더에 인접한 단어들이 특히 낮은 신뢰도 점수로 디코딩되면 - 또는 2차 인식기에 의한 주어진 음성 세그먼트의 초기 디코딩이 비정상적으로 낮은 신뢰도 점수를 산출하면 - 일부 실시예들은 추출된 음성 세그먼트의 공칭 시작 및 종료 시간들을 요동(perturb)시킴으로써 디코딩을 위한 복수의 후보 세그먼트들을 산출한다. 그러면 이 모두가 변형예들로서 "2차 인식"(915)으로 전달되고, 이는 이들을 모두 디코딩하여 공칭 답변으로 가장 높은 신뢰도 점수를 가지는 디코딩을 선택한다.
도 13은 일부 실시예들에서 이뤄질 수 있는, 도 11의 예의 세 번째 제안(1115c)에 근거한 두 번째 가설 분석의 예이다. 세 번째 제안(1115c)에 관해, 시스템은 1220 ms와 1750 ms 사이의 "Guddu de Karahi"가 인식 불가능하다고 인식할 수 있다. 이에 따라 1220 ms와 1750 ms 사이의 음향 스팬을 가지는 가설(1205)이 생성되고, 접두 및 접미 부분도 이에 따라 조정될 수 있다. NLU는 다시 추정 타입에서 고유명사를 "업체 명"으로 식별하지만 "주소록" 문의로서의 일반적 문의로 간주하는 대신, 검색을 주소록 내용만으로 한정한다.
"이해"/ 가설 일반화 프로세스("Understanding"/ Hypothesis Generation Process)
도 14는 일부 실시예들에서 이뤄질 수 있는, 고유명칭 인식을 위한 서버측 프로세스의 여러 단계들을 보이는 흐름도이다. 예를 들어 프로세스(1400)은 블록 1030의 작동들을 더 상세히 도시할 수 있다. 블록 1405에서, 시스템은 ASR 및/또는 NLU에서 생성될 다음 가능한 텍스트 표현을 고려할 수 있다. 복수의 확률과 단어 타이밍들이 이 텍스트 표현의 일부로 포함될 수 있다.
블록 1410에서, 시스템은 예를 들어 여러 가지 가설 파라미터들을 보유할 데이터 구조 등의 가설 템플릿(template)을 준비할 수 있다.
블록 1415에서, 시스템은 NLU 통계를 참조하여 "잠재적 의미(potential meaning)"를 생성할 수 있다.
블록 1420에서, 시스템은 NLU 통계를 참조하여 그 스팬에 대한 "추정 타입(putative type)"을 생성할 수 있다.
블록 1430에서, 시스템은 그 스팬의 시작 및 종료에 연계된 타임스탬프(timestamp)들을 결정할 수 있다. 더욱 상세히 후술할 바와 같이, 문제의 잠재적 고유명칭에 대한 접두 및 접미 부분 역시 이 결정에 포함된다.
블록 1435에서, 시스템은 이들이 존재한다면 추가적인 잠재적 텍스트 표현들을 고려할 수 있다. 존재하지 않으면, 시스템이 블록 1440으로 진행하고, 여기서 시스템은 대기하는(queued) 가설들을 분석을 위해 클라이언트 시스템, 또는 토폴로지에 따라서는 가설의 분석을 위한 적절한 컴포넌트에 제출한다. 예를 들어 일부 실시예들에서는 시스템이 가설들을 서버에서 로컬로 분석하거나, 또는 가설들이 클라이언트 장치에서 생성 및 분석 모두 될 수 있다.
"2차 인식" - 클라이언트측 프로세스("Secondary Recognition" - Client-Side Process)
도 15는 일부 실시예들에서 이뤄질 수 있는, 고유명칭 인식을 위한 클라이언트측 프로세스(1500)의 여러 단계들을 보이는 흐름도이다. 블록 1505에서, 클라이언트 모듈은 서버 모듈로부터 수신된 다음 가설을 고려한다.
블록 1510에서, 클라이언트 모듈은 가설로부터 잠재적 의미를 추출할 수 있다. 블록 1515에서, 클라이언트 모듈은 가설로부터 스팬의 추정 타입을 추출할 수 있다. 블록 1520에서, 클라이언트 모듈은 잠재적 의미 및/또는 추정 타입에 근거하여 고유명사들의 말뭉치를 수집할 수 있다.
블록 1525에서, 시스템은 추정 스팬에 연계된 타임스탬프들과 (존재한다면) 접두 및 접미 부분들에 대한 타임스탬프들을 추출한다. 블록 1530에서, 시스템은 식별된 말뭉치의 다음 고유명칭을 고려할 수 있다. 블록 1535에서 말뭉치의 멤버의 대체가 만족스러운 신뢰도 값으로 결과되면, 단계 1540에서 시스템은 대체된 멤버를 성공적 해석 중에 포함할 수 있다.
단계 1545에서 말뭉치 내의 모든 고유명칭들이 고려되지 않았다면 시스템은 다음 말뭉치 멤버로 계속할 수 있다.
블록 1550에서, 시스템은 예를 들어 이 명세서에 논의되는 점수 융합 프로세스들을 사용하여 어느 해석을 이행에 제출할지 결정할 수 있다.
"점수 융합(Score Fusion)"
전술한 바와 같이, 하나 이상의 가설들과 한 가설에 대한 하나 이상의 해석(solution)들이 이어지는"2차 인식"에서 생성될 가능성이 있다. 뿐만 아니라 디코딩 2 및 2로부터의 가설 예에서와 같이, 다른 가설들은 다른 수의 음향 스팬들을 포함할 수 있다. 이는 다른 수의 신뢰도 값들에 기반한 다른 가설들이 의미 있고 신뢰성 높은 점수 기반 순위 매김을 달성하기 위해 고려될 것을 요구할 수 있다. 일부 실시예들에서, 가설들의 순위는 순전히 ASR 신뢰도 점수에 기반할 수 있다. 그러나 여러 실시예들은 NLU 시스템(855)을 포함하여 이 순위에 영향을 미치도록 고려한다. NLU 신뢰도 점수들이 확률들에 대해 평균화(normalize)될 수 있다면, 이들이 문법 및/또는 공개 구술 ASR 신뢰도 점수에 의미 있게 조합될 수 있을 것이다.
다음은 이 조합을 수행하는 한 예이다. T i A가 (예를 들어 텍스트(880) 등의) 표기와 (예를 들어 파형(825) 등의) 음향 입력을 표기하고, M i i번째 가설에 대한 NLU 처리로 할당된 기호적 의미를 표기한다고 하자. 표현식 P(M i |T i )는 연계된 표기가 주어질 때, i번째 가설 의미의 NLU 신뢰도 점수를 반영한다.
조건부 확률의 곱의 법칙에 의해:
P(M i , T i | A) = P(M i | T i , A) P(T i , A)
근사를 가정하면:
P(M i | T i , A) ≒ P(M i | T i )
그러면 이는 다음을 산출하는데:
P(M i , T i | A) ≒ P(M i | T i ) P(T i , A)
이는 (고정된) 음향 입력 A의 정확한 의미와 표기가 취득되었다는 신뢰도를 표현한다.
문법 준비(Grammar Preparation)
"1차 인식"(905)에 이어, 시스템은 이러한 각 세그먼트의 시작 및 종료 시간뿐 아니라 문제의 명칭의 가능한 타입 - 즉, 사람의 이름(first name), 사람의 성(last name), 거리 명, 등등 - 도 식별한다. 전문화된(specialized) 문법은 이러한 각 명칭의 타입에 대해 사용될 수 있다. 이 문법은 적절한 타입의 명칭들의 전체 공간(full space)에 비해 비교적 작지만, 그럼에도 발언된 명칭을 포함할 높은 확률을 가진다.
각 개별적 명칭 타입 문법은 사용자의 친구 및 친지들, 장소, 과거, 현재, 또는 미래의 활동, 등등에 관한 정보에 전문화된 데이터 소스로부터 준비될 수 있다. 예를 들어, 이름(first name) 문법은 사용자의 주소록에서 발견되는 모든 이름들과, 이와 함께 흔한 별명 또는 약칭의 열거에 의해 준비될 수 있고; 성(last name)도 유사하게 준비될 수 있다. 마찬가지로 거리 명 문법은 가능하기로 사용자의 개인 일정표에 표기된 과거 또는 미래 약속으로부터 추출된 모든 거리 명들, 또는 자동차 또는 휴대폰 GPS로 결정되거나 또는 최근 운전한 경로 근방의 모든 거리들이 추가된 사용자의 현재 위치의 주어진 반경 내의 모든 거리 이름들을 조합함으로써 준비될 수 있다. 전술한 바와 같이, 이 아키텍처의 한 유용한 특성은 이 문법들이 클라이언트에서 준비될 수 있고, 서버로 통보하지 않는다는 것이다.
복수의 단어 시퀀스 집합들(Multi-Word Sequence Aggregates0
집합(aggregate)으로 통합되는 일부 명칭들은 그냥 단일한 단어가 아니라 단어들의 시퀀스를 포함할 수 있다. 이는 거리 명의 고려에서 자연스레 발생될 수 있는데, 이는 전형적으로 명칭과 타입 양자로 구성되고, 후자는 말해질 수도 안 될 수도 있다. 예를 들어, "Rengstorff Avenue," "Fourteenth Street," 및 "Riverside Drive"를 고려해보면, 이들 각각은 "Rengstorff," "Fourteenth," 또는 "Riverside"로도 말해질 수 있다. "avenue"를 "have"와 운을 맞춰(rhyming with) 단일한 음절 "ave"로 말하는 경우도 드물지 않다는 것에 주목 바란다. 이는 거리 타입을 처리할 어떤 해석이 선택되건, "avenue" 타입에 대한 두 변형 형태가 필요할 것을 암시한다. 뿐만 아니라, 거리 타입에 대한 개념과 무관하게, 일부 고유명칭들은 예를 들어 "The Embarcadero," "Dry Creek [Road]," 또는 "El Camino Real"과 같이 복수의 단어들을 가진다.
이 후자의 경우들에 대해, 여러 실시예들은 이들이 항상 발성된다는 점에서 의무적인 명칭의 단어 시퀀스의 이 요소들을 서로 연쇄시킨다(concatenate). 결과적인 객체는 단일한 단어로 취급될 수 있고, 집합에 포함될 수 있는 그 발음을 포함한다. 이에 따라 일부 실시예들은 "The_Embarcadero," Dry_Creek," 및 "El_Camino_Real"의 각각을 단일한 단어로 취급할 수 있다.
발성되지 않을 수 있는 이런 시퀀스 내의 단어들에 대해 두 접근방법들이 강구된다. 첫 번째 접근방법은 주어진 명칭을 선택적 단어들이 있는 및 없는 두 상태로 막 설명한 대로 서로 연쇄시키는 것이다. 모든 변형들이 집합에 포함될 수 있다. 이에 따라 위에 보인 예들을 고려하면 다음이 산출될 것인데: Rengstorff_Avenue; Rengstorff_Ave; Rengstoff; Fourteenth_Street; Fourteenth; Riverside_Drive; Riverside; Dry_Creek; Dry_Creek_Road. 이는 음향 공간을 잘 포괄할 것이다.
두 번째 접근방법은 타입을 포착할 추가적인 집합을 도입하는 것인데, 즉 거리-타입-집합 또는 sta이고, 그 안에 모든 타입들의 발음을 포함한다. 이는 sa에 공칭으로 포함되는 발음 수의 대략 절반이 될 것이다. 그러나 이는 언어 모델을 약화시킴으로써 1차 인식기가 거리 명을 포함하는 음성 세그먼트의 종단을 파악하는 능력을 방해할 수 있다.
언어 모델 생성의 대체적인 방법(Alternative Method for Language Model Generation)
언어 모델 생성을 위한 전술한 방법은 아주 일반적인 문맥들에서는 각 집합을 위한 합리적인 값들을 산출한다. 그러나 이는 시간 소모적이고 완전한 일반성이 요구되지 않을 수 있다.
이에 따라, 일부 실시예들은 이 기법이 가장 유용할 수 있는 문맥에서는 양호한 결과들을 산출할 수 있는 더 제한된 방법을 구현하였다. 이 방법은 전체 훈련 말뭉치(training corpus)를 NLU로 전처리(preprocess)하여, 고유명칭 개체들을 문맥 내의 적절한 집합 단어들로 교체할 수 있다. 그러면 이는 집합 단어들로 n 그램 계수치(n-gram count)들을 산출하는데, 이로부터 예를 들어 종래의 수단으로 이러한 단어들을 1급(first-class) 객체들로 하여 언어 모델이 구축될 수 있다.
일부 실시예들은 조건부 확률 p(fna-i | h)들이 이 방법으로 결정되는 한편, fna-ih′일 때 p(x | p(x|h′)의 값이 이전에 개괄한 방법으로 결정될 수 있는 하이브리드(hybrid) 접근방법을 채택할 수 있다.
고유명칭 타입에 대한 의도적 비대응 문법(Intentional Non-Match Grammar to Proper Name Type)
"1차 인식"(905) 및 "이해"(910) 단계들은 시퀀스 fna-i lna-j를 반환할 수 있다. 위에 제안된 방법은 fna-i에 연계된 음성 세그먼트의 "2차 인식"(915) 디코딩을 이름(first name)들의 문법으로 수행할 수 있고, 에 연계된 음성 세그먼트의 독립적인 "2차 인식"(915)을 성(last name)들의 문법으로 수행할 수 있다.
그러나 이 두 독립적인 디코딩들은 가능하기로 사용자의 주소록의 개별적 출현에 해당하지 않는 명칭을 산출할 수 있다. 1차 디코더 출력 내의 시퀀스 fna-i lna-j는 단일한 전체 명칭에 해당할 수 있다. 이에 따라 fna 세그먼트의 시작으로부터 lna 세그먼트 종단까지의 음성의 전체 구간(stretch)은 사용자의 주소록에 나타나는 대로의 모든 전체 연락처 명들로 구성된 문법에 대해 "2차 인식"(915) 동안에 인식될 수 있을 것이다.
플레이스홀더 디코딩들의 의미론적 표지(Semantic Labeling of Placeholder Decodings_
예를 들어 명령이 수신자에게 메시지를 전송하라는 요청을 포함하는 일부 실시예들에서는, 발언의 의미의 일부로 메시지의 의도한 수신자를 추출하는 것이 필요할 것이다. 예를 들어 "send a message to Barack thanks so much for the invitation comma we'd love to visit you and Michelle the next time we're in Washington."라는 발언을 고려해보자. 그러면 1차 인식기의 출력은 명백히 다음과 같이 읽힐 것인데:
send a message to fna thanks so much for the invitation comma we'd love to visit you and fna the next time we're in Washington
여기서 두 음성 세그먼트들이 이름(first name)일듯 한 것으로 식별되었고, 양자 모두 "2차 인식"(915) 인식기(예를 들어 문법 기반 ASR)로 디코딩되도록 마킹되었다(marked). "Barack"과 "Michelle" 모두 사용자의 연락처 목록에 있다고 가정해보면, 이 디코딩들은 아마도 정확한 결과들을 포함할 것이다. 그러면 "Barack"은 메시지의 행선(destination)으로 사용할 적절한 전화번호 또는 이메일 주소에 매핑될(mapped) 수 있다.
그러나 이 명세서에서 논의하는 바와 같이, NLU는 클라이언트가 아니라 서버에 위치할 수 있다. "2차 인식"(915) 인식기의 결과들을 클라이언트로부터 다시 서버로 더 전송하지 않으면, "Barack"이 실제 의도한 수신자의 이름인지 판단하는 데 필요한 분석을 수행할 길이 없을 수 있다.
이에 따라 일부 실시예들에서는, NLU가 디코딩 내의 특정한 토큰(token)(fna)이 사람의 고유명칭일 가능성이 있다는 정보와, 이 토큰에 인접하여 또는 근방에 출현하는 단어들로부터 의도한 수신자의 위치를 파악할 수 있을 것이다. 이 정보는 클라이언트에 전송되어, 거기서 "2차 인식"(915) 인식기가 수신자 이름을 명확하게 식별할 수 있을 것이다. 클라이언트 소프트웨어의 다른 요소들이 이 이름을 처리하여 적합한 행선 주소를 결정할 수 있을 것이다.
이 정보를 NLU로부터 "2차 인식"(915) 인식기에 전송하는 한 방법은 음성 세그먼트를 2차 디코더에 의해 처리될 객체로 식별하는 프로토콜(protocol) 요소에 기호적 의미를 포함하는 적절한 필드(field)를 추가하는 것일 것이다. (위 예에서 제2 경우의 fna처럼 그 세그먼트가 특별한 의미를 가지지 않는 경우, 이 필드는 "0(null)" 또는 어떤 다른 중립 값을 포함할 수 있다).
일부 실시예들에서는, 클라이언트와 2차 디코더에 사용될 문법과, 음성 세그먼트의, 있다면, 특별한 의미 양자를 전송하기 위해 음성 세그먼트의 추정 타입이 클라이언트가 이해할 수 있는 방식으로 변경될 수 있다. 예를 들어 fna의 첫 경우는 fna-recipient로 변경될 수 있는데, 클라이언트는 연계된 음성 세그먼트를 전과 같은 이름 문법에 대해 디코딩하도록 적절히 수정한 다음, 그 결과를 의도한 수신자의 이름으로 해석할 수 있다.
스팬 범위 오류들에 대해 설계된 문법들(Grammars Designed for Span Extent Errors)
스팬 범위의 적절한 선택은 2차 디코딩을 향상시킬 수 있다. 뿐만 아니라, 일부 실시예들은 디코딩 프로세스 동안 음소 모델(phone model)들의 선택에 있어서 동시조음 효과들을 허용한다. 이 문제들은 공칭의 고유명칭 개체를 바로 선행 및 후행하는 어떤 수의 음향 접두 단어들과 음향 접미 단어들을 포함하도록 음향 스팬을 확장할 때 다뤄진다. 이는 공칭 고유명칭 개체를 포함하는 단어들의 스팬인 목표 스팬과, 막 언급된 음향 접두 단어들과 접미 단어들에 해당하는 것으로 추정되는 음성을 포함하는 전체 스팬 사이에 중요한 구분을 제공한다. 뿐만 아니라, 2차 인식 문법은 이에 따라 이 단어들의 디코딩을 허용하는 방식으로 구성되어야 한다. 실제, 2차 인식이 첫 접두 단어와 마지막 접미 단어를 통해 진행된다면 유용할 것이다.
이는 표시된 2차 인식이 전체 스팬의 공칭 시작 및 종료에 덜 민감하게 해주고, 그러면 2차 인식은 전체 스팬 매에서 고유명칭 개체 자체가 정확히 어디서 시작하고 종료하는지 자유로이 선택할 수 있다. 뿐만 아니라, 적절히 구성된 문법에 의해, 추정 고유명칭 개체를 바로 선행하는 접두 단어들과, 마찬가지로 바로 후행하는 접미 단어들에 해당하는 음성이 작동중인(active) 문법 내의 잘 대응되는(well-matching) 단어들에 흡수되도록 배치될 수 있다. 이는 단어가 1차 인식기에 의해 "to"로 디코딩되고, 이에 따라 목표 스팬에 대해 외부라고 마킹할 수 있게 허용하여, 실제로 작동중인 문법 내의 이름들 중에 존재하는 고유명칭 "Toby"의 시작(onset)이 될 수 있다. (예를 들어 그 주변에 엡실론 경로를 제공하여) 이 음향 접두 단어가 선택적이 되도록 함으로써, 음성의 적절한 프레임들이 이에 따라 이름 "Toby"의 성공적 디코딩에 참여할 수 있다.
접두 및 접미 단어들에 연계된 문법이 이들 자체를 타당한 음향 경계로 분할될 수 있도록 구성하는 것이 바람직할 것이다. 예를 들어, 바로 선행하는 음향 접두 단어가 "filbert"라면, 이를 끼워 넣은 문법은 이 단어가 디코딩 프로세스 내에서 "fil"과 "bert"로 발음상 구분되도록 함으로써 후자에 연계된 음성이 디코딩에서 고유명칭 "Bert"에 흡수될 수 있게 하여, 이것이 발성되었으면 활성 문법 내에 존재하는 것으로 허용해야 할 것이다. 이는 1차 디코딩의 음소 시퀀스를 어휘 목록의 내용들과 비교하고, 언어 모델을 사용하여 타당한 단어 분할들을 가정함으로써 이뤄질 수 있는데, 이는 연계된 문법 구조에 반영될 수 있다.
전술한 여러 가지 특성(aspect)들은 너무 작은 스팬(span-too-small) 오류들에는 적절하지만, 역의 문제 역시 발생될 수 있다. 시스템은 너무 큰 스팬(span-too-large) 오류를 생성하여, 실제 그 내부에 존재하는 고유명칭 개체에 대해 외부인 단어 또는 단어들에 해당하는 음성을 부정확하게 추정할 수 있다.
이 문제를 처리하기 위해 일부 실시예들은 "끼움말 단어(shim word)들"을 고려한다. 끼움말 단어들은 1차 인식기 디코딩 내에 존재해야 하는 단어들로, 목표 스팬에 인접하지만 이에 대한 음성이 잘못 목표 스팬 내에 포함된 단어들이다. 2차 인식기가 적절히 작동하여 연계된 프레임들이 문법 내의 목표 단어들에 대해 대응(matching)되는 것을 억제하기 위해 문법이 이러한 끼움말 단어들을 포함하는 선택적 경로들로 확장될 수 있다.
끼움말 단어들이 필요하다는 근거(evidence)가 없거나 어느 것이 끼움말 단어가 되어야 하는지 근거가 없을 수 있으므로, 이들은 음향 접두 단어들의 가능한 전방 확장(forward extension)들을 식별하는 전방(종래의) 언어 모델을 사용하여 가정할 수 있다. 음향 접미 단어들의 가능한 후방 확장(backward extension)들을 식별하는 후방 언어 모델은 유사하게 사용될 수 있다. 이에 따라 이 고려들은 하나 이상의 단어들을 산출하는데, 이는 선택적 대안들로 목표 문법 끼움말 단어들 내에 통합될 수 있다(그리고 언어 모델들을 통한 그 선택).
전체 파형 적응형 고유명칭 인식(Whole Waveform Adaptive Proper Name Recognition)
여기까지 교시된 방법들은 발언 내에서 각 추정 스팬의 시장 및 종료 시간들을 식별해야 하는데, 이는 "이에 비해, 접두 및 접미 문언들을 문법에 포함하여, 스팬 범위를 해당 음성을 포함하도록 확장하면, 스팬 경계를 파악하는 문제를 각각 접두의 시작과 접미의 종단으로 이동시킨다"라고 시작하는 전술한 문단에서 첫 번째로 논의되었다. 후속 문단에 설명된 바와 같이, 이 문제는 접두 및 접미 문언들을 문법에 포함하여 이 접두 및 접미 문언의 공칭 발성을 포함하는 발언 파형의 부분들을 포함하도록 음향 스팬을 확장하면 해결될 수 있다. 이는 그 판단의 오류가 인식 정확성에 현저한 영향을 가지는 목표 스팬의 시작과 종료시간의 판단 문제를 전체 음향 스팬의 시작과 종료 시간을 파악하는 문제로 이동시킨다. 이와 동일한 문단은 또한 이 스팬 범위의 확장이 왜 스팬 시작 및 종료 시간의 할당에서의 사소한 오류를 완화시키는지를 설명한다.
그러나 경험에 의하면, 이 기법이 약간의 개선은 산출하지만, 이러한 시작 및 종료 시간 할당 오류들은 여전히 2차 디코딩 동안의 표기 오류들로 결과되고, 이는 다시 최종 의미에 오류를 야기한다는 것이 밝혀졌다. 뿐만 아니라, 이 스팬 확장 기법을 적용할 때, 2차 인식을 위한 파형의 부분을 추출할 필요는 남아있는데, 이 자체는 두 바람직하지 못한 결과들을 가진다.
첫째, "1차 인식기는 종래의 공개 구술 자동 음석 인식 시스템을 포함한다"로 시작하는 문단에 기재한 바와 같이, 1차 인식기는 여전히 입력 발언의 공칭 텍스트 표기와 함께, 각 표기된 단어의 원래의 파형 내의 공칭 시작 및 종료 시간을 생성 및 출력해야 한다. 이러한 단어 타이밍들은 대부분의 ASR 기법의 자연스러운 부산물이고, 이에 따라 그 생성과 1차 인식 출력 내의 포함은 전형적으로 힘이 들지 않는다. 그러나 모든 ASR 디코딩 기법들이 이러한 타이밍들을 생성한다거나 또는 디코딩 프로세스에서 내부적으로 생성된다면 그 타이밍들이 출력에 포함될지에 대한 보장은 없다. 이에 따라, 이러한 타이밍들에 의존하는 방법들은 어떤 점에서는 제한적일 것이다.
둘째, 지금까지 설명한 본 발명 실시예들이 입력 발언의 하나 이상의 부분들을 2차 인식을 위해 발췌했으므로, 어느 것이건 인식 오류들을 야기할 수 있는, 발췌의 시작(start)에서 가능하기로 급격한 음성의 시작(onset)과 마찬가지로 발췌의 종단에서 가능하기로 급격한 음성의 중단(cessation of)에 기인하여 이러한 발췌가 현저한 신호 천이(transient)를 나타낼 수 있다. 이러한 천이들을 보상할 방법들이 있지만, 가능하다면 이를 완전히 방비하는 것이 최선이다.
이러한 이유로 1차 인식기의 출력에서 개별적인 단어 타이밍의 입수 가능성에 의존하지 않거나, 또는 제2 인식을 위한 입력 발언의 하나 이상의 부분들을 발췌하는 본 발명의 대체적 실시예를 가지는 것이 적어도 바람직할 것이다. 이것이 이제부터 설명할 "전체 파형 적응형 고유명칭 인식(whole waveform adaptive proper name recognition)" 이다.
얼핏 보면 이 명칭이 너무 서술적일 것이다. 그러나 이 역시 말하기 어렵고(bit of a mouthful), 이런 이유로 때로 "ww 적응형 고유명칭 인식(ww adaptive proper name recognition)," "전체 파형 법(The whole waveform method)" 또는 심지어 그냥 "wwapnr"로도 약칭되고, "ww"가 때로 "전체 파형(whole waveform)"을 의미하도록 사용될 수 있다.
전체 파형 적응형 고유명칭 인식은 "시스템 개관(System Overview)"이라는 표제에 이은 10개의 문단들의 시퀀스에 기재된 바와 동일한 기능적 컴포넌트들을 포함하여, 거기에 기재된 바와 동일한 방식으로 작동하는데, 결과적으로 두 중요한 차이들이 있다. 첫째, 1차 인식기가 위 시퀀스의 세 번째 문단에 기재된 바와 같이 입력 음성 신호 내에서 각 표기된 단어의 공칭 시작 시간과 종료 시간을 포함하는 단어 타이밍들을 출력할 필요가 없다. 이 타이밍들은 여전히 1차 인식기로 출력될 수 있지만 2차 디코딩 동안 더 이상 사용되지 않는다. 둘째, 2차 인식기가 위 시퀀스의 10번째 문단에 기재된 바와 같이 사용자의 구두 입력을 포함하는 음성신호의 어떤 짧은 세그먼트들에 대해 작동하지 않을 수 있다. 그 대신, 2차 인식기는 사용자의 구두 입력을 포함하는 음성 신호의 전체에 대해 작동할 수 있다.
이는 "그러나 이 정확한 정보는 추정 연락처 명에 선행하는 어떤 복수의 단어들과 마찬가지로 후행하는 단어들을 포함하도록 스팬 범위를 확장하는 컴파일 프로세스에 노출될 수 있다"로 시작하는 문단에 기재된 개념의 수정을 통해 달성될 수 있을 것이다. 이 수정에 있어서, 스팬은 공칭 목표 스팬을 선행하는 1차 표기의 모든 단어들과 또한 공칭 목표 스팬을 후행하는 1차 표기의 모든 단어들을 포함하도록 확장된다. 이 확장된 스팬을 수용하기 위해 적응 객체 자체가 이 단어들의 모두를 포함할 수 있는 해당 방식으로 확장된다. 적응 객체를 준비하는 이 새로운 기법과 이에 따른 적응 객체 자체는 이 명세서의 앞에 소개한 기법과 다른데, 이들이 산출하는 적응 객체는 목표 스팬을 선행 또는 후행하는 단어들에 대해서 만이다. 목표 스팬 자체에 관련된 적응 객체의 부분은 변하지 않으며; 가설의 스팬 타입이 부합하는 모든 허용 가능한 단어 시퀀스들을 표현할 때까지 지속된다.
적응 객체의 구조에 대한 이 변경의 결과, 2차 인식기는 이제 실제로 전체 입력 음성 신호를 처리해야 한다. 즉, 이 방법이 적용될 때, 2차 인식기는 사용자의 하나 이상의 발췌가 아니라 그 전체 파형을 디코딩하며; 이에 따라 이 방법(의 명칭)이 명명되었다.
이와 같이, 이 방법은 적응형 고유명칭 인식 방법과 개념과 실행이 동일하지만, 입력 음성 신호의 발췌를 수행하지 않는다는 것을 제외하고는 모두 전술한 것의 변형 및 개량들이다. 발췌가 수행되지 않으므로 입력 음성 신호를 공칭 단어 경계들에서 분할할 필요가 없다 이에 따라 단어 타이밍들이 이 목적에 사용되거나 이 목적을 위해 요구되지 않는다. 또한 단어 타이밍들이 사용되거나 요기지 않으므로 이 타이밍들의 결정에서의 오류에 기인하는 표기, 또는 궁극적으로 의미에서의 오류가 없을 수 있다.
전체 파형 적응형 고유명칭 인식을 더 상세히 설명하기 위해, 이 방법을 구현하는 한 수단을 검토할 것인데, 이는 문법 또는 슬롯형 문법 중의 하나를 적응 객체로 채택하고 있다. 동일한 논의에서 이 방법의 어떤 유용한 변형 및 개선 역시 설명할 것인데, 이 모든 것들은 본 발명의 범위 내에 포함된다.
이 방법을 이 명세서에서 이전에 교시된 것과 다르게 하는 것은 이 상세들이고 변형과 개선은 이들 중에서 다르므로, 이 논의의 주된 토픽은 다른 문법 및 슬롯형 문법이 될 것이다. 그러나 후술하는 문법 및 슬롯형 문법 적응 객체들은 전술한 적응형 고유명칭 인식 내에서 사용되는데, 이는: 1차 인식 단계, 이해 단계, 적응 객체 준비 단계, 2차 인식 단계, 및 선택적으로 점수 융합 단계들이다.
이하의 논의는 각각 연계된 도면을 가지는 일련의 예시적 예들을 포함한다. 각 예의 일부로 사용자의 연락처 명들의 목록이 이전에 등록되었고, 이 목록이 적어도 "Steve Youngest," "Pak Shak," 및 "Tasteve Youngus Thai"라는 이름들을 포함한다고 가정한다. 이들을 선택한 이유는 곧 명백해질 것이다. 사용자의 연락처 명의 "등록(registration)"은 목록의 개체들(entries)이 후술하는 문법 및 슬롯형 문법의 목표 섹션의 생성에 사용될 수 있다는 것을 의미한다. 이 목표 섹션은 사용자 연락처 명 목록의 각 성명(full name)이 그 어떤 변형과, 이 이름들과 변형만으로 디코딩될 수 있게 한다. 예를 들어 이름 "Steve Youngest"의 등록은 대안들로 적어도 "Steve youngest," "Steve" 및 "Youngest"와 아마도 "Stevie" 또는 "Steven" 등의 허용 가능한 다른 변형들 역시 수용하는 목표 섹션을 산출할 것이다. 대안들과 변형들의 목록의 이 준비의 정확한 수단은 본 발명의 대상이 아니며; 단지 이러한 방법이 존재한다는 사실만을 기록한다.
그러나 명확성을 위해 이러한 한 방법을 상세히 설명하는데, 이는 먼저 병렬 아크들을 가지는 문법 구조의 첫 번째 생성을 포함하는데, 각 아크에는 한 완전한 사용자 연락처 명이 채워져(populate) 있고, 이러한 각 아크는 가능한 디코딩을 포함한다. 도 18은 이러한 구조를 도시하는데 "목표 섹션(target section)"으로 표지되어 있다. 그러면 공급된 각 연락처 명의 합리적 변형들에 해당하는 추가적 아크들이 추가될 수 있는데, 예를 들어 각 완전한 연락처 명의 이름 또는 성만을 포함하거나, 또는 이미 열거된 이름들을 대체하는 일반적 별명의 사전을 참조할 수 있고, 이에 따라 각 대체물은 변형들과 그에 따른 추가적 아크를 생성한다. 이 문법의 각 아크 역시 전술한 바와 같이 적절한 의미 변수 상에 수행된 작동들로 표지될 수 있는데, 아크가 2차 디코딩 동안 횡단된다면 디코딩된 연락처의 신원(identity)을 식별하는 기호적 표시 또는 가능한 디코딩된 연락처들의 이러한 기호적 표시들의 목록으로 표시되고, 구두 명령이 음향적으로 또는 의미론적으로 애매하다면 2차 디코딩 단계의 일부로 출력(emit)될 수 있다. 이러한 방식으로, 도 18의 목표 섹션 구조가 생성되는데; 도 18에서 각 표시된 레이블 n 1, n 2, n 3, ..., n k 들은 막 설명한 바와 같이 각 대안에 연계된 문언 또는 의미 변수 작동들의 양자를 의미한다. 도 19는 이 동일한 구조에서, 레이블 n 1이 예시적 연락처 명 "Pak shak"에 연계된 문언 및 의미 변수 작동으로 대체되고 레이블 n 2가 예시적 연락처 명 "Steve youngest"에 연계된 문언 및 의미 변수 작동으로 대체되었다. 이 구조에는 전술한 연락처 목록 내의 추가적 이름들과 그 합리적 변형들을 나타내는 데 필요한 숫자를 포함하는 추가적인 k - 2 아크들이 존재하는데, k - 2개의 레이블 n 3, ..., n k 들이 이 이름들에 연계된 그 문언들과, 선택적인 의미 변수들로 대체되었다.
이제 주된 논의로 돌아가기로 한다. 도 20은 문법을 적응 객체로 하여 구현된 전체 파형 적응형 고유명칭 인식의 방법을 도시한다. 이렇게 구현된 방법이 전형적 발언의 정확한 표기와 의미를 산출하는 단계들의 설명으로 진행한다.
예로서, 사용자가 "send a message to Steve Youngest Hi Steve how are you"라는 명령을 말했다고 가정해보자. 이 음성은 도 20에 표시된 그래픽으로 표현된"입력 음성 신호"또는 "음성 입력"과, 동등하게 "발언(utterance)" 또는 "파형"을 포함한다. 이 파형은 1차 인식 단계로 공급되고, 거기서 1차 인식기가 표기 "SIL send a message to steve young us SIL hi steve how are you"를 출력으로 생성한다. 1차 인식기는 또한 전술한 바와 같이 전체 파형 방법에서는 2차 인식 단계에서 이 타이밍들을 사용하지 않지만, 추정 단어 경계들의 타이밍들을 생성할 수 있다. 그러나 앞의 도면들과의 일관성을 위해 도 20에도, "시간(time)"으로 표기된 설명 란에 수치 및 그래픽 양자와, "1차 인식기 출력"으로 표기된 설명 란에 해당하는 수직 바 문자("|")로 표시된 공칭 경계시간들을 가지도록 지시되어 있다. 이 수직 바 문자들은 실제 1차 인식기 표기의 일부가 아님에 유의 바란다. 이들은 단순히 도 20의 줄(line) 위에 나타나는 공칭 단어 경계들에 해당하는 시간들의 독자에 대한 그래픽 메모(graphical reminder)로 도 20에 포함되었다.
이어서 1차 인식기 출력은 이해 단계로 전달된다. 이 단계에서, 언어 이해 모델은 표기 전체가 텍스트 메시지를 사용자의 연락처에 전송하라는 명령이라고 가정한다. 언어 이해 모듈은 또한 단어 시퀀스 "Steve young us"가 user-contact-name 타입의 고유명칭 개체를 포함한다고 가정한다. (a) 이 명령이 text-message-to-user-contact 타입이라는 기호적 표현, (b) 전체 파형 접두 단어들을 구성하는 표기된 단어 시퀀스 "SIL send a message to"를 포함하는 전체 파형 접두 스팬의 식별, (c) 추정 타입 user-contact-name이고 "목표 단어들"을 구성하는 표기된 단어 시퀀스 "Steve young us"를 포함하는 목표 스팬의 식별, 및 (d) "전체 파형 접미 단어들"을 구성하는 표기된 단어 시퀀스 "SIL hi steve how are you"를 포함하는 "전체 파형 접미 스팬"의 식별들의 모든 것으로 구성될 수 있는 이 정보의 전체가 적응객체 준비 단계로의 입력을 포함한다. 이 다양한 정보 요소들은 도 20에 표시된 바와 같다.
이해 단계의 출력을 수신하면, 적응 객체 준비 단계는 이 정보들을 사용하여, 도 20에 도시된 바와 같이 문법 ww-contact-name.g를 포함하는 적응 객체를 구축한다. 이는 각각 전체 파형 접두 섹션, 목표 섹션, 및 전체 파형 접미 섹션인 표시된 섹션들을 조립함으로써 이뤄진다. 전체 파형 접두 섹션은 필요한 수의 문법 아크들의 선형(linear) 시퀀스를 조립함으로써 표시된 바와 같이 구축되는데, 이 아크들은 전체 파형 접두 단어들로 차례로(in succession) 표지되어 있다. 이 아크들의 시퀀스의 종단은 전술한 연락처 명 목표 섹션에 부착(attach)된다. 이 목표 섹션은 사용자 연락처 명들의 등록 시에 별도로 구축될 수 있었음에 주목 바란다. (예를 들어 등록된 업체 명, Menlo Park, California 내의 번지가 붙은 거리 주소, 지리학적 근방의 업체 명, 또는 적응형 고유명칭 인식의 다른 경우에 대한 적절한 다른 어떤 타입 등의) 어떤 다른 종류의 목표 섹션과 대조적으로, 사용자 연락처 명 목표 섹션이 적응 객체에 포함되는 것은 언어 이해 단계에서 제공된 추정 목표 스팬 타입 user-contact-name의 결과이다. 언어 이해 모듈로 식별된 대로의 타입뿐 아니라 범위가 2차 디코딩 단계에 결정적 영향을 미치는 것은 이러한 방식을 통해서이다. 그러면 목표 섹션의 종단이 전체 파형 접미 섹션에 부착되는데, 이것은 이 문법 아크들이 전체 파형 접미 단어들로 표지되는 것을 제외하면 전체 파형 접두 섹션과 동일한 방식으로 구축된다.
이어서 결과적인 문법 ww-contact-name.g가 컴파일되어 2차 인식 단계에 제공된다. 모든 전체 파형 접두 단어들과 모든 전체 파형 접미 단어들의 문법 내의 표시된 순서 및 위치들로 포함한 덕분에, 이 문법은 도 20에 표시된 바와 같이 완전한 전체 파형 디코드 스팬의 2차 인식을 위해 구성되었다는 것을 주목하는 것이 중요하다. 이 전체 파형 디코드 스팬의 발췌는 필요 또는 수행되지 않는다.
2차 인식 단계가 표시된 컴파일된 문법을 포함하는 적응 객체를 수신한다. 컴파일된 문법이 2차 인식기에 로딩되고, 전체 디코드 스팬이 2차 인식기에 입력으로 제공된다. 2차 인식기는 이 문법을 사용하여 전체 디코드 스팬을 디코딩한다. 문법 구조 및 내용 덕분에, 주어진 순서의 전체 파형 접두 단어들만이 2차 인식기 표기의 시작에 나타나고, 마찬가지로 주어진 순서의 전체 파형 접미 단어들만이 이 표기의 종단에 나타난다. 달리 말해, 표시된 단어 시퀀스들의 강제 정렬이 디코드 스팬의 시작과 종단에 대해 각각 수행되었다. 2차 인식기가 전체 파형 접두 섹션과 전체 파형 접미 섹션에 대해 수행하는 유일한 선택은 어느 접두 또는 접미 단어의 발음이 입력 음성 신호에 최선 음향 대응(best acoustic match)을 하는지, 입력 음향 신호의 정확히 어느 부분들이 표시된 문법 섹션들에 정렬되어야 하는지 이다. 문법의 이 부분을 처리하는 데 다른 연산들이 수행되지 않으므로, 전체 파형 음향 스팬의 2차 디코딩의 증분 원가는 연산 시간 또는 메모리 어느 것에서도 더 작은 음향 스팬을 디코딩하는 경우에 비해 낮다.
실제 이 과정의 변형에서, ww 접두 및 접미 단어들에 대해 1차 인식기로 디코딩된 개별적인 발음, 또는 동등하기로 기본형들은 적응 객체 준비 단계에 그 자체로 제공되고, 이 경우 문법에 삽입됨으로써 문법의 이 섹션들을 처리할 때의 2차 인식기의 작업 부하(workload)를 더욱 저감시키며, 이에 따라 전체 파형 음향 스팬의 2차 디코딩의 증분 원가를 더 작은 음향 스팬을 디코딩하는 경우보다 역시 저감시킨다. 도 21은 이 변형예를 도시하는데, 기본형들의 시퀀스로 구성된 1차 인식기 출력과, 일부 아크들이 단어가 아닌 기본형으로 표지된 해당 문법 ww-contact-name.g를 야기한다. 이 변형에 대해 뒤에 더 논의할 것이다.
이제 우리 예의 논의로 돌아와, 문법의 목표 섹션의 처리에서 2차 인식기는 입력 음향 신호에 대해 목표 섹션이 허용하는 가장 가까운 음향 대응(closest acoustic match)(또는 2차 인식기가 n 최선 모드에서 작동할 때는 대응들)을 탐색한다. 횡단되는 문법 아크 상에 존재하면 의미론적 의미 변수들에 대한 연계된 작동들 역시 수행되어, 해당 값들을 각 디코딩의 일부로서 출력한다. 이것으로 2차 디코딩 단계가 완료된다.
언어 이해 모듈이 동일한 입력 음성 신호 내에서 복수의 구별되는 스팬들을 가정했다면, 이들은 각각 마찬가지로 처리되고, 각 구별되는 2차 디코딩의 결과들은 각각 연계된 기호적 의미를 가지는 하나 이상의 완전한 표기들로 조립된다.
선택적으로, 각 완전한 표기와 이에 연계된 기호적 의미는 점수 융합 모듈에 제공되어 여러 가설들의 최종 순위 매김(ranking)과 선별(winnowing; 키질)을 받을 수 있다. 이 단계로 문법을 적응 객체로 사용하는 wwapnr 방법의 이 예가 완료되어, 기호적 의미와 이에 연계된 표기를 산출한다.
wwapnr과 위에 설명한 방법들과의 차이는 wwapnr에서는 ww 접두 섹션과 ww 접미 섹션 자체가 ww 디코딩된 음향 스팬의 적절한 부분들과 대응되는 한, 2차 인식기가 목표 섹션으로 허용된 전체 입력 음성 신호의 어느 인접 부분에서도 최선의 가능한 대응 또는 대응들을 자유로이 탐색할 수 있다는 것이다. 여기서, "적절한"은 ww 접두 섹션이 목표 섹션에 대응되는 부분 앞의 음성 입력 신호의 인접 부분에 대응되고, ww 접미 섹션이 목표 섹션에 대응되는 부분 뒤의 음성 입력 신호의 인접 부분에 대응되는 것을 의미한다. 그러나 입력 음성 신호의 발췌가 없으므로 어디서 이 대응이 발생될 것인가에 대한 어려운 결정도 이뤄지지 않는다. 이미 주목한 연산 시간 또는 메모리의 작은 증분 원가와 같이, 이 더 큰 자유는 더 높은 정확도의 표기들과 이에 따른 더 높은 과업 완료 속도를 산출한다.
당업계에 통상의 기술을 가진 자라면 이 예의 방법이 다른 접두 및 접미 단어들을 가지는 다른 발언들과 다른 내용과 구조의 목표 섹션을 가지는 실제 다른 스팬 타입들에 어떻게 마찬가지로 잘 적용할 수 있을지가 명확할 것이다. 당업계에 통상의 기술을 가진 자에게는 이 방법이 접미 단어들, 접두 단어들, 또는 양자 모두 없는 발언: 연계된 문법이 각각 ww 접두 섹션을 가지지 않거나 ww 접미 섹션을 가지지 않거나, 또는 ww 접두 섹션도 ww 접미 섹션도 가지지 않는 발언들에도 어떻게 마찬가지로 잘 적용할 수 있을지가 마찬가지로 명확할 것이다.
이것으로 전체 파형 적응형 고유명칭 인식의 작동을 상세히 살피고, 문법을 적응 객체로 하여 구현한 제1 예의 논의를 완료한다. 이제 이 방법의 어떤 유용한 변형과 개선들을 설명한다,
낮은 작동 지연을 달성하고자 하는 욕구가 동기가 되었으며 다음 예와 관련 도면들의 세트를 포함하는 한 자연스러운 변형은 슬롯형 문법을 적응 객체로 사용하는 것이다. 막 설명한 방법은 적응 객체 문법의 생성을 필요로 하는데, 이는 원하는 대로 모든 ww 접두 단어들 및 접미 단어들을 포함하도록 기능할 수 있다. 그러나 이 단어들의 신원은 1차 인식기가 이들을 출력할 때까지 알 수 없다. 이에 따라, 이 방법의 적용이 적응 객체 준비 단계의 실행에 적어도 도 20에 도시된 ww-contact-name.g 문법의 조립 및 컴파일에 소요되는 시간과 동일한 지연이 수반되어 나타난다.
다행히도, 섹션 표제 "예시적 클라이언트 및 서버 토폴로지(Example Client and Server Topology"에 바로 선행하는 두 문단들에 이미 설명한 바와 같이 "슬롯형 문법(slotted grammar)"의 기구가 요구되는 적응 객체의 생성을 매우 저지연으로 할 수 있게 한다. 이제 막 논의된 것과 동일한 발언을 포함하는 예에 의해 이 기구를 설명한다. 막 언급한 두 문단들 중의 두 번째 것에 기재된 것과 유사한 방식으로 도 22에 도시되며 ww-5-6-slotted-contact-name.g(슬롯들이 안 채워짐)로 표기되며, 사용자의 개인 연락처 목록의 이름들과 그 타당한 변형들과, 선택적인 연계 의미론적 변수 작동들을 포함하는 목표 섹션을 가지고, 및 5개의 접두 및 6개의 접미 슬롯들을 가지는 슬롯형 문법이 적응 객체 준비 단계의 준비 스테이지에서 이 이름 목록이 사용가능해지자마자 추정으로 생성되어 컴파일될 수 있다. 이 문법 내의 문언은 어느 특정한 발언에 대한 1차 인식기 출력이 아니라 사용자의 연락처 목록의 내용들로부터 도출된다. 이에 따라, 사용자의 연락처 목록이 사용 가능해지자마자 준비 및 컴파일되는데, 이는 입력 음성 신호의 도달 이전의 특정되지 않은 시간 주기가 될 수 있다.
이제 도 23에 도시된 입력 음성 신호 "send a message to Steve Youngest Hi Steve how are you"이 제공에 대한 본 발명의 작동을 고려해보자. 이해 단계가 user-contact-name 고유명칭 개체를 가정하여 이것 및 연계 정보를 적응 객체 생성 단계로 전달하면, ww-5-6-slotted-contact-name.g 문법이 조회될 수 있는데, 그 슬롯은 해당 전체 파형 접두 단어들과 전체 파형 접미 단어들이 채워져, 문법이 사용을 위해 완성된다(finalize). 이 버전의 문법은 도 23에 ww-5-6-slotted-contact-name.g(슬롯들이 채워짐)로 표지되어 나타난다. 준비의 방식을 제외하면 이 문법은 ww-contact-name.g로 표지된 도 20의 문법과 동일함이 명확할 것이다. 이에 따라 본 발명의 나머지 작동들은 "이제 우리 예의 논의로 돌아와, 문법의 목표 섹션의 처리에서 2차 인식기는 입력 음향 신호에 대해 목표 섹션이 허용하는 가장 가까운 음향 대응(또는 2차 인식기가 n 최선 모드에서 작동할 때는 대응들)을 탐색한다"로 시작되는 것에서 시작하여 세 문단의 시퀀스에서 전술한 바와 같이 실행될 수 있다. 필요 부분만 발췌(mutatis mutandis).
마찬가지로 이 방법도 접두 단어들 또는 접미 단어들이 없는 발언들에도 동일하게 잘 적용될 수 있는데: 슬롯형 문법은 접두 섹션이나 접미 섹션이 각각 없어도 구축될 수 있다. 접두 단어들도 접미 단어들도 없다면 결과적인 문법은 슬롯들이 없고 목표 섹션만을 포함하는데: 이 경우는 이미 살폈다(covered). 이것으로 이 예의 논의를 완료하는데, 적응 객체로 슬롯형 문법을 사용하여 구현된 전체 파형 적응형 고유명칭 인식을 상세히 살폈다.
문법 이름 ww-5-6-slotted-contact-name.g의 숫자들을 파악했을 것이다. 이는 슬롯형 문법에서 각각 접두 및 접미 슬롯들의 수를 표기한다. 이는 주어진 발언의 접두 및 접미 단어들의 수이고 구 연계된 1차 디코더 표기를 미리 알 수 없는 한, wwapnr에 슬롯형 문법을 사용하는 경우의 잠재적 문제를 강조한다. 고러나 막 설명한 방법은 이 정보를 요구하는 듯하므로, 사용된 슬롯형 문법은 적절한 수의 접두 및 접미 슬롯들을 가진다. 이에 따라 동일한 목표 섹션이지만 다른 수의 접두 및 접미 슬롯들을 가지도록 많은 수의 다른 버전들의 슬롯형 연락처 명 문법을 준비하는 것이 필요한 듯할 것이다. 주어진 발언의 1차 디코딩에서의 접두 및 접미 단어들의 수에 따라, 슬롯형 연락처 명 문법의 적절한 버전이 선택될 수 있는데, 그 슬롯들이 채워지면 2차 인식 단계에서 사용하도록 완성된다. 이는 불가능하지는 않지만 피하고 싶었을 문제(complication)이다.
다행히 간단한 해법이 있는데, 이는 wwapnr의 다음 변형이다. 이 변형에서는 슬롯형 연락처 명 문법이 단일한 접두 슬롯과 단일한 접미 슬롯으로 준비 및 컴파일된다. ww-1-1-slotted-contact-name.g로 표기되는 이러한 문법이 도 24에 보인다.
이 문법의 사용은 도 25에 도시된 예를 통해 가장 잘 설명된다. 이전과 같이, 사용자의 연락처 목록의 사전 등록과, 연계된 목표 섹션의 준비, 목표 섹션의 ww-1-1-slotted-contact-name.g로의 포함, 및 결과적 문법의 컴파일을 가정한다. 또한 2차 인식기가 아크로 표지된 단어들을 시퀀스를 아크로 표지된 단일한 단어처럼 용이하게 처리할 수 있다고 가정하는데, 이는 문법 기반 디코딩 기법에서 일반적으로 사실이다.
입력 음성 신호 "send a message to Steve Youngest Hi Steve how are you"가 제공되면 1차 디코더는 표시된 표기를 산출하고, 언어 이해 단계는 다시 한 번 user-contact-name 고유명칭 개체를 가정하여 이를 관련 정보와 함께 적응 객체 생성 단계로 전송한다, 그러나, 적응 객체 생성 단계는 이제 문법 ww-1-1-slotted-contact-name.g을 조회하여 그 slot 1에 ww 접두 단어들의 완전한 시퀀스로 채우고 마찬가지로 slot 2에 ww 접미 단어의 완전한 시퀀스를 채워 사용할 문법을 완성한다. 그러면 본 발명의 이 실시예의 나머지 작동들은 "이제 우리 예의 논의로 돌아와, 문법의 목표 섹션의 처리에서 2차 인식기는 입력 음향 신호에 대해 목표 섹션이 허용하는 가장 가까운 음향 대응(또는 2차 인식기가 n 최선 모드에서 작동할 때는 대응들)을 탐색한다"로 시작되는 세 문단의 시퀀스에서 전술한 바와 같이 실행된다. 마찬가지로, 당업계에 통상의 기술을 가진 자에게는 연계된 접두 슬롯 또는 접미 슬롯을 제거함으로써 접두 단어들 또는 접미 단어들이 없는 발언들에도 어떻게 이 방법이 마찬가지로 잘 적용될 수 있는지 명확할 것이다. 이것으로 이 예의 논의를 완료하는데, 적응 객체에 대한 단일 또는 접두 슬롯이 없고 단일 또는 접미 슬롯이 없는 슬롯형 문법의 사용으로 구현되는 전체 파형 적응형 고유명칭 인식을 상세히 설명하였다.
접두 단어들 또는 접미 단어들이 없는 발언에 관해서는 유사한 언급들이 이 명세서에 논의되는 나머지 변형들에 적용될 수 있다. 문제의 적응 객체가 새로이 구축되는 문법이라면, 빈(empty) 접두 또는 접미는 단순히 무시할 수 있다. 이것이 슬롯형 문법이라면, 문제의 슬롯 또는 슬롯들은 엡실론 단어 객체로 채워질 수 있는데, 이는 다음 문단에 기재된 바와 같이 기능한다.
슬롯형 wwapnr 문법의 많은 수의 다른 버전들을 준비해야 하는 이 동일한 문제를 해결할 대체적 방법이 있음에 주목해야 하는데, 이는 슬롯에 단어 시퀀스가 채워질 수 있다고 가정하지 않는다. 그 대신 문법 슬롯에 채워졌을 때 연계된 아크기 엡실론 천이(epsilon transition)로서 기능하도록 하는 "w ε"로 표기되는 "엡실론 단어 객체(epsilon word object)"가 존재한다고 가정한다. 달리 말해, 아크는 디코딩 동안 입력 음성 신호의 어느 것도 소모하지 않으면서 횡단할 수 있다. 이 가정 하에서, 대체적 방법은 먼저 슬롯형 wwapnr 문법에 실제로 마주칠 수 있는 접두 및 접미 단어들의 최대 수를 수용하기에 충분히 많은 수의 접두 및 접미 슬롯들을 준비한다. 다음 이 슬롯형 문법을 어느 주어진 2창 디코더 표기를 위한 적응 객체로 사용할 때 먼저 목표 섹션에 인접한 슬롯들부터 접두 및 접미 단어들을 채운 다음, ww 접두 섹션과 ww 접미 섹션이 어떤 채워지지 않은(unfilled) 슬롯들에 엡실론 단어 객체를 채운다. 엡실론 단어 객체의 특성 덕분에 이렇게 채워진 문법은 언어 이해 단계에 의해 판단되면서, 적정한 수의 접두 및 접미 슬롯들만을 포함하는 것처럼 기능한다.
다음 wwapnr 변형예는 섹션 표제 "스팬 범위 오류에 대해 설계된 문법들(Grammars Designed for Span Extent Errors) 다음에 시작되는 6개의 문단의 시퀀스에서 전술한 스팬 범위 오류에 관련된다. 이제 다시 그 논의를 반복하여 부연 설명한다. 도 20의 문법 ww-contact-name.g로 돌아감으로써 시작한다. 전술한 바와 같이, wwapnr의 작동에 있어 2차 인식기는 문법의 ww 접두 섹션과 ww 접미 섹션에 나타나는 문언에 대해 전체 파형 디코드 스팬의 어느 부분을 대응시킬지 완전한 자유를 가진다. 특히 도 20의 몇 단어들에 집중하면, 이 언급은 ww 접두 섹션의 마지막 아크를 표지하는 문언 "to"와 ww 접미 섹션의 첫 두 아크들을 표지하는 문언 "SIL" 및 "hi"에 적용될 수 있다.
그럼에도 불구하고, 2차 인식기는 ww 디코드 스팬의 일부(some) 부분을 이 문언들의 각각에 대응시켜야 한다. 그리고 거기에 어려움이 있다. 언어 이해 모듈이 단어 "to"가 ww 접두 단어들에 속하고, 단어 "SIL" 및 "hi"들이 ww 접미 단어들에 속한다고 잘못 분류했다고 추정하자. 달리 말해 이 단어들이 1차 디코더로 산출되도록 한 입력 음성의 부분들이 실제로는 연락처 명에 대한 사용자의 발성의 일부라는 것이다. 믿기 어려운 듯하지만 이들은 사용자의 실제(true) 발언한 단어들이 될지 알 수 없고: 오히려 이들은 1차 인식기의 출력이다. 실제로 사용자가 실제 발언한 단어 시퀀스가 "send a message Tasteve Youngus Thai Steve how are you"라고 더 가정하면, 이는 다소 어눌하고 없을 법하지만 전혀 불가능하지는 않으며, 친구들 사이에서 분명히 "Steve"라는 별명으로 통할 연락처 명 "Tasteve Youngus Thai"를 언급한다. 연락처 명 "Tasteve Youngus Thai"가 목표 스팬에 존재함에도 불구하고, ww-contact-name.g 문법을 사용하는 wwapnr 방법이 이 발언을 성공적으로 디코딩할 가능성이 낮다. 이는 제2 인식기가 ww 접두 섹션에서 "to"의 존재와 ww 접미 섹션에서 "SIL hi"를 무시할 자유를 가지지 않기 때문이다. 문법 및 문법 구조에서의 그 위치 덕분에, 이 문언들은 ww 디코드 스팬의 일부 부분에 대응해야 하며, 그렇게 하는 과정에서 함으로써 목표 섹션 내에서 대응 문언으로는 불가능한 문언과 이 음성을 대응하도록 만들 수 있다.
이 종류의 스팬 확장 오류는 엡실론 아크들을 문법에 인접시켜 어떤 주어진 수의 접두 단어들 또는 접미 단어들이 문법의 접두 및 접미 섹션을 디코딩할 때 스킵(skip)하도록 허용함으로써, 1차 표기에서 산출된 이 단어들이 목표 섹션의 디코딩 내에 흡수(absorb)되도록 허용하여 보상될 수 있다. 오류 그 자체는 단어 시작 및 종료 시간의 부정확한 결정이 아니라 1차 인식기에서의 토큰(token)을 비목표 단어로 잘못 분류한 것이다. 더 간단히 말하면, 1차 인식기 표기에서 추정 스팬에 할당되었어야 할 하나 이상의 단어들이 부정확하게 이로부터 누락된 것이다. 이런 이유로 이를 "너무 작은 스팬 오류(span-too-small error)"로 지칭한다.
도 26은 슬롯형 문법 ww-1-e2-e2-1-slotted-contact-name.g를 도시하는데, 이는 다음 바람직한 거동을 나타낸다: 네 추가적인 엡실론 아크들(ε PP , ε P , ε SS 및 ε S )이 ww 접두 섹션 및 ww 접미 섹션을 각각 디코딩할 때 스킵할 둘까지의 전체 파형 접두 단어들과 둘까지의 전체 파형 접미 단어들을 허용한다.
어떻게 문법이 작용하는지 이해하기 위해, 2치 디코딩을 위한 이 문법의 채워진 버전의 사용을 고려하고, 이 문법의 ww 접두 섹션의 처리에서 디코더가 slot 1, slot 2 및 ε P 로 표지된 아크들을 횡단한다고 가정하자. 이는 음성 입력 신호의 어느 부분들이 slot 1을 채우는 단어 또는 단어들에 대해 대응되었고 음성 입력 신호의 어떤 다른 부분들이 slot 2를 채우는 단어 또는 단어들에 대해 대응되었지만, 음성 입력 신호의 어느 부분도 slot 3을 채우는 단어 또는 단어들에 대해 대응되지 않았다는 것을 의미한다. 반면, slot 2의 내용에 대해 대응되는 부분의 종단으로부터 시간상 전방의 음성 입력 신호의 부분이 이제 목표 섹션의 아크의 어느 부분과 대응되어야 한다.
이 대응이 목표 섹션을 처리할 때 디코더로 수행되고, 목표 섹션을 통한 어떤 경로로 표지된 단어 또는 단어들에 해당하는 최선 음향 대응(best acoustic match)이 slot 3에 채워진 단어 또는 단어 시퀀스, 및 역시 공칭 목표 단어들에 해당하는 입력 음성 신호의 부분뿐 아니라 문법의 slot 4slot 5 양자에 채워진 단어 또는 단어 시퀀스들도 대응시킴으로써 얻어진다. 그러면 디코더가 ww 접미 섹션을 처리할 때 ε SS 경로를 횡단한 다음 slot 6 경로를 횡단하여 디코딩을 완료한다.
중요하기로, ww 접두 섹션을 처리할 때, 디코더는 slot 3을 점유하는 단어 또는 단어들을 스킵하거나 또는 대응시키는 어느 하나가 강요되지 않는다는 것이다. 즉 디코더는 (1) slot 3 아크를 횡단하며 이 아크에 채워진 단어 또는 단어들을 slot 2 대응의 종단으로부터 전방의 입력 음성 신호에 대해 대응시킴으로써 그 부분이 목표 섹션 내에서 대응될 수 없던 slot 3에 대해 대응하도록 만들거나, 또는 (b) ε P 아크를 횡단하여 slot 2 대응의 종단으로부터 전방의 입력 음성 신호를 목표 섹션의 어떤 아크에 대응시키거나 어느 하나를 자유로이 수행할 수 있다. 사실상, ww-1-e2-e2-1-slotted-contact-name.g 문법 내의 ε P 경로는 디코더가 slot 3로 표지된 단어 또는 단어들을 목표 스팬에 포함할 것인가 배제할 것인가 어느 하나를 자유로이 선택할 수 있게 한다. 이에 따라, 디코더는 현재 음성 입력 신호와 목표 섹션 내에서 가능한 옵션(option)들을 기반으로, 이전에 이뤄진 언어 이해 모듈의 목표 스팬의 범위에 관한 임시적 결정을 개정할 수 있다. 이러한 방식으로, 문법은 디코더가 언어 이해 모듈의 너무 작은 스팬 오류를 보상할 수 있게 한다.
마찬가지로, 디코더가 대체적으로 ww 접두 섹션 내의 e PP 경로를 횡단할 것을 선택함으로써 slot 2 slot 3 양자의 내용들을 목표 스팬에 포함할 수 있다. 유사한 언급이 ε S 및 ε SS 경로들과 그 대안들에도 독립적으로 적용될 수 있다. 즉 ww 접두 섹션을 처리할 때 경로들에 대해 취해지는 행위와 독립적으로, 디코더는 각각 ε S 또는 slot 4 중의 어느 것을 횡단하여 slot 4의 내용을 목표 스팬이 포함 또는 배제하거나, 또는 마찬가지로 각각 ε SS 또는 slot 4→ slot 5 중의 어느 것을 횡단하여 slot 4slot 5 양자의 내용을 그 순서로 포함 또는 배제할 것을 선택할 수 있다.
도 27은 ww-1-e2-e2-1-slotted-contact-name.g의 채워진(populated) 버전을 도시하고, 이것이 어떻게 너무 작은 스팬 오류를 보상하는지를 보인다. 그 바로 밑에, 참(true) 단어 시퀀스는 파형을 산출하는 사용자의 실제 구두 명령을 보인다. 1차 인식기 출력은 1차 디코딩 단계에서 생성된 이 파형의 표기를 보이는데: 이것이 참 단어 시퀀스와 대응하지 않는 것에 주목하라. 그 위의 "시간(time)" 줄이 이제 부적절한 1차 인식기에 의해 생성된 단어 경계들을 보인다. 언어 이해 모듈이 결정한 대로 세 블록 "whole waveform prefix words," "target words," 및 "whole waveform suffix words"의 1차 인식기 출력의 분리는 어떻게 이 모듈이 너무 작은 스팬 오류를 저질렀는지를 보인다. ww-1-e2-e2-1-slotted-contact-name.g: (슬롯들이 채워짐) 그래픽은 도 26의 슬롯형 문법이 어떻게 ww 접두 단어들과 ww 접미 단어들에 적합한 단어 또는 단어 시퀀스들로 채워질 수 있는지를 보인다. 여기서, slot 2, slot 3, slot 4slot 5 들은 각각 추정 목표 단어들에 바로 인접한 ww 접두 단어들과 ww 접미 단어들의 한 단어씩(word apiece) 채워져, 2차 인식기가 표시된 슬롯들의 내용이 아니라 목포 섹션에 대한 입력 음성 신호의 해당 부분의 대응을 각 개별 단어의 입도(granularity)로 개정할 수 있게 해준다. 마지막으로, 도 27의 ww-1-e2-e2-1-slotted-contact-name.g: (디코딩 경로 A) 그래픽은 2차 인식기 출력을 산출하도록 횡단한 실제(actual) 문법 아크들을 보인다. 이 경로는 목표 섹션이 참(true) 목표에 대응되도록 정확히 확장되어, 연락처 명을 포함하는 전체 발언을 포함하고, 의미론적 의미 변수 c_id에 이제 정확히 식별된 연락처 명에 해당하는 수치 값 1을 할당하는 것에 유의 바란다.
도시된 디코딩 경로에서 "ε P "로 표지된 아크는 그래프에서 루프(loop)가 아니라는 것을 인식하는 것이 중요하다. 이는 "message"로 표지된 아크의 머리를 "Tasteve youngus thai"로 표지된 아크의 꼬리에 연결한다. 이 아크를 횡단하는 동안 2차 인식기가 (인식한) 입력 음성 신호의 대응된 부분이 없기 때문에 이 방식으로 도시되었다. 이에 따라, 이 대응 프로세스의 그래픽 표현(rendering)을 따르면서, 아크는 0(zero) 폭의 파형의 부분을 연결한다(bridge). 이에 따라 이는 루프로 보인다. 기능적으로 아크는 2차 인식기가 ww-1-e2-e2-1-slotted-contact-name.g: (슬롯들이 채워짐)의 ww 접두 섹션의 "to"로 표지된 대체적 아크를 스킵할 수 있는 길(way)을 제공함으로써, 2차 인식기가, 1차 인식기 출력 내의 이 단어를 산출한 음성이 목표 섹션의 어느 부분에 대해 대응시키도록 해준다.
마찬가지 언급이 "tasteve youngus thai" 아크의 머리를 "steve how are you" 아크의 꼬리에 연결하는 디코딩 경로에 있는 "ε SS " 아크에도 적용된다. 여기사 ww 접미 단어들 "SIL" 및 "hi" 모두 목표 섹션 애의 그 연계 음성과의 마찬가지 대응을 위해(in favor of) 스킵되었다.
도 26으로 돌아와, 아크 ε P 의 아크 ε PP 내의 내포(nesting)를 의미하는 ε PP 및 ε P 의 내포 구조가 중요하다. 예를 들어, ε PP slot 2 아크의 꼬리로부터 slot 3 아크의 머리로 연장되지 않지만, 대신 slot 2 아크만을 스킵한다고 가정해보자. 달리 말해, ε PP 아크가 ε P 아크에 내포되지 않지만 slot 2 아크의 꼬리로부터 slot 3 아크의 머리까지만 연장된다고 가정해보자. 이는 여전히 디코더에 slot 3 만의, 또는 slot 2slot 3 양자의 내용들을 목표 스팬에 포함할 공칭으로 바람직한 자유를 제공할 것이다. 그러나 이는 또한 디코딩 경로 slot 1→ ε PP→ slot 3 역시 허용함으로써, slot 2 의 내용에 해당하는 입력 음성 신호에 대한 명백한 대응을 제공하지 않으면서, 이와 동시에 이 음성이 목표 섹션 내에 대응되는 것을 금지한다. 그러나 이는 터무니없어, 이 디코딩 경로를 허용하는 것은 디코딩 오류를 만들 새로운 길을 도입하는 셈일 뿐이다. 이에 따라, 이 대체적인 구조가 너무 작은 스팬 오류를 해결할 가능한 방법이지만 위에 막 설명된 방법이 선호된다.
두 스킵 가능한 접두 단어들과 두 스킵 가능한 접미 단어들의 선택은 모두 임의적으로 실제 잘 작동한다고 파악된 설계를 간단히 나타낸다. 예를 들어, 적절한 문법 구조를 통해 구현된 세 스킵 가능한 접두 단어들과 세 스킵 가능한 접미 단어들을 가지는 설계 역시 동일하게 잘 작동할 것이다. 동일한 수의 스킵 가능하게 만들 접두 단어들 및 접미 단어들을 사용해야 할 어떤 합리적 이유는 없어서; 다른 수용 가능한 설계는 단지 한 접두 단어와 넷까지의 접미 단어들이 스킵 가능하게 하고, 역도 마찬가지다. 마찬가지로 앞에서 개선된 지연을 야기한다고 언급한 슬롯형 문법의 사용은 필요하지 않고; 동일한 아이디어가 생성과 컴파일 시 문언들로 완전히 채워진 문법에도 동일하게 잘 작동한다. 모든 이러한 대안 선택들은 본 발명의 실시예들로 간주된다.
도 27을 살피면, 1로 설정된 연계된 의미론적 의미 변수 c_id를 가지는 "SIL send a message tasteve youngus thai steve how are you"와 3으로 설정된 연계된 의미론적 의미 변수 c_id를 가지는 "send a message to steve youngest SIL hi steve how are you" 모두 입력 음성 신호의 타당한 디코딩들임을 알 수 있을 것이다. 실제 후자의 디코딩은 ww-1-e2-e2-1-slotted-contact-name.g: (디코딩 경로 B)로 그래픽 표지되어 도 27에도 도시되어 있다. 양 디코딩들이 모두 입력 음성 신호에 충분히 잘 대응되면, 양자 모두 점수 융합 모듈에 제공될 가능성이 높고, 거기서 어느 하나가 독립적인 근거들로 폐기되거나, 또는 가능하기로 양자가 최종 명확화를 위해 사용자에게 제공될 것이다.
이로서 wwapnr 변형예에 대한 논의를 완료한다. 이 변형은 wwapnr 아이디어와 조합되어 너무 작은 스팬 오류에 대처하는 이전에 설명한 방법을 포함한다는 점에 주목 바란다.
다음 wwapnr 변형예 역시 스팬 범위 오류들에 관련된다. 그러나 다음 wwapnr 변형예는 섹션 표제 "스팬 범위 오류에 대해 설계된 문법들(Grammars Designed for Span Extent Errors) 다음에 시작되는 6개의 문단의 시퀀스에서 전술한 스팬 범위 오류에 관련된다"로 시작되는 문단 위의 13개의 문단 시퀀스를 포함하는 이전의 논의가 너무 작은 스팬 오류에 관련된 반면, 여기서는 너무 큰 스팬 오류(span-too-large)를 처리한다. 이제 도 31에서, 구두 명령 "send a message to pak shak are you coming tonight"이 1차 인식기 출력 "send a message tupac shakur you coming tonight SIL"을 (잘못) 산출했다고 고려해보자. 언어 이해 모듈은 이를 text-message-to-user-contact 타입으로 정확히 식별할 것이다. 그러나 1차 표기에 구속되어, 언어 모듈은 목표 스팬이 표기된 단어들 "tupac shakur"를 포함한다고 부정확하게 결정하고, 이에 따라 ww 접두 단어들이 다른 것 없이 "send a message"를 포함하고 ww 접미 단어들이 다른 것 없이 "you coming tonight SIL"이라고 결정한다. 이 단어들이 도 28에 도시된 바와 같이 공칭 ww-3-3-slotted-contact-name.g 문법에 채워지면, 2차 인식기가 정확한 결과를 산출할 가능성은 낮다. 이는 문법 구조 덕분에, 말해졌지만 잘못 인식된 단어 "to"에 해당하는 입력 음성 신호의 부분과 마찬가지로, 말해졌지만 잘못 인식된 단어 "are"에 해당하는 입력 음성 신호의 부분이 목표 섹션의 아크로 표시된 어떤 문언 시퀀스의 시작 및 종료에 의해 대응되어야 하기 때문이다. 2차 인식기는 음성 신호의 이 부분들을 어디엔가 대응시켜야 하는데, 전체 파형 접두 섹션 또는 전체 파형 접미 섹션 내에서 각각 이들을 대응시킬 길이 없다. 이에 따라, 2차 인식기는 부득이 전체 목표 스팬 파형을 문법의 이 섹션에 대응시키려는 헛된 노력에서 목표 섹션을 통한 부정확한 경로를 선택할 가능성이 높다.
ww 접두 섹션과 ww 접미 섹션에 엡실론 경로를 추가하는, 전술한 너무 작은 스팬 오류를 해결하는 어떤 방법도 이 문제를 해결할 수 없다. 언어 모듈에 의해 결정된 대로 현재 예의 ww 접두 단어들과 ww 접미 단어들이 채워진 해당 ww-1-e2-e2-1-slotted-contact-name.g 문법이 도 29에 도시되어 있다. 네 엡실론 경로들로 2차 인식기에 부여된 자유는, 이들이 2차 인식기가 목표 스팬을 통한 최선 대응 경로를 파악하려 노력할 때 단어들 "a," "message," "you" 및 "coming"의 발성들을 부정확하게 소비하도록 허용하는 한, 이 문제를 악화시킬 수 있는 것이 명백하다.
근본적 문제는 주어진 1차 디코더 표기에 달리 어떻게 할 수 있었을지 파악하기 어려움이 인정됨에도 언어 이해 모듈이 너무 많은 음성을 문법의 목표 섹션에 대응시키도록 강제되는 것이므로, 이를 너무 큰 스팬 오류로 지칭한다.
이에 대한 해법은 도 30의 상반부의 그래픽에 ww-3-ls2-rs1-3-slotted-contact-name.g: (슬롯들이 안 채워짐)으로 표지된 그래픽에 도시된 문법 구조이다. 이 문법은 도 28의 ww-3-3-slotted-contact-name.g와 동일하지만 두 새로운 구조들을 포함하는 차이가 있는데: 좌측 끼움말(shim)과 우측 끼움말이다. 각 끼움말은 2차 인식기에 추가적인 자유를 허용하는데: 입력 음성 신호의 적절한 부분을 문법 목표 섹션 외부의 문법이 허용한 대체적 문언들로 디코딩할 기회들이다. 또한 각 끼움말 역시 각각 ε ls 및 ε rs 의 엡실론 경로를 포함하여 2차 인식기가 대안 문언 아크들 중의 하나의 횡단할 것을 강요받지 않지만, 이것이 문법 전반에 걸쳐 더 나은 음향 대응을 제공한다면 ww 접두 및 ww 접두와 독립적으로 언어 이해 모듈에 의해 원래 결정된 목표 스팬 범위를 존중(honor)할 수 있다.
도 30의 하반부에 ww-3-ls2-rs1-3-slotted-contact-name.g: (슬롯들이 채워짐)으로 표지된 그래픽은 그 슬롯들이 현재 예의 ww 접두 단어들 및 ww 접미 단어들로 채워진 이 문법을 보인다. 추가적으로, 그래픽에 도시된 좌측 끼움말에는 표시된 ww 접두 단어들에 적합한 두 대체적 문언들 "to" 및 "for"가 존재한다. 마찬가지로 그래픽에 도시된 우측 끼움말에는 표시된 ww 법미 단어들로 적합한 단 하나의 문언 "are"가 존재한다. 각각 둘 및 하나의 대체적 문언들을 지원하는 도시된 끼움말 구조는 단지 예시이다. 좌측 끼움말, 우측 끼움말, 또는 양자에 추가적 수의 대안들을 지원하는 구조들 역시 가능하고 선호될 것이다.
도 30의 논의로 돌아가, 각 끼움말 구조의 목적은 원래 언어 이해 모듈에서 결정된 목표 스팬을 2차 인식기가 개정할 수 있게 하는 것이지만, 너무 작은 스팬 오류들을 보상하는 이전 변형예들에 표현된 것과는 반대의 관점에서 이다. 현재의 변형예에서는, 이 구조들이 2차 인식기가 그렇지 않으면 좌측 및 우측 끼움말들의 비 엡실론 아크 상의 목표 섹션 내에서 그 외부에 나타나는 문언에 대응하도록 강제되었을 음성을 디코딩함으로써 스팬 범위를 좁히는 것을 허용한다. 이러한 좌측 끼움말과 우측 끼움말 슬롯들은 예를 들어 좌측 끼움말 아크의 경우 단지 단일한 문언이 아니라 단어 시퀀스 "to my friend"로 채워질 수 있음에 유의해야 할 것이다.
이 문법의 작동을 이해하기 위해 도 31을 참조하여 ww-3-ls2-rs1-3-slotted-contact-name.g: (디코딩 경로)로 표지된 그래픽을 고려해보자. 여기서 볼 수 있듯, 2차 인식기는 "to"로 표지된 아크를 통해 좌측 끼움말을 횡단하며 그 단어의 발성을 공칭으로 포함하는 입력 음성 신호의 부분을 대응시키고(파형의 실제 분할(segmentation)은 이뤄지지 않았지만, 도 31에 시간으로 표지된 줄에 보이는 바와 같이, 이는 대략 1145 ms로부터 1127 ms(양단 포함; inclusive)의 입력 음성 신호를 포함한다), 마찬가지로 "are"로 표지된 우측 끼움말을 통해 횡단하며 그 단어의 발성을 포함하는 입력 음성 신호의 부분을 대응시킨다. 그러면 이는 2차 인식기가 목표 섹션에 허용된 최선 음향 대응 탐색에 자유를 부여하여 이제 효과적으로 목표 음향 스팬을 축소시킨다. ww-3-ls2-rs1-3-slotted-contact-name.g: (디코딩 경로)로 표지된 경로에 보이듯, 이 최선 음향 대응은 문언 시퀀스 "Pak shak"이다. 2차 인식기는 이 아크를 통해 목표 섹션을 횡단함으로써 최종(정확한) 표기 "send a message to pak shak are you coming tonight SIL"을 의미론적 의미 변수 할당 c_id = 2와 함께 산출한다.
이 방법을 적용하는 데 있어서의 어려움은 어느 대체적 문언들이 좌측 끼움말과 우측 끼움말에 각각 컴파일되어야(또는 슬롯형 문법 구현의 경우, 채워져야) 할 것인가를 결정하는 것이다. 여러 가지 방법들이 가능하다. 타당한 좌측 끼움말 대체적 문언들을 파악하는 방법 중에서 (a) 공칭 목표 음향 스팬 시작의 대체적인 1차 디코딩들을 선택, (b) 전체 파형 접두 단어들의 가능한 전방 확장(forward extension)들을 선택하는 전방 언어 모델의 사용, (c) 공칭 목표 음향 스팬의 시작에 양호하게 음향 대응하는 어휘 목록(lexicon)의 단어들의 선택, (d) (b)와 (c)에서 산출된 점수들의 어떤 가중치 조합(weighted combination)에 따른 단어들의 선택, 또는 (e) 예를 들어 text-message-to-user-contact 타입의 경우 "to" 또는 "for" 등의 추정 목표 스팬 타입의 명칭 개체 바로 앞에 나타날 수 있을 것으로 알려진 단어들의 선택 등이 있다. 마찬가지로, 타당한 우측 끼움말의 대체적 문언들을 탐색하는 일부 방법들은 (a) 공칭 목표 음향 스팬의 종단의 대체적인 1차 디코딩들의 선택, (b) 전체 파형 접미 단어들의 가능한 후방 확장을 선택하는 역순 언어 모델(reverse language model)의 사용, (c) 공칭 목표 음향 스팬의 종단에 양호하게 음향 대응하는 어휘 목록의 단어들의 선택, (d) (b)와 (c)에서 산출된 점수들의 어떤 가중치 조합에 따른 단어들의 선택, 또는 (e) 예를 들어 text-message-to-user-contact 타입의 경우 "hi" 또는 "hey" 등의 추정 목표 스팬 타입의 명칭 개체 바로 뒤에 나타날 수 있을 것으로 알려진 단어들의 선택 등이 있다.
이로서 wwapnr의 이 변형예에 대한 논의를 완료한다. 이 변형예는 wwapnr 아이디어와 조합된, 너무 큰 스팬 오류에 대처하는 전술한 방법을 포함한다는 것에 유의하기 바란다.
막 설명한, 타당한 좌측 및 우측 끼움말의 대체적 문언들 또는 문언 시퀀스들의 결정의 어려움들을 감안하면, 이를 요구하지 않는 너무 큰 스팬 오류의 처리 방법을 가지는 것이 바람직하다. "음소 루프(phoneme loop)"라는 친숙한 개념을 사용하는 이러한 방법은 wwapnr의 다음 변형예를 포함한다. 음소 루프는 인식기에 알려진 음소의 임의의 시퀀스를 대응시키는 문법 구조라는 것을 상기하기 바란다. 즉, 이는 인식기의 음성표기법(phonetic alphabet) 내의 음소들의 임의의 시퀀스를 대응시킨다. 이 방법은 슬롯형 문법으로 구현될 때 좌측 및 우측 끼움말, 또는 해당 슬롯들의 대체적 문언들 또는 문언 시퀀스들의 음소 루프 구조로의 교체(replacing)를 포함한다.
도 32는 슬롯형 문법에 대한 본 발명 실시예를 도시한다. ww-3-lspl-rspl-3-slotted-contact-name.g: (슬롯들이 안 채워짐)으로 표지된 그래픽은 이전 도면의 문법의 좌측 끼움말 및 우측 끼움말 구조들이 어떻게 음소 루프로 교체되었는지를 보인다. 루프 자체는 양 끼움말들 내에서 {φ}"로 표지되는 표시된 루프 아크로 표시된다. 여기서 중괄호(curly braces)의 사용은 루프가 2차 인식기의 음성표기법 내의 어느 음소(f)에 대응될 수 있음을 지시하고자 의도한 것이다. 이에 따라 표시된 루프 아크는 실제, 각각 인식기의 음성표기법의 다른 음소로 표지되는 병렬 루프 아크들의 모음(collection)을 의미한다. 좌측 끼움말 내의 엡실론 경로 ε ls 및 ε ls' 들은 어떤 음향을 대응시키지 않는 좌측 끼움말 음소로의 액세스(access)를 제공하고; 이들은 또한 그러기 원한다면 음소 루프를 완전히 우회(bypass)하도록 허용한다. 유사한 언급이 우측 끼움말 내의 엡실론 경로 ε rs and ε rs' 들에도 적용된다.
작동에 있어서, 각 음소 루프는 대체적인 문언 또는 문언 시퀀스들로 표지된 좌측 끼움말 및 우측 끼움말보다 훨씬 덜 차별적인(discriminating) 버전으로 기능한다. 다시 도 31의 ww-3-ls2-rs1-3-slotted-contact-name.g: (슬롯들이 채워짐)으로 표지된 문법을 고려해보자. 전술한 바와 같이 1145 ms 내지 1271 ms(양단 포함)의 입력 음성 세그먼트 또는 그 부근은 "to"로 표지된 이 문법의 좌측 끼움말에 대응되는데; 이는 도 31의 ww-3-ls2-rs1-3-slotted-contact-name.g: (디코딩 경로)로 표지된 그래픽에 도시되어 있다. 도 32에 도시된 바와 같이, 좌측 끼움말 내의 음소 루프 덕분에 도 32의 ww-3-lspl-rspl-3-slotted-contact-name.g: (슬롯들이 채워짐)로 표지된 그래픽의 문법을 사용할 때 동일한 음성 세그먼트가 음소 시퀀스 "T UW"에 대응될 수 있다. 유사한 언급이 도 31에 도시된 바와 같이 "are"로 표지된 우측 끼움말 아크와, 도 32의 ww-3-lspl-rspl-3-slotted-contact-name.g: (슬롯들이 채워짐)로 표지된 그래픽의 문법을 사용할 때 우측 끼움말 내의 음소 루프를 통한 음소 시퀀스 "ER"에 의한 1940 ms 내지 2064 ms(양단 포함)의 대응에도 적용될 수 있다.
이는 도 33에 도시되어 있다. 이는 도 31의 ww-3-lspl-rspl-3-slotted-contact-name.g: (슬롯들이 채워짐) 및 ww-3-lspl-rspl-3-slotted-contact-name.g: (디코딩 경로)로 표지된 그래픽들이 각각 도 33의 ww-3-lspl-rspl-3-slotted-contact-name.g: (슬롯들이 채워짐) 및 ww-3-lspl-rspl-3-slotted-contact-name.g: (디코딩 경로)로 교체된 이외에는 도 31과 동일하게 구성(organize)되어 있다. 도 33의 ww-3-lspl-rspl-3-slotted-contact-name.g: (디코딩 경로)를 참조하여, 어떻게 좌측 끼움말 문법 구조가 디코딩 경로 ε ls TUWε ls′ 를 산출하는지 주목하라. 마찬가지로 우측 끼움말 문법 구조는 디코딩 경로 ε rs ERε rs′ 를 산출한다. 디코딩 경로 그래픽에서 ε ls , ε ls′ , ε rs 및 ε rs′ 로 표지된 아크들이 그래프에서 루프들이 아님을 인식하는 것이 중요하다. 오히려, "도시된 디코딩 경로에서 "ε P "로 표지된 아크는 그래프에서 루프(loop)가 아니라는 것을 인식하는 것이 중요하다"로 시작하는 위 문단의 도 27의 논의에서와 같이, 이 아크들의 각각은 0 폭의 파형의 부분을 연결(bridge)하여, 이전 경로 요소의 머리를 다음 경로 요소의 꼬리에 연결(connect)한다.
각 루프가 음소들의 임의의 시퀀스에 대응될 수 있고, 이에 따라 목표 음향 스팬에서 너무 많은 너무 많은 음향을 소비하여 다른 종류의 디코딩 오류를 야기할 수 있는 한, 음소 루프 기구는 대체 문언들 또는 문언 시퀀스들로 표지된 좌측 끼움말 및 우측 끼움말 아크들에 비해 덜 차별적이다. 실제로, 이 문제가 일어나지 않게 보장하도록 음소 루프들에 부여되는 가중치들은 목표 섹션의 가중치에 대해 조정(tune)되어야 한다.
마찬가지로, 도 34는 음소 루프 아이디어가 끼움말들 내의 아크들을 표지하는 데 대체적 문언들 또는 문언 시퀀스들을 사용하는 이전에 설명된 방법과 어떻게 조합될 수 있는지를 도시한다.
음소 루프 기구를 사용하는 한 문제는 음소 루프의 횡단이 목표 언어 내에서의 일반적인(conventional) 단어들이 아니라 음소들의 시퀀스를 포함하는 디코딩을 산출한다는 것이다. 도 33의 예에서, 디코딩 경로 상의 토큰들을 연쇄시키면 최종 표기 "send a message T UW pak shak ER you coming tonight SIL"이 산출된다. 사용자의 명령의 목적이 표기 자체를 포함하지 않으면 별 문제 없지만, (목적이) 명칭 개체의 식별이다. 예를 들어, 명령 "I want to listen to Stan Getz" 또는 "show me how to get to 600 Dulany Street in Alexandria Virginia"에 대해 첫 번째 것이 그 이름의 음악가의 음악을 틀어주고, 두 번째 것이 지도 및/또는 표시된 주소로의 운행 반향을 산출한다면 사용자는 확실히 만족할 것이다. 명령 타입들과 관련 명칭 개체들이 정확하게 디코딩되었다고 가정하면, 이 명령에 대해 얻어진 실제의 최종 표기에 관심이 없어 사용자에게 보이지 않을 가능성이 높다.
그러나 도 33의 예로 돌아와, 시스템의 다른 처리 단계들이 예를 들어 최종 출력 데이터세트 내의 의미론적 의미 변수 c_id의 존재와 그 값 2에 근거하여 "Pak shak"을 원하는 수신자로 정확히 선택하고, "send a message T UW pak shak" 또는 침묵 마커(silence-marker) 토큰 "SIL"의 어느 것도 의도한 메시지의 일부가 아니라고 역시 정확히 판단했다고 하더라도, 공칭으로 메시지 본문을 포함하는 표기 "ER you coming tonight"의 균형(balance)은 음소 "ER"의 존재 때문에 용납되지 않을 것이다.
이를 보상하는 한 수단은 어떤 이런 사용자가 볼 수 있는 표기를 후처리(post-process)하는 것인데, 시스템의 인간 사용자 또는 그 출력의 소비자에게 보일 2차 표기의 어느 부분을 어휘 목록(lexicon)에 존재하는 가장 가깝게 대응되는 단어 또는 단어들의 음소들 또는 음소 시퀀스들로 대체하는 것을 의미한다. 이 전략을 2차 인식기 표기의 조각(fragment) "ER you coming tonight"에 적용하면 "are you coming tonight"가 산출된다. 다른 더욱 정교한 방법들도 음소 또는 음소 시퀀스를 대체할 일반 언어의 단어 또는 단어들을 선택할 때 어휘 목록의 유사한 검색을 포함할 수 있고, 언어 모델 점수도 마찬가지로 포함할 수 있다. 당업계에 통상의 기술을 가진 자에게는 이 언어 모델 점수가 그 자체로 하나 이상의: 추정 명령 타입, 추정 스팬 타입, 추정 스팬 디코딩, 목표 스팬에 대한 음소 시퀀스의 위치(즉 목표 스팬에 바로 선행 또는 바로 후행), 하나 이상의 인접 디코딩된 단어들, 또는 하나 이상의 알거나 가정된 발언의 특성들에 조건 지어질 수 있음이 명확할 것이다.
이로서 wwaprn의 이 변형예들에 대한 논의가 완료된다. 이 변형예들은 이전에 설명된 너무 큰 스팬 오류들의 처리 방법에 대한 진보(advance)를 포함하여, 전술한 방법들의 어느 것이나 막 설명된 wwapnr과 조합되어 사용될 수 있음에 주목해야 할 것이다.
wwapnr 방법의 또 다른 자연적 변형은 단일한 문법으로 너무 작은 스팬 및 너무 큰 스팬 오류의 어느 것 또는 양자를 동시에 대처하는 방식이다. 이러한 방식은 어떤 특정한 1차 디코딩 및 언어 이해 단계에서 현재 가정된 스팬 범위가 너무 작은 스팬 오류, 너무 큰 스팬 오류, 너무 작은 스팬 오류 및 너무 큰 스팬 오류(이는 일단에서 스팬이 너무 작고 타단에서 너무 크면 발생한다)가 발생할지, 또는 어느 것도 발생하지 않을지 알 수 없으므로 유용하다. 이에 따라, wwapnr 방법의 이점들을 보유하면서, 스팬 범위 오류의 모든 가능한 모드들과 조합들의 교정을 허용한다.
이러한 기구를 도 35에 보인다. ww-1-e2-ls2-rs2-e2-1-slotted-contact-name.g: (슬롯들이 안 채워짐)으로 표지된 그래픽은 엡실론 경로들을 통해 너무 작은 스팬 오류를 끼움말들을 통해 너무 큰 스팬 오류를 모두 처리할 수 있는 구조들을 통합한 슬롯형 문법을 보인다. 이 문법은 모두 채워진, 접두 슬롯 slot 1, slot 2slot 3들과, 접미 슬롯 slot 4, slot 5slot 6들과, 좌측 끼움말 슬롯들 ls 1 ls 2와 그리고 우측 끼움말 슬롯들 rs 1 rs 2를 가진다. 전술한 바와 같이, 이 슬롯들의 수는 임의적으로 순전히 예시적이며; 이 설계는 원하는 전도(more or less)의 슬롯들로 일반화될 수 있다. 이 문법 역시 예들의 작동중인(running) 시퀀스에 걸쳐 사용해온 동일한 목표 섹션을 포함하는데, 이는 미리 등록된 사용자 연락처 명들의 목록을 반영하지만; 이 역시 임의적으로 순전히 예시적이다.
이제 이 문법의 작동과, 어떻게 이것이 원하는 효과를 달성하는지 논의한다. 먼저 문법의 접두 및 좌측 끼움말 섹션들을 고려하자. 엡실론 경로 ε P 및 ε PP 는 각각 slot 3만의 또는 slot 2slot 3 양자의 내용들에 의해 공칭 목표 스팬을 좌측으로 확장시킬 수 있게 한다. 달리 말해, 이 문법의 채워진 버전을 적응 객체로 2차 디코딩을 수행할 때, 이 엡실론 경로들이 이 슬롯들에 채워진 단어들에 해당하는 음성 입력 신호의 부분이 너무 작은 스팬 오류의 논의에서 전술한 바와 같이 목표 섹션에 대응될 수 있게 한다. 역으로, 좌측 끼움말 슬롯들 ls 1 ls 2에 연계된 아크들이 제2 인식기가 너무 큰 스팬 오류의 논의에서 전술한 바와 같이, (슬롯들이) 채워져 있다면 목표 섹션이 아니라 이 슬롯들의 내용들을 입력 음성 신호의 부분에 대응시킬 수 있게 한다. 도시된 구조의 신규한 특성은 2차 인식기가 너무 작은 오류를 교정하기 위해 엡실론 경로들 ε P 및 ε PP , 또는 너무 큰 스팬 오류를 교정하기 위해 슬롯들 ls 1 ls 2 중의 어느 것에 연계된 좌측 끼움말 아크들, 또는 최선의 가능한 음향 대응을 얻기 위해 slot 2→ slot 3→ε ls 경로를 횡단함으로써 교정하지 않는 것을 자유로이 채택할 수 있는 것이다. 더구나 이 선택권들은 슬롯형 문법으로 구현된 단일한 적응 객체에 의해 제공된다.
양 엡실론 경로들 ε P 및 ε PP 이 어떻게 좌측 끼움말 구조 상에 연장되는지 주목하라. 이는 ε P 또는 ε PP 중의 어느 것이 2차 디코딩 동안 횡단되면 - 즉 디코더가 ww 접두 음향 스팬에 대한 너무 작은 스팬 오류를 교정할 것을 선택했으면 - 좌측 끼움말의 어느 아크도 횡단되지 않는다. 마찬가지로, 좌측 끼움말 아크들의 어느 것이 2차 디코딩 동안 횡단되면 어느 엡실론 경로 ε P 또는 ε PP 도 횡단되지 않을 것이다. 이는 ww 접두 음향 스팬에 대한 너무 작은 스팬 오류와 너무 큰 스팬 오류가 동시에 일어나는 것이 불가능하기 때문에 바라던 대로이다.
실제로, 이 대체적인 구조를 고려해보면: [0335] Indeed, consider this alternate structure: ε P 및 ε PP 경로의 머리들이 ε ls , ls 1 ls 2 아크들의 공통의 꼬리에 부착되면, 2차 인식기는 다시 너무 작은 스팬 또는 너무 큰 스팬 오류를 교정할 자유를 가질 수 있을 것이다. 그러나 이는 또한 (예를 들어) ε P ls 1 양자를 횡단할 수 있는 자유 역시 가짐으로써 양자 모두 ww 접두 음향 스팬에 관한 너무 작은 스팬 또는 너무 큰 스팬 오류를 동시에 교정한다. 그러므로 이 대체적 구조는 제안된 설계보다 열등하다.
유사한 언급이 문법의 접미 및 우측 끼움말 섹션들에도 적용된다.
이제 본 발명 실시예들의 작동을 더 설명하기 위해 두 친숙한 예들을 사용하는데: 사용자 명령 "send a message to pak shak you coming tonight" 및"send a message tasteve youngus thai how are you"들이다. 첫 명령에 관해서는, 1차 디코딩이 다시 "send a message tupac shakur you coming tonight SIL" 이고 전과 같이 언어 이해 모듈이 이를 text-message-to-user-contact 타입의 명령이라고 정확히 인식했지만, 그 다음 표기된 단어들 "tupac shakur"가 목표 스팬을 포함하는 것으로 잘못 판단했다고 가정하자. 그러면 이 판단은 단어 또는 단어 시퀀스 "send," "a," "message"로 접두 섹션을 채우도록 하고, 마찬가지로 "you," "coming," "tonight SIL"로 접미 섹션을 채우도록 한다. 더구나 전술한 하나 이상의 근거로 언어 이해 모듈이 "to" 및 "for"를 가능한 좌측 끼움말 단어들로 제안하고, "are"를 가능한 우측 끼움말 단어로 제안한다. 이 단어들은 모두 각 슬롯들에 채워져야 하는데: 결과적으로 완전히 채워진 문법은 ww-1-e2-ls2-rs2-e2-1-slotted-contact-name.g: (슬롯들이 1차 디코딩 "send a message tupac shakur you coming tonight SIL"에 대해 채워짐)로 표지된 그래픽으로 도 35에 보인다. 슬롯 rs 2에 연계된 우측 끼움말 아크는 그래픽에 빈 하얀 사각형으로 표기된 바와 같이 채워지지 않는다. 이는 실수가 아니다. 단지 한 우측 끼움말 단어 "are"만이 제안되었는데, 이는 슬롯 rs 1,에 채워진 것으로 도시되어 있고, 나머지 슬롯 rs 2는 사용되지 않는다. 이는 역효과(adverse effect)가 없는데: 단어 또는 단어 시퀀스가 슬롯 rs 2에 채워지지 않아 디코딩 동안 어떤 음성과도 대응되지 않기 때문이다. 이는 바라던 바다.
도 35의 논의를 계속하여, 이제 제2 명령으로 주의를 돌린다. 마찬가지로 1차 디코딩이 SIL send a message to steve young us hi steve how are you"이고, 언어 이해 모듈이 다시 "steve young us"를 목표 스팬으로 잘못 식별했다고 가정하자. 이는 단어 또는 단어 시퀀스 "SIL send a," "message" 및 "to"을 ww 접두 단어들로, "SIL," "hi" and "steve how are you"를 접미 단어들로 남긴다. 언어 이해 모듈은 "contact" 및 "my friend"로 좌측 끼움말 슬롯들을 채울 것을 제안하고 우측 끼움말 슬롯에는 단어를 채우지 말 것을 제안한다. 이 단어들 또는 단어 시퀀스들이 각각의 슬롯들에 모두 채워지면, 도 35에 ww-1-e2-ls2-rs2-e2-1-slotted-contact-name.g: (슬롯들이 1차 디코딩 "SIL send a message to steve young us hi steve how are you"에 대해 채워짐)로 표지된 완전히 채워진 문법을 산출한다. 우측 끼움말 슬롯들 중의 어느 것도 채워지지 않았고; 이에 따라 문법은 양 연계된 아크들이 없는 것처럼 거동함에 주목을 요한다.
도 35의 두 채워진 문법들을 비교하면, 양자 모두 도 35 꼭대기의 동일한, 채워지지 않은 문법에서 도출되었다는 사실이 주의를 끈다. 이들은 약간 달리 도출되고 다른 단어들 또는 단어 시퀀스들로 채워지지만, 토폴로지로는 양자가 동일하다. 우리가 현재 보아야 할 것은, 이 공통의 구조가 한 경우 너무 큰 스팬 오류를 교정하고 다른 경우에 너무 작은 스팬 오류를 교정할 수 있게 한다는 것이다.
명령 "send a message to pak shak are you coming tonight"에 대한 입력 음성 파형을 보이는 도 36을 고려해보자. 참(true) 단어 시퀀스, 시간, 1차 인식기 출력, 전체 파형 접두 단어들, 목표 단어들, 및 전체 파형 접미 단어들은 모두 도 31에 이미 도시된 것과 동일하다. 그러나 이제 적응 객체가 ww-1-e2-ls2-rs2-e2-1-slotted-contact-name.g: (슬롯들이 1차 디코딩 "send a message tupac shakur you coming tonight SIL"에 대해 채워짐)로 표지된 문법인데, 이는 도 35에서 복사해오고 앞의 문단들에서 설명된 대로 준비되었다. 된 이다. 도 36의 ww-1-e2-ls2-rs2-e2-1-slotted-contact-name.g: (디코딩 경로)로 표지된 그래픽에 도시된 바와 같이, 2차 인식기 디코딩 경로가 너무 큰 스팬 오류를 교정하여 정확한 디코딩 "send a message to pak shak are you coming tonight SIL"을 연계된 의미론적 의미 변수 값 c_id = 2와 함께 산출한다.
마찬가지로 이제 도 37을 고려하는데, 이는 명령 "send a message tasteve youngus thai steve how are you"에 대한 입력 음성 파형을 보인다. 다시 참(true) 단어 시퀀스, 시간, 1차 인식기 출력, 전체 파형 접두 단어들, 목표 단어들, 및 전체 파형 접미 단어들은 모두 이 명령에 대한 해당 도면, 도 27에 이미 도시된 것과 동일하다. 그러나 도 37에서 적응 객체는 도 35에서 복사해온 ww-1-e2-ls2-rs2-e2-1-slotted-contact-name.g: (슬롯들이 "SIL send a message tasteve youngus thai steve how are you"에 대해 채워짐)으로 표지된 문법이다. 전술한 바와 같이, 이 문법은 도 36의 문법과 동일한 토폴로지를 가지는데; 이는 단순히 도 37의 예시적 명령의 1차 디코딩에 적절한 단어들 또는 단어 시퀀스들로 채워졌다. 그럼에도 불구하고 ww-1-e2-ls2-rs2-e2-1-slotted-contact-name.g: (디코딩 경로 A)으로 표지된 그래픽에 보인 대로 2차 인식기가 표시된 경로를 통해 이 문법을 횡단하여 정확한 디코딩 "SIL send a message tasteve youngus thai steve how are you"을 연계된 의미론적 의미 변수 c_id = 1과 함께 산출한다.
도 27의 문법에 대해 살피면 ww-1-e2-ls2-rs2-e2-1-slotted-contact-name.g: 디코딩 경로 B)로 표지된 그래픽으로 도 37에 도시된 대체적 경로 역시 2차 인식기가 부정확한 디코딩 "SIL send a message to steve youngest hi steve how are you"를 연계된 의미론적 의미 변수 값 c_id = 3과 함께 얻을 수 있게 한다. 그러나 이전과 같이 이 디코딩은 덜 허용 가능한 음향 대응, 또는 어떤 다른 근거로 제거되거나, 또는 사용자에 의한 최종 선택을 위해 이전 디코딩과 함께 제공될 수 있다.
스팬 범위 오류들의 모든 가능한 모드와 조합들을 교정하는 다른 방법은 네 구별되는(distinct) 문법 또는 슬롯형 문법들을 활용하는 것인데: 하나는 목표 스팬의 전과 후 모두에서 너무 작은 스팬 오류들을 교정할 수 있는 것이고, 하나는 목표 스팬의 앞에서 너무 작은 스팬을, 목표 스팬의 뒤에서 너무 큰 스팬을 교정할 수 있는 것이며, 하나는 목표 스팬의 앞에서 너무 큰 스팬을, 목표 스팬의 뒤에서 너무 작은 스팬을 교정할 수 있는 것이고, 그리고 하나는 목표 스팬의 전과 후 모두에서 너무 큰 스팬 오류들을 교정할 수 있는 것이다. 그러나 이는 막 설명한 방법에 비해 연산 원가가 네 배 높고, 이에 따라 선호되지 않는다.
이어지는 설명(text)에서 본 발명의 추가적인 실시예들의 논의를 계속할 것이다. 이 논의는 wwapnr의 뼈대 내에서 계속될 것이다. 그러나 이 변형예들은 이 명세서의 앞에서 설명한 바와 같이, wwapnr을 사용하지 않는 실시예들도 마찬가지로 잘 적용될 수 있다.
"실제 이 과정의 변형에서, ww 접두 및 접미 단어들에 대해 1차 인식기로 디코딩된 개별적인 발음, 또는 동등하기로 기본형들은 적응 객체 준비 단계에 그 자체로 제공되고, 이 경우 문법에 삽입됨으로써 문법의 이 섹션들을 처리할 때의 2차 인식기의 작업 부하를 더욱 저감시키며, 이에 따라 전체 파형 음향 스팬의 2차 디코딩의 증분 원가를 더 작은 음향 스팬을 디코딩하는 경우보다 역시 저감시킨다"로 시작하는 문단 위에서, 적은 객체 내에서 단어들이 아닌 기본형의 사용을 이미 언급한 바 있다. 이 변형예에 대해, 1차 인식기 출력이 실제 흔한 바와 같이 1차 표기의 각 단어에 대해 디코딩된 기본형들을 추가적으로 포함할 수 있다고 가정한다.
이 변형에서, 1차 인식기 출력으로부터 출력되었고 이 시점까지 단어들이었던 적응 객체의 요소들이 1차 인식기에 의해 결정된 해당 기본형들로 대체된다. 이에 따라 적응 객체가 문법이라면, 1차 표기로부터의 단어들로 표지되었던 문법의 각 아크들이 이 변형예에서는 대신 1차 표기로부터의 해당 기본형들로 표지된다. 마찬가지로 적응 객체가 슬롯형 문법이라면, 1차 표기로부터의 단어들로 채워졌던 어떤 슬롯들이 이 변형예에서는 대신 1차 표기로부터의 해당 기본형들로 채워진다.
전술한 바와 같이, 도 21은 기본형들의 시퀀스로서의 1차 인식기의 출력을 도시하고, 이어서 이들이 어떻게 ww-contact-name.g 적응형 문법의 아크들을 표지하는 데 사용되는지를 보인다. 도 21의 일부 기본형들에 사용된 작은 글꼴(font)은 의미가 없는데: 이는 순전히 작은 공간에 텍스트를 맞추기 위한 인쇄상의 편법일 뿐이다. 모든 아크가 기본형으로 표지되지는 않은 것에 주목을 요한다. 예를 들어, 목표 섹션의 아크들은 여전히 사용자의 연락처 목록에서 도출한 단어들로 표지되어 있다. 이것은 이 단어들에 1차 디코딩을 하지 않았기 때문인데, 그 일부는 심지어 1차 인식기의 어휘 목록에 나타나지 않지만 발생될 수 있다. 이에 따라 어떤 이런 단어들의 각 가능한 기본형은 2차 인식기로 고려되어야 하고; 목표 섹션을 디코딩할 때 2차 인식기를 어느 특정한 기본형에 제한하도록 적응 객체가 구축되지도 채워지지도 않는다. 그러나 사용자의 연락처 명 목록 자체가 가능하기로 사용자가 제공한 어떤 주어진 이름의 바람직한 기본형을 포함할 수 있다는 것이 언급되어야 한다. 이는 특히 특이한 이름일 가능성이 높은데, 그렇다면 이 알려진 바람직한 기본형이 적은 객체에 적절히 포함될 수 있고, 이는 이 예에서 ww-contact-name.g의 목표 섹션을 포함한다.
도 38은 마찬가지로 이 변형예를 도시하는데, 여기서 적응 객체는 도 21보다 더 정교한 구조를 가지는 슬롯형 문법이다. 다시 도 38에는 1차 인식기 출력이 기본형들의 시퀀스로 도시되어 있다. ww-1-e2-ls2-rs2-e2-1-slotted-contact-name.g의 ww 접두 및 ww 접미 섹션들의 슬롯들은 이제 단어들이 아니라 기본형들로 채워져 있다. 그러나 좌측 끼움말과 우측 끼움말의 슬롯들에 대해서는 그렇지 않다. 이는 1차 인식기로부터의 실제 디코딩 결과가 아니라 2차 인식기에 의해 디코딩되었을 대체적 문언들로 채워지므로, 2차 인식기는 각 끼움말 단어에 대해 각 가능한 기본형을 고려하는 데 자유로워야 한다.
도 38에서 ww-1-e2-ls2-rs2-e2-1-slotted-contact-name.g: (디코딩 경로)로 표지된 그래픽은 이 변형예에 의해 부여된 이점을 도시한다. 2차 인식기에 의해 선택된 ww-1-e2-ls2-rs2-e2-1-slotted-contact-name.g 문법을 통한 경로를 지시하는, 이 그래픽의 ww 접두 섹션 대응 및 ww 접미 섹션 대응 부분들은 단어들이 아니라 기본형들로 표지되어 있다. 더구나 이 기본형들은 문법의 해당 아크 상의 것들과 대응된다. 이는 물론 사고가 아니다. 기재된(cited) 문법 아크들이 단어들이 아니라 기본형들로 표지되었기 때문에 디코더는 단지 표시된 기본형 만에 해당하는 입력 음성 신호의 해당 부분들을 대응시키도록 허용된다. 이 제한이 2차 인식기의 활동의 자유를 제한하여 가능하기로 2차 표기에 오류로 결과될 듯 보이지만, 실제 이는 정확성에 영향을 미치지 않는다. 문법 내의 기본형은 1차 인식기 출력의 해당 위치에 정확히 나타나는 것이고, 이에 따라 입력 음성 신호에 잘 대응하는 것이 이미 알려져 있다. 이에 따라 제한은 2차 인식기가 그 어휘 목록에 존재할 수 있는 이 단어들 간의 음향 대응의 품질(quality)을 쓸데없이 탐색하는 것을 방지하는 위에 기재한 이점을 가진다. 그러면 이는 문법의 ww 접두 및 ww 접미 섹션들을 처리할 때 2차 인식기의 연산 작업 부하와 메모리 요구치들을 저감시킨다.
실제 당업계에 통상의 기술을 가진 자라면 1차 인식기에 의한 기본형 출력이 문맥 의존(context-dependent) 음소들의 시퀀스들을 포함할 수 있고, 이에 따라 막 설명한 방식으로 적응 객체에 삽입될 수 있음을 알 수 있을 것이다. 이 경우 본 발명의 다른 실시예에서는 주어진 적응 객체에 대해 디코딩을 수행할 때 문맥 의존 음소들의 시퀀스들이 2차 인식기에 의해 사용될 수 있을 것이다. 이는 마찬가지로 2차 인식기를 더 제한하지만 정확도에는 영향을 미치지 않고 연산 작업 부하와 메모리 요구치들을 더욱 저감시킬 것이다.
이 논의는 2차 인식기가 단어들과 기본형들이 자유롭게 혼합된 문법을 사용할 수 있다고 가정했다. 어떤 주어진 단어에 대한 음향 대응의 품질을 평가할 때 2차 인식기가 적어도 하나의 기본형과 전형적으로 그 단어에 연계된 모든 기본형들에 대해 이 평가를 궁극적으로 수행해야 하기 때문에 실제 이는 특별히 부담스런 요건이 아니다. 실제, 2차 인식기의 음성표기법으로부터 추출한 개별 음소들로 문법 아크들이 표지되거나, 또는 동등하게 슬롯형 문법 슬롯들이 채워지는 다른 변형예에 대해 간단히 고려해볼 것이다. 논의의 참조의 편의상, 때로는 아크 레이블 또는 슬롯 내용들로 사용될 수 있는 객체들 - 단어(특히 문언), 기본형, 및 음소들 - 을 "문법 레이블(grammar label)들" 또는 간단히 "레이블들"로 지칭할 것이다.
이제 막 설명한 실시예의 추가적인 개량을 탐색해보자. 이 개량의 동기를 유발하도록, 1차 인식기 출력을 거의 또는 전혀 쓸모없게 하는 도 30 내지 38(양단 포함)에 도시된 끼움말 장치를 전술한 바와 같이 관찰한다. 끼움말들은 이 도면들에서 추정된(guessed) 대체적 문언들 또는 문언 시퀀스들, 또는 음소들의 임의의 시퀀스에 대응하는 음소 루프 중의 어느 것을 포함하는 것으로 도시되었다(display). 1차 인식기 출력에 대한 그 음향 근접성에 기반한 대체적 문언들 또는 문어 시퀀스들의 취출(picking)이 언급되었지만, 이 출력은 그 외에는 무시될 수 있다. 이에 따라 이 실시예들은 (a) 음소 루프의 사용은 검색에서 이것이 2차 인식기에 부과하는 연산의 요구가 크고, 및 (b) 2차 인식기가 모든 대체적 문언들에 대한 모든 기본형을 탐색해야 하는 점에 있어서 비효율적이다. 이 방법은 또한 음소 루프가 디코더에 음소들의 임의의 시퀀스들과의 대응을 허용하므로 너무 많은 자유를 제공하고, 이 방법이 디코더가 끼움말 내에 나타나는 문언들과 만의 대응되는 것을 배제하므로 너무 자유가 적은 양자를 2차 인식기에 허용하는 점에서 잠재적으로 오류가 발생하기 쉽다.
이제 1차 인식기 기본형 출력을 이용함으로써 이 양 극단들 사이의 중간 경로를 택할 수 있는 변형예를 설명한다. 이 변형예는 추정 목표 섹션의 시작에 1차 인식기로 디코딩된 음소 시퀀스의 부분을 포함하는 좌측 끼움말과, 추정 목표 섹션의 종단에 1차 인식기로 디코딩된 음소 시퀀스의 부분을 포함하는 우측 끼움말을 사용한다. 이 끼움말들은 적응 객체가 문법이라면 직접 구축되고, 또는 적응 객체가 슬롯형 문법이라면 적절한 슬롯들을 적절히 채워 생성될 수 있다. 당업계에 통상의 기술을 가진 자라면 어느 것에도 마찬가지로 잘 적용할 수 있을 것이므로, 이하의 이 논의에서 적응형 객체로서 문법과 적응형 문법을 구별하지 않을 것이다.
끼움말들은 목표 스팬의 1차 인식기 디코딩에 연계된 음소 시퀀스의 선택된 접두 및 선택된 접미(시퀀스)로부터 구축된다. 이러한 각 접두 및 접미 시퀀스에 이제 친숙한 엡실론 경로들의 내포된 조립체(nested assembly)를 결합하여, 2차 인식기는 문법의 목표 섹션에 대해 선호하는 대로 추정 목표 섹션 음향 스팬의 인접 부분들을 대응시키거나 대응에서 배제시킬 수 있다. 이에 따라 이 방법은 언어 이해 모듈로 할당된 가능하기로 너무 큰 범위를 효율적으로 좁힐 수 있지만 2차 인식기가 개별 음소의 입도(granularity)로 이를 확장시키는 것을 허용하는 방식에 의한다.
도 39는 이 아이디어를 먼저 살폈던 예시적 너무 큰 스팬에의 적용을 도시한다. 이전과 같이 도 39의 1차 인식기 출력(기본형)으로 표지된 줄은 1차 인식기에 의해 디코딩된 전체 발언에 대한 기본형들의 시퀀스를 보이고, 그 바로 아래의 1차 인식기 출력(음소) 줄은 표시된 각 기본형에 해당하는 실제 음소 시퀀스를 보인다. ww-3-lsp3-rsp3-3-slotted-contact-name.g: (슬롯이 1차 디코딩 "send(01) a(02) message(01) tupac(01) shakur(01) you(03) coming(01) tonight(01) SIL(02)"에 대해 채워졌음)로 표지된 그래픽은 연계된 슬롯형 문법과, 원하는 효과를 달성하기 위해 이것이 어떻게 채워지는지를 보인다. ww 접두 및 ww 접미 섹션 슬롯들은 전술한 바와 같이 1차 이식기 출력으로부터의 기본형들로 채워진다. 그러나 이전의 실시예들과는 달리, 좌측 끼움말과 우측 끼움말은 이제, 각각 추정 목표 스팬에 대한, 1차 인식기에 의한 첫 3개 및 마지막 3개의 음소 출력들로 표지된 세 아크들의 선형(linear) 시퀀스를 포함한다. 이에 따라, 좌측 끼움말의 아크들은 "T" "UW" "P" 로 표지되고, 우측 끼움말의 아크들은 "AA" "K" "ER"로 표지된다. 각 끼움말을 위한 세 음소들의 선택은 임의적이며, 실제로 잘 작동한다고 알려진 설계를 반영한다. 더 많거나 더 적은 수의 음소들을 가지는 것도 가능하며, 좌측 끼움말과 우측 끼움말들의 음소들의 수다 다른 설계들이 그런 것처럼, 역시 본 발명의 범위 내에 포괄된다. 또한 도 39에서, 이 명세서의 다른 곳처럼 예시적 음성표기법(phoneme alphabet)는 ARPAbet이다. 이 선택은 임의적이며, 순전히 설명의 편의를 위한 것이다. 엡실론 아크들 - 좌측 끼움말 내에 ε ls", ε ls′ 및 ε ls 로 표지되고, 우측 끼움말 내에 ε rs , ε rs′ 및 ε rs" 로 표지됨 - 의 두 내포 구조(nested structure)들에 주목하라. 이들은 2차 인식기가 좌측 끼움말 음소들 및 우측 끼움말 음소들의 인접 시퀀스들에 해당하는 파형의 부분만을 대응 또는 배제하도록 자유를 부여하는 원하는 특성을 산출함으로써, 2차 인식기가 지금 축소된 목표 음향 스팬을 개별 음소의 입도로 확장하여 목표 섹션의 최선의 가능한 대응을 얻을 수 있게 한다. 뿐만 아니라 이 최선의 가능한 대응을 탐색하기 위해 1차 인식기 출력에 나타나는 음소들만을 출현하는 순서 대로 고려할 필요가 있다.
이 기능이 도 39의 ww-3-lsp3-rsp3-3-slotted-contact-name.g: (디코딩 경로)로 표지된 그래픽에 도시되어 있다. 좌측부터 우측으로 읽으면 도시된 디코딩 경로는 먼저 ww 접두 섹션의 ww 접두 음향 스팬에 대한 강제 정렬을 포함하는데; 이는 물론 문법 구조에 의해 요구된다. 다음, 2차 인식기는 경로 T → UW → ε ls → pak shak [c_id=2] → ε rs′ → ER을 선택한다. T 및 UW로 표지된 좌측 끼움말 아크들을 횡단함으로써 2차 인식기는 목표 섹션 외부의 이 음소들에 해당하는 파형의 인접 음성을 대응시킨다. 역으로, ε ls 로 표지된 아크를 횡단함으로써 목표 섹션 내에서 이 아크 P 밑의 음소에 해당하는 파형의 음성을 대응하도록 선택한다. 이러한 방식으로 2파 인식기는 연락처 명의 "pak" 부분에 대한 양호한 대응을 얻을 수 있는데; 좌측 끼움말이 없으면 이는 불가능했을 것이다. 이것만이 허용된 표시된 구조와 문법 전체에 대해 입력 음성 신호의 표시된 부분, 즉 음소 시퀀스 T UW P의 발성을 대응시키는 세 다른 방법들이 있는데, 세 다른 방법은: (a) 목표 섹션 외부의 표시된 발성의 전체를 대응시키고, 내부에는 안 하는 방법, (b) 목표 섹션 외부의 T의 발성을 대응시키고, 나머지는 내부에서 하는 방법, 및 (c) 목표 섹션 외부의 표시된 발성의 어느 것도 대응시키지 않고 나머지는 내부에서 하는 방법이다. 이 가능성들의 각각과, 이에 더하여 ww 접두 음향 스팬과 목표 음향 스팬 간의 다른 공칭 경계에 해당하는 것을 단일 음소의 입도로 선택한 것이 있다. 뿐만 아니라, 목표 섹션 외부에서 대응된 T 및 P의 발성 등 목표 섹션 내부에 대응된 UW의 발성과 인접하지 않아 무의미한 발성의 분할은 좌측 끼움말 구조에 의해 허용되지 않는다.
마찬가지로 우측 끼움말 아크 ε rs 를 횡단함으로써 2차 인식기는 음소 ER에 o당하는 음성을 그 외부에서 대응시키면서, 목표 섹션 내에서 그 아래의 음소 시퀀스 AA, K에 해당하는 파형의 음성을 대응시킨다. 디코딩 경로의 나머지는 ww 접미 음향 스팬에 대한 ww 접미 섹션의 강제 정렬이다.
막 논의한 예에서 명확하듯이, 이 변형예가 음소들을 표기 내에 포함할 수 있는 것에 주목해야 한다. 그러나 "음소 루프 기구를 사용하는 한 문제는 음소 루프의 횡단이 목표 언어 내에서의 일반적인 단어들이 아니라 음소들의 시퀀스를 포함하는 디코딩을 산출한다는 것이다"로 시작하는 세 문단에서 논의한 바와 같이, 이는 대수롭지 않거나 거기 상세히 설명한 방법으로 다뤄져야 할 것이다. 이 언급은 표기 내에 음소들을 포함하는 다른 변형예에도 마찬가지다. 이것으로 이 변형예의 설명을 완료한다.
이 변형예의 바로 다음 확장은 너무 큰 스팬 오류를 교정하는 막 설명된 기구를 전술한 방법들의 어느 것과 조합하여 너무 작은 스팬 오류를 처리하는 것이다. 도 40은 이러한 조합을 도시한다. 이 변형예에서 ww-1-e2-lsp3-rsp3-e2-1-slotted-contact-name.g: (슬롯들이 1차 디코딩 "send(01) a(02) message(01) tupac(01) shakur(01) you(03) coming(01) tonight(01) SIL(02)"에 대해 채워짐)으로 표지된 그래픽으로 도시된 바와 같이, ww 접두 섹션과 ww 접미 섹션은 1차 인식기가 디코딩한 기본형들로 이전과 같이 채워진다. 그러나 아크 ε PP , ε P , ε S 및 ε SS 들의 추가는 전ㅅㄹ한 바와 동일한 방식으로 너무 작은 스팬 오류의 교정을 가능하게 한다. 이 예에는 우연히도 너무 작은 스팬 오류가 없고, 도 40에 ww-1-e2-lsp3-rsp3-e2-1-slotted-contact-name.g: (디코딩 경로)로 표지된 그래픽으로 보인 최종 디코딩 경로는 도 39에 ww-3-lsp3-rsp3-3-slotted-contact-name.g: (디코딩 경로)로 표지된 그래픽의 경로와 동일하다. 이 실시예 역시 본 발명의 범위에 포함된다.
당업계에 통상의 기술을 가진 자에게는 도 39 및 40의 좌측 및 우측 끼움말들 내에서 사용된 전략이 문법 또는 슬롯형 문법 적응 객체의 접두 섹션 및 접미 섹션 내에도 마찬가지로 사용될 수 있음이 명확할 것이다. 즉, 기본형 a(02) 및 message(02)가 이에 따라 이러한 적응 객체 내에서 선형으로 연결된 음소들의 시퀀스 AH M EH S AH JH에 의해 접두 섹션 내의 6개의 내포된 엡실론 아크들의 해당 구조와 개체될 수 있다. 이 세 아크들 중 가장 안쪽의 아크는 JH로 표지된 아크의 꼬리에서 시작하여 다시 P로 표지된 아크의 머리에서 종료한다. 마찬가지로, 기본형들 you(03) 및 coming(01)은 연결된 음소들의 선형 시퀀스 Y UH K AH M IH NG에 의해 접미 섹션 내에서 7개의 내포된 아크들 중의 해당 구조와 대체될 수 있다. 이에 따라 이 실시예 역시 본 발명의 범위 내에 포함된다.
전술한 바와 같이, 그리고 당업계에 통상의 기술을 가진 자라면 알 수 있다시피, 1차 인식기 출력에서 도출되어 객체들에 사용된 음소들은 전형적으로 기본형들에 연계된 문맥 독립적인 음소들이 되거나, 이들이 1차 인식기 출력에 존재한다면 1차 인식기로 디코딩된 특정한 문맥 의존적인 음소들이 되거나, 또는 이 둘의 어떤 혼합이 될 수 있다는 것에 주목해야 할 것이다. 이에 따라 이러한 모든 실시예들은 문맥 독립적인 음소들을 사용하건 문맥 의존적인 음소들을 사용하건 역시 본 발명의 범위에 포함된다.
뿐만 아니라, 너무 작은 스팬 오류들을 보상하기 위해 제안된 여러 가지 방법들, 구체적으로 어떤 문언, 기본형, 음소 또는 문맥 의존적 음소들, 또는 그 시퀀스 또는 혼합들로 구성되거나 이들로 채워진 여러 가지 접두 섹션 및 접미 섹션 구조들은 너무 작은 스팬 오류를 보상하기 위한 여러 가지 방법들, 구체적으로 어떤 문언, 기본형, 음소 또는 문맥 의존적 음소들, 또는 음소 루프들로 구성되거나 이들로 채워진 여러 가지 접두 섹션 및 접미 섹션 구조들과 자유롭게 조합될 수 있을 것이다. 이에 따라 모든 이런 실시예들은 본 발명의 범위 내에 포함된다.
이 명세서에 기재된 실시예들은 어떤 원하는 기능 또는 특성을 달성하기 위해 문법 또는 슬롯형 문법의 특정한 구조들을 사용한다는 것에 주목 바란다. 한 문법 또는 슬롯형 문법을 그와 동등한 버전으로 자동으로 변환하는 여러 수단들이 존재하는 것 역시 잘 알려져 있는데, 예를 들어 엡실론 경로 제거, 상태 최소화, 또는 양자의 조합 적용 등이다. 한 문법 또는 슬롯형 문법과 다른 것과의 동등성이 존재한다는 것도 역시 잘 알려져 있는데, 이는 어떤 특정한 자동 변환에 기반하는 것이 아니다. 이에 따라, 기재된 변환 또는 다른 어떤 수단으로 얻어질 수 있는, 이 명세서에 기재된 어떤 문법 또는 슬롯형 문법의 모든 동등한 버전들 역시 본 발명의 범위 내에 포함된다.
격자들(Lattices)
지금까지의 논의는 1차 인식기 출력이 선택적으로 입력 음성 신호 내의 공칭 시작 및 종료 시간들로 표지되고, 선택적으로 연계 디코딩된 기본형으로 표지된 적어도 표기된 단어들의 시퀀스를 포함한다는 가정 하에 진행되어왔는데, 상기 기본형 자체는 선택적으로 1차 인식기 디코딩의 일부로서 사용 및 가능하길 출력되는 개별 문맥-의존 음소들로 표지된다.
그러나 당업계에 통상의 지식을 가진 자에게 알려진 바와 같이, 1차 인식기는 격자(lattice) 역시 출력할 수 있는데, 이는 그 아크가 1차 인식기로 디코딩된 단어들로 표지되고, 선택적으로 앞의 문단에 설명한 추가적 정보를 가지는 방향 그래프(directed graph)이다. 이 격자는 다음과 같이 본 발명의 대체적 실시예로 사용될 수 있다.
첫째로 잘 알려진 방법에 의해 격자는 표기된 단어들의 선형 시퀀스를 포함하고, 가능하기로 전술한 추가적인 선택적 정보를 가지는, 하나 이상의 1차 인식기 출력을 생성하는 데 사용된다. 전술한 바와 같이 명령 타입과, 전형적으로 연계된 스팬 타입을 가지는 하나 이상의 추정 스팬들이 식별된 각 이러한 정보, 또는 최소한 최고 순위의 이러한 출력이 언어 이해 모듈에 제공된다. 이어서 격자는 각 이러한 스팬에 연계된 아크들을 제거하도록 발췌된다. 이 발췌가 수행되는 정확한 수단은 본 발명의 다른 실시예들에서 다양할 것이다. 이 논의에서의 구체성을 위해, 이러한 한 방법을 설명하는데, 이는 전체적 또는 부분적으로 주제 스팬 내에 위치하는 음성 입력 신호의 부분에 해당하는 어떤 아크들을 제거하고자 하는 것이다. 스팬 타입에 적절한 구조와 내용의 목표 섹션이 이어서 격자 내로 내삽(interpolate)되어, 이전 단계에서 이로부터 아크들이 발췌된 모든 절적한 경계 노드(frontier node)들의 어느 극단(extreme)에 부착된다. 너무 작은 스팬 또는 너무 큰 스팬 오류를 다루는 다양한 기법들이 이 스테이지에서 적용된다. 그러면 결과적인 격자는 적응 객체로 기능하는데; 이는 2차 인식기로 처리되어 입력 음성 신호에 대한 최선의 대응이 파악된다. 복수의 고순위 2차 인식기 출력들이 2차 인식 단계에서 산출되거나, 또는 다른 적응 격자가 마찬가지로 고순위의 2차 출력을 산출하면 이들은 전술한 바와 같이 점수 융합 단계에서 순위가 매겨지고 선별(winnow)된다.
도 41은 이 과정을 친숙한 예로 도시한다. 1차 인식 출력(격자)로 표지된 그래픽은 전술한 격자인데; 이는 실제 격자보다 구조가 훨씬 더 간단하다. 이 격자를 통한 최고 순위 경로는 종래의 이 발언에 대한 1차 인식기 출력에 해당하는 똑바른 수평 아크들의 시퀀스로 도시되어 있다. 이는 언어 이해 모듈에 의해 일반적 방식으로 처리되어 명령 타입, 표시된 목표 스팬, 및 연계된 스팬 타입을 산출한다. 발췌 격자로 표지된 그래픽은 목표 음량 스팬 내에 있거나 이를 침범하는 아크들의 발췌를 도시하는데; "steve," "young" 및 "us"로 표지된 아크들이 "toast" 및 "eve"로 표지된 아크들과 함께 제거되었음에 주목 바란다. 마지막으로 적절한 목표 섹션을 삽입하여 이를 발췌 격자 내의 적절한 경계 노드 - 이로부터 아크가 발췌되는 어떤 노드가 경계 노드 - 들에 부착하고 최종적으로 너무 작은 스팬 오류를 허용하도록 엡실론 아크들을 부착함으로써 적응 격자로 표지된 그래픽이 생성된다.
2차 인식기에 의한 1차 인식기 연산의 재사용(Reuse of Primary Recognizer Computation by the Secondary Recognizer)
이 명세서에 기재한 여러 방법들은 입력 음성 신호의 일부 또는 입력 음성 신호의 전체의 반복적인 처리를 포함할 수 있다. 최소한도로 이는 먼저 1차 인식기에 의한 입력 음성 신호의 처리와, 그 다음 2차 인식기에 의한 부분 또는 전체 처리를 포함한다. 이 두 인식기들이 전혀 다른 원리로 작동될 수 있지만, 이들은 특히 소위 프론트엔드(front end) 및 연계된 특성 벡터들 또는 이것이 산출하는 음성 신호(speech signal)의 다른 표현, 음향 모델, 주어진 음향 대응의 품질을 평가하는 신경망 또는 다른 연산 장치, 또는 어떤 다른 내부 장치 또는 기구 등을 포함하는, 다른 중요한 내부 작동 상세들을 마찬가지로 공유한다. 당업계에 통상의 기술을 가진 자에게는 1차 및 2차 인식기가 이에 따라, 예를 들아 모델 파라미터, 신경망 가중치, 또는 디코딩 동안 사용되는 다른 정보 등의 중요한 내부 데이터를 공유하여, 어떤 중복 연산을 마찬가지로 수행한다는 것이 명백할 것이다.
이에 따라 가능한 범위까지, 1차 인식기가 2차 인식기에게 이것이 수행한 어떤 연산들의 결과를 제공하여, 2차 인식기가 이 연산들을 번복하는 대신 1차 인식기로 얻어진 이전의 연산 결과들을 단순히 조회(look up)하는 것이 유용할 것이다. 이는 2차 인식기의 연산 작업 부담을 저감시키고 RAM, 비휘발성 메모리, 또는 RAM과 비휘발성 메모리 양자의 사용 역시 저감시킬 것이다. 연산 결과들과, 선택적으로 이 결과들을 얻는 데 필요한 정보를 공유하도록 1차 및 2차 인식기들의 내부 작동을 구축하면 전체적 시스템의 지연과 리소스 요구의 현저한 저감을 야기하여, 본 발명의 일부를 포함한다.
2차 인식기에 의한 사전연산(Precomputation by the Secondary Recognizer)
비슷한 맥락에서, 어떤 이점들은 2차 인식기의 내부 연산들의 어떤 것을 사전연산(precomputing)하여 발생될 수 있다. 많은 현재의 연산 시스템들은 독립적인 명령 스트림(instruction stream)들을 병렬로 실행하는 다중 처리 유닛(multiple processing unit)들을 처리할 수 있다. 특히 2차 인식기의 공칭 처리의 초기 단계들은 1차 인식기의 그것과 다르고, 이에 따라 1차 인식기가 수행하지 않으며, 1차 표기 또는 언어 이해 모듈에 의한 분석에 좌우되는 어떤 적응 객체를 사용하지 않는다면, 이는 잠재적으로 하나 이상의 이 다중 처리 유닛들에 의해 1차 인식기의 처리와 병렬로 수행될 수 있다. 이러한 처리의 예는 음성 특성 벡터(speech feature vector)들 또는 입력 음성 신호 만에 의존하여 어떤 적응 객체에 의존하지 않는 다른 내부적 표현들을 포함할 수 있다.
1차 인식기 및 가능하기로 언어 이해 모듈에도 마찬가지로 병렬로 진행되는 범위까지, 이 사전연산에 소요된 시간은 2차 인식기 지연에 기여하지 않고, 이에 따라 시스템 지연에도 기여하지 않는다. 이에 따라 이러한 사전 연산은 현저한 작동상 이점을 야기한다. 이 효과는 이전에 논의한 wwapnr 방법이 사용될 때 특별히 확연하지만 1차 및 2차 인식기들 간에 중복되는 연산은 거의 또는 전혀 없다.
중요하기로, 적응 객체는 1차 연산기와 언어 이해 모듈이 그 작업을 완료하고 나서야 참조할 수 있으므로, 어떤 사전연산은 어떤 적응 객체와 독립적이어야 한다. 그럼에도 추정으로 어떤 결과 - 적응 객체의 내용에 따라 나중에 2차 인식기에 사용될 수도 안 될 수도 있는 - 들을 사전에 연산하는 것은 가능할 것이다. 이 결과들의 즉시 이용가능성(ready availability)은 이들이 2차 인식기에 궁극적으로 필요하다면, 이에 따라 전체적인 시스템 지연을 역시 저감시킨다.
이와 같이 특히 어떤 적응 객체와 독립적인, 선택된 2차 인식기 내부 결과들의 사전연산은 전체적인 시스템 지연을 저감시킬 수 있다. 이에 따라 이 방법은 본 발명의 일부를 포함한다.
어휘 목록 좁힘을 통한 대체적 구현(Alternative Implementation via Vocabulary Narrowing)
이상의 논의의 대부분은 문법을 적응 객체로 사용하는 것을 상세히 설명하였다. 즉, 2차 인식기는 문법 또는 슬롯형 문법이 규정한 대로 단어들과 그 순서로 제한된다. 유사한 효과를 달성하는 대체적 구현은 어휘 목록 좁힘(vocabulary narrowing) 방법이다. 이 방법에서 2차 인식기는 그 어휘가 1차 인식기 어휘 목록의 진부분집합(proper subset)인 점을 제외하고는 1차 인식기와 동일할 수 있다. 그러면 적응 객체는 2차 인식기가 목표 음향 스팬에 대응을 허용한 단어들의 목록으로 구성될 수 있다. 이는 목표 스팬 타입이 스팬에 나타날 수 있는 단어를 미리 알고 있고, 이에 따라 시스템 설계자가 이들이 1차 인식기 어휘 목록에 있다는 것을 확신할 수 있다면 유용하겠지만, 하나 이상의 이 허용 가능한 단어들은 어휘 목록에 존재하는 다른 단어들로 잘못 인식될 수 있다.
이러한 경우의 한 예는 프로 선수, 예를 들어 프로야구 선수 이름의 인식이다. 각 미국 프로야구 팀 조직의 모든 리그들(즉 메이저 리그, 마이너 리그, 또는 2군 팀(farm team) 등)에 계약한 선수 이름을 포함하는 모든 잠재적 선수 이름의 완전한 목록은 일반적으로 시즌에 앞서 알려진다. 이에 따라 이 모든 이름들이 1차 인식기 어휘 목록에 포함될 수 있다.
그러나 어떤 선수 이름, 특히 미국 팬들이 적절히 부르지 못할 수 있는 외국 출신 선수의 이름은 하나 이상의 일반적인 미국 영어 단어들로 잘못 인식될 수 있다. 예를 들어, 명령 "look up Josㅹ Altuve's stats"는 "Look up Josㅹ I'll to the stats"로 잘못 인식될 수 있다. 그러나 이 잘못된 인식은 1차 인식기가 출력한대로의 단어들 "Josㅹ I'll to the" 에 해당하는 음향 스팬을 디코딩할 때 어휘 목록이 메이저 리그 야구TM만으로 좁혀지므로 2차 인식기에 의해 쉽게 교정될 수 있다.
이 기법의 변형예는 1차 인식기 어휘 목록에 존재하지 않지만 목표 스팬 내에 허용되어야 할 신규한(novel) 단어들을 지원하는 데 사용될 수 있다. 1차 인식기 어휘 목록 내에 좁혀진 어휘 목록에 존재할, 원하는 타입의 단어 집합(aggregate)이 존재하는 한, 새로운 기본형은 이 집합에 인접할 수 있고, 각 다른 집합 멤버의 확률과 동일한 언어 모델 확률들, 또는 집합 내의 확률의 평균화를 유지하기 위한 그 비례 개정 값(fractional revision)이 주어진다. 앞 문단의 예에서 개념적 집합은 모든 메이저 리그 야구TM 선수들의 이름들을 포함할 것이다.
컴퓨터 시스템(Computer System)
도 42는 실시예들의 일부의 특징을 구현하는 데 사용될 수 있는 컴퓨터 시스템의 블록도이다. 연산 시스템(1800)은 상호 연결(interconnect; 1915)로 연결되는, 하나 이상의 중앙 처리 유닛(central processing unit;"프로세서")(1805)들과, 메모리(1810)와, 예를 들어 키보드 및 포인팅 장치 등의 입출력 장치(1825), 디스플레이 장치, 예를 들어 디스크 드라이브 등의 저장 장치(1820), 예를 들어 네트워크 인터페이스 등의 네트워크 어댑터(1830)들을 포함할 수 있다. 상호 연결(1815)은 어떤 하나 이상의 별도의 물리적 버스들, 지점간(point to point) 연결, 또는 적절한 브리지, 어댑터, 또는 컨트롤러로 연결되는 양자를 나타내는 추상(abstraction)을로 도시되어 있다. 이에 따라, 상호 연결(1815)은 예를 들어 시스템 버스, 주변기기 연결(Peripheral Component Interconnect; PCI) 버스 또는 PCI-Express 버스, HyperTransport 또는 기술 표준 아키텍처(industry standard architecture; ISA) 버스, 소형 컴퓨터 시스템 인터페이스(small computer system interface; SCSI) 버스, 범용 직렬 버스(universal serial bus; USB), IIC(I2C) 버스, 또는 "Firewire"로도 지칭되는 미국전기전자학회(Institute of Electrical and Electronics Engineers; IEEE) 표준 1394 버스 등을 포함할 수 있다.
메모리(1810)와 저장 장치(1820)은 여러 실시예들의 적어도 일부를 구현하는 명령(instruction)을 저장할 수 있는 컴퓨터 판독 가능한(computer-readable) 저장매체이다. 또한 데이터 구조와 메시지 구조는 저장되거나 통신 링크 상의 신호 등 데이터 전송 매체를 통해 전송될 수 있다. 인터넷, 근거리 통신망, 광역 통신망 지점간 전화 연결(point-to-point dial-up connection) 등의 여러 가지 통신 링크들이 사용될 수 있다. 이에 따라, 컴퓨터 판독 가능한 매체는 예를 들어 비휘발성 메모리(non transitory media) 등의 컴퓨터 판독 가능한 저장 매체, 및 컴퓨터 판돋 가능한 전송 매체를 포함할 수 있다.
메모리(1810)에 저장된 명령은 프로세서(1805)가 전술한 행위들을 수행하도록 하는 소프트웨어 및/또는 펌웨어로 구현될 수 있다. 일부 실시예에서, 이러한 소프트웨어 또는 펌웨어는 원격 시스템으로부터 연산 시스템(1800)과 에를 들어 네트워크 어댑터(1830)를 통해 다운로드 받음으로써 처음으로 처리 시스템(1800)에 제공된다.
이 명세서에 소개된 다양한 실시예들은 예를 들어 하나 이상의 마이크로프로세서들 등 소프트웨어 및/또는 펌웨어로 프로그래밍될 수 있는 프로그래밍 가능한 회로, 또는 완전히 전용(special-purpose) 고정배선((hardwired)(프로그래밍 불가능한) 회로, 또는 이들의 조합으로 구현될 수 있다. 전용 고정배선 회로는 예를 들어 하나 이상의 ASIC, PLD, FPGA 등의 형태가 될 수 있다.
비고(Remarks)
이상의 설명과 도면들은 제한으로 해석되어서는 안 된다. 많은 구체적 상세들은 (본 발명) 개시의 완전한 이해를 제공하도록 기재되었다. 그러나 어떤 경우에는, 잘 알려진 상세들은 설명을 모호하게 하지 않도록 기재하지 않았다. 또한 본 발명의 범위를 이탈하지 않고도 여러 가지 수정이 이뤄질 수 있을 것이다. 이에 따라 실시예들은 첨부된 청구항을 제외하고는 제한되지 않는다.
이 명세서에서 "한 실시예(one embodiment)" 또는 "실시예(an embodiment)"라는 언급은 그 실시예와 연계하여 기재한 특정한 특징, 구조, 또는 특성이 본 발명의 적어도 한 실시예에 포함된다는 것을 의미한다. 명세서의 여러 곳에서 "한 실시예에서(in one embodiment)"라는 문구의 출현은 반드시, 모두 동일한 실시예를 지칭하거나 다른 실시예와 서로 배타적인 별도의 또는 대체적인 실시예를 지칭하는 것이 아니다. 뿐만 아니라, 일부 실시예들은 나타내지만 다른 실시예에서는 그렇지 않은 여러 특징이 기재되었다. 마찬가지로, 일부 실시예들에서는 요건이 될 수 있지만 다른 실시예에 대해서는 그렇지 않은 여러 요건들이 기재되었다.
이 명세서에 사용된 용어들은 일반적으로 (본 발명) 개시의 문맥과 각 용어가 사용된 곳의 특정한 문맥 내에서 당업계에서 그 보통의 의미를 가진다. (본 발명의) 개시를 설명하는데 사용된 용어들은 (분 발명) 개시의 설명을 구현해보고자 하는 자(practitioner)에게 추가적 지침을 제공하도록 아래, 또는 이 명세서의 다른 곳에 제공된다. 편의상 어떤 단어들은 예를 들어 이탤릭체 및/또는 따옴표로 강조될 수 있다. 강조의 사용은 이 용어의 범위와 의미에 영향이 없으며; 이 용어의 범위와 의미는 강조가 되었건 안 되었건 동일한 문맥 내에서 동일하다. 동일한 사항이 하나 이상의 방식으로 설명될 수 있음을 이해해야 할 것이다. "메모리"가 "저장(장치)"의 한 형태이며 이 용어들은 때로 호환적으로 사용될 수 있음도 인식할 수 있을 것이다.
결론적으로, 대체적인 언어 또는 동의어들이 이 명세서에 논의된 하나 이상의 용어로 사용될 수 있지만, 그 용어가 이 명세서에서 설명되었건 논의되었건 어떤 특별한 중요성이 부여되지 않는다. 어떤 용어들에 대한 동의어들이 제공된다. 하나 이상의 동의어의 기재(recital)가 다른 동의어의 사용을 배제하지 않는다. 이 명세서에 논의된 어떤 용어의 예들을 포함하여, 이 명세서 어느 곳에서의 예의 사용은 단지 예시적이이며, (본 발명) 개시의 또는 예시적 용어를 더 제한하고자 의도한 것이 아니다, 마찬가지로 (본 발명) 개시는 이 명세서에 주어진 여러 실시예들에 한정되지 않는다.
(본 발명) 개시의 범위를 더 제한할 의도 없이, 본 발명 개시에 따른 도구, 장치, 방법들과 이에 관련된 결과들이 이상에 제공되었다. 표제 및 부제들은 독자의 편의를 위해 예들에 사용될 수 있으며, 어떤 방식으로건 (본 발명) 개시의 범위를 한정해서는 안 된다는 것에 주의를 요한다. 달리 규정되지 않는 한, 이 명세서에 사용된 기술 및 과학 용어들은 본 발명이 관련된 당업계에 통상의 기술을 가진 자가 공통적으로 이해하는 것과 동일한 의미를 가진다. 분쟁의 경우 정의들을 포함해 이 명세서가 통제할 것이다.

Claims (78)

  1. 하나 이상의 고유명칭 개체들을 포함하는 구두 명령을 인식 및 이해하는 컴퓨터 구현 방법에 있어서,
    사용자로부터 발언을 입력으로 수신하는 단계와;
    상기 발언을 1차 자동 음성 인식기로 처리하여 하나 이상의 데이터세트들을 출력하고, 상기 각 데이터세트는 적어도 공칭 표기된 단어들의 시퀀스를 포함하며, 상기 시퀀스가 공칭 1차 표기를 포함하는, 1차 자동 음성 인식(ASR)의 수행 단계와;
    자연어 이해(NLU) 프로세서로 상기 각 데이터세트를 처리하여 상기 데이터세트에 상기 공칭 표기에 대한 공칭 의미를 생성 및 추가하고 상기 발언 내에서 하나 이상의 말해진 고유명칭 개체들의 추정 존재와 타입을 판단하며, 상기 각 말해진 고유명칭 객체를 목표 스팬을 포함하는 상기 데이터세트 내의 공칭 표기 단어들의 인접 시퀀스에 연계시키는 이해 처리를 수행하는 단계와;
    상기 각 데이터세트에 대해 하나 이상의 경우들의 2차 자동 음성 인식(ASR)을 상기 발언의 전체에 수행하는 단계로, 각 경우에 상기 2차 자동 음성 인식기가 고유명칭 개체의 각 주어진 추정 타입 및 연계된 목표 스팬을 처리하여 하나 이상의 표기들 및 상기 각 목표 스팬에 연계된 의미를 생성하도록 전문화되는 2차 자동 음성 인식의 수행단계와;
    상기 각 데이터세트를 상기 2차 자동 음성 인식의 하나 이상의 경우들의 각각에 대해 하나 이상의 표기 및 각 목표 스팬에 대해 얻어진 연계된 의미로 교체함으로써, 상기 개정된 데이터 세트의 전체로부터 하나 이상의 완전한 표기들 및 이에 연계된 의미들을 생성하도록, 개정(revising)하는 단계; 및
    상기 전체 발언에 대한 하나 이상의 완전한 표기들과 이에 연계된 의미들의 집합을 출력하는 단계를
    포함하는, 하나 이상의 고유명칭 개체들을 포함하는 구두 명령을 인식 및 이해하는 컴퓨터 구현 방법.
  2. 제1항에 있어서,
    상기 하나 이상의 완전한 표기들과 이에 연계된 의미들의 집합에 순위를 매겨 상기 하나 이상의 완전한 표기들과 이에 연계된 의미들의 집합의 순위를 매기는 단계(ranking)와; 및
    상기 전체 발언에 대한 상기 하나 이상의 완전한 표기들과 이에 연계된 의미들의 집합의 순서 목록(ordered list)을 출력하는 단계를
    포함하는 하나 이상의 고유명칭 개체들을 포함하는 구두 명령을 인식 및 이해하는 컴퓨터 구현 방법.
  3. 제1항에 있어서,
    상기 하나 이상의 완전한 표기들과 이에 연계된 의미들의 상기 집합의 수를 축소시켜 상기 전체 발언에 대한 상기 하나 이상의 완전한 표기들과 이에 연계된 의미들의 집합의 선별된 집합을 생성하는 선별(winnowing) 단계와; 및
    상기 전체 발언에 대한 상기 하나 이상의 완전한 표기들과 이에 연계된 의미들의 집합의 선별된 집합을 출력하는 단계를
    포함하는 하나 이상의 고유명칭 개체들을 포함하는 구두 명령을 인식 및 이해하는 컴퓨터 구현 방법.
  4. 제1항에 있어서,
    상기 하나 이상의 완전한 표기들과 이에 연계된 의미들의 집합에 순위를 매겨 상기 하나 이상의 완전한 표기들과 이에 연계된 의미들의 집합의 순서 목록을 생성하는 단계와; 및
    상기 하나 이상의 완전한 표기들과 이에 연계된 의미들의 집합의 순서 목록의 수를 축소시켜 상기 하나 이상의 완전한 표기들과 이에 연계된 의미들의 집합의 순서 목록을 선별하는 단계와; 및
    상기 전체 발언에 대한 하나 이상의 완전한 표기들과 이에 연계된 의미들의 집합의 선별된 순서 목록을 출력하는 단계를
    포함하는 하나 이상의 고유명칭 개체들을 포함하는 구두 명령을 인식 및 이해하는 컴퓨터 구현 방법.
  5. 제1항에 있어서,
    적어도 공칭 표기 단어들의 시퀀스를 포함하는 상기 각 데이터 세트에 대해, 상기 각 공칭 표기된 단어들이 연계된 공칭 기본형을 가질 수 있는
    하나 이상의 고유명칭 개체들을 포함하는 구두 명령을 인식 및 이해하는 컴퓨터 구현 방법.
  6. 제1항에 있어서,
    상기 하나 이상의 완전한 표기들과 이에 연계된 의미들의 집합이 하나 이상의 공칭 1차 표기들 및 이에 연계된 공칭 의미들의 모두를 포함하는
    하나 이상의 고유명칭 개체들을 포함하는 구두 명령을 인식 및 이해하는 컴퓨터 구현 방법.
  7. 제1항에 있어서,
    상기 처리가 생성할 수 있을 때 상기 1차 자동 음성 인식(ASR) 처리에 의한 상기 각 데이터세트 내에 하나 이상의 중간 또는 최종 값을 포함하고, 그리고
    상기 2차 자동 음성 인식(ASR) 처리가 상기 하나 이상의 중간 또는 최종 값을 사용하는
    하나 이상의 고유명칭 개체들을 포함하는 구두 명령을 인식 및 이해하는 컴퓨터 구현 방법.
  8. 제7항에 있어서,
    상기 1차 자동 음성 인식(ASR) 처리에 의해 생성되는 상기 하나 이상의 중간 또는 최종 값이:
    (a) 하나 이상의 공칭 기본형들의 시퀀스와 이에 연계된 하나 이상의 공칭 표기 단어들의 해당 시퀀스, 또는
    (b) 상기 입력 발언의 어느 부분 또는 전체에 연계된 하나 이상의 음소들의 시퀀스, 또는
    (c) 상기 입력 발언의 어느 부분 또는 전체에 연계된 관측 가능도들(observation likelihoods)의 하나 이상의 집합들의 시퀀스, 또는
    (d) 상기 입력 발언의 어느 부분 또는 전체에 연계된 하나 이상의 음성 특성 벡터들의 시퀀스, 또는
    (e) 상기 입력 발언의 어느 부분 또는 전체에 연계된 신경망 여기, 활성화, 또는 출력값들의 하나 이상의 집합들의 시퀀스, 또는
    (f) 1차 자동 음식 인식 처리(ASR) 처리에 의해 연산된 어떤 형식 또는 내용의 중간 또는 최종의 어떤 다른 값들, 또는
    (g) 이상의 어떤 조합
    중의 어느 것을 포함하는, 하나 이상의 고유명칭 개체들을 포함하는 구두 명령을 인식 및 이해하는 컴퓨터 구현 방법.
  9. 제1항에 있어서,
    상기 입력 발언을 상기 2차 음성 자동 인식(ASR) 처리의 나머지 단계들에 앞서 상기 2차 음성 자동 인식(ASR) 처리의 공칭 초기 단계들에 제공하여 상기 2차 음성 자동 인식(ASR) 처리의 공칭 초기 단계들의 하나 이상의 결과들을 생성하는 단계와, 및
    상기 2차 음성 자동 인식(ASR) 처리의 상기 나머지 단계들을 수행하는 각 경우에 상기 2차 음성 자동 인식(ASR) 처리의 공칭 초기 단계들의 상기 하나 이상의 결과들의 어느 것 또는 전부를 선택적으로 사용하는 단계를
    더 포함하는, 하나 이상의 고유명칭 개체들을 포함하는 구두 명령을 인식 및 이해하는 컴퓨터 구현 방법.
  10. 제9항에 있어서,
    상기 2차 음성 자동 인식(ASR) 처리의 공칭 초기 단계들의 전체 또는 일부를 상기 입력 발언, 상기 1차 자동 음성 인식(ASR) 처리, 또는 이해 처리, 또는 이들의 조합 중의 어느 것의 지속(duration)의 일부 또는 전체와 동시에 수행하는 단계를
    더 포함하는, 하나 이상의 고유명칭 개체들을 포함하는 구두 명령을 인식 및 이해하는 컴퓨터 구현 방법.
  11. 제10항에 있어서,
    상기 2차 음성 자동 인식(ASR) 처리의 공칭 초기 단계들이 하나 이상의 추가적인 처리 유닛들, 또는 1차 처리 유닛, 또는 이들의 어떤 조합 중의 어느 것으로 수행되는 단계를
    더 포함하는, 하나 이상의 고유명칭 개체들을 포함하는 구두 명령을 인식 및 이해하는 컴퓨터 구현 방법.
  12. 제9항에 있어서,
    상기 2차 음성 자동 인식(ASR) 처리의 공칭 초기 단계들의 상기 결과들이:
    (a) 상기 입력 발언의 어느 부분 또는 전체에 연계된 관측 가능도의 하나 이상의 집합들의 시퀀스, 또는
    (b) 상기 입력 발언의 어느 부분 또는 전체에 연계된 하나 이상의 음성 특성 벡터들의 시퀀스, 또는
    (c) 상기 입력 발언의 어느 부분 또는 전체에 연계된 신경망 여기, 활성화, 또는 출력값들의 하나 이상의 집합들의 시퀀스, 또는
    (d) 상기 자연어 처리의 어떤 출력도 사용하지 않는 어떤 다른 값들, 또는
    (e) 상기 1차 자동 음성 인식(ASR) 처리 또는 자연어 처리의 어떤 가능하거나 기대되는 결과들을 예상하여 추정으로 생성한 어떤 값들, 또는
    (f) 상기 2차 자동 음성 인식(ASR) 처리 내의 일반 용도(general utility)를 예상하여 추정으로 생성한 어떤 값들, 또는
    (g) 이들의 어떤 조합
    중의 어느 것을 포함하는, 하나 이상의 고유명칭 개체들을 포함하는 구두 명령을 인식 및 이해하는 컴퓨터 구현 방법.
  13. 제1항에 있어서,
    상기 하나 이상의 말해진 고유명칭 개체의 상기 타입이 스포츠 참여자의 이름을 포함하는, 하나 이상의 고유명칭 개체들을 포함하는 구두 명령을 인식 및 이해하는 컴퓨터 구현 방법.
  14. 제13에 있어서,
    상기 스포츠 참여자가 사람을 포함하는, 하나 이상의 고유명칭 개체들을 포함하는 구두 명령을 인식 및 이해하는 컴퓨터 구현 방법.
  15. 제14항에 있어서,
    상기 스포츠 참여자가 특정한 스포츠의 참여자를 포함하는, 하나 이상의 고유명칭 개체들을 포함하는 구두 명령을 인식 및 이해하는 컴퓨터 구현 방법.
  16. 제15항에 있어서,
    상기 특정한 스포츠가 (a) 아마추어 스포츠 또는 (b) 프로 스포츠 중의 하나를 포함하는, 하나 이상의 고유명칭 개체들을 포함하는 구두 명령을 인식 및 이해하는 컴퓨터 구현 방법.
  17. 제16항에 있어서,
    특정한 리그(league), 부(division), 및 연맹(conference) 중의 어느 것 내에서 상기 아마추어 스포츠를 수행하는 것을 더 포함하는, 하나 이상의 고유명칭 개체들을 포함하는 구두 명령을 인식 및 이해하는 컴퓨터 구현 방법.
  18. 제16항에 있어서,
    상기 프로 스포츠가
    (a) Major League BaseballTM, (b) National Football LeagueTM 미식축구(gridiron football), (c) National Basketball AssociationTM 농구, (d) National Hockey LeagueTM 아이스하키, (e) Major League SoccerTM 축구, (f) United States Tennis AssociationTM 테니스, (g) National Association for Stock Car Auto RacingTM 자동차 레이싱, (h) English Premier League 축구, (i) English Football League 축구, (j) English National League 축구, 또는 (k) FIFA World Cup 축구, 또는 (l) International Cricket Council 크리켓
    중의 어느 것을 포함하는, 하나 이상의 고유명칭 개체들을 포함하는 구두 명령을 인식 및 이해하는 컴퓨터 구현 방법.
  19. 제13항에 있어서,
    상기 스포츠 참여자가 스포츠 동물을 포함하는, 하나 이상의 고유명칭 개체들을 포함하는 구두 명령을 인식 및 이해하는 컴퓨터 구현 방법.
  20. 제19항에 있어서,
    상기 스포츠 동물이 경주마를 포함하는, 하나 이상의 고유명칭 개체들을 포함하는 구두 명령을 인식 및 이해하는 컴퓨터 구현 방법.
  21. 제13항에 있어서,
    상기 스포츠 참여자가 특정 스포츠 경기의 참여자를 포함하는, 하나 이상의 고유명칭 개체들을 포함하는 구두 명령을 인식 및 이해하는 컴퓨터 구현 방법.
  22. 제1항에 있어서,
    상기 하나 이상의 말해진 고유명칭 개체들의 상기 타입이 엔터테인먼트 장소의 좌석 섹션을 포함하는 하나 이상의 고유명칭 개체들을 포함하는 구두 명령을 인식 및 이해하는 컴퓨터 구현 방법.
  23. 제22항에 있어서,
    상기 엔터테인먼트 장소가 특정한 엔터테인먼트 이벤트의 현장을 포함하는, 하나 이상의 고유명칭 개체들을 포함하는 구두 명령을 인식 및 이해하는 컴퓨터 구현 방법.
  24. 제1항에 있어서,
    상기 발언 외부의 정보로부터 상기 발언 내의 상기 하나 이상의 고유명칭 개체들의 상기 추정 존재와 타입을 결정하는 단계를
    더 포함하는, 하나 이상의 고유명칭 개체들을 포함하는 구두 명령을 인식 및 이해하는 컴퓨터 구현 방법.
  25. 제24항에 있어서,
    상기 발언 외부의 정보가 이전의 사용자 행위로부터 도출되는 정보를 포함하는, 하나 이상의 고유명칭 개체들을 포함하는 구두 명령을 인식 및 이해하는 컴퓨터 구현 방법.
  26. 제25항에 있어서,
    상기 이전의 사용자 행위가 이전의 사용자 발언을 포함하는, 하나 이상의 고유명칭 개체들을 포함하는 구두 명령을 인식 및 이해하는 컴퓨터 구현 방법.
  27. 제25항에 있어서,
    상기 이전의 사용자 행위가 (a) 키보드, (b) 컴퓨터 마우스, (c) 터치 감지 디스플레이 화면, 또는 (d) 비디오카메라 중의 어느 것을 포함하는, 하나 이상의 고유명칭 개체들을 포함하는 구두 명령을 인식 및 이해하는 컴퓨터 구현 방법.
  28. 제1항에 있어서,
    상기 발언 내에 존재하는 정보로부터 상기 발언 내의 상기 하나 이상의 고유명칭 개체들의 상기 추정 존재와 타입을 결정하는 단계를
    더 포함하는 하나 이상의 고유명칭 개체들을 포함하는 구두 명령을 인식 및 이해하는 컴퓨터 구현 방법.
  29. 제21항에 있어서,
    상기 특정한 스포츠 경기가 경마를 포함하는, 하나 이상의 고유명칭 개체들을 포함하는 구두 명령을 인식 및 이해하는 컴퓨터 구현 방법.
  30. 제1항에 있어서,
    상기 하나 이상의 말해진 고유명칭 개체들의 상기 타입이 비디오 시스템의 제어에 관련되는, 하나 이상의 고유명칭 개체들을 포함하는 구두 명령을 인식 및 이해하는 컴퓨터 구현 방법.
  31. 제31항에 있어서,
    상기 비디오 시스템이 케이블 텔레비전 시스템을 포함하는, 하나 이상의 고유명칭 개체들을 포함하는 구두 명령을 인식 및 이해하는 컴퓨터 구현 방법.
  32. 제30항에 있어서,
    상기 하나 이상의 말해진 고유명칭 개체들의 상기 타입이 비디오 소스 식별자를 가지는 비디오 시스템의 제어에 관련되는, 하나 이상의 고유명칭 개체들을 포함하는 구두 명령을 인식 및 이해하는 컴퓨터 구현 방법.
  33. 제32항에 있어서,
    상기 비디오 소스 식별자가:
    (a) 채널 이름과;
    (b) 채널 콜사인과; 및
    (c) 채널 번호
    중의 어느 것을 포함하는, 하나 이상의 고유명칭 개체들을 포함하는 구두 명령을 인식 및 이해하는 컴퓨터 구현 방법.
  34. 제30항에 있어서,
    상기 하나 이상의 말해진 고유명칭 개체들의 상기 타입이 비디오 타이틀 식별자를 가지는 비디오 시스템의 제어에 관련되는, 하나 이상의 고유명칭 개체들을 포함하는 구두 명령을 인식 및 이해하는 컴퓨터 구현 방법.
  35. 제34항에 있어서,
    상기 비디오 타이틀 식별자가:
    (a) 방영시간표에 나타날 수 있는 비디오 타이틀의 식별자; 및
    (b) 주문에 따라 요청될 수 있는 비디오 타이틀의 식별자
    중의 어느 것을 포함하는, 하나 이상의 고유명칭 개체들을 포함하는 구두 명령을 인식 및 이해하는 컴퓨터 구현 방법.
  36. 제30항에 있어서,
    상기 2차 자동 음성 인식기가 상기 각 고유명칭 개체의 주어진 추정 타입과 이에 연계된 목표 스팬을 주어진 가정에 연결된 하나 이상의 분배 허브들에 대해 처리하도록 전문화되는 단계를
    더 포함하는, 하나 이상의 고유명칭 개체들을 포함하는 구두 명령을 인식 및 이해하는 컴퓨터 구현 방법.
  37. 제36항에 있어서,
    상기 분배 허브를 물리적 연결을 통해 상기 주어진 가정에 연결하는 단계를
    더 포함하는, 하나 이상의 고유명칭 개체들을 포함하는 구두 명령을 인식 및 이해하는 컴퓨터 구현 방법.
  38. 제36항에 있어서,
    상기 분배 허브를 논리적 연결을 통해 상기 주어진 가정에 연결하는 단계를
    더 포함하는, 하나 이상의 고유명칭 개체들을 포함하는 구두 명령을 인식 및 이해하는 컴퓨터 구현 방법.
  39. 제36항에 있어서,
    상기 2차 자동 음성 인식기를, 주어진 가정에 연결된 상기 하나 이상의 분배 허브들에 적응을 가능하게 하는 하나 이상의 적응 객체들을 사용하여 가정에 연결된 상기 하나 이상의 분배 허브들에 대해 전문화시키는 단계를
    더 포함하는, 하나 이상의 고유명칭 개체들을 포함하는 구두 명령을 인식 및 이해하는 컴퓨터 구현 방법.
  40. 제 39항에 있어서,
    상기 하나 이상의 분배 허브들에 대해 전문화시키는 단계가
    (a) 상기 하나 이상의 분배 허브들로부터 사용 가능한 비디오 소스의 하나 이상의 비디오 소스 식별자들; 및
    (b) 상기 하나 이상의 분배 허브들로부터 사용 가능한 비디오 타이틀의 하나 이상의 비디오 타이틀 식별자들
    중의 적어도 하나에 대해 전문화시키는 단계를 더 포함하는, 하나 이상의 고유명칭 개체들을 포함하는 구두 명령을 인식 및 이해하는 컴퓨터 구현 방법.
  41. 제39항에 있어서,
    상기 사용자로부터 입력으로 수신한 상기 발언이, 주어진 가정에 연결된 상기 하나 이상의 분배 허브들에 대한 적응을 가능하게 하는 상기 하나 이상의 적응 객체들의 식별에 적합한 하나 이상의 요소들로 표지되는 것을 더 포함하는, 하나 이상의 고유명칭 개체들을 포함하는 구두 명령을 인식 및 이해하는 컴퓨터 구현 방법.
  42. 제41항에 있어서,
    상기 하나 이상의 적응 객체들의 식별에 적합한 상기 하나 이상의 요소들에 의한 상기 표지가, 상기 발언의 전파 또는 처리의 어느 적절한 스테이지에 수행되는, 하나 이상의 고유명칭 개체들을 포함하는 구두 명령을 인식 및 이해하는 컴퓨터 구현 방법.
  43. 제41항에 있어서,
    상기 주어진 가정에 연결된 상기 분배 허브에 대한 적응을 가능하게 하는 상기 하나 이상의 적응 객체들의 어느 것이 미리 존재하는 복수의 적응 객체들로부터 선택 및 조회된, 선택 및 조회된 적응 객체를 포함하는
    하나 이상의 고유명칭 개체들을 포함하는 구두 명령을 인식 및 이해하는 컴퓨터 구현 방법.
  44. 제43항에 있어서,
    상기 미리 존재하는 복수의 적응 객체들이, 각각 상기 하나 이상의 주어진 분배 허브들에 대한 적응을 가능하게 하는 복수의 적응 객체들을 포함하는
    하나 이상의 고유명칭 개체들을 포함하는 구두 명령을 인식 및 이해하는 컴퓨터 구현 방법.
  45. 제43항에 있어서,
    주어진 가정에 연결된 하나 이상의 특정 분배 허브들에 대한 적응을 가능하게 하는 상기 하나 이상의 적응 객체를 식별하기에 적절한 상기 하나 이상의 요소들을 기반으로 하여 해당 적응 객체를 선택 및 조회하는 단계를
    더 포함하는, 하나 이상의 고유명칭 개체들을 포함하는 구두 명령을 인식 및 이해하는 컴퓨터 구현 방법.
  46. 제41항에 있어서,
    상기 하나 이상의 특정 분배 허브들에 대한 적응을 가능하게 하는 상기 하나 이상의 적응 객체를 식별하기에 적절한 상기 하나 이상의 요소들이 상기 하나 이상의 분배 허브들을 명시적으로(explicitly) 식별하는 것을 더 포함하는, 하나 이상의 고유명칭 개체들을 포함하는 구두 명령을 인식 및 이해하는 컴퓨터 구현 방법.
  47. 제41항에 있어서,
    상기 하나 이상의 특정 분배 허브들에 대한 적응을 가능하게 하는 상기 하나 이상의 적응 객체를 식별하기에 적절한 상기 하나 이상의 요소들이 상기 하나 이상의 분배 허브들을 묵시적으로(implicitly) 식별하는 것을 더 포함하는, 하나 이상의 고유명칭 개체들을 포함하는 구두 명령을 인식 및 이해하는 컴퓨터 구현 방법.
  48. 제39항에 있어서,
    상기 사용자로부터 입력으로 수신한 상기 발언이, 주어진 가정에 연결된 상기 하나 이상의 분배 허브들에 대한 적응을 가능하게 하는 상기 하나 이상의 적응 객체들을 생성하는 정보의 식별에 적합한 하나 이상의 요소들로 표지되는 것을 더 포함하는, 하나 이상의 고유명칭 개체들을 포함하는 구두 명령을 인식 및 이해하는 컴퓨터 구현 방법.
  49. 제48항에 있어서,
    상기 하나 이상의 적응 객체들을 식별하는 정보의 식별에 적합한 하나 이상의 요소들의 표지가 상기 발언의 전파 또는 처리의 적절한 스테이지에서 수행되는
    하나 이상의 고유명칭 개체들을 포함하는 구두 명령을 인식 및 이해하는 컴퓨터 구현 방법.
  50. 제 48항에 있어서,
    주어진 가정에 연결된 상기 하나 이상의 분배 허브들에 대한 적응을 가능하게 하는 상기 하나 이상의 적응 객체들 중의 어느 것이 필요에 따라 생성되는 적응 객체를 포함하는, 하나 이상의 고유명칭 개체들을 포함하는 구두 명령을 인식 및 이해하는 컴퓨터 구현 방법.
  51. 제50항에 있어서,
    주어진 가정에 연결된 상기 하나 이상의 분배 허브들에 대한 적응을 가능하게 하는 상기 하나 이상의 적응 객체들을 생성하는 정보의 식별에 적절한 상기 하나 이상의 요소들에 기반한 해당 특정 정보로부터 상기 필요에 따라 생성되는 적응 객체를 생성하는 단계를
    더 포함하는, 하나 이상의 고유명칭 개체들을 포함하는 구두 명령을 인식 및 이해하는 컴퓨터 구현 방법.
  52. 제48항에 있어서,
    상기 하나 이상의 분배 허브들에 대한 적응을 가능하게 하는 상기 하나 이상의 적응 객체를 생성하는 정보를 식별하기에 적합한 상기 하나 이상의 요소들이 상기 하나 이상의 분배 허브를 명시적으로 식별하는 것을 더 포함하는, 하나 이상의 고유명칭 개체들을 포함하는 구두 명령을 인식 및 이해하는 컴퓨터 구현 방법.
  53. 제48항에 있어서,
    상기 하나 이상의 분배 허브들에 대한 적응을 가능하게 하는 상기 하나 이상의 적응 객체를 생성하는 정보를 식별하기에 적합한 상기 하나 이상의 요소들이 상기 하나 이상의 분배 허브를 암시적으로 식별하는 것을 더 포함하는, 하나 이상의 고유명칭 개체들을 포함하는 구두 명령을 인식 및 이해하는 컴퓨터 구현 방법.
  54. 제1항에 있어서,
    상기 NLU 처리에서 결정된 상기 고유명칭 개체의 추정 타입에 적절한 구조와 내용을 포함하는 적응형 문법의 사용에 의해 상기 2차 ASR 인식기를 전문화하는 단계를
    더 포함하는 하나 이상의 고유명칭 개체들을 포함하는 구두 명령을 인식 및 이해하는 컴퓨터 구현 방법.
  55. 제54항에 있어서,
    (a) 검색으로 결과된 업체 명들과;
    (b) 개인 전화번호부, 개인 일정표, 또는 양자의 어느 것으로부터 조회된 업체 명들, 개인 연락처 명들, 또는 양자;
    (c) 가수 이름, 노래 제목, 앨범 명, 및 장르 명들을 포함하는 음악 라이브러리 또는 개인 음악 저장 장치의 내용들;
    (d) 배우 이름, 감독 이름, 및 장르 명들을 포함하는 비디오 라이브러리 또는 개인 비디오 저장 장치의 내용들;
    (e) 개인적으로 중요한 것으로 사용자가 식별한 단어 시퀀스; 및
    (f) 이상의 어떤 조합
    중의 어느 것으로부터 상기 2차 ASR 인식기를 전문화하는 데 사용될 상기 적응형 문법의 구조와 내용을 규정할 고유명칭 개체들을 도출하는 단계를
    더 포함하는 하나 이상의 고유명칭 개체들을 포함하는 구두 명령을 인식 및 이해하는 컴퓨터 구현 방법.
  56. 제54항에 있어서,
    하나 이상의 의미 변수들과 디코딩 의존 값의 할당 값들을 상기 적응형 문법 내의 경로들에, 상기 사용자 발언 내에서 인식된 특정한 고유명칭 개체의 신원의 기호적 표현을 제공하는 상기 2차 인식기 출력의 일부로 보고된 적절한 값으로 연계시키는 단계를
    더 포함하는, 하나 이상의 고유명칭 개체들을 포함하는 구두 명령을 인식 및 이해하는 컴퓨터 구현 방법.
  57. 제 54항에 있어서,
    (a) 특정한 장소에 연계된 번지가 붙은 거리 주소들;
    (b) 특정한 장소에 연계된 도로 교차로들;
    (c) 특정한 장소에 연계된 랜드마크들; 및
    (d) 이상의 어떤 조합
    중의 어느 것으로부터 상기 2차 ASR 인식기를 전문화시키는 데 사용되는 적응형 문법의 구조와 내용을 규정하는 고유명칭 개체들을 도출하는 단계로, 상기 장소가 사용자로부터 수신되어 상기 스팬 타입의 요소로 제공되는 상기 발언의 분석으로 결정되는 고유명칭 도출 단계를
    더 포함하는, 하나 이상의 고유명칭 개체들을 포함하는 구두 명령을 인식 및 이해하는 컴퓨터 구현 방법.
  58. 제 54항에 있어서,
    (a) 특정한 장소에 연계된 번지가 붙은 거리 주소들;
    (b) 특정한 장소에 연계된 도로 교차로들;
    (c) 특정한 장소에 연계된 랜드마크들; 및
    (d) 이상의 어떤 조합
    중의 어느 것으로부터 상기 2차 ASR 인식기를 전문화시키는 데 사용되는 적응형 문법의 구조와 내용을 규정하는 고유명칭 개체들을 도출하는 단계로, 상기 장소가 상기 스팬 타입의 요소로 제공되는 사용자의 물리적 위치의 분석으로 결정되는 고유명칭 도출 단계를
    더 포함하는, 하나 이상의 고유명칭 개체들을 포함하는 구두 명령을 인식 및 이해하는 컴퓨터 구현 방법.
  59. 제1항에 있어서,
    NLU 처리로 결정된 고유명칭 개체의 추정 타입에 적절한 구조와 내용의 적응형 문법을 사용하여 2차 ASR 인식기를 전문화시키는 단계로, 1차 ASR 인식기로 표기되면서 처리된 발언 내의 동시조음 효과와 스팬 시작 및 종료 시간의 잠재적인 부정확한 결정을 감안하여 높은 정확도의 2차 ASR 인식을 보장하도록 상기 적응형 문법이 추가적인 음향 접두 단어들, 음향 접미 단어들, 또는 양자를 포함하는 2차 ASR 인식기의 전문화 단계와; 및
    상기 스팬이 상기 음향 접두 단어들, 음향 접미 단어들 또는 양자를 포함하도록 상기 스팬을 이에 따라 확장시키는 단계를
    더 포함하는, 하나 이상의 고유명칭 개체들을 포함하는 구두 명령을 인식 및 이해하는 컴퓨터 구현 방법.
  60. 제59항에 있어서,
    상기 적응형 문법을 하나 이상의 접두 슬롯들, 접미 슬롯들, 또는 양자를 가지는 슬롯형 문법으로 준비하여 상기 슬롯들을 상기 1차 ASR 인식기에서 표기된 대로 음향 접두 단어들, 음향 접미 단어들, 또는 양자로 적절히 채움으로써 상기 적응형 문법 내에 상기 음향 접두 단어들, 음향 접미 단어들, 또는 양자를 포함시키는 단계를
    더 구비하는, 하나 이상의 고유명칭 개체들을 포함하는 구두 명령을 인식 및 이해하는 컴퓨터 구현 방법.
  61. 제59항에 있어서,
    (a) 검색으로 결과된 업체 명들과;
    (b) 개인 전화번호부, 개인 일정표, 또는 양자의 어느 것으로부터 조회된 업체 명들, 개인 연락처 명들, 또는 양자;
    (c) 가수 이름, 노래 제목, 앨범 명, 및 장르 명들을 포함하는 음악 라이브러리의 내용들;
    (d) 배우 이름, 감독 이름, 및 장르 명들을 포함하는 비디오 라이브러리의 내용들;
    (e) 개인적으로 중요한 것으로 사용자가 식별한 단어 시퀀스; 및
    (f) 이상의 어떤 조합
    중의 어느 것으로부터 상기 2차 ASR 인식기를 전문화시키는 데 사용되는 적응형 문법의 구조와 내용을 규정하는 고유명칭 개체들을 도출하는 단계를
    더 포함하는, 하나 이상의 고유명칭 개체들을 포함하는 구두 명령을 인식 및 이해하는 컴퓨터 구현 방법.
  62. 제59항에 있어서,
    하나 이상의 의미 변수들과 디코딩 의존 값의 할당 값들을 상기 적응형 문법 내의 경로들에, 상기 사용자 발언 내에서 인식된 특정한 고유명칭 개체의 신원의 기호적 표현을 제공하는 상기 2차 인식기 출력의 일부로 보고된 적절한 값으로 연계시키는 단계를
    더 포함하는, 하나 이상의 고유명칭 개체들을 포함하는 구두 명령을 인식 및 이해하는 컴퓨터 구현 방법.
  63. 제 59항에 있어서,
    (a) 특정한 장소에 연계된 번지가 붙은 거리 주소들;
    (b) 특정한 장소에 연계된 도로 교차로들;
    (c) 특정한 장소에 연계된 랜드마크들; 및
    (d) 이상의 어떤 조합
    중의 어느 것으로부터 상기 2차 ASR 인식기를 전문화시키는 데 사용되는 적응형 문법의 구조와 내용을 규정하는 고유명칭 개체들을 도출하는 단계로, 상기 장소가 상기 사용자로부터 수신되어 상기 스팬 타입의 요소로 제공되는 상기 발언의 분석으로 결정되는 고유명칭 도출 단계를
    더 포함하는, 하나 이상의 고유명칭 개체들을 포함하는 구두 명령을 인식 및 이해하는 컴퓨터 구현 방법.
  64. 제 59항에 있어서,
    (a) 특정한 장소에 연계된 번지가 붙은 거리 주소들;
    (b) 특정한 장소에 연계된 도로 교차로들;
    (c) 특정한 장소에 연계된 랜드마크들; 및
    (d) 이상의 어떤 조합
    중의 어느 것으로부터 상기 2차 ASR 인식기를 전문화시키는 데 사용되는 적응형 문법의 구조와 내용을 규정하는 고유명칭 개체들을 도출하는 단계로, 상기 장소가 상기 스팬 타입의 요소로 제공되는 사용자의 물리적 위치의 분석으로 결정되는 고유명칭 도출 단계를
    더 포함하는, 하나 이상의 고유명칭 개체들을 포함하는 구두 명령을 인식 및 이해하는 컴퓨터 구현 방법.
  65. 제59항에 있어서,
    (a) 상기 목표 스팬의 결정에 있어서의 너무 작은 스팬 오류들을 부분 또는 전체적으로 용인할 수 있도록, 디코딩 선택적인 상기 음향 접두 단어들과 음향 접미 단어들의 인식을 수행하도록 상기 적응형 문법을 구축하는 단계와;
    (b) 상기 목표 스팬의 결정에 있어서의 너무 넓은 스팬 오류들을 부분 또는 전체적으로 용인할 수 있도록, 상기 음향 접두 단어들을 바로 후행하는 하나 이상의 디코딩 선택적인 (optional-to-decode) 끼움말 단어들을 포함하거나, 상기 음향 접미 단어들을 바로 선행하는 하나 이상의 디코딩 선택적인 끼움말 단어들을 포함하거나, 또는 양자를 포함하도록 상기 적응형 문법을 구축하는 단계와; 및
    (c) (b)와 (c)를 동시에 포함함으로써 상기 적응형 문법을 구축하는 단계
    중의 어느 한 단계를 더 포함하는, 하나 이상의 고유명칭 개체들을 포함하는 구두 명령을 인식 및 이해하는 컴퓨터 구현 방법.
  66. 제 65항에 있어서,
    (a) 어떤 음향 접두 언어 또는 언어들의 가능한 전방 확장을 식별하는 전방 언어 모델을 사용하여 상기 음향 접두 단어들에 바로 후행하는 하나 이상의 디코딩 의존적인 끼움말 단어들을 결정하는 단계와;
    (b) 어떤 음향 접미 언어 또는 언어들의 가능한 후방 확장을 식별하는 후방 언어 모델을 사용하여 상기 음향 접미 단어들에 바로 선행하는 하나 이상의 디코딩 의존적인 끼움말 단어들을 결정하는 단계와;
    (c) (a) 및 (b) 양자
    중의 어느 한 단계를 더 포함하는, 하나 이상의 고유명칭 개체들을 포함하는 구두 명령을 인식 및 이해하는 컴퓨터 구현 방법.
  67. 제65항에 있어서,
    상기 문법을 적절한 하나 이상의 접두 슬롯들, 접미 슬롯들, 상기 접두 슬롯들을 바로 후행하는 끼움말 슬롯들, 또는 상기 접미 슬롯들을 바로 선행하는 끼움말 슬롯들, 또는 이들의 조합을 준비하고, 상기 접두 슬롯들, 접미 슬롯들, 또는 양자에 상기 1차 ASR 인식기로 표기된 대로 음향 접두 단어들, 음향 접미 단어들, 또는 양자를 적절히 채우고, 상기 접두 슬롯들에 바로 후행하는 상기 끼움말 슬롯들을 음향 접두 단어들을 바로 후행하는 적절한 디코딩 의존적 끼움말 단어들을 채우거나 상기 접미 슬롯들에 바로 선행하는 상기 끼움말 슬롯들을 음향 접미 단어들을 바로 선행하는 적절한 디코딩 의존적 끼움말 단어들을 채우거나, 또는 양자를 채움으로써, 상기 적응형 문법 내에 상기 음향 접두 단어들, 상기 음향 접미 단어들, 상기 음향 접두 단어를 바로 후행하는 디코딩 의존적인 끼움말 단어들, 또는 상기 음향 접미 단어를 바로 선행하는 디코딩 의존적인 끼움말 단어들, 또는 이들의 어떤 조합을 포함하는 단계를
    더 포함하는, 하나 이상의 고유명칭 개체들을 포함하는 구두 명령을 인식 및 이해하는 컴퓨터 구현 방법.
  68. 하나 이상의 고유명칭 개체를 포함하는 구두 명령을 인식 및 이해하는 장치에 있어서,
    사용자로부터 발언을 입력으로 수신하도록 구성된 프로세서를 포함하고;
    상기 프로세서가 1차 자동 음성 인식기로 상기 발언을 1차 자동 음성 인식(ASR) 처리하여 하나 이상의 데이터세트들을 출력하고, 상기 각 데이터세트는 적어도 공칭 표기된 단어들의 시퀀스를 포함하며, 상기 시퀀스가 공칭 1차 표기를 포함하고;
    상기 프로세서가 자연어 이해(NLU) 프로세서로 상기 각 데이터세트를 처리하여 상기 데이터세트에 상기 공칭 표기에 대한 공칭 의미를 생성 및 추가하고 상기 발언 내에서 하나 이상의 말해진 고유명칭 개체들의 추정 존재와 타입을 판단하며, 상기 각 말해진 고유명칭 객체를 목표 스팬을 포함하는 상기 데이터세트 내의 공칭 표기 단어들의 인접 시퀀스에 연계시키며;
    상기 프로세서가 상기 각 데이터세트에 대해 하나 이상의 경우들의 2차 자동 음성 인식(ASR)을 상기 발언의 전체에 수행하고, 각 경우에 상기 2차 자동 음성 인식기가 고유명칭 개체의 각 주어진 추정 타입 및 연계된 목표 스팬을 처리하여 하나 이상의 표기들 및 상기 각 목표 스팬에 연계된 의미를 생성하도록 전문화되고;
    상기 프로세서가 상기 각 데이터세트를 상기 2차 자동 음성 인식의 하나 이상의 경우들의 각각에 대해 하나 이상의 표기 및 각 목표 스팬에 대해 얻어진 연계된 의미로 교체함으로써 개정하고, 상기 개정된 데이터 세트의 전체로부터 하나 이상의 완전한 표기들 및 이에 연계된 의미들을 생성하며; 그리고
    상기 프로세서가 상기 전체 발언에 대한 하나 이상의 완전한 표기들과 이에 연계된 의미들의 집합을 출력하는
    하나 이상의 고유명칭 개체를 포함하는 구두 명령을 인식 및 이해하는 장치.
  69. 제1항에 있어서,
    상기 NLU 프로세서로 결정된 대로의 상기 고유명칭 개체의 추정 타입에 적합한 적응 객체를 사용하여 상기 2차 ASR 인식기를 전문화 하는 단계를
    더 포함하는, 하나 이상의 고유명칭 개체들을 포함하는 구두 명령을 인식 및 이해하는 컴퓨터 구현 방법.
  70. 제69항에 있어서,
    상기 적응 객체가 적응형 문법을 포함하는, 하나 이상의 고유명칭 개체들을 포함하는 구두 명령을 인식 및 이해하는 컴퓨터 구현 방법.
  71. 제70항에 있어서,
    상기 적응형 문법이 슬롯형의 적응형 문법을 포함하는, 하나 이상의 고유명칭 개체들을 포함하는 구두 명령을 인식 및 이해하는 컴퓨터 구현 방법.
  72. 제70항에 있어서,
    하나 이상의 의미 변수들과 디코딩 의존 값의 할당 값들을 상기 적응형 문법 내의 경로들에, 상기 사용자 발언 내에서 인식된 특정한 고유명칭 개체의 신원의 기호적 표현을 제공하는 상기 2차 인식기 출력의 일부로 보고된 적절한 값으로 연계시키는 단계를
    더 포함하는, 하나 이상의 고유명칭 개체들을 포함하는 구두 명령을 인식 및 이해하는 컴퓨터 구현 방법.
  73. 제70항에 있어서,
    상기 적응형 문법이 접두 섹션, 목표 섹션, 및 접미 섹션을 포함하는, 선형으로 연결된 일련의 문법 섹션들로 구성되고, 이 중에서:
    상기 접두 섹션은 선형으로 연결된 0 또는 그 이상의 경로들을 포함하고, 상기 각 경로는 0 또는 그 이상의 문법 레이블들의 시퀀스로 표지되며, 상기 선형으로 연결된 일련의 표지된 경로들은 전체로서 첫째 공칭 표기된 단어에서 이를 포함하여 시작되고 순서대로 진행하여 상기 목표 스팬의 첫째 공칭 표기 단어는 포함하지 않는 공칭 1차 표기의 부분에 대응하는 0 또는 그 이상의 문법 레이블의 선형 시퀀스를 규정하고,
    상기 목표 섹션은 상기 고유명칭 객체의 상기 추정 타입이 적절한 구조와 내용을 포함하며; 그리고
    상기 접미 섹션은 선형으로 연결된 0 또는 그 이상의 경로들을 포함하고, 상기 각 경로는 0 또는 그 이상의 문법 레이블들의 시퀀스로 표지되며, 상기 선형으로 연결된 일련의 표지된 경로들은 전체로서 마지막 공칭 표기된 단어 뒤에서 이를 포함하지 않고 시작되고 순서대로 진행하여 상기 목표 스팬의 마지막 공칭 표기 단어는 포함하는 공칭 1차 표기의 부분에 대응하는 0 또는 그 이상의 문법 레이블의 선형 시퀀스를 규정하는
    하나 이상의 고유명칭 개체들을 포함하는 구두 명령을 인식 및 이해하는 컴퓨터 구현 방법.
  74. 제73항에서,
    상기 각 레이블이:
    (a) 공칭 표기 단어;
    (b) 공칭 표기 단어에 연계된 공칭 기본형;
    (c) 상기 공칭 표기 단어에 연계된 상기 공칭 기본형의 일부 또는 전부에 해단하는 하나 이상의 문맥 의존형 음소들의 시퀀스; 및
    (d) 상기 공칭 표기 단어에 연계된 실제 디코딩된 기본형의 일부 또는 전부에 해당하는 하나 이상의 문맥 의존형 음소들의 시퀀스
    중의 어느 것을 포함하는 하나 이상의 고유명칭 개체들을 포함하는 구두 명령을 인식 및 이해하는 컴퓨터 구현 방법.
  75. 제73항에 있어서,
    상기 접두 섹션, 상기 접미 섹션, 또는 양자가, 2차 인식기가 상기 목표 섹션에 인접한 상기 각 섹션 내의 일련의 문법 경로들을 스킵하여 너무 작은 스팬 오류를 교정하고 상기 발언에 대한 상기 적응형 문법의 최선의 가능한 대응을 포함하여 하나 이상의 출력들을 얻도록 하는 구조를 포함하는
    하나 이상의 고유명칭 개체들을 포함하는 구두 명령을 인식 및 이해하는 컴퓨터 구현 방법.
  76. 제75항에 있어서,
    상기 각 구조가 적절히 공유된 노드들을 가지는 내포된 일련의 엡실론 경로들을 포함하고, 어느 선택적으로 스킵된 문법 경로들이 상기 목표 섹션에 인접한 상기 각 섹션 내에 인접한 일련의 문법 경로들을 포함하는
    하나 이상의 고유명칭 개체들을 포함하는 구두 명령을 인식 및 이해하는 컴퓨터 구현 방법.
  77. 제73항에 있어서,
    상기 선형으로 연결된 일련의 문법 섹션들이 상기 접두 섹션과 목표 섹션 사이의 좌측 끼움말, 상기 목표 섹션과 접미 섹션 사이의 우측 끼움말, 또는 양자로 보충된 상기 적응형 문법을 포함하고;
    상기 좌측 끼움말, 우측 끼움말, 또는 양자가, 상기 2차 인식기가 상기 좌측 끼움말, 우측 끼움말, 또는 양자에 의해 허용되는 대로 대체적 단어들, 단어 시퀀스들, 또는 음소 시퀀스들이 디코딩되도록 하고; 그리고
    좌측 끼움말의 경우, 상기 선택적 디코딩들을 상기 접두 섹션과 목표 섹션의 2차 디코딩 사이에 순차적으로 위치시켜, 너무 큰 스팬 오류를 교정하고 상기 발언에 대한 상기 적응형 문법의 최선의 가능한 대응을 포함하는 하나 이상의 2차 인식기 출력들을 얻는
    하나 이상의 고유명칭 개체들을 포함하는 구두 명령을 인식 및 이해하는 컴퓨터 구현 방법.
  78. 제77항에 있어서;
    상기 각 끼움말이:
    (a) 어느 것도 상기 끼움말을 횡단할 수 있는 엡실론 경로와 대체적 단어들 또는 단어 시퀀스들;
    (b) 제1 엡실론 경로와, 음소 루프와, 및 제2 엡실론 경로를 포함하는 선형으로 연결된 일련의 경로들로, 상기 끼움말의 횡단이 상기 제1 엡실론 경로의 횡단을 수반하고, 상기 음소 루프를 어떤 횟수로건 어떤 순서로건 횡단한 다음 상기 제2 경로를 횡단하는 일련의 경로들; 및
    (c) 상기 끼움말이 (a)로 허용된 경로 또는 (b)로 허용된 경로 중의 어는 것으로 횡단될 수 있도록 (a) 및 (b) 양자
    중의 어느 것이 되도록 구축하는 단계를
    더 포함하는, 하나 이상의 고유명칭 개체들을 포함하는 구두 명령을 인식 및 이해하는 컴퓨터 구현 방법.
KR1020207016836A 2017-11-13 2018-11-13 적응형 고유명칭 개체 인식 및 이해를 위한 시스템 및 방법 KR20200087802A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/811,586 US10170114B2 (en) 2013-05-30 2017-11-13 Systems and methods for adaptive proper name entity recognition and understanding
US15/811,586 2017-11-13
PCT/US2018/060653 WO2019094895A1 (en) 2017-11-13 2018-11-13 Systems and methods for adaptive proper name entity recognition and understanding

Publications (1)

Publication Number Publication Date
KR20200087802A true KR20200087802A (ko) 2020-07-21

Family

ID=66438172

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020207016836A KR20200087802A (ko) 2017-11-13 2018-11-13 적응형 고유명칭 개체 인식 및 이해를 위한 시스템 및 방법

Country Status (5)

Country Link
EP (1) EP3711046A4 (ko)
KR (1) KR20200087802A (ko)
AU (2) AU2018365166A1 (ko)
CA (1) CA3082402A1 (ko)
WO (1) WO2019094895A1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110309306B (zh) * 2019-06-19 2022-08-26 淮阴工学院 一种基于wsd层级记忆网络的文档建模分类方法
CN110457677B (zh) * 2019-06-26 2023-11-17 平安科技(深圳)有限公司 实体关系识别方法及装置、存储介质、计算机设备
CN111723870B (zh) * 2020-06-22 2024-04-09 中国平安人寿保险股份有限公司 基于人工智能的数据集获取方法、装置、设备和介质
CN117555995B (zh) * 2024-01-11 2024-04-12 北京领初医药科技有限公司 一种分级式缩略语句匹配确认方法及系统

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060075429A1 (en) * 2004-04-30 2006-04-06 Vulcan Inc. Voice control of television-related information
US8752141B2 (en) * 2008-06-27 2014-06-10 John Nicholas Methods for presenting and determining the efficacy of progressive pictorial and motion-based CAPTCHAs
WO2014194299A1 (en) * 2013-05-30 2014-12-04 Promptu Systems Corporation Systems and methods for adaptive proper name entity recognition and understanding
US9818401B2 (en) * 2013-05-30 2017-11-14 Promptu Systems Corporation Systems and methods for adaptive proper name entity recognition and understanding
US10008205B2 (en) * 2013-11-20 2018-06-26 General Motors Llc In-vehicle nametag choice using speech recognition
JP6440513B2 (ja) * 2014-05-13 2018-12-19 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America 音声認識機能を用いた情報提供方法および機器の制御方法
US10229674B2 (en) * 2015-05-15 2019-03-12 Microsoft Technology Licensing, Llc Cross-language speech recognition and translation
US10342982B2 (en) * 2015-09-11 2019-07-09 Backbeat Medical, Inc. Methods and systems for treating cardiac malfunction

Also Published As

Publication number Publication date
EP3711046A1 (en) 2020-09-23
WO2019094895A1 (en) 2019-05-16
AU2023258338A1 (en) 2024-01-25
EP3711046A4 (en) 2021-08-18
AU2018365166A1 (en) 2020-06-04
CA3082402A1 (en) 2019-05-16

Similar Documents

Publication Publication Date Title
US11783830B2 (en) Systems and methods for adaptive proper name entity recognition and understanding
US9818401B2 (en) Systems and methods for adaptive proper name entity recognition and understanding
US9449599B2 (en) Systems and methods for adaptive proper name entity recognition and understanding
US20230317074A1 (en) Contextual voice user interface
US10957312B2 (en) Scalable dynamic class language modeling
EP2259252B1 (en) Speech recognition method for selecting a combination of list elements via a speech input
US11830485B2 (en) Multiple speech processing system with synthesized speech styles
AU2017326987B2 (en) Systems and methods for adaptive proper name entity recognition and understanding
US8949133B2 (en) Information retrieving apparatus
KR20200087802A (ko) 적응형 고유명칭 개체 인식 및 이해를 위한 시스템 및 방법
US11016968B1 (en) Mutation architecture for contextual data aggregator
JP5189874B2 (ja) 多言語の非ネイティブ音声の認識
US11715472B2 (en) Speech-processing system
EP3005152B1 (en) Systems and methods for adaptive proper name entity recognition and understanding
US11430434B1 (en) Intelligent privacy protection mediation
US11328713B1 (en) On-device contextual understanding
JP2000330588A (ja) 音声対話処理方法、音声対話処理システムおよびプログラムを記憶した記憶媒体