음성 인식
더 많은 작업
- Automatic Speech Recognition, ASR; 음성 인식
- 사람의 말소리를 컴퓨터가 받아 글자(텍스트)로 바꾸는 기술
음성 인식(Speech Recognition) 또는 자동 음성 인식(Automatic Speech Recognition, ASR)은 마이크로 들어온 사람의 말을 컴퓨터가 분석해 텍스트로 옮기는 기술이다. 결과가 텍스트라는 점을 강조해 STT(Speech-to-Text)라고도 부른다. 엄밀히 구분하면 STT는 말을 글로 받아 적는 데까지를 가리키고, 음성 비서처럼 받아 적은 말의 뜻까지 이해해 명령을 수행하는 일은 자연어 처리의 의도 파악 단계가 더해진 것이다. 누가 말했는지 알아내는 화자 인식(speaker recognition)과는 다른 기술이다.
음성 비서, 자막 자동 생성, 회의록 작성, 콜센터 상담 분석, 받아쓰기, 청각 장애인을 위한 실시간 문자 통역, 자동차·가전의 음성 명령 등에 쓰인다. 반대 방향, 곧 텍스트를 말소리로 바꾸는 기술은 음성 합성이다.
음성 인식은 음향 신호 가 주어졌을 때 가장 그럴듯한 단어열 를 찾는 문제로 정식화된다. 베이즈 정리를 쓰면 다음과 같이 나뉜다.
여기서 는 단어열이 그런 소리로 날 확률을 주는 음향 모델, 는 단어열 자체가 얼마나 자연스러운지를 주는 언어 모델이다. 전통적인 음성 인식기는 이 두 모델과 발음 사전을 따로 만들어 디코더로 결합했고, 종단간(end-to-end) 모델은 를 신경망 하나로 직접 학습한다.
음성 인식이 어려운 이유는 같은 단어라도 화자, 말 빠르기, 억양, 감정, 마이크, 잡음, 울림에 따라 신호가 크게 달라지고, 단어 경계가 소리에 드러나지 않기 때문이다. 영어권에서는 "recognize speech"(음성을 인식하다)와 "wreck a nice beach"(멋진 해변을 망치다)가 거의 같은 소리로 들린다는 예가 이 어려움을 보여 주는 농담으로 알려져 있다.
| 단계 | 하는 일 | 대표 기법 |
|---|---|---|
| 전처리 | 음성 구간 검출(VAD), 잡음 제거, 프리엠퍼시스 | 에너지 기반 VAD, 스펙트럼 차감 |
| 특징 추출 | 파형을 20~25ms 정도의 짧은 프레임으로 잘라 주파수 특성을 벡터로 만듦 | MFCC, 로그 멜 필터뱅크, PLP |
| 음향 모델 | 특징 벡터가 어떤 음소(또는 음소 상태)에서 나왔는지 확률 계산 | HMM-GMM, DNN-HMM |
| 발음 사전 | 단어를 음소열로 연결 | "speech → S P IY CH" 같은 사전 |
| 언어 모델 | 단어열의 자연스러움 계산 | N-Gram 언어 모델, 신경망 언어 모델 |
| 디코더 | 세 모델을 결합해 가장 확률이 높은 단어열 탐색 | 비터비 탐색, 빔 탐색, WFST |
MFCC(Mel-Frequency Cepstral Coefficients)는 오랫동안 음성 인식의 표준 특징이었다. 계산 순서는 다음과 같다.
- 신호를 짧은 프레임으로 자르고 해밍 창 같은 창 함수를 곱한다.
- 프레임마다 고속 푸리에 변환으로 주파수 스펙트럼을 구한다.
- 사람 귀의 주파수 감도를 흉내 낸 멜 척도 필터뱅크를 통과시켜 대역별 에너지를 얻는다.
- 로그를 취해 소리 크기 감각을 반영한다.
- 이산 코사인 변환(DCT)으로 상관관계를 줄이고 앞쪽 12~13개 계수를 취한다.
여기에 시간에 따른 변화량(델타, 델타-델타)을 붙여 39차원 벡터로 쓰는 구성이 흔했다. 딥 러닝 모델은 마지막 DCT를 생략한 로그 멜 필터뱅크(로그 멜 스펙트로그램)를 바로 입력으로 쓰거나, wav2vec 2.0처럼 원시 파형에서 특징을 스스로 학습한다.
1980년대부터 2010년 무렵까지 주류는 은닉 마르코프 모델(HMM)과 가우시안 혼합 모델(GMM)을 결합한 HMM-GMM이었다. 음소 하나를 왼쪽에서 오른쪽으로 진행하는 3~5개 상태의 HMM으로 나타내고, 각 상태가 특징 벡터를 낼 확률을 GMM으로 모델링한다. 앞뒤 음소에 따라 발음이 달라지는 현상을 반영하려고 트라이폰(triphone) 단위를 쓰고, 상태를 결정 트리로 묶어 공유했다. 학습은 바움-웰치(EM) 알고리즘, 인식은 비터비 탐색으로 한다. 가우시안 혼합 모델 자체는 혼합 분포 군집 문서 참고.
2012년 토론토 대학, 마이크로소프트, 구글, IBM 연구진은 GMM 대신 심층 신경망(DNN)으로 HMM 상태 확률을 계산하는 DNN-HMM 하이브리드가 여러 과제에서 GMM을 크게 앞선다는 공동 논문을 냈다[1]. 이 결과는 음성 인식이 딥 러닝을 가장 먼저 대규모로 받아들인 분야가 되는 계기였다. 이후 LSTM, 합성곱 신경망 기반 음향 모델이 뒤를 이었다.
종단간 모델은 발음 사전과 음소 정렬 없이 음향 특징에서 글자나 하위 단어를 바로 출력한다. 핵심 난제는 입력(수백~수천 프레임)과 출력(수십 글자)의 길이가 다르고 둘 사이의 정렬을 모른다는 점이며, 이를 푸는 방식에 따라 세 갈래로 나뉜다.
| 방식 | 원리 | 장점 | 한계 |
|---|---|---|---|
| CTC (Connectionist Temporal Classification) | 프레임마다 글자 또는 '빈칸'을 출력하고, 같은 글자 반복과 빈칸을 접어 최종 출력을 만듦. 가능한 모든 정렬의 확률을 동적 계획법으로 합산해 학습[2] | 구조가 단순하고 병렬 추론이 빠름 | 출력 사이의 조건부 독립을 가정해 외부 언어 모델이 필요한 경우가 많음 |
| RNN-T (RNN Transducer) | CTC에 이전 출력을 입력받는 예측 네트워크를 더해 출력 간 의존성을 모델링[3] | 입력이 들어오는 대로 결과를 내는 스트리밍 인식에 적합 | 학습 메모리 사용량이 큼 |
| 어텐션 인코더-디코더 | 인코더가 음성을 요약하고 디코더가 어텐션으로 필요한 구간을 보며 글자를 하나씩 생성. 2015년 LAS(Listen, Attend and Spell)가 대표적[4] | 정확도가 높고 언어 모델 역할까지 내재 | 문장이 끝나야 디코딩 가능해 스트리밍이 어렵고, 긴 음성에서 반복·누락 오류 |
실제 시스템은 CTC와 어텐션을 함께 학습하는 하이브리드, 트랜스포머에 합성곱을 섞은 컨포머(Conformer) 인코더 등을 많이 쓴다.
전사(받아쓰기)가 붙은 음성 데이터는 만들기 비싸다. 2020년 메타(당시 페이스북)의 wav2vec 2.0은 전사 없는 음성 5만 3천 시간으로 자기 지도 사전학습을 한 뒤, 전사된 데이터 10분만으로 미세 조정해도 LibriSpeech 시험셋에서 단어 오류율 4.8%(clean)/8.2%(other)를 얻었다고 보고했다[5].
2022년 OpenAI의 Whisper는 반대로 인터넷에서 모은 음성과 자막 68만 시간으로 다국어 인식과 번역을 함께 학습한 트랜스포머 인코더-디코더 모델이다. 별도 미세 조정 없이도 여러 데이터셋에서 경쟁력 있는 성능을 보였고 모델 가중치가 공개되었다[6]. 이후 음성 인식은 범용 음성 파운데이션 모델을 내려받아 쓰는 방식이 흔해졌고, 음성을 직접 입력받는 멀티모달 대형 언어 모델로도 확장되고 있다.
음성 인식 성능은 주로 단어 오류율(Word Error Rate, WER)로 잰다. 인식 결과를 정답 전사로 바꾸는 데 필요한 최소 편집 횟수를 레벤슈타인 거리로 구해 정답 단어 수로 나눈다.
S는 대치(substitution), D는 삭제(deletion), I는 삽입(insertion) 개수, N은 정답 단어 수다. 삽입이 많으면 100%를 넘을 수도 있다. 글자 단위로 같은 계산을 한 것이 글자 오류율(Character Error Rate, CER)로, 띄어쓰기가 없는 중국어·일본어와 띄어쓰기가 일정하지 않은 한국어에서 주로 쓴다.
2016년 마이크로소프트 연구진은 전화 대화 음성 데이터셋 Switchboard에서 자사 시스템의 WER이 5.8%로, 전문 전사자의 5.9%와 같은 수준에 이르렀다고 발표했다[7]. 다만 이런 수치는 특정 데이터셋 기준이며, 잡음이 많거나 사투리·전문 용어가 섞인 실제 환경에서는 오류율이 훨씬 높다.
| 연도 | 사건 |
|---|---|
| 1952 | 벨 연구소의 데이비스, 비덜프, 발라셰크가 한 화자가 말한 숫자 0~9를 인식하는 장치 '오드리(Audrey)'를 발표[8] |
| 1961~1962 | IBM의 윌리엄 더시(William C. Dersch)가 숫자 0~9와 '더하기', '빼기' 같은 명령어를 합쳐 16개 단어를 알아듣는 '슈박스(Shoebox)'를 공개하고, 1962년 시애틀 세계 박람회에서 시연[9] |
| 1970년대 | 미국 DARPA의 음성 이해 연구 사업(SUR)이 진행되어 카네기 멜런 대학의 Harpy 등 천 단어 규모의 연속 음성 인식 시스템이 나옴. IBM 왓슨 연구소는 연속 음성 인식 그룹을 만들어 통계적 접근을 연구[9] |
| 1980년대 | 은닉 마르코프 모델과 n-gram 언어 모델을 쓰는 통계적 음성 인식이 주류가 됨 |
| 1990년대 | 개인용 컴퓨터용 상용 받아쓰기 소프트웨어 등장 |
| 2006 | CTC 발표 |
| 2010년대 초 | 스마트폰 음성 검색과 음성 비서가 대중화 |
| 2012 | DNN-HMM 하이브리드가 GMM을 크게 앞선다는 결과 발표 |
| 2014~2015 | 바이두 Deep Speech, LAS 등 종단간 모델 등장 |
| 2016 | 마이크로소프트가 Switchboard에서 사람 수준 WER 발표 |
| 2020 | wav2vec 2.0, 컨포머 발표 |
| 2022 | OpenAI Whisper 공개[6] |
- 출력 단위: 한국어는 음절 수가 많고 교착어라 어절 단위 어휘가 폭증한다. 그래서 음절(글자), 자모, 하위 단어 단위로 출력하는 모델을 주로 쓰고, 평가도 WER보다 CER을 더 많이 쓴다.
- 띄어쓰기: 같은 내용을 띄어쓰기만 달리 적어도 WER에서는 오류가 된다. 띄어쓰기를 무시한 글자 오류율이나 띄어쓰기 교정을 함께 고려해야 한다.
- 발음과 표기의 차이: '같이[가치]', '국물[궁물]'처럼 음운 변동으로 소리와 표기가 달라, 소리 나는 대로 적은 전사와 맞춤법대로 적은 전사를 구분해 다뤄야 한다.
- 숫자·외래어 표기: "이천이십육 년"과 "2026년", "에이아이"와 "AI"처럼 같은 말을 여러 방식으로 적을 수 있어 정규화 규칙이 필요하다.
- 사투리와 존댓말, 문장 끝 억양으로 의문과 평서가 갈리는 점도 인식과 후처리를 어렵게 한다.
- 잡음, 원거리 마이크, 여러 사람이 겹쳐 말하는 상황에서 성능이 크게 떨어진다.
- 학습 데이터에 적게 나온 억양, 사투리, 고령자·어린이 음성의 오류율이 높아 공정성 문제가 제기된다.
- 대규모 생성형 모델은 음성이 없는 구간에서 없는 말을 지어내는 오류(할루시네이션)를 보이기도 한다. 자세한 내용은 할루시네이션 (인공지능) 참고.
- 음성은 개인을 식별할 수 있는 정보라, 클라우드로 음성을 보내는 서비스에서는 개인정보 보호가 쟁점이 된다.
- ↑ Geoffrey Hinton 외, 〈Deep Neural Networks for Acoustic Modeling in Speech Recognition: The Shared Views of Four Research Groups〉, IEEE Signal Processing Magazine 29(6), 2012. doi:10.1109/MSP.2012.2205597
- ↑ Alex Graves, Santiago Fernández, Faustino Gomez, Jürgen Schmidhuber, 〈Connectionist Temporal Classification: Labelling Unsegmented Sequence Data with Recurrent Neural Networks〉, ICML 2006. PDF
- ↑ Alex Graves, 〈Sequence Transduction with Recurrent Neural Networks〉, 2012. arXiv:1211.3711
- ↑ William Chan, Navdeep Jaitly, Quoc V. Le, Oriol Vinyals, 〈Listen, Attend and Spell〉, 2015. arXiv:1508.01211
- ↑ Alexei Baevski, Henry Zhou, Abdelrahman Mohamed, Michael Auli, 〈wav2vec 2.0: A Framework for Self-Supervised Learning of Speech Representations〉, 2020. arXiv:2006.11477
- ↑ 6.0 6.1 Alec Radford 외, 〈Robust Speech Recognition via Large-Scale Weak Supervision〉, 2022. arXiv:2212.04356
- ↑ Wayne Xiong 외, 〈Achieving Human Parity in Conversational Speech Recognition〉, 2016. arXiv:1610.05256
- ↑ K. H. Davis, R. Biddulph, S. Balashek, 〈Automatic Recognition of Spoken Digits〉, Journal of the Acoustical Society of America 24(6), pp.637~642, 1952.
- ↑ 9.0 9.1 IBM, Voice recognition (IBM History)
- Daniel Jurafsky, James H. Martin, 《Speech and Language Processing》 3판 초안. 스탠퍼드 대학 공개본
- Lawrence Rabiner, 〈A Tutorial on Hidden Markov Models and Selected Applications in Speech Recognition〉, Proceedings of the IEEE 77(2), 1989.