음성 인식 (Acoustic Recognition)
음성 인식은 사람이 말하는 음성 언어를 컴퓨터가 해석해 그 내용을 문자 데이터로 전환하는 처리를 말한다. STT (Speech-to-Text)라고도 한다. 키보드 대신 문자를 입력하는 방식으로 주목을 받고 있다. 일반적으로 마이크나 전화를 통하여 얻어진 음향학적 신호를 단어나 단어 집합 또는 문장으로 변환하는 과정을 말한다. 인식된 결과는 명령이나 제어, 데이터 입력, 문서 준비 등의 응용 분야에서 최종 결과로 사용될 수 있으며, 음성이해와 같은 분야에는 언어 처리과정의 입력으로 사용될 수 있다.
음성 인식 시스템은 여러 가지 항목들에 의하여 특징 지워질 수 있다. 먼저 고립 단어 인식 (isolated word recognition) 은 단어간의 경계를 나타내기 위하여 휴지기간을 필요로 하지만, 연속 음성 인식 (continuous speech recognition) 은 단어간의 경계를 나타내기 위한 명시적인 조건을 필요로 하지 않는다. 또한, 즉흥적이며 자연스러운 음성 (spontaneous speech) 은 말더듬과 같은 발성 현상이 포함되기 때문에 일정한 형식에 따라 읽는 음성 (read speech) 보다 인식하기가 더욱 어렵게 된다. 어떤 시스템은 인식기를 사용하기 전에 자신의 음성 샘플을 제공하여 화자를 등록하기 때문에 화자 종속 (speaker-dependent) 시스템이라 불리며, 다른 시스템은 등록을 필요로 하지 않기 때문에 화자 독립 (speaker-independent) 시스템으로 불린다. 인식에 사용되는 어휘가 방대하거나 유사 단어가 많으면 인식은 그만큼 더 어려워진다. 또한, 음성이 단어열로서 발성될 때, 언어나 인위적 문법으로 단어의 조합이 제한될 수가 있다. 가장 간단한 언어 모델은 각 단어 다음에 올 수 있는 단어 다음에 올 수 있는 단어를 명시적으로 나열한 유한 상태 네트워크 (finite-state network) 로 정의하는 것이며, 좀 더 일반적인 모델은 자연 언어를 문맥에 영향을 받은 문법 (context-sensitive grammar) 으로 근사하는 방법이다.
인식 대상 작업의 난이도를 측정하는 보편적인 방법으로는 어휘의 수와 언어 모델을 결합시킨 방법으로 언어 모델을 적용시킨 후, 각 단어 다음에 올 수 있는 단어의 수를 기하학적인 방법으로 정의한 혼잡도 (perplexity)를 이용하는 방법이 있다. 앞서 언급된 음성 인식 시스템에 영향을 주는 항목들 이외에 주위 환경 잡음, 마이크의 종류, 그리고 위치에 따른 외부적인 요인들도 음성 인식의 성능에 영향을 준다.
Dimensions of Difficulty
|
거의 대부분의 음성 인식 시스템들은 이론적으로는 학습시키는 모드에 따라 화자 종속 또는 화자 독립 모드로 동작할 수 있다. 화자 종속 인식기는 음성 인식 시스템의 내부적인 음성 처리 과정의 모델을 특징짓는 매개변수 (또는 모델)를 학습시키는데 단일 화자의 음성을 이용한다. 따라서, 이런 음성 인식기는 훈련자의 음성만 인식하는데 사용되며, 여러 화자의 음성으로 훈련하여 다양한 화자의 음성을 인식하는 화자 독립인식기에 비하여 인식 성능이 좋다. 이처럼 화자 독립 시스템의 성능이 정확하다 하더라도 새로운 화자에 대해서는 다시 학습시켜야 한다는 단점이 존재한다. 따라서, 화자 종속 또는 독립 모드의 인식기는 정확성과 편이성에 대한 균형이 따라야 한다.
어휘의 크기가 증가함에 따라 인식기의 성능이나 인식 속도가 저하된다는 것은 쉽게 알 수 있다. 경험에 따라 어떤 음성 연구자들은 단어의 증가뿐만 아니라, 대용량의 어휘가 의미하는 인식 작업의 증가되는 복잡도에 이르기까지, 어휘의 크기에 따라 음성인식의 어려움은 대수적 (logarithmic) 으로 증가한다고 보고 있다. 표에서 보여지는 바와 같이 일반적으로 음성 인식기는 어휘의 크기에 따라 소, 중, 대 어휘로 분류가 된다. 소용량 어휘 인식 시스템은 일상적으로 적용될 수 있으며, 그 사용처는 신용카드나 전화번호와 같은 숫자음 인식과 선적 작업 등의 목적지 인식 등과 같은 분야에서 사용될 수 있다. 중간 어휘 시스템은 일반 실험실에서 연속 음성 인식과 같이 연구를 위한 실험환경에서 많이 사용되고 있다. 대용량 어휘 시스템은 관공서의 통신이나 문서 검색 등과 같은 응용부분을 대상으로 상업용 시스템들이 목표로 연구하는 분야이다.
변수 (Parameters) | 구분, 범위 (Range) |
발성 모드 | 고립 단어, 연속 음성 |
발성 스타일 | 낭독체, 자연 음성 |
등록 | 화자 종속, 화자 독립 |
어휘 | 소(1~99), 중(100~999), 대( 1000) |
언어 모델 | 유한 상태 네트워크, 문맥 의존 |
단어 혼잡도 | 낮음( <10), 높음( >100) |
SNR (신호 대 잡음비) | 높음( >30dB), 낮음( <10dB) |
매체 | 마이크, 전화 |
일반적으로 소용량 어휘 시스템이나 상대적으로 제한이 가해진 작업분야(예를 들면 숫자열의 인식과 같은 분야)에서는 구분 발성이나 연결 단어 인식 등의 알고리즘이 적용되기도 한다. 이러한 경우에는 어휘의 단어 모델이 시스템에 모두 적재 (load) 되어 각각의 단어에 대해 속속들이 검색하여 인식할 수도 있다. 그러나 어휘가 증가하게 되고 작업이 복잡해지면 단어 모델에 대한 학습이나 모델 저장이 힘들 게 되어, 부단어 모델 방법 등이 적용된다. 또한, 모든 단어나 모델에 대한 검색이 불가능해지기 때문에 언어적인 제약 (linguistic constraints) 등을 이용하여 의미가 없거나 문법적으로 틀린 구성들을 배제하여 검색에 필요한 기억 공간 및 시간을 축소시키려는 노력이 진행되고 있다.
발성되는 음성을 인식하는 방법에 따라 고립 단어 인식, 연속 음성 인식, 연결 단어 인식 등으로 구분된다. 고립 단어 인식은 단어를 구분 단어를 발성한 후, 이를 학습시켜 인식에 사용하는 방법이다. 이 인식 방법에서는 각 단어는 충분한 길이의 휴지 기간 (pause, silence) 을 필요로 하기 때문에 인식 시스템에 협조적인 화자가 필요하다. 휴지 기간에 의하여 각 단어의 경계가 구분이 되기 때문에 파열음의 간격이나 낮은 마찰음에 의한 혼돈을 미리 방지할 수 있어, 몇몇 단어에 의하여 명령이 수행되는 응용분야에 사용될 수 있으며, 각 단어는 끝점 표시 (endpoint marking) 등과 같은 방법에 따라 경계가 표시된다. 다음으로 연속 음성 인식은 사용자가 상대적으로 자연스럽게 발성한 음성을 인식하는 방법이다. 이 방법에서는 화자가 각 단어를 연속적으로 발성하기 때문에 단어의 경계가 뚜렷하지 않고 단어간의 조음 현상 등이 발생한다. 다음으로 연결 단어 인식 방법이 있다. 연속 음성 인식의 경우 대용량 어휘 시스템을 말하고, 소용량 어휘 시스템에서의 연속 음성 인식을 일반적으로 연결 단어 인식이라고 한다. 대용량의 경우 어휘의 양이 크기 때문에 부단어 모델들로 구성이 되며, 각 단어간의 관계를 설정하는 방법에 따라 성능의 차이를 가져온다. 그러나 소용량 어휘 시스템인 경우, 부단어 모델을 사용하지 않고 바로 단어 모델을 사용할 수 있기 때문에 단어 내부의 조음 현상을 쉽게 모델링할 수 있다.
어휘에서의 유사성은 인식 시스템의 성능에 직접적인 영향을 미친다. 일반적으로 어휘에서의 유사성은 애매성과 혼동성으로 구별된다. 음향학적인 애매성은 "know"와 "no", "two"아 "too", 또는 "to"등과 같이 비슷한 음향적인 특성을 보이는 것을 말하며, 혼동성은 "bee", "see", "pea" 등과 같이 단어의 부분적 유사성으로 인한 혼동을 말한다. 특히 외국인에 의한 발음의 경우 애매성과 혼동성이 더욱 증폭이 된다. 일반적으로 음향학적인 애매성은 음향학적 단계에서는 구별이 어렵기 때문에 높은 단계 (즉, 언어적 단계나 운율적 단계 등) 에서 처리가 되어야 하며, 음향학적 혼돈성은 음향 단계에서 어느 정도의 해결책이 있으나, 좀 더 낳은 성능을 위해서는 높은 단계에서의 처리가 요구된다.
위에서 설명한 음성인식의 어려움 이외에도 신호와 관련된 많은 변이로 인하여 음성 인식이 어렵게 된다. 먼저, 각 단어의 구성되는 최소 단위인 음소의 음향학적인 표현은 표현되는 문맥에 매우 종속적이다. 이들 음성의 변이 (phonetic variability) 는 영어에서의 two, true, butter에서의 /t/ 발음과 같이 음소의 차이로서 예시화될 수 있다. 또한, 단어의 경계에서 문맥의 변이는 더욱 심하게 발생하는데, 예를 들면 우리말에서의 "맛있다"가 "마시따" 또는 "마디따" 처럼 발성되는 경우이다. 둘째로, 전달자 (transducer) 의 위치나 특성에 따른 음향학적인 변이 (acoustic variability) 로 인해 발생되는 문제이다. 세 번째는 화자의 물리적 또는 감정적인 상태에 따라, 발성 속도 (speaking rate) 나 음질의 변화로 인해 야기되는 화자내부 변이 (within-speaker variability) 가 있다. 마지막으로, 사회 언어학적인 차이에서 발성하는 화자간 변이(across-speaker variability)를 들 수 있는데, 대표적인 현상으로는 성도 (vocal tract) 의 크기나 모양의 차이를 들 수 있다.
위의 그림은 전형적인 음성 인식 시스템의 주된 구성 요소를 보여주고 있다. 양자화된 음성 신호는 분석을 위해 일반적으로 10~20ms의 고정된 시간 길이로 분할되고 특징 변수로 변환된다. 이들 측정치는 음향학적, 사전적, 언어 모델에 의해 제한적으로 이용되어, 가장 유사한 단어 후보를 찾는데 사용된다. 이러한 과정을 통하여 학습 데이터는 모델 변수들의 값을 결정하는데 사용된다.
음성 인식 시스템은 위에서 여러 가지 방법으로 기술된 변이 원인을 모델링한다. 신호 표현의 단계에서는 지각적으로 신호의 화자 독립적인 특징을 강조하고, 화자 종속적인 특징을 감소하고자 한다. 다음으로, 음향학적인 음소 단계에서는 대용량의 데이터에 대해 통계적 기법을 이용하여 화자의 변이를 모델링한다.
단어 단위의 변이는 발음 네트워크 (pronunciation network)의 표현법을 이용하여 다양한 단어 발음을 허용함으로써 처리될 수 있다. 일반적으로 방언 (dialect)이나 강세 (accent)의 차이로 인한 단어의 다른 발음은 검색 알고리즘이 발음 네트워크를 통하여 음소의 다른 경로를 허용하도록 함으로써 처리될 수 있다. 또한, 단어열의 발생빈도를 예측하는 통계적인 언어 모델을 이용하여 가능한 단어열을 검색할 수 있다.
과거 15년 동안 음성 인식에 가장 많이 사용되는 알고리즘은 은닉 마코프 모델 (hidden Markov model)이었다. HMM은 이중 통계적 모델로서, 기본이 되는 음소열의 생성과 프레임 단위의 표면적 음향학적인 표현을 Markov 과정과 같이 확률로서 나타낸다. 프레임 단위의 점수를 예측하는데 신경 회로망 (Neural network)이 사용되기도 하며, HMM 시스템과 결합되어 혼합 모델로서 사용되기도 한다.
프레임 단위의 HMM 시스템의 중요한 특징은 음성 부분이 명시적으로 파악되는 것이 아니라, 검색 과정 중에 파악된다는 점이다. 또한 먼저 음성 부분을 파악하여 분류하고 단어를 인식하기 위하여 부분 거리값을 이용하는 다른 접근 방법도 있다. 이러한 접근 방법은 여러 가지 작업 분야에서 경쟁적인 인식 성능을 나타내기도 한다.
http://www.aistudy.com/linguistics/speech/sr_oh.htm#_bookmark_24aa3b8
'Linguistic Intelligence' 카테고리의 다른 글
새로운 빙 (The New Bing) (0) | 2023.05.15 |
---|---|
Bard (0) | 2023.05.15 |
ChatGPT (0) | 2022.12.11 |
언어 지능 (Linguistic Intelligence) (0) | 2022.08.27 |