KR20120038198A - 음성 인식 장치 및 방법 - Google Patents
음성 인식 장치 및 방법 Download PDFInfo
- Publication number
- KR20120038198A KR20120038198A KR1020100099828A KR20100099828A KR20120038198A KR 20120038198 A KR20120038198 A KR 20120038198A KR 1020100099828 A KR1020100099828 A KR 1020100099828A KR 20100099828 A KR20100099828 A KR 20100099828A KR 20120038198 A KR20120038198 A KR 20120038198A
- Authority
- KR
- South Korea
- Prior art keywords
- language model
- word
- score
- word string
- reverse
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 48
- 230000002457 bidirectional effect Effects 0.000 claims abstract description 56
- 125000004122 cyclic group Chemical group 0.000 claims description 16
- 238000004364 calculation method Methods 0.000 claims description 8
- 230000001419 dependent effect Effects 0.000 claims description 8
- 238000010586 diagram Methods 0.000 description 14
- 230000011218 segmentation Effects 0.000 description 12
- 230000014509 gene expression Effects 0.000 description 6
- 230000009182 swimming Effects 0.000 description 4
- 230000018109 developmental process Effects 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 235000014443 Pyrus communis Nutrition 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000012821 model calculation Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/08—Speech classification or search
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/08—Speech classification or search
- G10L15/18—Speech classification or search using natural language modelling
- G10L15/183—Speech classification or search using natural language modelling using context dependencies, e.g. language models
- G10L15/19—Grammatical context, e.g. disambiguation of the recognition hypotheses based on word sequence rules
- G10L15/197—Probabilistic grammars, e.g. word n-grams
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/08—Speech classification or search
- G10L15/18—Speech classification or search using natural language modelling
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/08—Speech classification or search
- G10L15/18—Speech classification or search using natural language modelling
- G10L15/183—Speech classification or search using natural language modelling using context dependencies, e.g. language models
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Human Computer Interaction (AREA)
- Acoustics & Sound (AREA)
- Multimedia (AREA)
- Artificial Intelligence (AREA)
- Probability & Statistics with Applications (AREA)
- Machine Translation (AREA)
Abstract
문장 내 단어들의 앞뒤 관계를 모두 고려하여 보다 정확한 음성 인식을 하기 위한 장치 및 방법이 제공된다. 음성 인식 장치는, 입력된 음성에 대한 음성 인식을 수행하여 단어 격자 정보를 생성하는 1차 음성 인식부와, 생성된 단어 격자 정보로부터 적어도 하나의 단어열을 생성하는 단어열 생성부와, 적어도 하나의 단어열별로, 단어열에 포함된 단어들 각각에 대하여 정방향 언어모델 및 역방향 언어모델을 이용하여 양방향 언어모델 점수를 계산하는 언어모델 점수 계산부와, 적어도 하나의 단어열에 대한 양방향 언어모델 점수를 이용하여 높은 점수를 가지는 단어열을 음성 인식 결과로서 출력하는 문장 출력부를 포함한다.
Description
음성 인식 기술에 관한 것으로, 더욱 상세하게는, 사용자가 미리 정의된 제한된 문법을 벗어나는 다양한 표현으로 음성 입력을 하는 경우에도, 보다 정확한 음성 인식을 하기 위한 장치 및 방법에 관한 것이다.
지금까지 상용화된 음성 대화 시스템은 주로 전화망을 통해 비행기나 기차 예약 시스템 등 비교적 제한적이고 간단한 시스템으로 한정되었으며, 그에 따라 사용되는 음성 인식은 단순히 고립 단어를 인식하거나 제한된 개수의 단어와 문법만을 인식할 수 있었다. 그러나, 점차 보다 많은 멀티미디어 컨텐츠를 제어할 필요가 늘어나고, 시스템의 고사양화로 인해 음성인식 시스템이 기존의 단순한 고립 단어 인식에서 벗어나 연속어 인식을 지원할 수 있게 되면서, 사용자는 미리 정해진 단순한 명령을 넘어서 보다 자연스럽고 풍부한 표현을 이용하여 음성 입력을 할 수 있기를 기대하게 되었다.
연속어 음성 인식 시스템은 입력된 음성에 가장 적합하다고 판단되는 단어들을 조합하여 문장을 만들어내는 것이다. 그러나, 화자 및 문맥에 따른 발음의 가변성과 주변 잡음으로 인한 왜곡 등으로 인해 주어진 음성과 유사하다고 판단되는 단어의 수는 크게 늘어나게 되며, 이에 따라 이러한 단어들을 조합하여 생성할 수 있는 문장의 수도 기하급수적으로 늘어난다. 여기에서, 가장 적합한 문장을 찾아내는 것은 수많은 계산을 필요로 하므로, 계산량을 줄이고 빠른 속도를 내기 위하여 연속어 음성 인식에서는 단어 간의 연결 관계를 모델링하는 언어모델을 사용하여 연결가능한 단어의 수를 줄이게 된다.
이러한 언어모델은 다양한 문장 데이터로부터 연결 가능한 단어들 간의 관계를 확률적으로 모델링하게 된다. 이상적인 경우, 이러한 언어모델은 불가능한 단어 조합을 제외하는 동시에, 다양한 단어 조합이 어떠한 확률로 나타날 수 있는지를 표현하게 된다. 그러나, 일반적으로는 사용자가 발화할 수 있는 모든 문장을 데이터로 가지고 있는 것은 불가능하므로, 자주 쓰이지 않는 단어 조합의 경우 불가능한 단어 연결로 판단해버려 음성을 인식하지 못하는 자료 빈약성(data sparseness) 문제가 생기기도 한다.
전통적으로 사용되는 언어모델에는 자료 빈약성 문제를 초래하는 주요 원인으로는 단어 조합, 인접성, 단방향성과 같은 특성을 들 수 있다.
단어 조합은 단어와 단어 사이의 연결 가능성을 모델링하는 것이다. 그런데, 단어의 수가 수만 개를 넘어서게 되면, 가능한 모든 단어들 사이의 연결 가능성을 확률적으로 모델링하는 것은 현실적으로 불가능하게 된다. 따라서, 이러한 제한을 극복하기 위해 비슷한 문맥에서 자주 이용되는 단어를 같은 클래스로 묶는 클래스 방식의 언어모델을 사용하기도 한다. 즉, 사과나 배라는 개별 단어 대신에 과일이라는 클래스를 사용하는 것이다.
인접성은 바로 인접한 단어 간의 확률만을 모델링하는 것이다. 그런데, 한정된 문법만을 인식하는 경우에는 큰 문제가 되지 않겠지만, 일반적인 문장에서는 다양한 위치에 간투사나 부사가 삽입되면서 서로 떨어진 단어들 간에 관련이 생기는 경우가 많아지게 된다. 따라서, 이 제한을 풀기 위해, 동시 출현(co-occurrence) 언어모델을 도입하여, 서로 인접하지 않더라도 인근의 즉, 몇 단어 거리에 관련있는 단어가 출현할 수 있도록 허용하기도 한다.
마지막으로 단방향성은 문장을 이루는 단어들 간의 연결 관계를 한쪽 방향으로만 모델링하는 것이다. 주로, 시간상으로 앞의 단어가 나타났을 때 그 다음 단어가 무엇인지를 예측하는 방식을 많이 사용한다. 이렇게 하면, 모델링이나 디코딩 과정이 단순해질 수 있지만, 언제가 뒷 단어가 그 앞의 단어에 제약을 받는 것이 아니기 때문에, 앞 단어로부터 뒷 단어를 유추하지 못하는 경우에는, 전체 문장을 구성하지 못하고 엉뚱한 문장으로 인식될 수 있다.
사용자가 미리 정의된 제한된 문법을 벗어나는 다양한 표현으로 음성 입력을 하는 경우에도, 문장 내 단어들의 앞뒤 관계를 모두 고려하여 보다 정확한 음성 인식을 하기 위한 장치 및 방법이 제공된다.
일 측면에 따른 음성 인식 장치는, 입력된 음성에 대한 음성 인식을 수행하여 단어 격자 정보를 생성하는 1차 음성 인식부와, 생성된 단어 격자 정보로부터 적어도 하나의 단어열을 생성하는 단어열 생성부와, 적어도 하나의 단어열별로, 단어열에 포함된 단어들 각각에 대하여 정방향 언어모델 및 역방향 언어모델을 이용하여 양방향 언어모델 점수를 계산하는 언어모델 점수 계산부와, 적어도 하나의 단어열에 대한 양방향 언어모델 점수를 이용하여 높은 점수를 가지는 단어열을 음성 인식 결과로서 출력하는 문장 출력부를 포함한다.
언어모델 점수 계산부는, 적어도 하나의 단어열별로, 단어열에 포함된 단어들 각각에 대하여 정방향 언어모델 및 역방향 언어모델 중 하나를 선택하는 언어모델 선택부와, 단어열에 포함된 단어들 각각에 대하여 선택된 정방향 언어모델 및 역방향 언어모델 중 하나의 언어모델을 이용하여 단어열의 양방향 언어모델 점수를 계산하는 점수 계산부를 포함할 수 있다.
언어모델 선택부는, 단어열에 포함된 단어들 각각에 대하여 정방향 언어모델 및 역방향 언어모델을 적용한 정방향 언어모델 점수 및 역방향 언어모델 점수를 계산하고, 계산된 정방향 언어모델 점수 및 역방향 언어모델 점수 중 높은 점수를 가진 언어모델 점수를 주는 언어모델을 단어열에 포함된 단어들 각각에 대하여 선택할 수 있다.
언어모델 선택부는, 언어에 대한 미리 설정된 제약 조건이 있을 경우, 언어모델 점수보다 미리 설정된 제약조건을 우선적으로 적용하여 정방향 언어모델 및 역방향 언어모델 중 하나를 선택할 수 있다.
언어에 대한 미리 설정된 제약조건은, 특정 어휘 또는 특정 형태소를 가진 단어에 대해 정방향 언어모델 및 역방향 언어모델 중 하나가 미리 결정된 제약조건을 포함할 수 있다. 언어모델 점수 계산부는, 적어도 하나의 단어열별로, 단어열에 포함되는 각 단어에 대하여 선택된 언어모델에 따른 정방향 언어모델 점수 또는 역방향 언어모델 점수를 합산하여 단어열의 언어모델 점수를 계산할 수 있다.
언어모델 점수 계산부는, 단어열에 포함되는 제1 단어와 제2 단어 사이에 순환적 종속 관계가 발견되는 경우, 순환적 종속 관계를 제거한 상태에서 단어열의 언어모델 점수를 계산할 수 있다.
언어모델 점수 계산부는, 순환적 종속관계를 가지는 제1 단어 및 제2 단어에 대하여, 제1 단어에 대하여 역방향 언어모델을 적용하고 제2 단어에 대하여 유니그램 확률을 적용하는 제1 방식 및 제1 단어에 대하여 유니그램 확률을 적용하고 제2 단어에 대하여 정방향 언어모델을 적용하는 제2 방식 중 제1 단어 및 제2 단어에 대한 합산된 언어모델 점수가 높은 방식을 선택하여 순환적 종속관계를 제거할 수 있다.
문장 출력부는, 각각의 단어열에 대하여 각 단어간의 발음 관계를 고려하여 음향모델 점수를 계산하고, 음향모델 점수 및 양방향 언어모델 점수를 합산하고, 각각의 단어열에 대하여, 적어도 하나의 단어열 중에서 합산된 점수를 이용하여 선택된 단어열을 음성 인식 문장으로서 출력할 수 있다.
다른 측면에 따른 음성 인식 방법은, 입력된 음성에 대한 음성 인식을 수행하여 단어 격자 정보를 생성하는 동작과, 생성된 단어 격자 정보로부터 적어도 하나의 단어열을 생성하는 동작과, 적어도 하나의 단어열별로, 단어열에 포함된 단어들 각각에 대하여 정방향 언어모델 및 역방향 언어모델을 이용하여 양방향 언어모델 점수를 계산하는 동작과, 적어도 하나의 단어열에 대한 양방향 언어모델 점수를 이용하여 높은 점수를 가지는 단어열을 출력하는 동작을 포함한다.
일 실시예에 따르면, 단어열에 포함된 각 단어에 대하여 정방향 언어모델 및 역방향 언어모델 중 높은 점수를 가지는 언어모델을 선택하여 언어모델 점수를 계산함으로써 음성 인식 성능을 향상시킬 수 있다.
도 1은 정방향 언어모델 및 역방향 언어모델을 이용하여 음성을 인식하는 음성 인식 장치의 전체 구성의 일 예를 나타내는 블록도이다.
도 2는 양방향 언어모델 점수의 개념을 나타내는 도면이다.
도 3은 도 1의 언어모델 점수 계산부의 구성의 일 예를 나타내는 블록도이다.
도 4는 언어모델 선택으로 인하여 잘못된 세그먼테이션(segmentation)이 발생한 예를 나타내는 도면이다.
도 5a 내지 도 5c는 순환적 종속 관계를 제거하여 양방향 언어모델 점수를 계산하는 동작의 일 예를 나타내는 도면이다.
도 6은 도 1의 문장 출력부의 구성의 일 예를 나타내는 블록도이다.
도 7은 음성 인식 방법의 일 예를 나타내는 순서도이다.
도 2는 양방향 언어모델 점수의 개념을 나타내는 도면이다.
도 3은 도 1의 언어모델 점수 계산부의 구성의 일 예를 나타내는 블록도이다.
도 4는 언어모델 선택으로 인하여 잘못된 세그먼테이션(segmentation)이 발생한 예를 나타내는 도면이다.
도 5a 내지 도 5c는 순환적 종속 관계를 제거하여 양방향 언어모델 점수를 계산하는 동작의 일 예를 나타내는 도면이다.
도 6은 도 1의 문장 출력부의 구성의 일 예를 나타내는 블록도이다.
도 7은 음성 인식 방법의 일 예를 나타내는 순서도이다.
이하, 첨부된 도면을 참조하여 본 발명의 일 실시예를 상세하게 설명한다. 본 발명을 설명함에 있어 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 또한, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
도 1은 정방향 언어모델 및 역방향 언어모델을 이용하여 음성을 인식하는 음성 인식 장치의 전체 구성의 일 예를 나타내는 블록도이다.
음성 인식 장치(100)는, 1차 음성 인식부(110), 단어열 생성부(120), 언어모델 점수 계산부(130), 문장 출력부(140), 음향모델(150), 정방향 언어모델(160) 및 역방향 언어모델(170)을 포함할 수 있다.
음향 모델(150)은 음성 신호에 대한 특징을 나타내는 모델이다. 정방향 언어모델(160) 및 역방향 언어모델(170)은 인접한 n개의 단어에 대한 언어모델인 n-그램 언어모델과 같은 통계기반 언어모델 또는 문맥 자유 문법과 같은 문법 기반 언어모델일 수 있다. 정방향 언어모델(160) 및 역방향 언어모델(170)은 통계기반 언어모델 및 문법 기반 언어모델의 통합된 형태를 가질 수 있다. 정방향 언어모델(160)은 단어열의 정방향(또는 문장의 우측 방향)으로 하나의 단어에 대하여 특정한 다른 단어가 나타날 확률 정보를 포함할 수 있다. 역방향 언어모델(170)은 단어열의 역방향(또는 문장의 좌측 방향)으로 하나의 단어에 대하여 특정한 다른 단어가 나타낼 확률 정보를 포함할 수 있다.
1차 음성 인식부(110)는, 주어진 음성에 대해 연속어 인식을 수행하여 인식 대상 단어들로 구성되는 단어 격자 정보(word lattice information)를 생성한다. 1차 음성 인식부(110)는 음향모델(150)과 정방향 언어모델(160)을 이용하여 입력된 음성에 대하여 단어 격자 정보를 생성할 수 있다. 연속어 인식은 문장 단위로 음성 인식을 수행하는 것을 의미한다.
상세하게는, 1차 음성 인식부(110)는, 입력되는 음성을 프레임화하고, 프레임화된 음성을 주파수 대역의 신호로 변환하고, 변환된 신호로부터 특징 정보를 추출하고, 추출된 특징 정보 및 음향모델(150)을 이용하여 텍스트열을 생성할 수 있다. 그런 다음, 1차 음성 인식부(110)는 생성된 텍스트열에 대하여, 인식 대상 단어 및 단어 간 연결 관계를 나타내는 정방향 언어모델(160)을 이용하여, 단어 격자 정보를 생성할 수 있다.
1차 음성 인식부(110)의 음성 인식 결과로, 단어 격자 정보(word lattice information)가 출력될 수 있다. 단어 격자 정보는 여러 개의 단어 브랜치로 구성될 수 있다. 각 단어 브랜치는 단어, 단어 id, 단어의 시작 프레임 위치, 단어의 끝 프레임 위치, 단어의 음향모델 점수 등의 정보를 포함할 수 있다.
1차 음성 인식부(110)는 일반적인 연속어 음성 인식기에서 단어 격자를 생성하는 방식과 동일한 방식으로 구성될 수 있다. 1차 음성 인식부(110)는 추가적으로 특정 키워드를 중심으로 음성을 인식한 결과로서 생기는 키워드 격자 정보를 일반적 연속어 인식 결과로서 생기는 단어 격자 정보를 통합하여 통합된 단어 격자 정보를 출력하도록 구성될 수 있다. 이렇게 하면, 1차 음성 인식부(110)에서 출력되는 단어 격자 정보에 단일한 단어 격자 생성 모듈만으로는 생성하지 못한 단어 브랜치를 추가할 수 있다.
단어열 생성부(120)는, 인식된 단어 격자 정보를 이용하여 단어 격자를 조합하여 적어도 하나의 단어열을 생성한다. 단어열 생성부(120)는 인식된 단어 격자를 조합하여 음성 인식 결과로서 생성될 문장에 대한 복수 개의 단어열을 생성할 수 있다.
단어열 생성부(120)는 A 스타 검색(A star search) 기법과 같은, 스택 검색 기법(또는 스택 디코딩 알고리즘)을 이용하여 단어 격자로부터 단어열을 생성할 수 있다. 만일 단어 격자로부터 가능한 모든 단어열 조합에 대해서 일일이 계산하면 시간이 너무 많이 소요되어 실용성이 없다.
단어열 생성부(120)는 스택 검색 기법을 이용하여, 스택에 발성의 일부분에 해당하는 단어열들을 저장하고, 각 단어열들에 대해 인접한 상태로 연결 가능한 단어를 1차 음성 인식부(110)에서 생성된 단어 격자로부터 하나씩 추가하여 각 단어열을 확장할 수 있다. 단어열 생성부(120)는 스택 검색 기법을 이용하여 단어열들을 저장할 때에는 일반적으로 점수(또는 스코어) 순으로 소팅해서 저장할 수 있다. 단어열 생성부(120)는 입력된 전 발성을 커버할 때까지 스택 검색 기법을 수행할 수 있다.
단어열 생성부(120)는 전 발성을 커버하는 단어열이 나타나면, 이 단어열을 문장 출력부(140)로 전달할 수 있다. 전 발성을 커버하는 단어열은 문장이라 한다. 이 과정에서 계산을 빠르게 하기 위해서, 단어열 생성부(120)에서 유지하는 스택의 사이즈를 특정 값 이하로 한정할 수 있다.
언어모델 점수 계산부(130)는, 단어열 생성부(120)에서 생성된 단어열에 대하여 정방향 언어모델(160) 및 역방향 언어모델(170)을 이용하여, 입력되는 적어도 하나의 단어열들에 대하여 양방향 언어모델 점수를 계산하도록 구성될 수 있다. 언어모델 점수 계산부(130)는 단어열 생성부(120)에서 입력되는 적어도 하나의 단어열별로, 하나의 단어열에 포함된 단어들 각각에 대하여 정방향 언어모델 및 역방향 언어모델을 이용하여 양방향 언어모델 점수를 계산한다.
단어열에서 제1 단어 및 제2 단어가 순차적으로 포함될 때, 제1 단어 다음에 제2 단어가 출현할 확률은 정방향 언어모델 점수라고 하고, 제2 단어 앞에 제1 단어가 출현할 확률을 역방향 언어모델 점수라고 한다. 언어모델 점수 계산부(130)는 단어열의 각 단어에 대하여 정방향 언어모델 점수 및 역방향 언어모델 점수를 계산하고, 높은 점수를 주는 언어모델(또는 언어모델 점수)를 선택할 수 있다. 그런 다음, 언어모델 점수 계산부(130)는 단어열의 각 단어에 대하여 높은 점수를 주는 언어모델 점수를 합산하여 양방향 언어모델 점수를 계산할 수 있다. 따라서, 양방향 언어모델 점수에는 정방향 언어모델(160)을 적용하여 결정되는 정방향 언어모델 점수 및 역방향 언어모델(170)을 적용하여 결정되는 역방향 언어모델 점수가 포함될 수 있다.
언어모델 점수 계산부(130)는 단어열 생성부(120)의 스택에 담겨 있는 단어열에 대해서 해당 스택에 새로운 단어가 추가될 때마다 양방향 언어모델 점수를 계산하여, 전 발성을 커버하는 단어열이 완성될 때까지 양방향 언어모델 점수를 계산할 수 있다. 또는, 언어모델 점수 계산부(130)는 단어열 생성부(120)에서 단어열이 입력될 때마다 단어열 단위로 양방향 언어모델 점수를 계산할 수 있다.
문장 출력부(140)는, 적어도 하나의 단어열에 대한 양방향 언어모델 점수를 이용하여 높은 점수를 가지는 단어열을 음성 인식 결과로서 출력하도록 구성된다. 문장 출력부(140)는 언어모델 점수 계산부(130)에서 계산한 양방향 언어모델 점수에 단어 간의 발음 관계를 고려하여 다시 계산한 음향모델 점수를 통합하고, 통합된 점수를 이용하여 적어도 하나의 음성 인식 후보가 되는 단어열 중에서 높은 점수를 가진 단어열(또는 문장)을 음성 인식 결과 문장으로 출력할 수 있다. 문장 출력부(140)는 여러 개의 단어열 중에서 통합 점수가 높은 복수 개의 단어열(또는 문장)을 음성 인식 결과로서 출력할 수 있다.
음성 인식 장치(100)는 각종 전화 예약 시스템뿐만 아니라, 텔레비전 및 휴대폰과 같은 멀티미디어 기기, 로봇, 키오스크(kiosk) 등 다양한 전자 제품에 탑재된 음성 대화형 사용자 인터페이스로서 구현될 수 있다.
일 실시예에 따르면, 단어열에 포함된 각 단어에 대하여 정방향 언어모델 및 역방향 언어모델 중 높은 점수를 가지는 언어모델을 선택하여 언어모델 점수를 계산함으로써 음성 인식 성능을 향상시킬 수 있다. 따라서, 사용자가 미리 정의된 제한된 문법을 벗어나는 다양한 표현으로 음성 입력을 하는 경우에도, 문장 내 단어들의 앞뒤 관계를 모두 고려하여 보다 정확한 음성 인식이 수행될 수 있다. 다시 말하면, 입력된 음성이 주어진 코퍼스만 가지고도 충분히 표현할 수 있는 단어 조합임에도 단방향 언어모델을 이용함으로 인하여 단어들 간에 단절을 가져와서 전체 문장이 만들어지지 못하는 오류를 극복할 수 있다.
도 2는 양방향 언어모델 점수의 개념을 나타내는 도면이다.
도 1의 언어모델 점수 계산부(130)는 정방향 언어모델(160)과 그 언어모델의 순서를 뒤집은 역방향 언어모델(170)을 조합하여 양방향 언어모델 점수를 계산한다.
도 2는 "수영이 아니고 파도 타는 것"라는 문장에서, '아니고', '파도' 및 '타는'에 정방향 언어모델(160) 및 역방향 언어모델(170)을 적용한 결과를 나타낸다.
블록(210)에 도시된 바와 같이, "수영이 아니고 파도 타는 것"라는 문장에서, 정방향 언어모델(160)만을 적용하게 되면, 단어 '수영이' 다음에 단어 '아니고'가 출현할 확률(또는 가능성)은 -0.10이고, 단어 '아니고' 다음에 단어 '파도'가 출현할 확률이 -6.93이고, 단어 '타는' 다음에 단어 '거'가 출현할 확률이 -1.58일 수 있다. 여기에서, -0.10, -6.93 및 -1.58은 정방향 언어모델 확률 값에 로그(log)를 취한 결과를 나타내며, 정방향 언어모델 점수에 대응할 수 있다.
한편, 블록(220)에 도시된 바와 같이, 동일한 문장에 역방향 언어모델(170)만을 적용하게 되면, 단어 '거' 앞에 단어 '타는'이 출현할 확률이 -0.23이고, 단어 '타는' 앞에 단어 '파도'가 출현할 확률이 -1.89이고, 단어 '파도' 앞에 단어 '아니고'가 출현할 확률이 -2.07일 수 있다. 여기에서, -0.23, -1.89 및 -2.07은 역방향 언어모델 확률 값에 로그를 취한 결과를 나타내며, 역방향 언어모델 점수에 대응할 수 있다.
블록(230)은 단어 '아니고', '파도' 및 '파도'에 대하여 정방향 언어모델 점수 및 역방향 언어모델 점수 중 높은 언어모델(또는 언어모델 점수)를 선택한 결과를 나타낸다.
예를 들어, 블록(210)에 도시된 바와 같이, '파도'라는 단어가 '아니고'라는 단어 다음에 나타날 확률은 -6.93으로 매우 낮다. 따라서, '파도'가 인식될 확률이 매우 떨어지게 된다. 그러나, 블록(220)에 도시된 바와 같이, '파도'가 '타는'이라는 단어 앞에 나타날 가능성을 보면 -1.89이므로, 역방향 언어모델(170)을 적용해서 오른쪽 문맥을 이용하게 되면, 정방향 언어모델(160)만을 적용할 때에 비하여, 더 다양한 표현을 받아들일 수 있게 된다.
도 3은 도 1의 언어모델 점수 계산부(130)의 구성의 일 예를 나타내는 블록도이다.
언어모델 점수 계산부(130)는 입력되는 단어열별 각각에 대하여 양방향 언어모델 점수를 계산한다. 언어모델 점수 계산부(130)는 먼저 단어열의 각각의 단어에 대해서 정방향 언어모델(160) 및 역방향 언어모델(170) 중 어떤 것을 이용할지 선택하고, 각 단어별로 선택된 언어모델을 이용하여 전체 단어열의 언어모델 점수를 계산한다.
언어모델 점수 계산부(130)는 언어모델 선택부(132) 및 점수 계산부(134)를 포함할 수 있다.
언어모델 선택부(132)는 입력된 단어열에 포함된 각 단어에 대해서 정방향 언어모델(160)과 역방향 언어모델(170) 중 하나를 선택한다. 언어모델 선택부(132)는 입력된 단어열에 포함된 각 단어에 대해서 정방향 언어모델(160)과 역방향 언어모델(170)을 적용하여 정방향 언어모델 점수 및 역방향 언어모델 점수를 계산하여 보고, 둘 중에서 더 높은 점수(또는 값)을 주는 언어모델을 선택할 수 있다.
도 2를 다시 참조하면, 블록(230)은 일 실시예에 따라 정방향 언어모델(160)과 역방향 언어모델(170)을 적용한 결과, 단어 '아니고'에 대해서는 정방향 언어모델(160)이 선택되고, 단어 '파도'에 대해서는 역방향 언어모델(170)이 선택되고, 단어 '타는'에 대해서도 역방향 언어모델(170)이 선택되었음을 나타낸다.
그런데, 이와 같이, 정방향 언어모델(160)과 역방향 언어모델(170)을 포함하는 양방향 언어모델을 적용하기 위해, 각 단어별로 언어모델을 선택하게 되면, 도 2의 세그먼트 1과 세그먼트 2와 같이 서로 연결되지 않는 부분이 생길 수 있다. 여기에서, 세그먼트는 연속되는 단어들이 서로 연관되어 출현할 확률이 고려되지 않는 경우 단어들을 구별하는 단위를 나타낸다. 또한, 이와 같이, 단어열에서 세그먼트의 경계를 결정하여 단어열을 복수 개의 세그먼트로 나누는 것을 세그먼테이션(segmentation)이라고 할 수 있다. 인접한 두 단어 w1과 w2에 대해서, 일 실시예에 따른 양방향 언어모델을 적용하는 경우, 단어 w1에는 정방향 언어모델을 적용하고, 단어 w2에는 역방향 언어모델을 적용해야 하는 경우가 세그먼테이션이 생기게 된다.
예를 들어, 도 2의 블록(230)에서, 단어 '아니고' 및 단어 '파도' 사이에는, 2개의 단어가 서로 연관되어 출현할 확률이 고려되지 않고, 2개의 단어 사이의 관계가 단절되어 있다. 이 경우, 단어 '아니고' 및 단어 '파도' 사이에 세그먼테이션이 생길 수 있다.
이렇게, 일 실시예에 따라 정방향 언어모델(160) 및 역방향 언어모델(170)을 각 단어에 대해 선택적으로 적용하는 과정에서는 각각의 세그먼트 내의 단어는 서로 밀접한 연관이 있지만, 세그먼트 사이의 관계가 고려되지 않는다. 따라서, 완전히 새로운 표현에 대해서도, 각각의 세그먼트별로 인식을 하게 되어, 기존의 단방향 언어모델처럼 전체 문장이 완전히 언어모델로 연결되지 않는 경우에도 인식이 가능하다. 또한, 하나의 세그먼트에서 오류가 발생하더라도 다른 세그먼트로 오류가 전파되는 확률이 줄어들게 된다.
점수 계산부(134)는, 적어도 하나의 단어열별로, 단어열에 포함되는 각 단어에 대하여 선택된 언어모델에 따른 정방향 언어모델 점수 또는 역방향 언어모델 점수를 합산하여 단어열의 언어모델 점수를 계산할 수 있다.
점수 계산부(134)는, 단어열에 포함되는 제1 단어와 제2 단어 사이에 순환적 종속 관계가 발견되는 경우, 순환적 종속 관계를 제거한 상태에서 단어열의 언어모델 점수를 계산할 수 있다.
순환적 종속 관계는 제1 단어에 대해서는 역방향 언어모델이 선택되고, 제2 단어에 대해서는 정방향 언어모델이 선택되는 경우에 발생하게 된다. 이런 경우, 점수 계산부(134)는 다음 2가지 방법으로 제1 단어 및 제2 단어에 대한 언어모델 점수를 계산하고 제1 단어 및 제2 단어에 대한 언어모델 점수의 합산 점수가 높은 방법을 선택할 수 있다.
그 첫 번째 방법은, 제1 단어에는 역방향 언어모델을 적용하고, 제2 단어에는 유니그램 확률을 적용하여 제1 단어에 대한 역방향 언어모델 점수 및 제2 단어에 대한 유니그램 언어모델 점수를 합산하는 방식이다. 그 두 번째 방법은, 제1 단어에는 유니그램 확률을 적용하고, 제2 단어에는 정방향 언어모델을 적용하여 제1 단어에 대한 유니그램 언어모델 점수 및 제2 단어에 대한 정방향 언어모델 점수를 합산하는 방식이다.
도 4는 언어모델 선택으로 인하여 잘못된 세그먼테이션(segmentation)이 발생한 예를 나타내는 도면이다.
그러나, 도 2에서와 같이, 생성된 단어열에서 세그먼트가 생기는 경우, 도 4에 도시된 바와 같이, 하나의 세그먼트가 불완전한 구문(phrase)으로 끝나거나 시작되는 경우가 생길 수 있다.
이를 보완하기 위하여, 언어모델 선택부(132)는, 언어에 대한 미리 설정된 제약 조건이 있을 경우, 언어모델 점수보다 미리 설정된 제약조건을 우선적으로 적용하여 정방향 언어모델(160) 및 역방향 언어모델(170) 중 하나를 선택할 수 있다. 언어에 대한 미리 설정된 제약조건은, 특정 어휘 또는 특정 형태소를 가진 단어에 대해 정방향 언어모델 및 역방향 언어모델 중 하나가 미리 결정되어 있는 제약조건을 포함할 수 있다.
예를 들어, 언어모델 선택부(132)는, 제약조건으로서, 문법적으로 항상 앞에 단어가 있어야 하는 의존 명사나 보조용언, 조사, 어미의 앞에서는 세그먼테이션이 생기지 않게 하고, 항상 그 다음에 밀접하게 관련된 단어가 따라와야 하는 접두사 뒤에서는 세그먼테이션이 생기지 않게 하는 규칙을 추가하여 세그먼트가 불완전하게 구분될 가능성을 줄일 수 있다.
언어모델 선택부(132)는, 만약 단어 w1이 언제나 다음 단어 w2와 붙어서 나타나야 하는 어휘이거나 형태소인 경우에는 단어 w1에 항상 역방향 언어모델을 적용할 수 있다. 또한, 언어모델 선택부(132)는, 단어 w2가 항상 앞 단어 w1와 끊어져서는 안되는 어휘이거나 형태소인 경우, 단어 w2에 항상 정방향 언어모델을 적용하도록 강제할 수 있다. 이와 같은 방법으로, 원하지 않는 위치에서의 세그먼테이션을 피할 수 있다.
도 4는 "생각이 깊이 있었다"라는 문장에 대해 "생각을 깊 있었다"로 오인식된 결과를 나타낸다. 도 4의 문장의 각 단어에 대하여 정방향 언어모델(160) 및 역방향 언어모델(170)을 적용하고, 각 단어에 대해서 높은 점수를 주는 언어모델을 선택한 결과, '깊/pa'와 '있/px' 사이에 세그먼테이션이 이루어졌다.
그러나, 언어모델 선택부(132)는 세그먼트 2의 '있/px'는 보조용언으로 앞 단어와 밀접한 연관이 있는 단어임을 고려하여, 이러한 보조용언 앞에는 세그먼테이션이 되지 않도록 하는 제약조건(또는 규칙)을 추가적으로 이용할 수 있다. 만일 '있/px' 앞의 단어가 정방향 언어모델을 선택했다면 비록 '있/px'에 역방향 언어모델을 적용하면 더 높은 점수를 얻을 수 있을지라도, '있/px' 역시 정방향 언어모델을 선택하도록 강제하여 세그먼테이션에 생기지 않도록 한다. 이렇게 되면, 해당 단어열의 언어모델 점수가 낮아지는 효과가 나타나 오인식을 피할 수 있는 가능성이 생기게 된다. 이외에도, 언어모델 선택부(132)는 각 언어의 특성에 따라서, 다양한 제약조건(또는 규칙)을 적용하여 의미없는 위치에서 세그먼테이션이 일어나지 않게 할 수 있다.
도 5a 내지 도 5c는 순환적 종속 관계를 제거하여 양방향 언어모델 점수를 계산하는 동작의 일 예를 나타내는 도면이다.
도 5a는 도 1의 양방향 언어모델 계산부(130)가 각각의 단어에 대해서, 정방향 언어모델(160) 또는 역방향 언어모델(170)을 선택하는 경우, 단어열에서 단어들 사이에 화살표로 표시된 바와 같은 언어모델이 적용되는 것을 나타낸다. 오른쪽을 가리키는 화살표는 정방향 언어모델(160)이 적용되는 것을 나타내고, 왼쪽을 가리키는 화살표는 역방향 언어모델(170)이 적용되는 것을 나타낸다.
도 5a의 단어열에서, 트라이그램(Trigram) 언어모델을 적용하게 되면, 양방향 언어모델 점수는 수학식 1과 같이 계산될 수 있다.
[수학식 1]
P(
w
1
,
w
2
,
w
3
,
w
4
,
w
5
,
w
6
,
w
7
) = P(
w
1
|
w
2
,
w
3
) × P(
w
2
|
w
3
,
w
4
) × P(
w
3
|
w
2
,
w
1
) × P(w
4
|w
5
,w
6
) × P(
w
5
|
w
6
,
w
7
) × P(
w
6
|
w
5
,
w
4
) × P(
w
7
|
w
6
,
w
5
)
여기에서, P(w1, w2, w3, w4, w5, w6, w7)는 단어 w1, w2, w3, w4, w5, w6, w7로 이루어진 단어열에 대한 양방향 언어모델 점수를 나타내고, P(wi|wj,wk)는, 단어 wj 및 단어 wk와 연관되어 단어 wi가 출현할 확률을 나타낸다. 양방향 언어모델 점수를 계산하기 위한 확률 계산에 로그를 취하게 되면, 단어열의 각 단어에 대한 언어모델 점수를 합산하여 해당 단어열에 대한 양방향 언어모델 점수가 계산될 수 있다.
수학식 1을 참조하면, 첫 번째 항은 단어 w2와 단어 w3를 알고 있을 때 단어 w1이 나타날 확률을 나타내고 있고, 세 번째 항은 단어 w1와 단어 w2를 알고 있을 때 단어 w3이 나타날 확률을 나타내고 있다. 이러한 경우, 예를 들어, 단어 w1와 단어 w3가 정방향 언어모델(160) 및 역방향 언어모델(170)에서 둘 다 단어 자체로 존재할 확률(즉, 유니그램(unigram) 확률)이 낮다고 해도, 단순히 단어들 사이의 연관관계에 있어서 상대적인 확률이 높다는 이유로 수학식 1의 첫번째 항 및 세번째 항은 높은 확률 값을 얻을 수 있다.
이러한 관계를 순환적 종속 관계라고 부른다. 마찬가지로, 네 번째와 여섯 번째 항, 다섯 번째와 일곱 번째 항이 서로 간에 꼬리에 꼬리를 무는 순환적 종속 관계에 있다. 따라서, 이러한 수식으로는 정확한 양방향 언어모델 점수를 계산할 수 없다.
언어모델 점수 계산부(130)의 점수 계산부(134)는, 순환적 종속관계가 제거된 상태에서 양방향 언어모델 점수를 계산할 수 있다. 수학식 1은 도 5a의 단어열에 도시된 바와 같이, 단어 w2와 단어 w3, 그리고 단어 w5와 단어 w6 사이에 생긴 순환적 종속 관계로 인해 나타난 문제이므로, 점수 계산부(134)는, 이러한 경우 정방향 언어모델(160)이나 역방향 언어모델(170) 중 하나를 무시하고 다른 하나만을 이용할 수 있다.
도 5b는 단어열에 있는 2개의 순환적 종속 관계에서, 모두 정방향 언어모델을 선택하는 경우, 양방향 언어모델 점수 계산에 이용되는 언어모델을 화살표로 나타내는 도면이다.
점수 계산부(134)는, 단어열에 있는 2개의 순환적 종속 관계에서, 모두 정방향 언어모델을 선택하는 경우에는, 단어 w2 및 단어 w5에 유니그램 확률모델을 적용할 수 있다. 이 경우, 언어모델 점수 계산부(130)는 단어열에서 어디에도 종속성이 없는 단어 w2와 단어 w5를 기반으로 하여 양방향으로 퍼져나가는 형태로 양방향 언어모델 점수를 계산할 수 있다. 이와 같이, 순환적 종속 관계에 있는 단어들에 유니그램 확률모델을 적용한 경우, 점수 계산부(134)는 수학식 2와 같이 단어열에 대한 양방향 언어모델 점수를 계산할 수 있다.
[수학식 2]
P(
w
1
,
w
2
,
w
3
,
w
4
,
w
5
,
w
6
,
w
7
) = P(
w
2
) × P(
w
1
|
w
2
) × P(
w
3
|
w
2
,
w
1
) × P(
w
5
) × P(w
4
|w
5
) × P(
w
6
|
w
5
,
w
4
) × P(
w
7
|
w
6
,
w
5
)
도 5c는 단어열에 있는 2개의 순환적 종속 관계에서, 모두 역방향 언어모델을 선택하는 경우, 양방향 언어모델 점수 계산에 이용되는 언어모델을 화살표로 나타내는 도면이다.
점수 계산부(134)는, 도 5a의 단어열에 있는 2개의 순환적 종속 관계에서, 모두 역방향 언어모델을 선택하여 단어 w3 및 단어 w6를 기반으로 퍼져 나가는 형태로 수학식 3과 같이 양방향 언어모델 점수를 계산할 수 있다.
[수학식 3]
P(
w
1
,
w
2
,
w
3
,
w
4
,
w
5
,
w
6
,
w
7
) = P(
w
3
) × P(
w
2
|
w
3
) × P(
w
1
|
w
2
,
w
3
) × P(
w
6
) × P(w
5
|w
6
) × P(
w
4
|
w
5
,
w
6
) × P(
w
7
|
w
6
,
w
5
)
이와 같이, 어떤 방향의 언어모델을 선택하느냐에 따라서 여러가지 계산 방식이 존재할 수 있다. 점수 계산부(134)는 순환적 종속 관계가 있는 경우, 정방향 언어모델(160) 및 역방향 언어모델(170)을 모두 적용하고, 적용 결과 가장 높은 언어모델 값을 주는 언어모델을 선택하는 방식으로 양방향 언어모델 점수를 계산할 수 있다.
도 6은 도 1의 문장 출력부(140)의 구성의 일 예를 나타내는 블록도이다.
문장 출력부(140)는 음향모델 점수 계산부(142), 통합 점수 계산부(144) 및 출력부(146)를 포함할 수 있다.
1차 음성 인식부(110)에서는 개별 단어에 해당하는 음향모델 점수를 계산하는데 비해, 문장 출력부(140)의 음향모델 점수 계산부(142)는 각 단어열에 있는 단어 사이의 관계를 적용하여 음향모델 점수를 재계산할 수 있다. 예를 들어, 음향모델 점수 계산부(142)는 각 단어열에 있는 단어 사이의 연음을 고려하여, 음향모델(150)을 적용하여 음향모델 점수를 계산할 수 있다.
통합 점수 계산부(144)는 음향모델 점수 계산부(142)에서 재계산된 음향모델 점수와 양방향 언어모델 점수 계산부(130)에서 입력되는 양방향 언어모델 점수를 합하여 통합 점수를 계산한다. 이때, 재계산된 음향모델 점수 및 양방향 언어모델 점수는 원래의 확률 값에 로그를 취한 형태의 값일 수 있다. 또한, 통합 점수 계산부(144)는 음향모델 점수 및 양방향 언어모델 점수를 합산할 때 각각 가중치를 부여하고 음향모델 점수 및 양방향 언어모델 점수의 합산 비율을 조절할 수 있다.
출력부(146)는 적어도 하나의 단어열에 대하여, 통합 점수가 가장 높은 한 개의 문장 또는 N개의 문장을 음성 인식 결과로 출력할 수 있다.
도 7은 음성 인식 방법의 일 예를 나타내는 순서도이다.
도 1의 음성 인식 장치(100)는 입력된 음성에 대한 음성 인식을 수행하여 단어 격자 정보를 생성한다(710).
음성 인식 장치(100)는 생성된 단어 격자 정보로부터 적어도 하나의 단어열을 생성한다(720).
음성 인식 장치(100)는 적어도 하나의 단어열별로, 단어열에 포함된 단어들 각각에 대하여 정방향 언어모델 및 역방향 언어모델을 이용하여 양방향 언어모델 점수를 계산한다(730).
양방향 언어모델 점수를 계산할 때, 음성 인식 장치(100)는 적어도 하나의 단어열별로, 단어열에 포함된 단어들 각각에 대하여 정방향 언어모델 및 역방향 언어모델 중 하나를 선택하고, 단어열에 포함된 단어들 각각에 대하여 선택된 정방향 언어모델 및 역방향 언어모델 중 하나의 언어모델을 이용하여 단어열의 양방향 언어모델 점수를 계산할 수 있다.
단어열에 포함된 단어들 각각에 대하여 정방향 언어모델 및 역방향 언어모델 중 하나를 선택할 때는, 음성 인식 장치(100)는 단어열에 포함된 단어들 각각에 대하여 정방향 언어모델 및 역방향 언어모델을 적용한 정방향 언어모델 점수 및 역방향 언어모델 점수를 계산하고, 계산된 정방향 언어모델 점수 및 역방향 언어모델 점수 중 높은 점수를 가진 언어모델 점수에 대응하는 언어모델을 단어열에 포함된 단어들 각각에 대하여 선택할 수 있다. 음성 인식 장치(100)는 적어도 하나의 단어열별로, 단어열에 포함되는 각 단어에 대하여 선택된 정방향 언어모델의 점수 또는 역방향 언어모델의 점수를 합산하여 단어열의 언어모델 점수를 계산할 수 있다.
음성 인식 장치(100)는 단어열에 포함된 단어들 각각에 대하여 정방향 언어모델 및 역방향 언어모델 중 하나를 선택하는 동작을 수행할 때, 특정 어휘 또는 특정 형태소를 가진 단어에 대해 정방향 언어모델 및 역방향 언어모델 중 하나가 미리 결정된 제약 조건이 있을 경우, 언어모델 점수보다 미리 설정된 제약조건을 우선적으로 적용하여 정방향 언어모델 및 역방향 언어모델 중 하나를 선택할 수 있다.
또한, 음성 인식 장치(100)는 단어열에 포함되는 제1 단어와 제2 단어 사이에 순환적 종속 관계가 발견되는지 여부를 결정하고, 순환적 종속 관계가 발견되는 경우, 순환적 종속 관계를 제거한 다음, 단어열의 언어모델 점수를 계산할 수 있다.
음성 인식 장치(100)는 순환적 종속관계를 가지는 제1 단어 및 제2 단어에 대하여, 제1 단어에 대하여 역방향 언어모델을 적용하고 제2 단어에 대하여 유니그램 확률을 적용하는 제1 방식 및 제1 단어에 대하여 유니그램 확률을 적용하고 제2 단어에 대하여 정방향 언어모델을 적용하는 제2 방식 중 제1 단어 및 제2 단어에 대한 합산된 언어모델 점수가 높은 방식을 선택하여 순환적 종속관계를 제거할 수 있다.
음성 인식 장치(100)는 적어도 하나의 단어열에 대한 양방향 언어모델 점수를 이용하여 높은 점수를 가지는 단어열을 출력한다(740).
음성 인식 장치(100)는 각각의 단어열에 대하여 각 단어간의 발음 관계를 고려하여 음향모델 점수를 계산하고, 각각의 단어열에 대하여, 음향모델 점수 및 양방향 언어모델 점수를 합산하고, 각각의 단어열에 대하여, 적어도 하나의 단어열 중에서 합산된 점수를 이용하여 선택된 단어열을 음성 인식 문장으로서 출력할 수 있다.
본 발명의 일 양상은 컴퓨터로 읽을 수 있는 기록 매체에 컴퓨터가 읽을 수 있는 코드로서 구현될 수 있다. 상기의 프로그램을 구현하는 코드들 및 코드 세그먼트들은 당해 분야의 컴퓨터 프로그래머에 의하여 용이하게 추론될 수 있다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다. 컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 디스크 등을 포함한다. 또한, 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산 방식으로 컴퓨터가 읽을 수 있는 코드로 저장되고 실행될 수 있다.
이상의 설명은 본 발명의 일 실시예에 불과할 뿐, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명의 본질적 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현할 수 있을 것이다. 따라서, 본 발명의 범위는 전술한 실시예에 한정되지 않고 특허 청구범위에 기재된 내용과 동등한 범위 내에 있는 다양한 실시 형태가 포함되도록 해석되어야 할 것이다.
100: 음성 인식 장치 110: 1차 음성 인식부
120: 단어열 생성부 130: 언어모델 점수 계산부
140: 문장 출력부 150: 음향모델
160: 정방향 언어모델 170: 역방향 언어모델
120: 단어열 생성부 130: 언어모델 점수 계산부
140: 문장 출력부 150: 음향모델
160: 정방향 언어모델 170: 역방향 언어모델
Claims (17)
- 입력된 음성에 대한 음성 인식을 수행하여 단어 격자 정보를 생성하는 1차 음성 인식부;
상기 생성된 단어 격자 정보로부터 적어도 하나의 단어열을 생성하는 단어열 생성부;
상기 적어도 하나의 단어열별로 상기 단어열에 포함된 단어들 각각에 대하여 정방향 언어모델 및 역방향 언어모델을 이용하여 양방향 언어모델 점수를 계산하는 언어모델 점수 계산부; 및
상기 적어도 하나의 단어열에 대한 상기 양방향 언어모델 점수를 이용하여 높은 점수를 가지는 단어열을 음성 인식 결과로서 출력하는 문장 출력부를 포함하는 음성 인식 장치. - 제1항에 있어서,
상기 언어모델 점수 계산부는,
상기 적어도 하나의 단어열별로, 상기 단어열에 포함된 단어들 각각에 대하여 정방향 언어모델 및 역방향 언어모델 중 하나를 선택하는 언어모델 선택부; 및
상기 단어열에 포함된 단어들 각각에 대하여 선택된 정방향 언어모델 및 역방향 언어모델 중 하나의 언어모델을 이용하여 상기 단어열의 양방향 언어모델 점수를 계산하는 점수 계산부를 포함하는 음성 인식 장치. - 제2항에 있어서,
상기 언어모델 선택부는, 상기 단어열에 포함된 단어들 각각에 대하여 정방향 언어모델 및 역방향 언어모델을 적용한 정방향 언어모델 점수 및 역방향 언어모델 점수를 계산하고, 계산된 정방향 언어모델 점수 및 역방향 언어모델 점수 중 높은 점수를 가진 언어모델 점수를 주는 언어모델을 상기 단어열에 포함된 단어들 각각에 대하여 선택하는 음성 인식 장치. - 제3항에 있어서,
상기 언어모델 선택부는, 언어에 대한 미리 설정된 제약 조건이 있을 경우, 상기 언어모델 점수보다 상기 미리 설정된 제약조건을 우선적으로 적용하여 상기 정방향 언어모델 및 상기 역방향 언어모델 중 하나를 선택하는 음성 인식 장치. - 제4항에 있어서,
상기 언어에 대한 미리 설정된 제약조건은, 특정 어휘 또는 특정 형태소를 가진 단어에 대해 정방향 언어모델 및 역방향 언어모델 중 하나가 미리 결정된 제약조건을 포함하는 음성 인식 장치. - 제3항에 있어서,
상기 언어모델 점수 계산부는, 상기 적어도 하나의 단어열별로, 상기 단어열에 포함되는 각 단어에 대하여 선택된 언어모델에 따른 정방향 언어모델 점수 또는 역방향 언어모델 점수를 합산하여 상기 단어열의 언어모델 점수를 계산하는 음성 인식 장치. - 제6항에 있어서,
상기 언어모델 점수 계산부는, 상기 단어열에 포함되는 제1 단어와 제2 단어 사이에 순환적 종속 관계가 발견되는 경우, 상기 순환적 종속 관계를 제거한 상태에서 상기 단어열의 언어모델 점수를 계산하는 음성 인식 장치. - 제6항에 있어서,
상기 언어모델 점수 계산부는, 순환적 종속관계를 가지는 제1 단어 및 제2 단어에 대하여, 상기 제1 단어에 대하여 역방향 언어모델을 적용하고 상기 제2 단어에 대하여 유니그램 확률을 적용하는 제1 방식 및 상기 제1 단어에 대하여 유니그램 확률을 적용하고 제2 단어에 대하여 정방향 언어모델을 적용하는 제2 방식 중 상기 제1 단어 및 상기 제2 단어에 대한 합산된 언어모델 점수가 높은 방식을 선택하여 순환적 종속관계를 제거하는 음성 인식 장치. - 제1항에 있어서,
상기 문장 출력부는,
각각의 단어열에 대하여 각 단어간의 발음 관계를 고려하여 음향모델 점수를 계산하고, 상기 음향모델 점수 및 상기 양방향 언어모델 점수를 합산하고, 상기 각각의 단어열에 대하여, 상기 적어도 하나의 단어열 중에서 상기 합산된 점수를 이용하여 선택된 단어열을 음성 인식 문장으로서 출력하는 음성 인식 장치. - 입력된 음성에 대한 음성 인식을 수행하여 단어 격자 정보를 생성하는 단계;
상기 생성된 단어 격자 정보로부터 적어도 하나의 단어열을 생성하는 단계;
상기 적어도 하나의 단어열별로, 상기 단어열에 포함된 단어들 각각에 대하여 정방향 언어모델 및 역방향 언어모델을 이용하여 양방향 언어모델 점수를 계산하는 단계; 및
상기 적어도 하나의 단어열에 대한 상기 양방향 언어모델 점수를 이용하여 높은 점수를 가지는 단어열을 출력하는 단계를 포함하는 음성 인식 방법. - 제10항에 있어서,
양방향 언어모델 점수를 계산하는 단계는,
상기 적어도 하나의 단어열별로, 상기 단어열에 포함된 단어들 각각에 대하여 정방향 언어모델 및 역방향 언어모델 중 하나를 선택하는 단계; 및
상기 단어열에 포함된 단어들 각각에 대하여 선택된 정방향 언어모델 및 역방향 언어모델 중 하나의 언어모델을 이용하여 상기 단어열의 양방향 언어모델 점수를 계산하는 단계를 포함하는 음성 인식 방법. - 제11항에 있어서,
상기 단어열에 포함된 단어들 각각에 대하여 정방향 언어모델 및 역방향 언어모델 중 하나를 선택하는 단계는,
상기 단어열에 포함된 단어들 각각에 대하여 정방향 언어모델 및 역방향 언어모델을 적용한 정방향 언어모델 점수 및 역방향 언어모델 점수를 계산하는 단계; 및
상기 계산된 정방향 언어모델 점수 및 역방향 언어모델 점수 중 높은 점수에 대응하는 언어모델을 상기 단어열에 포함된 단어들 각각에 대하여 선택하는 단계를 포함하는 음성 인식 방법. - 제12항에 있어서,
상기 단어열에 포함된 단어들 각각에 대하여 정방향 언어모델 및 역방향 언어모델 중 하나를 선택하는 단계에서,
특정 어휘 또는 특정 형태소를 가진 단어에 대해 정방향 언어모델 및 역방향 언어모델 중 하나가 미리 결정되어 있는 제약 조건이 있을 경우, 상기 언어모델 점수보다 상기 미리 설정된 제약조건을 우선적으로 적용하여 상기 정방향 언어모델 및 상기 역방향 언어모델 중 하나를 선택하는 음성 인식 방법. - 제10항에 있어서,
상기 양방향 언어모델 점수를 계산하는 단계는,
상기 적어도 하나의 단어열별로, 상기 단어열에 포함되는 각 단어에 대하여 선택된 언어모델에 따른 정방향 언어모델의 점수 또는 역방향 언어모델의 점수를 합산하여 상기 단어열의 언어모델 점수를 계산하는 단계를 포함하는 음성 인식 방법. - 제11항에 있어서,
상기 양방향 언어모델 점수를 계산하는 단계는,
상기 단어열에 포함되는 제1 단어와 제2 단어 사이에 순환적 종속 관계가 발견되는지 여부를 결정하는 단계;
상기 순환적 종속 관계가 발견되는 경우, 상기 순환적 종속 관계를 제거하는 단계; 및
상기 순환적 종속 관계가 제거된 상태에서 상기 단어열의 언어모델 점수를 계산하는 단계를 포함하는 음성 인식 방법. - 제15항에 있어서,
상기 순환적 종속 관계를 제거하는 단계는,
순환적 종속관계를 가지는 제1 단어 및 제2 단어에 대하여, 상기 제1 단어에 대하여 역방향 언어모델을 적용하고 상기 제2 단어에 대하여 유니그램 확률을 적용하는 제1 방식 및 상기 제1 단어에 대하여 유니그램 확률을 적용하고 제2 단어에 대하여 정방향 언어모델을 적용하는 제2 방식 중 상기 제1 단어 및 상기 제2 단어에 대한 합산된 언어모델 점수가 높은 방식을 선택하는 단계를 포함하는 음성 인식 방법. - 제10항에 있어서,
상기 적어도 하나의 단어열에 대한 상기 양방향 언어모델 점수를 이용하여 높은 점수를 가지는 단어열을 출력하는 단계는,
각각의 단어열에 대하여 각 단어간의 발음 관계를 고려하여 음향모델 점수를 계산하는 단계;
상기 각각의 단어열에 대하여, 상기 음향모델 점수 및 상기 양방향 언어모델 점수를 합산하는 단계;
상기 각각의 단어열에 대하여, 상기 적어도 하나의 단어열 중에서 상기 합산된 점수를 이용하여 선택된 단어열을 음성 인식 문장으로서 출력하는 음성 인식 방법.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020100099828A KR101739531B1 (ko) | 2010-10-13 | 2010-10-13 | 음성 인식 장치 및 방법 |
US13/114,741 US8849668B2 (en) | 2010-10-13 | 2011-05-24 | Speech recognition apparatus and method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020100099828A KR101739531B1 (ko) | 2010-10-13 | 2010-10-13 | 음성 인식 장치 및 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20120038198A true KR20120038198A (ko) | 2012-04-23 |
KR101739531B1 KR101739531B1 (ko) | 2017-05-25 |
Family
ID=45934875
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020100099828A KR101739531B1 (ko) | 2010-10-13 | 2010-10-13 | 음성 인식 장치 및 방법 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8849668B2 (ko) |
KR (1) | KR101739531B1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9940933B2 (en) | 2014-12-02 | 2018-04-10 | Samsung Electronics Co., Ltd. | Method and apparatus for speech recognition |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8909512B2 (en) * | 2011-11-01 | 2014-12-09 | Google Inc. | Enhanced stability prediction for incrementally generated speech recognition hypotheses based on an age of a hypothesis |
US9529898B2 (en) * | 2014-08-26 | 2016-12-27 | Google Inc. | Clustering classes in language modeling |
KR102396983B1 (ko) * | 2015-01-02 | 2022-05-12 | 삼성전자주식회사 | 문법 교정 방법 및 장치 |
US9858923B2 (en) * | 2015-09-24 | 2018-01-02 | Intel Corporation | Dynamic adaptation of language models and semantic tracking for automatic speech recognition |
US10529324B1 (en) * | 2016-12-27 | 2020-01-07 | Cognistic, LLC | Geographical based voice transcription |
CN108153730A (zh) * | 2017-12-25 | 2018-06-12 | 北京奇艺世纪科技有限公司 | 一种多义词词向量训练方法及装置 |
US10929606B2 (en) | 2017-12-29 | 2021-02-23 | Samsung Electronics Co., Ltd. | Method for follow-up expression for intelligent assistance |
KR20200059703A (ko) * | 2018-11-21 | 2020-05-29 | 삼성전자주식회사 | 음성 인식 방법 및 음성 인식 장치 |
CN110084371B (zh) * | 2019-03-27 | 2021-01-15 | 平安国际智慧城市科技股份有限公司 | 基于机器学习的模型迭代更新方法、装置和计算机设备 |
US11250843B2 (en) * | 2019-07-30 | 2022-02-15 | Lg Electronics Inc. | Speech recognition method and speech recognition device |
CN113051915A (zh) * | 2021-04-22 | 2021-06-29 | 北京正智科技有限公司 | 一种语句处理的方法、设备和计算机可读存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5621859A (en) * | 1994-01-19 | 1997-04-15 | Bbn Corporation | Single tree method for grammar directed, very large vocabulary speech recognizer |
US7092883B1 (en) * | 2002-03-29 | 2006-08-15 | At&T | Generating confidence scores from word lattices |
US7890325B2 (en) * | 2006-03-16 | 2011-02-15 | Microsoft Corporation | Subword unit posterior probability for measuring confidence |
US8301449B2 (en) * | 2006-10-16 | 2012-10-30 | Microsoft Corporation | Minimum classification error training with growth transformation optimization |
-
2010
- 2010-10-13 KR KR1020100099828A patent/KR101739531B1/ko active IP Right Grant
-
2011
- 2011-05-24 US US13/114,741 patent/US8849668B2/en active Active
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9940933B2 (en) | 2014-12-02 | 2018-04-10 | Samsung Electronics Co., Ltd. | Method and apparatus for speech recognition |
US11176946B2 (en) | 2014-12-02 | 2021-11-16 | Samsung Electronics Co., Ltd. | Method and apparatus for speech recognition |
Also Published As
Publication number | Publication date |
---|---|
US20120095766A1 (en) | 2012-04-19 |
US8849668B2 (en) | 2014-09-30 |
KR101739531B1 (ko) | 2017-05-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR20120038198A (ko) | 음성 인식 장치 및 방법 | |
KR100996817B1 (ko) | 문자 대 음성 변환을 위한 상호 정보 기준을 이용한 큰 그라포넴 단위의 생성 | |
KR102386854B1 (ko) | 통합 모델 기반의 음성 인식 장치 및 방법 | |
Wang et al. | Spoken language understanding | |
JP5141695B2 (ja) | 記号挿入装置および記号挿入方法 | |
KR102375115B1 (ko) | 엔드-투-엔드 모델들에서 교차-언어 음성 인식을 위한 음소-기반 컨텍스트화 | |
JP7051919B2 (ja) | ストリーミングアテンションモデルに基づく音声認識復号化方法、装置、機器及びコンピュータ可読記憶媒体 | |
JP5932869B2 (ja) | N−gram言語モデルの教師無し学習方法、学習装置、および学習プログラム | |
WO2017061027A1 (ja) | 言語モデル生成装置、言語モデル生成方法とそのプログラム、音声認識装置、および音声認識方法とそのプログラム | |
JP5799733B2 (ja) | 認識装置、認識プログラムおよび認識方法 | |
JP3426176B2 (ja) | 音声認識装置、方法、コンピュータ・システム及び記憶媒体 | |
JP5276610B2 (ja) | 言語モデル生成装置、そのプログラムおよび音声認識システム | |
KR20200026295A (ko) | 음절 기반 자동 음성 인식 | |
EP2950306A1 (en) | A method and system for building a language model | |
CN112346696B (zh) | 虚拟助理的语音比较 | |
JP2015158582A (ja) | 音声認識装置、及びプログラム | |
JP2012018201A (ja) | テキスト補正方法及び認識方法 | |
JP4820240B2 (ja) | 単語分類装置及び音声認識装置及び単語分類プログラム | |
JP4826719B2 (ja) | 音声認識システム、音声認識方法、および音声認識プログラム | |
KR101677530B1 (ko) | 음성 인식 장치 및 음성 인식 방법 | |
JP2002221984A (ja) | 異種環境音声データの音声検索方法及び装置 | |
KR102299269B1 (ko) | 음성 및 스크립트를 정렬하여 음성 데이터베이스를 구축하는 방법 및 장치 | |
Zheng et al. | Directed automatic speech transcription error correction using bidirectional lstm | |
Takeda et al. | Unsupervised segmentation of phoneme sequences based on pitman-yor semi-markov model using phoneme length context | |
Pilar | Knowledge-driven subword grammar modeling for automatic speech recognition in tamil and kannada |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |