Skip to content

1. ASR


Info

자동 음성 인식(Automatic Speech Recognition)의 문제 정의와 아키텍처 전반을 소개한다. 자동 음성 인식 모델은 크게 음향 모델(Acoustic Model)과 언어 모델(Language Model)로 구성된다. 음향 모델의 경우 기존에는 '히든 마코프 모델(Hidden Markov Model)과 가우시안 믹스처 모델(Gaussian Mixture Model)', 언어 모델은 통계 기반 n-gram 모델이 주로 쓰였다. 최근에는 딥러닝 기반 기법들이 주목 받고 있다.


1. Problem Setting

자동 음성 인식(Automatic Speech Recognition)이란 음성 신호(acoustic signal)를 단어(word) 혹은 음소(phoneme) 시퀀스로 변환하는 시스템을 가리킨다.


자동 음성 인식 모델은 입력 음성 신호 \(X\left(x_{1}, x_{2}, \ldots, x_{t}\right)\)에 대해 가장 그럴듯한(likely) 음소/단어 시퀀스 \(Y\left(y_{1}, y_{2}, \ldots, y_{n}\right)\)를 추정한다. 자동 음성 인식 모델의 목표는 \(P(Y \mid X)\)를 최대화하는 음소/단어 시퀀스 \(Y\)를 추론(inference)하는 데에 있다. 이를 식으로 표현하면 수식1과 같다.


수식1 AUTOMATIC SPEECH RECOGNITION (1)

\[ \hat{Y}=\underset{Y}{\operatorname{argmax}} P(Y \mid X) \]


\(P(Y \mid X)\)를 바로 추정하는 모델을 구축하는 것이 가장 이상적이다. 하지만 같은 음소나 단어라 하더라도 사람마다 발음하는 양상이 다르다. 화자가 남성이냐 여성이냐에 따라서도 음성 신호는 달라질 수 있다. 다시 말해 음성 신호의 다양한 변이형을 모두 커버하는 모델을 만들기가 쉽지 않다는 것이다. 이에 베이즈 정리(Bayes' Theorem)를 활용해 수식2처럼 문제를 다시 정의한다.


수식2 AUTOMATIC SPEECH RECOGNITION (2)

\[ \hat{Y}=\underset{Y}{\operatorname{argmax}} \frac{P(X \mid Y) P(Y)}{P(X)} \]


수식2의 우변에 등장한 \(P(X)\)는 베이즈 정리에서 evidence로 불린다. evidence\(Y\)의 모든 경우의 수에 해당하는 \(X\)의 발생 확률이기 때문에 추정하기가 매우 어렵다. 그런데 다행히 추론(inference) 과정에서 입력 신호 \(X\)\(Y\)와 관계없이 고정되어 있다. 따라서 추론 과정에서 \(P(X)\)를 계산에서 생략할 수 있다. \(Y\)의 후보 시퀀스가 2가지(\(Y_{1}\), \(Y_{2}\))뿐이라면 수식3처럼 예측 결과(\(Y_{1}\))를 만들 때 분자만 고려하면 된다.


수식3 ASR INFERENCE

\[ \frac{P\left(X \mid Y_{1}\right) P\left(Y_{1}\right)}{P(X)}>\frac{P\left(X \mid Y_{2}\right) P\left(Y_{2}\right)}{P(X)} \]


결론적으로 음성 인식 모델은 수식4처럼 크게 두 가지 컴포넌트로 구성된다. 수식4 우변의 첫 번째 항 \(P(X \mid Y)\)는 음향 모델(Acoustic Model), \(P(Y)\)는 언어 모델(Language Model)로 불린다. 음향 모델은 '음소/단어 시퀀스'와 '입력 음성 신호'가 어느 정도 관계를 맺고 있는지 추출하고, 언어 모델은 해당 음소/단어 시퀀스가 얼마나 자연스러운지 확률값 형태로 나타낸다.


수식4 AUTOMATIC SPEECH RECOGNITION (3)

\[ \hat{Y}=\underset{Y}{\operatorname{argmax}} P(X \mid Y) P(Y) \]


2. Architecture

그림1은 자동 음성 인식 모델의 전체 아키텍처를 도식화한 것이다. 음향 모델(Acoustic Model)은 \(P(X \mid Y)\)를 반환한다. 음향 모델은 음소(또는 단어) 시퀀스 \(Y\)가 주어졌을 때 입력 음성 신호 시퀀스 \(X\)가 나타날 확률을 부여한다는 이야기이다(그림2 참조). 이를 바꿔 이해하면 음향 모델은 음성 신호와 음소(또는 단어)와의 관계를 표현(represent the relationship between an audio signal and the phonemes or other linguistic units that make up speech)하는 역할을 담당한다. 기존 자동 음성 인식 모델에서 음향 모델은 히든 마코프 모델(Hidden Markov Model, HMM)과 가우시안 믹스처 모델(Gaussian Mixture Model, GMM) 조합이 자주 쓰였다.


그림1 HMM, GMM 기반 음성인식 모델

001


그림2 ACOUSTIC MODEL

002


한편 언어 모델(Language Model)은 음소(또는 단어) 시퀀스에 대한 확률 분포(a probability distribution over sequences of words)이다. 다시 말해 음소(또는 단어) 시퀀스 \(Y\)가 얼마나 그럴듯한지(likely)에 관한 정보, 즉 \(P(Y)\)를 반환한다. 기존 자동 음성 인식 모델에서 언어 모델은 통계 기반 n-gram 모델이 자주 쓰였다.


딥러닝(Deep Learning)이 대세가 되면서 그림1의 각 컴포넌트들이 딥러닝 기법으로 대체되고 있다. 음향 특징 추출(Acoustic Feature Extraction), 음향 모델, 언어 모델 등 거의 모든 컴포넌트가 딥러닝으로 바뀌는 추세이다.


그림3 딥러닝 기반 음성인식 모델

003


최근에는 그림3보다 한발 더 나아가 수식1\(P(Y \mid X)\)을 바로 추정하는 엔드투엔드(end-to-end) 자동 음성 인식 모델 역시 제안되고 있다.


3. Acoustic Features

기존 자동 음성 인식 모델의 주요 컴포넌트인 'HMM+GMM'이 사용하는 음향 특징(Acoustic Feature)이 바로 MFCCs(Mel-Frequency Cepstral Coefficients)이다. 사람이 잘 인식하는 말소리 특성을 부각시키고 그렇지 않은 특성은 생략하거나 감소시킨 피처(feature)이다. 피처를 만드는 과정은 사전에 정의된 수식에 따라 진행된다. 즉 연구자들이 한땀한땀 만들어낸 룰(rule)에 기반한 피처라고 할 수 있겠다. MFCC 추출 과정은 그림4와 같다.


그림4 MFCC

004


그림3에서 제시된 것처럼 음향 특징 추출도 딥러닝으로 대체되는 추세이다. Wav2Vec, SincNet 등 다양한 기법이 제시되었다. 그림5는 SincNet을 도식화한 것이다. 입력 음성 신호에 다양한 싱크 함수(sinc function)을 통과시켜 문제 해결에 도움이 되는 주파수 영역대를 부각시키고 나머지는 버린다. 이때 각 싱크 함수가 주로 관장하는 주파수 영역대가 학습 대상(trainable parameter)이 된다. 룰 기반 피처인 MFCC와 달리 딥러닝 기반 음향 특징 추출 기법들은 그 과정이 결정(deterministic)이지 않고 확률적(probabilistic)이다.


그림5 SINCNET

005


References