서론 |
TTS는 메타휴먼 서비스에서 매우 중요하다.
STT는 대화 품질면에서의 성능을 간접적으로 올려준다면, TTS는 결과의 품질만으로 사용자 경험을 매우 다르게 바꿔놓는다.
어쩌면 버추얼 휴먼의 생명이라고도 할 수 있을정도로 중요하지 않나라고 생각한다.
가볍게 왜 TTS가 중요한지와 TTS모델에 대한 조사를 해보도록 하겠다.
본론 |
TTS가 중요하다고 생각하는 이유
조금 웃기긴 하지만, Mehrabian의 법칙에 따르면, 사람이 감정을 전달할 때 메시지의 세 가지 요소인 단어, 목소리 톤, 표정은 다른 사람이 그 사람을 얼마나 좋아하는지 기여한다고 한다.
구체적으로 호감도는 말의 내용 7%, 목소리 톤이 38%, 표정이 55%를 차지한다고 한다.
TTS를 잘 선택하는 것은 어쩌면 해당 캐릭터 이미지를 향상 시키기에 아주 중요한 일이라고 할 수 있겠다.
모델 1 : Google TTS (gtts)
일단 조사한 모델중 가장 쉽게 사용할 수 있는 TTS 모델이다. 가장쉽게 사용할 수 있고, 테스트 할 정도는 무료로 사용할 수 있다는 점이 가장 좋은점이다.
한국어, 일본어, 영어로 테스트 해봤는데, 한국어는 남자 성우, 일본어, 영어는 여자 성우 고정이다.
목표하는 TTS는 한국어 혹은 영어의 여자 성우 임으로 일단은 해당 모델을 이용하여 영어로 개발을 해볼까 한다.
우선 가장 쉽고 편리하게 사용할 수 있는 해당 모델을 선택했지만, 이후 확장 가능성을 위해 조금더 모델을 좀더 정리해보기로 했다.
모델 2 : Tacotron2
해당 논문은 필자가 2019년 논문리뷰 스터디에서 우연히 관심사가 맞아 선정했다가 상당히 높은 난이도에 호되게 당한 논문이다.
구글에서 2018년에 발표한 논문이며 Text, Audio pair set으로 학습을 할 수 있는 end-to-end 모델이며, 높은 품질의 음성을 생성한다는 것이 당시 굉장히 핫한 포인트였다.
간단하게 요약하면 2개의 작업으로 오디오 처리가 이루어지는데, 입력을 Encoder, Attention, Decoder 스텝을 거쳐 Spectrogram을 생성하는 단계, 그 뒤 Spectrogram을 WaveNet에 태워서 음성 샘플로 만드는 단계로 2개의 단계를 연결하여 end-to-end로 처리되는 모델이다.
해당 모델은 LSTM을 기반으로하고 있기에 Transfomer를 Back-bone으로 사용하는 요즘 트렌드에는 뒤쳐지진 않았나 하는 느낌이 들기는 하다만, 오픈소스로 공개되어있는 구현체들이 많기때문에 접근성 좋은 모델임은 확실하다.
모델 3 : Coqui AI Open Source Project
TTS 오픈소스 프로젝트이다. 굉장히 다양한 오픈소스들을 해당 레파지토리에 모아놓은 형태이다.
굉장히 다양한 TTS모델이 있었고, docker로 구성된 파일이 같이 있어서 쉽게 데모를 돌려 볼 수 있었다.
목소리를 깔끔하게 만드는 AI들에 대하여 latency가 많이 걸리면 못쓸텐데 하면서 걱정했는데 굉장히 빠르게 돌아가는 모습을 보였고,
GPU on/off가 있어서 더 좋았다.
하지만 해당 프로젝트의 라이센스는 MPL 2.0이다.
테스트로 돌리는건 괜찮겠지만 배포시 코드공개의 원칙이 있다. 만약 해당 프로젝ㅌ의
배포할지 안할지는 잘 모르겠지만, 최대한 제약이 걸려있지 않은 모델을 쓰고 싶기 때문에 직접 쓰기는 조금 부담스럽다고 생각했다.
해당 Demo에서 테스트 해본 결과 상당히 성능이 좋았던 모델들을 조금 추려보겠다.
모델 4 : VITS (Variational Inference with adversarial learning for end-to-end Text-to-Speech)
해당 모델은 End-to-End 영어 모델로 한국 사람이 쓴 논문이었는데, tacotron2 처럼 end-to-end 모델이다.
Demo로 사용해봤는데 매우 자연스러운 목소리가 났다.
일단 해당 논문을 자세하게 읽어보지는 않았지만 간단하게 보았을때, 일반적으로 음성 생성모델은 음성 표현 (e.g spectrogram)형식으로 생성하는 모델, 표현 형식을 오디오로 변환하는 모델 이렇게 둘로 나뉘는데.
해당 모델은 그런부분을 연결해서 만들었고, 통상적으로 이렇게 모델을 합쳤을 때 생기는 성능 저하 문제도 해결했다는게 핵심이다.
그니까...요약하면 속도와, 성능 면에서는 tacotron2보다 더 높은 수준이라고 할 수 있는 것 같다.
기타 TTS
ESPnet (end-to-end speech processing toolkit)
STT, TTS, ASR, SE, ST, VC, SLU ..... 등 인공지능 대화에 필요한 여러가지 도구와 모델들을 모아놓은 모델이다.
라이센스도 Apache 2.0이기도 하고 정말 딱 필요한 도구들을 모두 모아놓은 프로젝트인 것 같다. 사용에 난이도는 어느정도 있어보이나 해당 프로젝트에서 제공하는 튜토리얼이 있음으로 사용해볼만 한 것 같다.
TTS조사하다가 발견해서 여기에 적었지만, 매우 다양한 기능을 제공하는 유용한 프로젝트임으로 나중에 더 자세하게 따로 사용해보고 포스팅 해보도록 하겠다.
카카오 클라우드 TTS
들어봤을 때 매우 품질이 좋고 깔끔했지만, 사용하기 위해 카카오 클라우드 계정이 있어야하며, 사업자가 있어야 이용할 수 있었다.
유료임을 알면서도 데모음성을 듣자마자 이거 써야겠다 싶었는데 아쉽다.
결론 |
우선 이 프로젝트에서는 ESPnet을 사용해보기로 했다.
선정 기준은 아래와 같았다. 이또한 언제든지 바뀔 수 있으니 일단 해당 모델을 사용할 것이다.
1. 무료로 사용할 수 있음
2. Latency가 낮음
3. 빠르게 테스트 할 수 있음
4. 품질 높은 Pretrained Model이 있음
'B급 개발물 > 메타휴먼 프로젝트' 카테고리의 다른 글
6. 첫번째 POC 개발 및 테스트 (0) | 2024.03.04 |
---|---|
5. 대화 History와 Retrieval 정리 (0) | 2024.03.02 |
4. LLM 모델조사 (0) | 2024.03.01 |
2. STT 구현 고찰 및 모델 조사 (0) | 2024.02.24 |
1. 버추얼 휴먼 개발 프로젝트 (0) | 2024.02.24 |