KR20120052591A - 연속어 음성인식 시스템에서 오류수정 장치 및 방법 - Google Patents
연속어 음성인식 시스템에서 오류수정 장치 및 방법 Download PDFInfo
- Publication number
- KR20120052591A KR20120052591A KR1020100113825A KR20100113825A KR20120052591A KR 20120052591 A KR20120052591 A KR 20120052591A KR 1020100113825 A KR1020100113825 A KR 1020100113825A KR 20100113825 A KR20100113825 A KR 20100113825A KR 20120052591 A KR20120052591 A KR 20120052591A
- Authority
- KR
- South Korea
- Prior art keywords
- words
- pronunciation
- word
- tri
- similar
- Prior art date
Links
- 238000012937 correction Methods 0.000 title claims abstract description 18
- 238000000034 method Methods 0.000 title abstract description 39
- 238000010276 construction Methods 0.000 claims abstract description 7
- 239000011159 matrix material Substances 0.000 description 19
- 238000004364 calculation method Methods 0.000 description 15
- 238000010586 diagram Methods 0.000 description 11
- 230000008569 process Effects 0.000 description 9
- 230000006870 function Effects 0.000 description 8
- 238000012545 processing Methods 0.000 description 7
- 238000012217 deletion Methods 0.000 description 5
- 230000037430 deletion Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 238000004590 computer program Methods 0.000 description 4
- 238000005457 optimization Methods 0.000 description 3
- 238000006467 substitution reaction Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 238000003780 insertion Methods 0.000 description 2
- 230000037431 insertion Effects 0.000 description 2
- 238000012805 post-processing Methods 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000019020 vocalization behavior Effects 0.000 description 1
- 239000002699 waste material Substances 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/10—Speech classification or search using distance or distortion measures between unknown speech and reference templates
-
- 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/28—Constructional details of speech recognition systems
Landscapes
- Engineering & Computer Science (AREA)
- Computational Linguistics (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- Acoustics & Sound (AREA)
- Multimedia (AREA)
- Machine Translation (AREA)
Abstract
본 발명은 연속어 음성인식 시스템에서 오류수정 기술에 관한 것으로, 사용자가 발성한 문장에 잘못 인식된 단어가 있는 경우 이를 원래 발성한 단어로 복원하기 위하여 유사발음의 후보단어들을 자동으로 찾아서 사용자에게 제시하는 것을 특징으로 한다. 본 발명에 의하면, 인식된 문장의 문맥에 부적합한 후보 단어들을 필터링하고, 주변 문맥을 바탕으로 가장 가능성이 높은 상위 N개의 단어들을 순위화하여 제시함으로써 사용자는 제시된 단어 목록에서 발성한 단어를 바로 선택하여 수정할 수 있다.
Description
본 발명은 연속어 음성인식의 후처리 기술의 한 분야인 오류수정에 관한 것으로서, 특히 사용자가 발성한 문장에서 인식오류가 발생하였을 때, 후보 단어를 제시해줌으로써, 사용자가 원래 발성한 단어로 손쉬운 수정을 수행하는데 적합한 연속어 음성인식 시스템에서 오류수정 장치 및 방법에 관한 것이다.
일반적으로 음성인식 시스템은 발성의 행태에 따라 몇 가지로 나뉘어지는데 고립어 단어 인식(isolated word recognition), 연결 단어 인식(connected word recognition), 연속어 인식(continuous speech recognition), 핵심어 인식(keyword spotting) 등이 있다. 이들 중에서 난이도 측면에서는 사람이 자연스럽게 완전한 문장을 발성하는 것을 기본으로 하는 연속어 인식이 가장 어려운 기술이고 나머지 다른 기술들은 개별적인 단어들을 발성하는 기술이므로 연속어 인식 기술보다 상대적으로 쉽다고 할 수 있다.
연속어 인식 방법은 평상시 자연스럽게 발성하는 방식으로 문장을 인식하며, 각 문장은 특별히 단어 사이의 묵음을 추가하지 않는다. 따라서, 한 단어의 특성이 인접한 단어의 발음으로 인해 영향을 받는 조음 효과(Coarticulation Effect) 때문에 음성 인식이 다소 어렵게 된다. 게다가 문장의 전체를 완벽히 인식해야 화자의 의도를 정확히 전달할 수 있기 때문에 문장 중간에 단어 하나가 잘못 인식되면 전체 문장의 뜻이 다르게 이해될 수도 있다.
또한 음성이 사용되는 환경적인 요인으로서, 조용한 환경에서 성능 좋은 마이크로폰을 이용하여 입력되는 음성은 비교적 인식이 잘 되는 편이나 주변에 소음이 많은 환경, 즉 길거리, 버스나 지하철 안, 공장 등에서 음성 인식을 시도하거나 선로 특성이 좋지 않은 유/무선 전화를 통하여 음성인식을 시도할 경우에는 인식 성능이 급속이 저하된다. 따라서 한번에 여러 단어를 연속하여 인식해야 하는 연속어 인식 방법이 다른 인식 방법보다 인식 오류의 발생 빈도가 더 빈번한 경향이 있다.
상기한 이유로 연속어 인식 방법이 실용 서비스에 적용되어 사용되려면 발생된 인식오류를 사용자가 쉽게 수정할 수 있도록 하는 방법이 필수적으로 요구되나 이에 대한 별다른 방안이 없었다.
상기한 바와 같이 동작하는 종래 기술에 의한 연속어 음성인식 기술에 있어서, 음성인식 오류를 수정하기 위해서는 최종 음성인식 결과를 출력하기 전에 후처리 과정을 통해 오류가 발생한 부분을 자동 수정하는 방법이 연구되고 있으나, 이는 오류 수정 알고리즘의 결과가 매우 신뢰적이거나 수정 결과에 오류가 발생하더라도 덜 민감한 애플리케이션에만 적용할 수 있다는 단점이 있었다.
다른 방법으로는 음성 인식 시스템에서 자동으로 수정할 단어의 후보들을 추천하여 사용자에게 확인을 받는 방법이 연구되고 있으나, 사용자가 인식이 잘못된 단어를 선택하면 시스템이 자동으로 해당 단어를 대체할 후보를 추천하여 사용자에게 제공되어야 한다는 문제점이 있었다.
이에 본 발명은, 음성인식 시스템에서 연속어 음성인식 시 사용자가 발성한 문장에서 인식오류가 발생하였을 때 후보 단어를 제시하여 사용자가 원래 발성한 단어로 수정을 수행할 수 있는 연속어 음성인식 시스템에서 오류수정 장치 및 방법을 제공한다.
또한 본 발명은, 연속어 음성 인식 시 사용자가 발성한 문장에서 인식오류가 발생하는 경우, 사용자가 발성한 본래의 단어로 복원하기 위하여 가장 가능성이 높은 상위 N개의 후보단어들을 빠르게 검색하여 사용자에게 제시할 후보단어들을 자동으로 추천하여 제공할 수 있는 연속어 음성인식 시스템에서 오류수정 장치 및 방법을 제공한다.
본 발명의 일 실시예에 따른 연속어 음성인식 시스템에서 오류수정 장치는, 음성 인식 발음 사전의 단어들에 대한 발음열을 트라이 사전으로 구축하는 트라이 사전 구축부와, 상기 트라이 사전을 이용하여 오류 단어와 유사한 발음의 단어목록을 검색하고, 검색된 후보 단어를 출력하는 유사 발음 단어 검색부을 포함할 수 있다.
그리고 상기 트라이 사전 구축부는, 상기 발음열을 입력이 되는 문자열 값을 키로 사용하는 트리 데이터 구조인 트라이 구조로 구축하고, 상기 트라이 구조에서 하나의 자식만을 갖는 연속된 노드들은 합쳐서 하나의 노드로 최적화 할 수 있다.
그리고 상기 트라이 사전의 각 노드는, 상기 음성인식 발음사전의 발음열, 단어의 아이디, 자식 노드와 형제 노드의 포인터 및 유사거리 계산을 위한 더블형 행렬 중 적어도 하나를 포함하여 구성할 수 있다.
그리고 상기 유사 발음 단어 검색부는, 상기 트라이 사전의 탐색을 수행하여 상기 유사한 발음의 단어목록을 검색할 때, 비교하는 두 발음열의 음소가 서로 다르더라도 문장 속에서 발음이 비슷하거나 빈번히 변이되어 발음되는 음소들을 1보다 작은 코스트 값으로 설정하여 가중치 기반의 편집거리로 계산하고, 상기 편집거리 계산을 수행하는 경우, 유사 발음의 단어간의 거리계산을 위하여 음소 혼동 행렬을 코스트(COST)로서 사용하고, 상기 검색된 후보 단어의 N-gram 확률값을 점수로 계산하여 후보 단어들을 순위화할 수 있다.
그리고 상기 유사 발음 단어 검색부는, 발음열 간의 편집거리 계산의 일부분을 행렬의 형태로 임시 저장하여 상기 트라이 사전을 탐색하는 경우, 형제 서브 트리를 탐색하며 재사용 할 수 있다.
본 발명의 일 실시예에 따른 연속어 음성인식 시스템에서 오류수정 방법은, 음성 인식 발음 사전의 단어들에 대한 발음열을 트라이 사전으로 구축하는 과정과, 상기 트라이 사전을 이용하여 오류 단어와 유사한 발음의 단어목록을 검색하고, 검색된 후보 단어를 출력하는 과정을 포함할 수 있다.
그리고 상기 트라이 사전으로 구축하는 과정은, 상기 발음열을 입력이 되는 문자열 값을 키로 사용하는 트리 데이터 구조인 트라이 구조로 구축하는 과정과, 상기 트라이 구조에서 하나의 자식만을 갖는 연속된 노드들은 합쳐서 하나의 노드로 최적화하는 과정을 포함할 수 있다.
그리고 상기 트라이 사전의 각 노드는, 상기 음성인식 발음사전의 발음열, 단어의 아이디, 자식 노드와 형제 노드의 포인터 및 유사거리 계산을 위한 더블형 행렬 중 적어도 하나를 포함하여 구성 할 수 있다.
그리고 상기 출력하는 과정은, 상기 트라이 사전의 탐색을 수행하여 상기 유사한 발음의 단어목록을 검색할 때, 비교하는 두 발음열의 음소가 서로 다르더라도 문장 속에서 발음이 비슷하거나 빈번히 변이되어 발음되는 음소들을 1보다 작은 코스트 값으로 설정하여 가중치 기반의 편집거리로 계산하는 과정과, 상기 편집거리 계산을 수행하는 경우, 유사 발음의 단어간의 거리계산을 위하여 음소 혼동 행렬을 코스트(COST)로서 사용하는 과정과, 상기 검색된 후보 단어의 N-gram 확률값을 점수로 계산하여 후보 단어들을 순위화하는 과정을 포함할 수 있다.
그리고 상기 유사 발음 단어 검색부는, 발음열 간의 편집거리 계산의 일부분을 행렬의 형태로 임시 저장하여 상기 트라이 사전을 탐색하는 경우, 형제 서브 트리를 탐색하며 재사용할 수 있다.
상기와 같은 본 발명의 실시예에 따른 연속어 음성인식 시스템에서 오류수정 장치 및 방법에 따르면 다음과 같은 효과가 하나 혹은 그 이상이 있다.
본 발명의 실시예에 따른 연속어 음성인식 시스템에서 오류수정 장치 및 방법에 의하면, 발음 사전에 등록된 단어뿐만 아니라 발음 사전에 없는 단어 즉, OOV(Out-Of-Vocabulary) 단어들도 포함하여 검색할 수 있기 때문에 단어의 개수가 상당히 많더라도 효율적이고 빠르게 검색할 수 있으며, 유사 발음 검색 시에 음소 혼동 행렬에 기반한 편집거리를 이용함으로써 보다 정교한 유사 발음 단어들을 검색할 수 있다.
그리고 인식된 문장의 문맥에 부적합한 후보 단어들을 필터링(Filtering)하고, 주변 문맥을 바탕으로 가장 가능성이 높은 상위 N개의 단어들을 순위화하여 제시함으로써 사용자는 제시된 단어 목록에서 발성한 단어를 바로 선택하여 수정할 수 있다는 효과가 있다.
도 1은 본 발명의 실시 예에 따라 유사발음의 후보단어 목록을 제시하는 오류수정 장치의 구조를 도시한 블록도,
도 2는 본 발명의 실시예예 따라 두 단어의 편집거리 계산 방식을 도시한 도면,
도 3은 본 발명의 실시예에 따라 일반 발음열 트라이에서 컴팩트 트라이로 최적화한 트리를 도시한 도면,
도 4는 본 발명의 실시예에 따라 유사 발음열의 단어를 검색하기 위해 컴팩트 트라이를 탐색하는 방식을 도시한 도면,
도 5는 본 발명의 실시 예에 따라 유사 발음의 후보단어 목록을 제시하는 오류수정 장치의 동작 절차를 도시한 흐름도.
도 2는 본 발명의 실시예예 따라 두 단어의 편집거리 계산 방식을 도시한 도면,
도 3은 본 발명의 실시예에 따라 일반 발음열 트라이에서 컴팩트 트라이로 최적화한 트리를 도시한 도면,
도 4는 본 발명의 실시예에 따라 유사 발음열의 단어를 검색하기 위해 컴팩트 트라이를 탐색하는 방식을 도시한 도면,
도 5는 본 발명의 실시 예에 따라 유사 발음의 후보단어 목록을 제시하는 오류수정 장치의 동작 절차를 도시한 흐름도.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
본 발명의 실시예들을 설명함에 있어서 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 후술되는 용어들은 본 발명의 실시예에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
첨부된 블록도의 각 블록과 흐름도의 각 단계의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수도 있다. 이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 블록도의 각 블록 또는 흐름도의 각 단계에서 설명된 기능들을 수행하는 수단을 생성하게 된다. 이들 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 블록도의 각 블록 또는 흐름도 각 단계에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다. 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 블록도의 각 블록 및 흐름도의 각 단계에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다.
또한, 각 블록 또는 각 단계는 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 실시예들에서는 블록들 또는 단계들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들 또는 단계들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들 또는 단계들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.
본 발명의 실시예는 음성인식 시스템에서 연속어 음성인식 시 사용자가 발성한 문장에서 인식오류가 발생하였을 때 후보 단어를 제시하여 사용자가 원래 발성한 단어로 수정을 가능하게 하는 것으로서, 사용자가 발성한 본래의 단어로 복원하기 위하여 가장 가능성이 높은 상위 N개의 후보단어들을 빠르게 검색하여 사용자에게 제시할 후보단어들을 자동으로 추천하여 제공하는 것이다.
인식 오류가 발생한 단어는 음향학적으로 발음이 유사한 단어로 잘못 인식될 가능성이 높다. 다시 말해, 오류가 발생한 단어는 발음이 유사한 단어들 내에서 사용자가 발음한 단어가 존재할 가능성이 많다. 따라서 본 발명의 실시예에서는 오류 단어의 발음열로부터 유사한 발음열의 후보 단어들을 빠르고 효율적으로 검색한 후, 주변 문맥과의 인접 가능성에 따라 후보 단어들을 순위화하는 방법을 제시한다.
이하, 첨부된 도면을 참조하여 본 발명의 실시예에 대한 기술적 특징을 보다 상세히 설명하기로 한다.
도 1은 본 발명의 실시 예에 따라 유사발음의 후보단어 목록을 제시하는 오류수정 장치의 구조를 도시한 블록도이다.
도 1을 참조하면, 연속어 음성인식 시스템 내에 포함되거나 별도로 구성되는 오류수정 장치(100)는 연속어 음성인식 서비스를 수행할 경우 오류 인식된 단어를 검색하여 제시하기 위한 것으로서, 트라이(Trie(reTRIEval)) 사전 구축부(110)와 유사 발음 단어 검색부(120) 등을 포함할 수 있다.
여기서 트라이 사전 구축부(110)는 유사 발음에 기반하여 단어 오류를 복원하기 위한 발음 사전의 발음열을 최적화한 트라이 사전으로서, 발음열 입력부(112), 트라이 변환부(114), 컴팩트 트라이(Compact Trie) DB(116) 등을 포함할 수 있다.
발음열 입력부(112)는 발음 사전에 등록된 각 단어의 음소를 나열한 문자열로 구성된 발음열을 입력 받을 수 있으며, 입력된 발음열은 트라이 변환부(114)로 전달될 수 있다. 이에 트라이 변환부(114)에서는 발음열을 토대로 최적화된 컴팩트 트라이를 생성할 수 있으며, 생성된 컴팩트 트라이는 컴팩트 트라이 데이터베이스(116)에 전달하여 저장할 수 있다.
유사 발음 단어 검색부(120)는 컴팩트 트라이를 참조하여 입력된 오류 단어에 대한 탐색을 수행하여 사용자가 발성한 본래의 단어로서 가장 가능성이 높은 상위 N개의 후보단어들을 자동으로 추천하여 제공하는 것으로서, 트라이 로딩부(122), 오류 단어 입력부(124), 트라이 탐색부(126), 유사 후보단어 출력부(128) 등을 포함할 수 있다.
트라이 로딩부(122)는 트라이 사전 구축부(110)의 컴팩트 트라이 데이터베이스(116)에 저장된 컴팩트 트라이를 로딩할 수 있다. 그리고 오류 단어 입력부(124)는 사용자로부터 선택된 오류 단어를 입력 받을 수 있다.
이는 사용자가 연속어 음성인식 시스템을 통해 연속으로 음성입력을 수행한 후, 음성 인식결과를 확인할 수 있으며, 이때, 사용자가 발성한 단어가 아닌 경우, 사용자는 연속어 음성인식 시스템 내의 사용자 인터페이스(예컨대, 터치 방식, 마우스 또는 키패드를 이용한 GUI 클릭 방식 등)를 통해 오류 단어를 선택할 수 있다. 이에 사용자로부터 선택된 오류 단어는 연속어 음성인식 시스템에서 오류 단어 입력부(124)로 전달할 수 있다.
트라이 탐색부(126)는 오류 단어 입력부(124)로부터 오류 단어를 입력 받아 오류 단어와 유사한 발음의 후보 단어를 검색하여 검색된 후보 단어들 중 가장 가능성이 높은 상위 N 개의 후보 단어들을 후보 단어 출력부(128)로 전달할 수 있다.
이에 후보 단어 출력부(128)에서는 트라이 탐색부(126)로부터 전달된 후보 단어들을 출력하여 사용자에게 직접 제공하거나, 연속어 음성인식 시스템에 전달할 수 있다.
이하 각 장치의 세부 원리와 작동 과정을 예시를 들어서 설명하도록 한다.
어떤 2개의 단어가 있을 때, 두 단어의 유사성을 측정하기 위해서는 편집거리(Edit distance) 방식을 수행하게 된다. 이에 본 발명의 실시예에서 트라이 탐색부(126)는 두 단어 간 발음의 유사성을 측정하기 위해 발음열에 대한 편집거리로 계산을 수행할 수 있으며, 계산된 편집거리가 작을수록 두 단어의 발음 유사성이 큰 것으로 판단할 수 있다. 보다 상세하게 설명하면, 일반적으로 편집거리라 함은 문자열 A를 문자열 B로 바꾸기 위하여 요구되는 최소한의 편집 횟수(삽입(Insertion), 삭제(Deletion) 및 치환(Substitution))를 말한다. 편집거리 계산은 아래 <수학식 1>과 같이 다이나믹 프로그래밍(Dynamic Programming) 기법으로 쉽게 계산할 수 있다.
도 2는 본 발명의 실시예예 따라 두 단어의 편집거리 계산 방식을 도시한 도면으로서, 두 단어 ‘EXPONENTIAL’과 ‘POLINOMIAL’의 편집거리 계산 결과를 도식화한 것이다.
<수학식 1>로 계산되는 행렬의 마지막 원소에서 볼 수 있듯이 두 단어의 편집거리 E(i,j)는 6 (200)이다. <수학식 1>에서 diff(i,j)는 문자를 비교해서 같으면 0, 같지 않으면 1이다. 일반 문자열 간의 유사성 비교를 위한 편집거리 계산은, <수학식 1>에서처럼 비교하는 두 문자가 다른 경우 1을 더할 수 있다.
그리고 본 발명의 실시예에서는 두 단어 간의 편집거리를 계산하는 <수학식 1>을 이용하여 두 단어의 발음 유사성을 계산하는 가중치 기반의 편집거리 계산방법(Weighted Edit Distance)을 수행할 수 있다. 문장 속에서 발음이 비슷하거나 빈번히 변이되어 발음되는 음소들은 1이 아닌 1보다 더 작은 값을 코스트(cost)로 더하는 방법이다.
예를 들어, 음소‘ㄱ’은 문장 내에서 음소‘ㅋ’나 ‘ㄲ’로 변이가 빈번히 발생하므로 이들 음소 간의 비교 시에는 편집거리 계산시에 1보다 더 작은 값을 더하는 방법이다. 아래 <수학식 2>는 이것을 반영한 가중치 기반의 편집거리 계산방법을 나타낸 것이다.
발음열 상의 음소는 이전 음소의 변이에 영향을 주고 삭제(Deletion) 되거나 다른 음소로 치환(Substitution)만 되기 때문에 삽입(Insertion) COSTI는 항상 1로 계산할 수 있고, 삭제(Deletion) COSTD와 치환(Substitution) COSTS는 음소 혼동 행렬(Phone Confusion Matrix)로 각 셀에 음소 변이 확률값을 계산한 후에 음소 간 변이확률의 역(reverse)을 구하고 숫자의 범위를 <수학식 3>과 같이 조정(Scaling)하여 COST함수로 사용하였다.
상기한 가중치 기반의 편집거리 계산방법을 이용하여, 인식오류가 발생한 단어와 유사한 발음의 단어를 찾기 위하여 발음 사전의 모든 발음열과 편집거리 계산을 수행하는 것은 매우 비효율적일 수 있다. 왜냐하면 사전에 등록된 단어들 간에는 발음열의 일부가 서로 포함되는 단어들이 많기 때문에 불필요한 반복적인 비교가 발생되기 때문이다.
이와 같은 문제를 최소화하기 위하여 본 발명의 실시예에서 트라이 변환부(114)는 발음사전의 모든 발음열을 트라이 자료구조로 변환하여 유사발음의 단어를 탐색할 수 있다. 트라이는 입력이 되는 문자열 값을 그대로 키(Key)로 사용하는 트리(Tree) 데이터 구조이다. 특히 키가 문자열이고 길이가 가변적이며 많은 키가 공통된 앞부분(Prefix)를 공유하는 경우에 사용할 수 있다.
유사 발음의 단어들을 탐색하기 위하여 단어의 발음열을 1개의 최상위 루트(Root)노드에서 리프(leaf)노드에 이르기까지 상하로 각 노드에 음소를 할당하여 트라이를 구축할 수 있다. 여러 개의 단어 발음열을 구축하게 되면 발음열의 앞부분에는 동일한 단어들이 존재할 수 있는데 이런 단어들은 앞부분에 공통된 노드로 공유하게 되고, 발음열이 다른 부분부터는 별개의 서브 트리(SubTree)로 갈라져서 도 3의 (a) 트리와 같이 구축할 수 있다.
각 노드는 다음과 같은 정보를 포함한다.
1) 길이 n의 발음열(음소열)
-‘노드 최적화’과정을 거치면 하나의 노드에 길이 2이상의 발음열을 포함하도록 최적화할 수 있다.
2) 단어의 아이디(ID)
- 모든 리프 노드에는 해당 발음열의 단어ID가 저장되어 있다. 그러나, 한 단어가 다른 단어에 발음열이 완전히 포함되면 리프 노드가 아니더라도 단어ID 정보를 갖는다.
3) 첫번째 자식노드와 다음 형제노드의 포인터
4) 유사 거리 계산을 위한 더블(double)형 행렬(Matrix).
-‘Trie검색’과정에서 음소 간의 비교를 통해 거리 정보를 저장하기 위한 m X n의 행렬이다.
- 더블형 행렬은 발음열 간의 편집거리 계산을 위한, 각 트라이 노드에 임시 저장되는 것이며, 발음 사전의 발음열을 효율적으로 구성하여 저장하기 위한 것이다.
예를 들어, 가을(g a U r_L), 가을날(g a U r r a r_L), 가을밤(g a U r b a m_M)과 같은 단어들의 발음열을 트라이로 구축하면 도 3의 (a) 트리와 같이 발음열을 구성하는 모든 음소들이 한 개의 노드씩을 차지하게 된다. 그러나 트라이의 특성상 리프 노드 쪽으로 갈수록 분기할 가능성이 적기 때문에 하나의 자식(child)만을 갖는 연속된 노드들은 합쳐서 도 3의 (b) 트리와 같이 하나의 노드로 최적화할 수 있다. 이와 같은 최적화를 거쳐 불필요한 메모리 자원의 낭비와 처리의 속도를 향상시킬 수 있다.
도 4는 본 발명의 실시예에 따라 유사 발음열의 단어를 검색하기 위해 컴팩트 트라이를 탐색하는 방식을 도시한 도면이다.
도 4를 참조하면, 트라이 탐색부(126)에서 상단의 행렬은 오인식 단어가 ‘가을빛’일 때, 트라이 단어 ‘가을밤’과의 편집거리를 계산하는 행렬을 나타낸다. 발음사전의 모든 단어들은 컴팩트 트라이 데이터베이스(116)에 컴팩트 트라이로 압축되어 구축되며, 오인식 단어가 입력되면 트라이를 루트에서부터 깊이 우선 탐색(Depth First Search) 방식으로 탐색을 수행할 수 있다. 각 노드에는 길이 n의 발음열(단어의 발음열 일부)이 저장되어 있어서 그 길이의 컬럼 개수만큼 오인식 단어의 입력 발음열과 편집거리에 대한 계산을 수행할 수 있다.
도 4를 참조하면, 루트 밑의 첫번째 노드의 발음열 ‘g a U’는 길이가 3이므로 컬럼 길이 3인 행렬로서 편집거리를 계산하고, 그 하위 노드인 ‘r’은 컬럼 길이 1인 행렬과 계산하며, 마지막 리프 노드인 길이 3의 ‘b a m_M’은 컬럼 길이 3인 행렬로 쪼개져서 편집거리를 계산할 수 있다. 각각 계산된 행렬은 각 노드에 임시 저장되며, 트라이를 탐색할 때 형제 서브 트리를 탐색하게 되면 재사용을 하게 된다.
그리고 유사발음의 단어를 탐색할 때 최대유사거리를 입력할 수 있다. 오인식 단어의 길이가 m이고 해당 노드의 발음열 길이가 n이라고 할 때, E(m, n)의 값이 입력한 최대유사거리보다 크면 하위 서브 트리로의 탐색을 중지하고 형제 노드(Sibling)로의 탐색을 계속 진행한다. 이렇게 함으로써 입력한 최대 유사거리값을 넘는 발음유사성이 먼 단어들을 편집거리 계산 과정에서 미리 감지하여 불필요하게 탐색하는 것을 방지할 수 있다.
그리고 검색된 후보 단어 목록에서 주변 문맥을 바탕으로 불필요한 후보를 제거하는 형태소 품사 필터(Filter)도 함께 사용할 수 있다.
한편, 트라이 탐색부(126)는 이러한 상기한 과정을 거쳐 오인식 단어와 발음이 유사한 단어들이 후보단어로 검색되면, 각 후보단어의 N-gram 확률값을 점수로 계산하여 후보 단어들을 순위화(Ranking)할 수 있다. N-gram확률은 후보단어 W0의 좌우 문맥 2개씩 W-2W-1W0W+1W+2의 확률값을 계산하며 내부적으로 백오프(Back-off)에 의한 확률을 계산하여 구한다.
도 5는 본 발명의 실시 예에 따라 유사 발음의 후보단어 목록을 제시하는 오류수정 장치의 동작 절차를 도시한 흐름도이다.
도 5를 참조하면, 500단계에서 트라이 사전 구축부(110)의 발음열 입력부(112)에서는 발음 사전에 등록된 발음열을 입력 받고, 502단계에서 트라이 변환부(114)는 발음열에 대해 트라이 자료 구조로 구축한 후, 최적화 과정을 수행하여 504단계에서 최적화된 컴팩트 트라이를 생성할 수 있다. 그리고 생성된 컴팩트 트라이를 컴팩트 트라이 데이터베이스(116)로 전달하여 저장시킴으로써, 컴팩트 트라이, 즉 트라이 사전을 구축하게 된다.
이후, 컴팩트 트라이는 유사 발음 단어 검색부(120)의 트라이 로딩부(122)로 전달되어 506단계에서 트라이 로딩부(122)는 컴팩트 트라이에 대한 로딩을 수행하게 된다.
그리고 오류 단어 입력부(124)는 508단계에서 사용자로부터 선택된 오류 단어를 입력 받은 경우, 이를 트라이 탐색부(126)로 전달하여 510단계에서 트라이 탐색부(126)는 오류 단어에 대한 유사 발음을 탐색하게 된다.
즉, 트라이 탐색부(126)는 유사 발음의 단어 검색을 위하여, 비교하는 두 단어의 음소 발음열 간의 거리 계산을 실시하며, 이때 음소 혼동 행렬 기반의 편집거리 방법을 이용하게 된다.
그리고 트라이 탐색부(126)에서는 오류 단어와 유사한 발음의 후보 단어를 검색하여 검색된 후보 단어들 중 가장 가능성이 높은 상위 N 개의 후보 단어들을 탐색하게 되고, 탐색된 후보 단어들은 512단계에서 후보 단어 출력부(128)로 전달하여 후보 단어 출력부(128)에서는 후보 단어들을 출력하여 사용자에게 직접 제공하거나, 연속어 음성인식 시스템에 전달을 수행하게 된다.
이에 사용자는 후보 단어 출력부(128) 또는 연속어 음성인식 시스템으로부터 출력된 후보 단어를 확인하고, 출력된 후보 단어들 중 발성한 단어에 대한 선택을 수행하여 오류 수정을 하게 된다.
이상 설명한 바와 같이, 본 발명의 실시예에 따른 연속어 음성인식 시스템에서 오류수정 장치 및 방법은 음성인식 시스템에서 연속어 음성인식 시 사용자가 발성한 문장에서 인식오류가 발생하였을 때 후보 단어를 제시하여 사용자가 원래 발성한 단어로 수정을 가능하게 하는 것으로서, 사용자가 발성한 본래의 단어로 복원하기 위하여 가장 가능성이 높은 상위 N개의 후보단어들을 빠르게 검색하여 사용자에게 제시할 후보단어들을 자동으로 추천하여 제공한다.
한편 본 발명의 상세한 설명에서는 구체적인 실시예에 관해 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 발명의 범위는 설명된 실시예에 국한되지 않으며, 후술되는 특허청구의 범위뿐만 아니라 이 특허청구의 범위와 균등한 것들에 의해 정해져야 한다.
100 : 오류 인식 장치 110 : 트라이 사전 구축부
112 : 발음열 입력부 114: 트라이 변환부
116 : 컴팩트 트라이 데이터베이스 120 : 유사 발음 단어 검색부
122 : 트라이 로딩부 124 : 오류 단어 입력부
126 : 트라이 탐색부 128 : 유사 후보단어 출력부
112 : 발음열 입력부 114: 트라이 변환부
116 : 컴팩트 트라이 데이터베이스 120 : 유사 발음 단어 검색부
122 : 트라이 로딩부 124 : 오류 단어 입력부
126 : 트라이 탐색부 128 : 유사 후보단어 출력부
Claims (1)
- 음성 인식 발음 사전의 단어들에 대한 발음열을 트라이 사전으로 구축하는 트라이 사전 구축부와,
상기 트라이 사전을 이용하여 오류 단어와 유사한 발음의 단어목록을 검색하고, 검색된 후보 단어를 출력하는 유사 발음 단어 검색부
을 포함하는 연속어 음성인식 시스템에서 오류수정 장치.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020100113825A KR20120052591A (ko) | 2010-11-16 | 2010-11-16 | 연속어 음성인식 시스템에서 오류수정 장치 및 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020100113825A KR20120052591A (ko) | 2010-11-16 | 2010-11-16 | 연속어 음성인식 시스템에서 오류수정 장치 및 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20120052591A true KR20120052591A (ko) | 2012-05-24 |
Family
ID=46269140
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020100113825A KR20120052591A (ko) | 2010-11-16 | 2010-11-16 | 연속어 음성인식 시스템에서 오류수정 장치 및 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20120052591A (ko) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20140092960A (ko) | 2013-01-04 | 2014-07-25 | 한국전자통신연구원 | 음성 인식 시스템에서의 오류 수정 방법 및 그 장치 |
US9184487B2 (en) | 2012-11-05 | 2015-11-10 | Electronics And Telecommunications Research Institute | Resonantor structure for wireless power transfer system |
KR20200084130A (ko) * | 2019-01-02 | 2020-07-10 | 주식회사 카카오 | 사용자 발화의 오류를 교정하는 방법 및 장치 |
US11380301B2 (en) * | 2018-02-21 | 2022-07-05 | Nippon Telegraph And Telephone Corporation | Learning apparatus, speech recognition rank estimating apparatus, methods thereof, and program |
KR102649996B1 (ko) * | 2023-07-04 | 2024-03-22 | 주식회사 덴컴 | 치과용 차트 통합 관리 서버 및 이를 이용한 방법 |
-
2010
- 2010-11-16 KR KR1020100113825A patent/KR20120052591A/ko not_active Application Discontinuation
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9184487B2 (en) | 2012-11-05 | 2015-11-10 | Electronics And Telecommunications Research Institute | Resonantor structure for wireless power transfer system |
KR20140092960A (ko) | 2013-01-04 | 2014-07-25 | 한국전자통신연구원 | 음성 인식 시스템에서의 오류 수정 방법 및 그 장치 |
US11380301B2 (en) * | 2018-02-21 | 2022-07-05 | Nippon Telegraph And Telephone Corporation | Learning apparatus, speech recognition rank estimating apparatus, methods thereof, and program |
KR20200084130A (ko) * | 2019-01-02 | 2020-07-10 | 주식회사 카카오 | 사용자 발화의 오류를 교정하는 방법 및 장치 |
KR102649996B1 (ko) * | 2023-07-04 | 2024-03-22 | 주식회사 덴컴 | 치과용 차트 통합 관리 서버 및 이를 이용한 방법 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10037758B2 (en) | Device and method for understanding user intent | |
US10210862B1 (en) | Lattice decoding and result confirmation using recurrent neural networks | |
US8170866B2 (en) | System and method for increasing accuracy of searches based on communication network | |
US8364487B2 (en) | Speech recognition system with display information | |
US6910012B2 (en) | Method and system for speech recognition using phonetically similar word alternatives | |
KR101590724B1 (ko) | 음성 인식 오류 수정 방법 및 이를 수행하는 장치 | |
JP4105841B2 (ja) | 音声認識方法、音声認識装置、コンピュータ・システムおよび記憶媒体 | |
US9978364B2 (en) | Pronunciation accuracy in speech recognition | |
US20060277031A1 (en) | Authoring speech grammars | |
JP4930379B2 (ja) | 類似文検索方法、類似文検索システム及び類似文検索用プログラム | |
KR20080069990A (ko) | 음성 세그먼트 색인 및 검색 방법과 컴퓨터 실행 가능명령어를 갖는 컴퓨터 판독 가능 매체 | |
JP2004005600A (ja) | データベースに格納された文書をインデックス付け及び検索する方法及びシステム | |
US7742924B2 (en) | System and method for updating information for various dialog modalities in a dialog scenario according to a semantic context | |
JP2008262279A (ja) | 音声検索装置 | |
JP2004133880A (ja) | インデックス付き文書のデータベースとで使用される音声認識器のための動的語彙を構成する方法 | |
US11289075B1 (en) | Routing of natural language inputs to speech processing applications | |
CN110164416B (zh) | 一种语音识别方法及其装置、设备和存储介质 | |
CN112346696B (zh) | 虚拟助理的语音比较 | |
KR20120052591A (ko) | 연속어 음성인식 시스템에서 오류수정 장치 및 방법 | |
WO2012004955A1 (ja) | テキスト補正方法及び認識方法 | |
JP2016102866A (ja) | 誤認識修正装置およびプログラム | |
KR100542757B1 (ko) | 음운변이 규칙을 이용한 외래어 음차표기 자동 확장 방법및 그 장치 | |
JP5528213B2 (ja) | 単語のセットを対応するパーティクルのセットに変換する方法 | |
JP2005257954A (ja) | 音声検索装置、音声検索方法および音声検索プログラム | |
JP3950957B2 (ja) | 言語処理装置および方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
WITN | Withdrawal due to no request for examination |