딥러닝에서의 음성인식(STT)
음성인식이란
-사람의 음성으로부터 발화한 텍스트를 얻어내는 기술
빅스비,시리등 많은 서비스에 사용됨
음성인식은 갈길이 아직 멀다
기능대화 음성인식
- 사용자가 어느 질문/발화를 할 지 어느정도 예측 가능. ---> 예측 가능 범위에서 시나리오를 만들거나 모델을 만듦
- 현재는 기능대화 음성인식이 주를 이루고 있음
일반 음성인식
-일반적인 대화에서의 음성인식
-어떠한 발화가 나올지 예측 할 수 없음, 무한한 주제, 무한한 문맥, 노이즈에 따라 무한한 경우의 수가 있다.
***But 최근 딥러닝의 발전으로 상당한 개선이 이루어 지고 있다.
End to End Speech Recognition
최근 End to End 음성인식 방법은 각광받고 있다. Deep Learning Boom(2012) 이전에는 발음사전, 언어모델 구축 그리고 수학적인 모델링등 사전에 필요한 지식이 많았다. 하지만 Deep Learning Boom 이후 End to End 방식이 적용되면서 input과 output을 통째로 넣어 문법, 발음등을 모두 학습시키는 방식이 유의미한 결과를 내고 있다.
End to End Speech Recognition Pipeline
1. Audio File (wav, pcm, flac etc)
-일반적으로 16,000Hz의 샘플링 레이트를 가지는 신호
-Raw한 오디오 신호에서는 많은 정보를 얻을 수 없다. ---> Feature Extraction
2. Feature Extraction
- Raw한 오디오 신호로 부터 Feature를 뽑아주는 과정
- 음성인식에서는 신호의 주파수 변화가 핵심정보
- 시간축에서 주파수축으로 바라봐야함 ----> Short-Time Fourier transform
***Short-Time을 사용하는 이유 - 사람이 발화하는 음성의 경우 20ms~40ms에서 잘 변하지 않음 그래서 짧은 순간에 그 음성을
잡아내기위해 짧게 나눠서 Fourier transform을 사용하는것이 필요. (20ms길이로 10ms씩 겹치도록 수행)
- 스펙트로그램이라는 Feature를 뽑아냄
***스펙트로그램이란 소리의 스펙트럼을 시각화하여 그래프로 표현하는 기법(파형과 스펙트럼의 특징이 결합된 형태)
- 인간은 저주파쪽은 예민한데 고주파쪽은 둔감한 특성을 가지고 있음. 이러한 특성 스펙트그램에 적용한 mel scale 스펙토그램을
Feature로 주로 사용함.
3. Acoustic Modeling
- 음성신호(Feature)를 받아서 텍스트로 인식하는 과정
- Signal과 Text의 alignment를 알기 어렵다.(Acoustic Modelingd의 어려움) ---> CTC, Attention
Connectioninst Temporal Classfication (CTC)
Deepspeech2
Attention
LAS
CTC + LAS
4. 성능 평가
- 성능 평가 메트릭으로 많이 사용 되는 것은 Edit distanse를 사용한 Character Error Rate와 Word Error Rate가 있다.
- 영어에는 WER을 한글에는 CER을 주로 사용한다.
https://www.youtube.com/watch?v=OglqDo44zpQ&t=1494s
TUNiB의 김수환님의 발표를 요약 정리한 글입니다