- 텍스트를 입력으로 받았을 때, 그 텍스트를 말해주는 기술 (TTS: Text-to-Speech)
- 적용
- 음성 안내 시스템: 지하철, 버스, 박물관
- 대화 인공지능: Siri, 클로바 스피커
- 오디오북: 네이버 nVoice(유인나)
- TTS API(Application Programming Interface)
- NAVER: Clova Speech Synthesis(CSS)
- KAKAO, Google
- 데이터
- 텍스트와 음성이 필요
- 데이터 프로세싱
- 음성 추출
- 문장 별 자르기
- 텍스트와 음성 맞추기
- 데이터 프로세싱은 Google Speech API와 Text similarit를 통해 자동화
- 딥러닝 모델
- 텐서플로우 구현
- Tacotron
- Google Research 개발
- https://arxiv.org/abs/1703.10135
- 전통적인 방법은 텍스트를 토근화, 운율 분석, 음성들을 검색해서 합성하거나 모델이 생성, 음성
- Tacotron은 텍스트를 넣었을 때 음성이 바로 나오는 모델을 개발
- Encoder, Decoder, Attention, Vocoder로 구성
- Encoder: 텍스트 정보를 잘 나타내는 숫자로 나타냄 (텍스트 임베딩)
- Decoder: 이전에 만든 스팩트로그램(음성을 숫자로 표현하는 방법중 하나)을 받아 다음 스팩트로그램을 생성, 즉 음성이 되기 직전의 숫자들을 만듦 (Bidirectional-RNN 사용)
- Attention: Encoder와 Decoder를 연결, 어디에 집중한 것인가를 계산함 (일반화 Generalization)
- Vocoder: 스팩트로그램들을 음성으로 만들어주는 알고리즘 (Griffin-Lim)을 통해 음성 생성
- Deep Voice 2
- Baidu Research 개발
- https://proceedings.neurips.cc/paper/2017/hash/c59b469d724f7919b7d35514184fdc0f-Abstract.html
- N명의 목소리를 하나의 모델로 만들어 낼 수 있음 (Multi-speaker Attention)
- Speaker Embedding을 사용 (발화자의 특징을 숫자로 표현)
- 완벽하지 않은 데이터가 있더라도 완벽한 데이터를 기반으로 학습을 도와줌
- 기타 자료
- [Taehoon Kim] Multi-Speaker Tacotron in TensorFlow: https://carpedm20.github.io/tacotron/en.html
- [Taehoon Kim] GitHub: https://github.com/carpedm20/multi-Speaker-tacotron-tensorflow
- [Taehoon Kim] Slide: https://www.slideshare.net/carpedm20/deview-2017-80824162
- Deep Voice를 이용한 TTS 김앵커: https://melonicedlatte.com/machinelearning/2018/07/09/141346.html
- Baidu Deep Voice 번역: https://junn.net/archives/7812
- Mozilla-TTS: https://github.com/mozilla/TTS
- Deep Vocie3 Pytorch: https://github.com/r9y9/deepvoice3_pytorch
- Deep Vioce3 돌려보기: https://uos-deep-learning.tistory.com/20
- 말하는 인공지능 WikiDocs: https://wikidocs.net/79627
- Selvy Speech: https://speech.selvasai.com/
Tacotron.pdf
0.49MB
Deep Voice 2.pdf
0.85MB