베이스 아카이브
음성을 인식하는 과정? 어떤 원리일까? 본문
안녕하세요 !
오늘은 음성인식은 어떤 원리를 통해 이루어지는 지에 대해
가볍게 알아보겠습니다.
현재 우리 주변에는 이미 음성인식이 가능한 많은 제품들이 있습니다.
이러한 제품들이 사람의 말을 인식하는 방법은 과연 어떤 원리일까요?
먼저 '음성'임을 인식하는 과정이 필요합니다.
'음성인식이니까 당연히 음성 아니야?'라고 생각하실 수도 있지만
우리의 귀에 들리는 소리에는 여러 가지 소리가 섞여있듯이
컴퓨터 역시 마이크로 들어온 소리 중에서 필요한 음성만을 검출해야 합니다.
기본적으로 녹음된 소리에서 음성을 검출할 때는
사람의 목소리를 특정할 수 있는 주파수 대역을 뽑아냅니다.
여자는 200~250hz, 남자는 100~150hz
대역의 음성으로 판단되는 변화가 존재할 때 이를 음성인식에 사용합니다.
물론 해당 대역의 모든 소리가 음성은 아니기 때문에
실제로는 잡음 제거 등의 기술도 병행하여
음성에 해당하는 정보만 얻게 됩니다.
이제 이렇게 얻어진 음성에서 특징을 추출하게 되는데요,
녹음된 음성을 초당 50회 정도로 쪼깬 다음,
음성이 변화하는 특징을 수치화하여 분석하기 쉽게 전처리하는 것입니다.
이제 이 각각의 데이터 간의 변화,
일명 '특징 벡터'를 구하여
쪼개진 데이터가 어떤 음소에 매칭 되는지를 만들어내는 과정인
음향 모델링을 진행하게 됩니다.
현재의 음향 모델링은 대부분 딥러닝을 통해 이루어지고 있습니다.
딥러닝에는 문장과 음성이 매칭 된 기본 데이터가 필요하기 때문에
정해진 원고를 사람이 읽게 하여 데이터를 만들거나
무작위로 수집된 음성을 사람이 직접 받아쓰기하는 식으로
수작업을 동원하여 학습 데이터를 만드는 과정이 필요합니다.
이러한 학습데이터를 기반으로
앞서 만들어진 특징 벡터와의 비교를 통해
음성 데이터의 변화가 개별 음소에 매칭 될 확률을 학습하는 것입니다.
문제는 이렇게 구해진 확률은
단지 음소가 나타날 확률이기 때문에
가장 높은 확률끼리 합친다면 이상한 단어로 인식될 수도 있습니다.
이때 필요한 것이 언어 모델입니다.
언어 모델은 자주 사용하는 문장들을 학습하여
음성의 인식 결과가 문맥에 맞는 단어로 매칭 될 수 있도록
통계적인 확률 값을 구하는 것을 말합니다.
예를 들어 앞선 음성 모델을 통해서
음소별로 확률을 조합했을 때
가장 높은 확률로 나타난 단어가
기본, 다음이 기반, 그다음이 기분이었다고 가정해보겠습니다.
전체 문장이 "나는 OO이 나쁘다" 라면
가장 확률이 높았던 기본이라는 단어보다는 문장의 의미상 기분이라는 단어가 더 적절하겠죠?
따라서 많은 문장을 언어 모델로 학습할수록
문맥을 고려하여 음성을 더욱 정확하게 인식시킬 수 있습니다.
이제 실제 사용자가 음성을 입력하면
학습과정을 거친 음성 모델 및 언어 모델을 통과시켜
'기분'이라는 단어가 가장 확률이 높은 문장으로 변환하게 되는 것입니다.
결국 음성인식의 정확성은
기존의 인간의 음성과 문장을 많이 학습시키는 것이 관건인데요,
최근의 음성인식의 성능이 향상된 이유는
결국 네트워크를 통해
실시간으로 익명화된 음성 데이터를 수집하고 학습할 수 있는
환경이 마련됐기 때문입니다.
또한 구글이나 아마존, 국내의 네이버나 카카오 등은
각 회사가 구축한 학습 데이터를 기반으로
인터넷을 통해 음성인식 API를 제공하기 때문에
대규모의 음성 학습과정을 따로 진행하지 않아도
음성인식 프로그램을 굉장히 쉽게 만들 수 있습니다.
음성인식 원리에 대해 가벼운 이해가 되셨나요?!
이 포스팅이 도움이 되셨길 바랍니다!
그럼 다음 포스팅으로 찾아뵙겠습니다.
감사합니다.
'IT > 지식정보' 카테고리의 다른 글
VPN에 대해 알아보자! (3) | 2022.02.04 |
---|---|
컴퓨터 바이러스와 백신 (7) | 2022.01.26 |
'국세청 연말정산' 보안 허점 발견?! (7) | 2022.01.21 |
기본 개발 용어 알아보기 - 빌드, 배포 (2) | 2022.01.20 |
기본 개발 용어 알아보기 - 디버그, 컴파일러, 인터프리터 (6) | 2022.01.19 |