상기의 목적을 이루고 종래기술의 문제점을 해결하기 위하여, 본 발명은 인식 대상 어휘들에 대해 중심 어휘 목록(Central lexicon)을 트리 구조로 계층화하는 단계와, 음소 인식 열과 상기 트리 구조로 계층화된 중심 어휘 목록의 발음 열 사이의 다중 경로 심볼 매칭(multi-pass symbol matching)을 수행하는 단계 및 상기 심볼 매칭에 의해 선정된 후보 어휘들에 대해 상세한 음향 모델을 사용하여 비터비 검색(Viterbi search) 과정을 통해 최종 음성 인식 결과를 선정하는 단계를 포함하는 것을 특징으로 하는 음성 인식 방법을 제공한다.
본 발명의 일측에 따르는 음성 인식 장치는, 음소 인식 열과 트리 구조로 계층화된 중심 어휘 목록(Central lexicon)의 발음 열 사이의 다중 경로 심볼 매칭(multi-pass symbol matching)을 수행하는 다중 경로 심볼 매칭부 및 상기 다중 경로 심볼 매칭에 의해 선정된 후보 어휘 세트들에 대한 상세 음향 모델을 사용하여 음성 인식 결과를 선정하기 위한 상세 매칭을 수행하는 상세 매칭부를 포함한다.
이하에서는 첨부된 도면들을 참조하여 본 발명의 실시예에 따른 음성 인식 방법 및 그 장치를 상세히 설명한다.
도 1은 본 발명의 일실시예에 따른 음성 인식 장치의 구성을 나타내는 도면이다.
도 1을 참조하면, 본 발명의 일실시예에 따른 음성 인식 장치(100)는 어휘 목록 분류부(110), 특징 추출부(120), 음소 디코딩부(130), 다중 경로 심볼 매칭부(140) 및 상세 매칭부(150)를 포함한다.
어휘 목록 분류부(110)는 인식 대상 어휘들에 대한 모든 어휘 목록(lexicon)을 트리(tree) 구조화하여 분류한다. 즉, 어휘 목록 분류부(110)는 대규모 어휘의 발음 사전을 소정의 학습 과정을 통해 각 노드에 중심 발음 사전이 설정된 트리 구조로 계층화한다.
어휘 목록 분류부(110)는 상기 트리 구조를 하향식(top-down) 또는 상향식(bottom-up) 방식으로 결정할 수 있다. 상기 트리 구조는 이진 트리(binary tree)가 아닐 수 있으며, 상기 트리의 각 계층(layer)마다 클러스터링(clustering)에 사용되는 기준 임계 값(threshold)에 따라 적정한 노드(decent node) 수가 다르게 결 정될 수 있다. 상기 트리 구조의 상위 계층에서는 더 큰 거리 임계 값(distance threshold)이 적용되며, 상기 트리 구조의 하위 계층에서는 더 낮은 거리 임계 값이 적용될 수 있다.
즉, 어휘 목록 분류부(110)는 상기 트리 구조의 상위 계층에 대한 임계 값을 예를 들어 '50'으로 적용한 경우, 상기 트리 구조의 하위 계층에 대한 임계 값을 '40'으로 적용할 수 있다.
어휘 목록 분류부(110)는 어휘 목록 클러스터링 방법으로 MKM(Modified K-Means) 클러스터링 방법을 이용할 수 있다. 상기 어휘 목록 사이의 거리는 하기 수학식 1과 같이 정의된다.
D(Li,Lj) = -{logPr(Li|Lj) + logPr(Lj|Li)}
여기서, Pr(Li|Lj)는 어휘 목록(Lj)에 해당되는 기준 심볼 시퀀스(reference symbol sequence)가 주어질 때 어휘 목록(Li)에 해당되는 인식 심볼 시퀀스(recognition symbol sequence)와 매칭될 확률 값이다. Pr(Li|Lj)는 Pr(Lj|Li)와 동일하지 않는다. 그리고, Pr(Li|Lj)는 도 3에 도시된 것과 같은 음소 혼동 매트릭스(phone confusion matrix)를 이용하여 동적 프로그래밍(Dynamic Programming) 매칭(matching)을 통해 매칭 스코어(matching score)를 구할 수 있다.
중심 어휘 목록(CLex(l,n))은 하기 수학식 2와 같이 정의된다.
여기서, Ng(l,n)은 l번째 계층내의 n번째 노드의 이웃 어휘 목록이다.
도 2는 본 발명에 따른 음성 인식 장치에 있어서, 계층화된 어휘 그룹 트리의 일례를 나타내는 도면이다.
도 2를 참조하면, 상기 어휘 그룹 트리에서 임의의 노드는 상기 노드를 대표하는 중심 어휘 목록(central lexicon)이 할당되며, 각 종단 노드(terminal node)는 상기 노드에 할당된 중심 어휘 목록과 거리가 일정 수준 이하에 속하는 어휘 목록들이 이웃 어휘 목록(neighborhood lexicon)으로 정의된다. 여기서, CLex(i,j)는 i 번째 계층의 j번째 중심 어휘 목록을 나타낸다.
상기 각 노드에서의 중심 어휘 목록은 상기 노드에 속하는 모든 단어 어휘 목록(vocabulary lexicon)들 중에서 중심 위치에 속하는 어휘 목록으로 결정된다.
상기 이웃 어휘 목록은 상기 종단 노드에서 예를 들어, "우리은행, 국민은행, 신한은행, ..." 등과 같이 "은행"이라는 공통 어휘가 포함되어 있고, 상기 종단 노드에서 예를 들어, "단양농협, 서부농협, 기흥농협, ..." 등과 같이 "농협"이라는 공통 어휘가 포함될 수 있다.
한편, 어휘 목록 분류부(110)는 상기 각 종단 노드의 이웃 어휘 목록 세트(neighborhood lexicon set)에서 동일한 어휘가 중복되지 않도록 하기 위해 동일한 어휘에 대해 다른 이웃 어휘 목록 세트에 포함되는 것을 배제(disjoint)할 수도 있 으며, 동일한 어휘가 다른 이웃 어휘 목록 세트에 중복(overlap)되도록 설정할 수도 있다.
즉, 어휘 목록 분류부(110)는 예를 들어 제1 종단 노드의 이웃 어휘 목록 세트에 "우리 은행"이라는 어휘가 포함된 경우, 상기 제1 종단 노드의 이웃 어휘 목록 세트 이외의 다른 종단 모드의 이웃 어휘 목록 세트에 "우리 은행"이라는 어휘가 포함되는 것을 배제할 수도 있다.
또한, 어휘 목록 분류부(110)는 예를 들어 제1 종단 노드의 이웃 어휘 목록 세트에 "우리 은행"이라는 어휘가 포함된 경우, 상기 제1 종단 노드의 이웃 어휘 목록 세트 이외의 다른 종단 모드의 이웃 어휘 목록 세트에 "우리 은행"이라는 어휘가 포함되도록 하여 중복시킬 수도 있다.
이와 같이, 어휘 목록 분류부(110)는 상기 이웃 어휘 목록을 결정할 때 어휘가 중복되도록 할 경우에 상기 종단 노드의 중심 어휘 목록으로부터 거리가 미리 정해진 값 이하인 어휘 목록들을 이웃 어휘 목록으로 결정한다.
특징 추출부(120)는 음성 인식 장치(100)로 입력되는 음성 신호에 대한 배경 잡음을 억제하고, 상기 잡음 억제된 음성 신호로부터 사용자의 음성 구간만을 검출하고, 상기 검출된 음성 구간에서 음성 인식에 사용될 특징 벡터를 추출한다.
음소 디코딩부(130)는 상기 추출된 특징 벡터 열을 N개의 후보 음소 열로 변환한다. 또한, 음소 디코딩부(130)는 모노폰(monophone) 또는 트라이폰(Triphone) 음향 모델을 사용한다.
즉, 음소 디코딩부(130)는 상기 음소 음향 모델을 이용하는 경우, 음소 레벨 결합 법칙(phone-level grammar)을 적용하며, 상기 트라이폰 음향 모델을 이용하는 경우 문맥(context)간의 연결성을 적용한다.
다중 경로 심볼 매칭부(140)는 동적 프로그래밍 기법에 근거하여 최적 경로를 검색하고, 인식 디코딩부(130)에 의한 음소 인식 열과 어휘 목록 분류부(110)에 의해 상기 트리 구조로 계층화된 중심 어휘 목록의 발음 열 사이의 다중 경로 심볼 매칭(multi-pass symbol matching)을 수행한다. 상기 음소 인식 열과 상기 발음 열 사이의 매칭 스코어(matching score)는 음소 혼동 매트릭스의 확률 값을 사용하여 계산되며, 음소의 삽입과 삭제 확률도 고려될 수 있다.
즉, 다중 경로 심볼 매칭부(140)는 상기 음소 인식 열과 상기 트리 구조로 계층화된 중심 어휘 목록의 발음 열 사이의 음소 혼동 매트릭스의 확률 값을 사용하여 상기 매칭 스코어를 계산할 수 있다.
도 3은 본 발명에 따른 음성 인식 장치에 있어서, 음소 혼동 매트릭스의 일례를 나타내는 도면이다.
도 3을 참조하면, 상기 음소 혼동 매트릭스는 인식 심볼(recognition symbol) 및 기준 심볼(reference symbol)들 사이의 혼동(confusion) 정도를 확률 값으로 표현하며, 상기 인식 심볼에 대한 삽입(insertion) 확률 값과 상기 기준 심볼에 대한 삭제(deletion) 확률 값이 사용된다. 상기 음소 혼동 매트릭스의 값은 log P(a|b)로 표현된다.
인식 심볼 세트(recognition symbol set)는 음소 디코딩부(130)에서 사용되는 음소 세트(phone set)이고, 기준 심볼 세트(reference symbol set)는 어휘 목록 대표(Lexicon representation)에서 사용되는 음소 세트이다. 상기 인식 심볼 세트와 상기 기준 심볼 세트는 동일할 수도 있고 상이할 수도 있다.
도 4는 본 발명에 따른 음성 인식 장치에 있어서, 음소 디코딩부의 출력과 어휘 목록의 기준 패턴에 대한 일례를 나타내는 도면이다.
도 4를 참조하면, 가로축은 음소 디코딩부(130)의 출력으로서 인식 심볼 시퀀스(recognition symbol sequence)를 나타내고, 세로축은 어휘 목록의 기준 패턴(reference pattern)의 일례로서 "사랑해"를 나타낸다.
다중 경로 심볼 매칭부(140)는 어휘 후보들을 도 2에 도시된 것과 같은 트리 구조에서 하향(top-down) 방향으로 다단계 심볼 매칭을 진행하면서 각 계층마다 최고 매칭 스코어를 기록한 노드를 추적하며, 종단 노드에 도달할 때까지 상기 추적 과정을 반복한다.
즉, 다중 경로 심볼 매칭부(140)는 상기 종단 노드에 도달할 때까지 예를 들어, 인식된 N개의 후보 음소 열과 상기 트리 구조로 계층화된 발음 열에 대해 N번째 계층까지의 심볼 매칭을 수행할 수 있다.
또한, 다중 경로 심볼 매칭부(140)는 다중 경로 심볼 매칭(multi-pass symbol matching) 과정에서의 오류를 방지하기 위하여 각 계층마다 하나의 노드만 선정하지 않고, 복수 개의 후보 노드들을 선정하는 탐색을 진행한다. 상기 각 계층마다의 후보 노드 수는 미리 지정될 수 있으며, 가변적일 수도 있다.
다중 경로 심볼 매칭부(140)는 상기 후보 노드 수가 가변적인 경우, 상기 각 계층마다 후보 노드로 선정되기 위한 소정의 기준 값들을 미리 설정하고, 상기 매 칭 스코어가 상기 소정의 기준 값을 초과하는 노드들을 모두 후보 노드로 선정할 수 있다.
다중 경로 심볼 매칭부(140)는 예를 들어, 상기 트리 구조로 계층화된 제1 계층의 기준 값이 '50'인 경우, 상기 음소 인식 열과 상기 트리 구조로 계층화된 제1 계층 발음 열을 비교하여 상기 매칭 스코어가 상기 제1 계층의 기준 값인 '50'을 초과하는 노드들을 상기 후보 노드로 선정할 수 있다.
상세 매칭부(150)는 상기 다중 경로 심볼 매칭 과정에서 얻어진 후보 어휘 세트들에 대해 상세한 음향 모델을 사용하여 비터비 검색(Viterbi search) 과정을 통해 최종 인식 결과를 선정한다. 상기 트리 구조에서 각 종단 노드의 이웃 어휘 목록들은 탐색 속도를 위해 학습 과정을 통해 미리 검색 망(search network)으로 컴파일(compile)되며, 하드 디스크 드라이버(Hard Disk Driver) 등과 같은 저장 매체에 저장되어 있다.
즉, 상세 매칭부(150)는 상기 다중 경로 심볼 매칭 과정에서 검출된 예를 들어 K개의 후보 어휘 세트들에 대해서만 음소 문법(Phone grammar) 및 음향 모델(acoustic model)를 이용하여 상기 비터비 검색 과정을 통해 수행된 상세 매칭에 따른 최종 음성 인식 결과를 출력한다.
또한, 상세 매칭부(150)는 상기 각 종단 노드의 이웃 어휘 목록들의 사이즈가 비교적 작기 때문에 메모리 요구량이 적으므로 상기 후보 노드로 선정된 검색 망을 스위칭한 후 로딩하여 상세 매칭을 수행함으로써 최종 인식 결과를 선정할 수 있다.
이와 같이, 본 발명에 따른 음성 인식 장치는 음소 인식 열과 트리 구조에서의 중심 어휘 목록과의 심볼 매칭 단계를 통해 입력된 발성과 유사한 영역의 어휘들에 대해서만 상세 매칭을 수행함으로써 리소스가 제한되어 있더라도 원활한 음성 인식을 수행할 수 있다.
또한, 본 발명에 따른 음성 인식 장치는 중심 어휘 목록 모델을 사용할 경우 발생되는 미스 매치에 대한 위험성이 증가되는 종래 매칭 방식과 달리 음소 레벨에서 매칭을 수행함에 따라 탐색 과정의 미스 매치로 인해 중요한 어휘가 후보에서 제거되는 위험을 배제할 수 있는 이점이 있다.
도 5는 본 발명의 일실시예에 따른 음성 인식 방법의 흐름을 나타내는 도면이다.
도 5를 참조하면, 단계(510)에서 음성 인식 장치는 특징 추출부를 통해 입력된 음성 신호로부터 특징 벡터를 추출하고, 음소 디코더(phone decoder)를 통해 상기 추출된 특징 벡터 열로부터 N개의 음소 인식 열을 추출한다.
즉, 단계(510)에서 상기 음성 인식 장치는 상기 특징 추출부를 통해 입력된 신호에 대한 잡음을 제거하고, 상기 잡음이 제거된 신호에서 사용자의 음성 구간만을 검출하고, 상기 검출된 음성 신호에서 음성 인식에 사용될 특징 벡터를 추출하고, 상기 음소 디코더를 통해 상기 추출된 특징 벡터 열을 N개의 후보 음소 열로 변환할 수 있다.
또한, 단계(510)에서 상기 음성 인식 장치는 모노폰 또는 트라이폰 음향 모델이 사용되며, 상기 음소 음향 모델의 경우 음소 레벨 결합 법칙을 적용하고, 상 기 트라이폰 음향 모델인 경우 문맥간의 연결성을 적용할 수 있다.
단계(520)에서 상기 음성 인식 장치는 상기 추출된 음소 인식 열과 소정의 트리 구조로 계층화된 중심 어휘 목록의 발음 열 사이의 다단계 심볼 매칭인 다중 경로 심볼 매칭(multi-pass symbol matching)을 수행한다.
즉, 단계(520)에서 상기 음성 인식 장치는 상기 추출된 음소 인식 열이 예를 들어 N개인 경우, 상기 소정의 트리 구조로 계층화된 중심 어휘 목록의 발음 열 사이에서 N개의 다중 경로 심볼 매칭 동작을 수행한다.
여기서, 상기 트리 구조로 계층화된 중심 어휘 목록은 어휘 목록 분류기(Lexicon classifier)에 의해 학습 과정을 통해 사전에 분류될 수 있다. 즉, 상기 어휘 목록 분류기는 상기 인식 대상 어휘들에 대한 모든 어휘 목록들을 트리 구조화하고, 상기 트리 구조의 내부 노드에 상기 노드를 대표하는 중심 어휘 목록을 할당하고, 각 종단 노드에 상기 노드에 할당된 중심 어휘 목록과 거리가 소정의 기준 값 이하에 속하는 어휘 목록들을 이웃 어휘 목록으로 정의한다.
상기 트리 구조는 각 계층마다 클러스터링에 사용되는 기준 임계 값에 따라 적용되는 노드 수가 다르다. 즉, 상기 트리 구조는 상위 계층에서 상대적으로 더 큰 거리 임계 값이 적용되며, 상기 트리 구조의 하위 계층에서 상대적으로 더 낮은 임계 값이 적용되므로 상기 상위 계층일수록 노드 수가 적다.
상기 각 노드에서의 중심 어휘 목록은 상기 노드에 속하는 모든 단어 어휘 목록들 중에서 중심 위치에 속하는 어휘 목록으로 결정된다.
단계(520)에서 상기 음성 인식 장치는 도 3에 도시된 것과 같은 음소 혼동 매트릭스를 이용하여 두 어휘 목록 사이의 거리를 측정할 수 있는 수단을 통해 단어 어휘 목록들을 클러스터링할 수도 있다.
단계(520)에서 상기 음성 인식 장치는 상기 다중 경로 심볼 매칭 동작에 따라 상기 인식된 음소 열과 상기 중심 어휘 목록의 발음 열 사이의 유사도를 계산할 수 있다.
단계(520)에서 상기 음성 인식 장치는 상기 다중 경로 심볼 매칭 동작에 따라 상기 중심 어휘 목록을 선정하는 오류를 줄이기 위해 각 계층마다 하나의 노드만 선정하지 않고, 복수 개의 후보를 선정하는 탐색 과정을 진행한다.
단계(520)에서 상기 음성 인식 장치는 상기 복수 개의 후보를 선정하기 위해 하향(top-down) 방향으로 다중 경로 심볼 매칭을 진행하면서 각 계층마다 최고 매칭 스코어를 기록한 노드를 추적하며, 종단 노드에 도달할 때까지 상기 노드 추적 과정을 반복할 수 있다. 이때, 각 계층마다의 후보 노드 수는 미리 고정될 수도 있으며, 가변적일 수도 있다. 여기서, 상기 매칭 스코어는 도 3에 도시된 것과 같은 음소 혼동 매트릭스의 확률 값을 사용하여 계산된다.
즉, 단계(520)에서 상기 음성 인식 장치는 상기 각 계층마다의 후보 노드 수가 가변적인 경우, 상기 각 계층마다 후보 노드를 선정하기 위해 소정의 기준 값들이 미리 설정되며, 상기 매칭 스코어가 상기 소정의 기준 값을 초과하는 노드들을 모두 후보 노드로 고려할 수 있다.
단계(530)에서 상기 음성 인식 장치는 상기 다중 경로 심볼 매칭을 통해 선정된 후보 어휘들에 대해 상세한 음향 모델을 사용하여 비터비 검색(viterbi search) 과정을 통해 최종 인식 결과를 선정하기 위한 상세 매칭을 수행한다.
상기 트리 구조에서 각 종단 노드의 이웃 어휘 목록들은 탐색 속도를 위해 학습 과정에서 미리 검색 망(search network)로 컴파일(complie)되어 하드 디스크 드라이버 등과 같은 저장 매체에 저장된다.
즉, 단계(530)에서 상기 음성 인식 장치는 각 종단 노드의 이웃 어휘 목록들이 보통 수백 단어 수준으로 그 사이즈가 비교적 작기 때문에 적은 메모리 요구량으로도 상기 후보로 선정된 검색 망들을 스위칭한 후 로딩하여 상세 매칭을 수행할 수 있다.
이와 같이, 본 발명에 따른 음성 인식 방법은 대규모 어휘의 발음 사전을 각 노드에 중심 발음 사전이 선정된 트리 구조로 계층화하고, 음소 디코더를 통해 얻어진 음소 열과의 심볼 매칭을 통해 후보 어휘를 선정한 후 최종 인식 결과를 탐색함으로써 휴대 장치와 같이 리소스가 제한된 기기에서 1만 어휘 이상의 대규모 어휘를 종래 방식에 비해 적은 메모리 요구량으로 신속하고 정확하게 음성을 인식할 수 있다.
또한, 본 발명에 따른 음성 인식 방법은 다양한 컴퓨터로 구현되는 동작을 수행하기 위한 프로그램 명령을 포함하는 컴퓨터 판독 가능 매체를 포함한다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 상기 매체는 프로그램 명령, 데이터 구조 등을 지정하는 신호를 전송하는 반송파를 포함하는 광 또는 금속선, 도파관 등의 전송 매체일 수도 있다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 이는 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다. 따라서, 본 발명 사상은 아래에 기재된 특허청구범위에 의해서만 파악되어야 하고, 이의 균등 또는 등가적 변형 모두는 본 발명 사상의 범주에 속한다고 할 것이다.