순서 | 데이터 | 작업 | 결과 |
---|---|---|---|
1 | 음성 + 음악(잡음) | 사용자가 발화하여 스피커에 명령어를 전달(ex. '음악 정지') | Raw speech signal이 스피커에 전달됨 |
2 | 음성 + 음악(잡음) | 잡음 제거(전처리)(음원 분리) | 음악이 제거된 음성 |
3 | 음악이 제거된 음성 | 발화 내용 인식(음성인식) | 인식 결과 TEXT |
4 | 인식 결과 TEXT | 발화 내용 해석(자연어처리) | 조작 명령 |
5 | 조작 명령 | 응답 혹은 가전 조작 | 명령어가 실행됨 |
모듈 | 역할 |
---|---|
음향 모델 | 음성 특징과 음소열 간 확률을 계산하는 모델. 음소란 /a/와 /i/ 같은 모음, /k/와 /s/ 같은 자음으로 구성된 소리의 최소 단위다. 음향 모델은 소리를 듣고 어떤 음소에 가장 가까운지 각 음소별 확률을 계산한다. |
발음 사전 | 음소열과 단어 간의 관계를 다루는 모델. 발음 사전은 이름 그대로 "인사: /i/n/s/a"와 같이 단어와 발음(음소열)이 기술된 목록이다. 인지한 발음을 발음 사전에 있는 단어와 대응시키기 위해 사용함. |
언어 모델 | 어떤 단어에 대해 해당 단어가 발화될 확률을 계산. 예를 들어 바로 앞 단어가 "좋은" 이라면, "질병"보다는 "날씨"일 확률이 높을 것이다. 음성의 유사도와 별개로 문맥적으로 어떤 단어가 등장할 확률이 높은지를 계산한다. |
영어 문장을 많이 읽은 사람일수록 영어 실력이 빠르게 향상되는 것과 같이, 언어 모델에 많은 문장을 제공함으로써 더 많은 문맥 정보를 학습시킬 수 있음.
위와 같이 모듈로 분리된 3단계 음성인식 모델에서는, 각각의 모듈의 출력값을 적절하게 통합해 최종 음성인식 결과를 출력하는 "디코더"라는 처리 과정이 존재한다. 디코더 구현은 난이도가 매우 높은 작업이며, 음성인식 모델 구현에 있어 가장 큰 장애물 중 하나다.
이때까지 음향 모델은 은닉 마르코프 모델, 혼합 정규분포 모델을 조합하여 구축됨.
* 참고: 은닉 마르코프 모형(위키피디아)
딥러닝 기술의 발전으로 인해 혼합 정규분포가 딥러닝 모델로 전환되면서 음성인식의 정확도가 획기적으로 향상됨.
음향 모델, 발음 사전, 언어 모델을 하나의 딥러닝 모델로 표현하는 End-to-End 모델 등장
* End-to-End: 종단 간. 즉, 처음부터 끝까지 모두 포함한다는 의미.
End-to-End 모델은 디코딩 후처리가 존재하지 않기 때문에, 3단계 모듈로 분리된 음성인식 모델과 달리 비교적 간단하게 구현할 수 있다. 다만, End-to-End 모델은 기존 기법이 해결하고자 하는 고유의 문제들을 해결하기 위해 등장했으므로, 과거 방법론들을 깊이 이해하지 않으면 End-to-End 모델을 올바르게 이해할 수 없다.
이 글은 파이썬으로 배우는 음성인식(다카시마 료이치, 2023) 를 읽고 정리한 내용입니다.
내용상 문제가 있다면, 댓글을 통해 지적해 주시면 감사하겠습니다.
[인용]