프로젝트를 위해 유용한 라이브러리나 도구들을 서칭하던 도중 발견한 아주 귀한 녀석이다.
이번엔 이녀석에게 빨아먹을수 있는 기능들을 최대한 단시간 내에 빨아먹어보도록 하겠다.
ESP net
ESPnet: end-to-end speech processing toolkit
end-to-end 발화 관련된 처리 모델을 같은 규격으로 모아놓은 툴킷이다.
이 레파지토리만 따로 리뷰를 하는 이유는 여기 하고자하는게 거의 다들어가있기 때문이다.
ESP net 에서 다루는 도구들은 다양하게 있는데 그중 사용해볼수 있을법한 도구들은 다음과 같다.
ASR: Automatic Speech Recognition
이전 에 했던 Speech to Text 모델들이 있다. ASR이라고도 부른다.
TTS: Text-to-Speech
이전 에 조사했던 Text to Speech 모델들이 있다.
SE: Speech Enhancement (and Separation)
발화 데이터를 Separate Speech를 하면 Single Speaker일 경우 denoising 해주는 모델이 있고.
Multi Speaker일 경우 발화자A, 발화자B 이런식으로 분리된 음성으로 나누어주는 모델이 있었다.
ST: Speech Translation & Machine Translation
흔히 아는 음성 번역이다.
VC: Voice Conversion
목소리를 변환한 음성을 만들어주는 모델이다.
SVS: Singing Voice Synthesis
노래하는 목소리 생성 모델이다.
Docker 실행
도커에서 성공적으로 ESPnet을 돌렸다. 튜토리얼대로 똑같이하면 아무런 문제없이 잘 돌아갔다.
튜토리얼에서는 Demo 버전을 웹을 이용해서 테스트 할수있는 여러 환경을 구성하고있다.
기존에 Docker compose를 이용해 메인 컨테이너랑 묶어 해당 모델을 사용하려고 했으나 당장의 프로토타이핑 스탭에서 Docker를 사용하지 않기로 했다.
여담
우선 해당 프로젝트는 1인개발 프로젝트여서 다중환경을 지원할 필요성이 크게없다.
(하지만 나중에는 Docker에 올려야한다는 생각정도는 가지고있다.)
다만 만드는 과정에서 Docker환경에 맞춰서 개발하기 좀 고달프다. 그이유는 음성 인식 부분을 마이크 입력이 아닌 웹규격이나 소켓 데이터 스트림으로 구현해야한다는 점 때문이다. 그렇기에 이러한 부분에 대해서 고민할 부분을 조금 뒤로 미루기위해 여러 시도와 실험 끝에 잠깐 Docker 사용을 놔주기로했다.
Test
Espnet에서 가장 유용하다고 생각한 부분은 역시 TTS모델을 다양하게 사용할 수 있다는 점이였다.
그중 테스트해본 여러 모델들중 괜찮다는 생각이 든 모델들을 정리해보겠다.
Espnet model zoo를 사용하면 다음과 같이 매우 간단하게 huggingface에서 모델을 이용해서 음원을 만들수있다.
속도는 약간 아쉬운 느낌이긴 하지만 아쉬운건 CPU기준이고 GPU로 한다면 매우 높은 성능이 나올거라고 기대하고있다.
(다크한 일본 캐릭터 느낌) cc by 4.0
(귀엽고 시니컬한 일본 캐릭터 느낌) cc by 4.0
mio 라는 유저의 TTS모델인데 우선 목소리 자체가 애니메이션 캐릭터의 목소리를 이용하여 학습한거라 깔끔하다.
일본어에서 가장 괜찮았던건 다음 2개이다.
(밝고 명랑한 한국어, 약간 옜날 애니메이션에 밝고 명랑한 여자 캐릭터같은 느낌 이다.) cc by 4.0
조금 아쉬운점은 ESP net의 레시피로 만들어진 한국어 모델이 거의 없었고 전부다 테스트 해봤지만 잘 돌아가는 것도 별로 없었다.
한국어에서는 다음의 모델이 가장 괜찮았다. 한국어의 언어 특성을 보정하기위한 문장을 발음으로 바꿔주는 g2pk를 추가설치해줘야한다.
(평범한 젊은 느낌은 아닌 영어, 약간 어색하다고 느꼈다. 가장 인기있는 모델.) cc by 4.0
모델 총평 :
1. 일본어 모델은 영어도 못말하고 알파벳으로 말한다. -> 일본발음으로 해결하도록 추가적으로 로직을 만들어줘도 되지만 영 빠진다.
2. CPU기준 약간 버벅거림 있다. 체감생성시간 0.8초
(나중에 langsmith 찍어보겠다. 그래도 이정도면 맥북 CPU인데 빠르다고 생각된다.)
3. 한국어 모델은 거의 없다. 골라서는 못할것 같다.
4. 라이센스는 다 CC by 4.0이다 저작권 명시만 하고 쓰면 될것같다.
5. 여기서 테스트해본 TTS말고도 다른 기능들도 테스트를 해봤는데 상당히 유용한 프로젝트인것 같다. 일단은 TTS만 사용하겠다.
'2. Development > 메타휴먼 프로젝트' 카테고리의 다른 글
11. 프로토타입 0.0.1 아키텍처 설계, 개발 및 평가 (1) | 2024.04.03 |
---|---|
번외2. 파이썬 Boilerplate 구성 (Python, Docker, DevContainer, Pipenv) (1) | 2024.03.26 |
9. 프롬프트 엔지니어링에 대한 정리 (논문, 프롬프트 기법) (0) | 2024.03.24 |
번외1. 파이썬 프로젝트 환경 (Pyenv, Pipenv) (0) | 2024.03.16 |
8. 버추얼 캐릭터 개발 정리 (Live2d) (작성중) (2) | 2024.03.07 |