(태그가 깨져 재업합니다 ㅜ)
딥러닝 기반 수도권전철 안내방송 TTS (음성합성시스템) 구축 (0 - 소개)
Team DeepRAIL (Railroad Announcement Improvement with Deep Learning)
(* 스압주의 - 스크롤 내리면 세줄 요약 있음)
0.
이번에 코레일 안내방송 개정이 상당히 말이 많은 상황입니다.
아시다시피 강희선 성우의 기존 안내방송을 TTS로 바꾸면서 상당히 발음이 부정확하고, 불편한 억양의 결과물이 나오게 되었는데요,
저희 팀에서는 일반에 무료로 공개되어 있는
- 서울교통공사 1/2/3/4 호선 안내방송 자료 (Link)
- 국립국어원 <서울말 낭독체 발화 말뭉치> (2007) (Link)
만을 활용하여
기존 코레일 안내방송을 최대한 재현하는 TTS(음성합성 시스템)을 딥러닝 기반으로 구축하는 프로젝트를 최근 시작하였습니다.
아직 초기단계지만, 꽤 유의미한 결과가 나와 이렇게 공유합니다.
차후 연재글을 통해 신경망 구축 및 훈련 방법, 그리고 관련 자료를 공유하도록 하겠습니다.
1. 현재까지의 결과
먼저, 결과는 다음과 같습니다.
2. 타 안내방송과의 비교
디지털미디어시티(경의중앙선) 역에서의 기존 안내방송, 딥러닝으로 합성한 안내방송, 그리고 코레일 2018.7 개정 TTS 안내방송 (동대문역)을 비교해 보았습니다.
한편 코레일에서는 최근 TTS 개정을 3가지 이유를 들면서 옹호했는데요
(출처 - http://gall.dcinside.com/board/view/?id=train&no=1018882 )
a. 즉시 원하는 문장 생성 가능
b. 공휴일/연휴에 맞춤식 안내방송 서비스 제공 가능
c. 비용 절감
이들은 더 열악한 환경에서 개발된 딥러닝 기반 시스템에서도 모두 만족되는 특성입니다.
a. 즉시 원하는 문장 생성 가능
딥러닝 기반 시스템이라도, 음성 합성 단계에서는 CPU만을 이용해서도 충분히 빠른 속도로 음성을 합성할 수 있습니다.
(Intel I7-4790k 기준 58글자, 17단어 문장에서 5초 소모. 긴 문장에서는 약 10초 소모)
비록 신경망을 훈련하는데 사용한 안내방송 데이터는 매우 제한적인 틀에 박힌데다, 1~4호선 자료만 있어 매우 제한적(총합 약 40분)이지만, 본 프로젝트에서는 일반적인 안내방송이 아니더라도 음성을 어느정도 수준에서 합성하는데 성공하였습니다.
(사용한 기법에 대해서는 추후 연재에서 설명하도록 하겠습니다.)
b. 공휴일, 연휴에 맞춤식 안내방송 서비스 제공 가능
민원 답변에서 나온 "어린이날에 어린이 목소리로 정차역 안내방송"이 나온다는 말은, 상황에 따라 목소리의 성별과 연령을 변경 가능하다는 뜻 일겁니다.
본 시스템에서는 국립국어원 자료를 활용하여, 한 신경망에서 이론적으로 안내방송 성우 목소리를 포함한 118가지의 목소리를 구현할 수 있습니다. (남/여 20~70대)
필요할 때마다 다시 로딩할 필요 없이 그때 그때 목소리를 바꿀 수 있는 것입니다.
아래는 국립국어원 20대 여성/20대 남성화자 설정으로 합성된 음성입니다.
이 시스템은 특히 딥러닝 기반 시스템이라, 충분한 양과 질의 음성 데이터만 있다면 특정 사람의 목소리를 재현할 수 있습니다. 현재에도 종합운동장 안내방송은 선수 목소리로 이뤄지는 경우가 많은데, 딥러닝을 적용한다면 일반적인 멘트뿐만 아니라, 시즌 별로 경기 상황과 정보를 받아서 실시간으로 특정 선수 목소리로 안내방송을 할 수 있지 않을까요?
c. 비용절감
먼저, 이 결과물을 훈련하는데 사용한 데이터들은 위에서 말한것과 같이 각각 서울교통공사와 국립국어원에서 일반에 무료로 공개한 자료입니다.
또한, 본 신경망을 훈련하는데 쓰는 GPU는 NVIDIA GTX1060(6GB) 입니다. (음성합성 단계에서는 GPU가 없어도 무방합니다.) . 배그는 중옵으로 돌아가던가요? 제가 돌리는 PC는 좀 오래된 사양에 GPU만 추가한 것이라 중옵도 어려울 겁니다. :P
훈련 과정 자체는 약 3일 걸렸습니다.
3. 추후 계획
- 전반적으로 발생하는 ‘걸걸거리는 소리’의 경우 현재 사용하는 vocoder 알고리즘(Griffin-Lim)의 한계로, 이 파트도 딥러닝 기반 WaveNet을 적용하여 해결하는 작업이 진행중입니다. (다른 데이터세트에서는 유의미한 효과를 보았으나 이 작업을 위해 필요한 신경망 훈련만 해도 1주 넘게 걸립니다. 최근 계속 훈련 돌리고 있으니 조금 더 기다려주세요 ㅜㅜ)
- 특정 발음에서만 발생하는 기계음은 데이터 부족으로 생기는 현상입니다. 현재 공개되어 있는 안내방송 중 기존 코레일 안내방송 성우 분이 담당하신 노선은 서울교통공사 관할 1/2/3/4 호선밖에 없어 데이터가 상당히 부족한 상황입니다(보정 후 한글 데이터 기준 약 40분). 혹시라도 공개되었던 코레일 안내방송 자료를 가지고 계시면 공유해주시면 감사하겠습니다.
- 영문 파트의 경우 현재 한국어 역명을 정확하게 발음하도록 훈련하는 작업을 관련 학과 학생의 도움을 얻어 진행중입니다.
마지막으로 실험 삼아 만들어 본 자료입니다. :)
Team DeepRAIL (engiecat, mecatos95d)*
* In alphabetical order
http://m.dcinside.com/list.php?id=raliwayem
여기도 올려주세요 ㅠ - dc App
ㄴ 정보 감사합니다. 조만간 확보해보아야겠네요.
목소리나 억양은 우리가 듣던 그게 맞는데 소리는 로봇이 소리 합성해서 내는 것 같은 느낌이 있음. 이 점도 단계를 충분히 거치면 개선이 가능함?
이건 ㄹㅇ...올라가라! 진짜 이거임. ㄹㅇ 루
어도비에서 사람의 말을 일부 녹음한 다음에 TTS처럼 사용할 수 있는 기술을 시연했던 것 같은데
대단하네
말이 약간 빠르다
그런데 걱정되는 점은... 음성 자료가 무료로 공개되어있긴 하지만 음성합성 등 2차 제작 및 배포를 해도 저작권상 문제가 없는지요? - dc App
https://www.youtube.com/watch?v=cNeWM-d1cEw
인공지능 김상중
한국어는 tts가 어색하지 않음... 쉼표 적당히 넣고 하면
추추ㅜ추추춫