GN⁺: StyleTTS2 – 오픈소스 Eleven-Labs 품질의 텍스트 음성 변환 기술
(github.com/yl4579)인간 수준의 텍스트-투-스피치 모델, StyleTTS 2
- StyleTTS 2는 스타일 확산과 대규모 음성 언어 모델을 사용한 적대적 학습을 통해 인간 수준의 텍스트-투-스피치(TTS) 합성을 달성함.
- 이 모델은 참조 음성 없이 텍스트에 가장 적합한 스타일을 생성하기 위해 확산 모델을 통해 스타일을 잠재 랜덤 변수로 모델링함으로써 효율적인 잠재 확산을 달성함.
- 대규모 사전 훈련된 음성 언어 모델을 차별자로 사용하고, 새로운 차별화 가능한 지속 시간 모델링을 통해 끝까지 학습을 진행하여 음성의 자연스러움을 향상시킴.
준비 사항
- Python 버전 3.7 이상이 필요함.
- StyleTTS 2 저장소를 클론하고 필요한 파이썬 요구 사항을 설치함.
- LJSpeech 데이터셋을 다운로드하고 24 kHz로 업샘플링하여 데이터 폴더에 압축 해제함.
- LibriTTS 데이터셋을 사용할 경우, train-clean-360과 train-clean-100을 결합하고 폴더 이름을 train-clean-460으로 변경해야 함.
훈련
- 첫 번째 단계 훈련과 두 번째 단계 훈련을 순차적으로 실행할 수 있으며, 모델은 특정 형식으로 저장됨.
- 데이터 목록 형식은
filename.wav|transcription|speaker
이어야 하며, 다중 발화자 모델의 경우 스타일 확산 모델 훈련을 위해 참조 오디오 샘플링이 필요함.
중요한 설정
-
config.yml
파일에는 SLM 적대적 학습을 위한 OOD(out-of-distribution) 텍스트 경로, 훈련을 위한 최소 및 최대 길이, 다중 발화자 모델 훈련 여부, OOM(out-of-memory) 문제를 방지하기 위한 배치 백분율 등 중요한 설정이 포함됨.
사전 훈련된 모듈
- ASR 폴더에는 사전 훈련된 텍스트 정렬기가, JDC 폴더에는 사전 훈련된 피치 추출기가, PLBERT 폴더에는 사전 훈련된 PL-BERT 모델이 포함되어 있음.
일반적인 문제
- 손실이 NaN이 되는 문제와 메모리 부족 문제에 대한 해결책으로 배치 크기 조정이나
max_len
값을 낮추는 방법이 제시됨.
파인튜닝
-
train_second.py
스크립트를 수정하여 DP를 사용하는 파인튜닝 스크립트를 제공하며, DDP는 현재 작동하지 않음.
추론
- LJSpeech와 LibriTTS 데이터셋에 대한 추론을 위한 노트북 파일을 참조하며, LibriTTS를 위해서는 참조 오디오 파일이 필요함.
- 사전 훈련된 StyleTTS 2 모델을 다운로드할 수 있으며, 사용 전에 합성된 음성 샘플이 StyleTTS 2 모델에 의해 생성되었음을 듣는 사람에게 알리거나, 사용 허가를 받은 목소리를 사용해야 함.
GN⁺의 의견
이 글에서 가장 중요한 것은 StyleTTS 2가 인간 수준의 TTS 합성을 달성했다는 점이며, 이는 스타일 확산과 대규모 음성 언어 모델을 사용한 적대적 학습의 잠재력을 보여줌. 이 기술은 음성 합성의 자연스러움을 크게 향상시키고, 참조 음성 없이도 다양한 스타일을 생성할 수 있는 능력을 제공함으로써, 음성 기반 인터페이스와 디지털 어시스턴트의 발전에 큰 영향을 미칠 수 있음.
Hacker News 의견
-
StyleTTS2를 사용한 100% 로컬 음성 챗봇 개발 경험
- StyleTTS2와 Whisper, OpenHermes2-Mistral-7B 등 오픈 소스를 활용해 만든 챗봇은 ChatGPT보다 훨씬 빠른 반응 속도를 자랑함.
- 기존 음성 비서와 달리 자연스러운 대화가 가능하며, 특히 12GB Nvidia GPU를 탑재한 윈도우 게이밍 PC에서 한 번의 클릭으로 설치 및 대화가 가능함.
- 데모는 다소 불안정하지만 (헤드폰 필요, 콘솔 앱으로 실행 등), 오픈 소스 조합으로 게이밍 PC에서 실행 가능한 미래의 가능성을 엿볼 수 있음.
-
StyleTTS2의 음성 품질에 대한 개인적인 의견
- 음성은 매우 좋지만, 사용하기 전에 자신이 선호하는 쾌적한 음성으로 클론을 원함.
-
StyleTTS2 설치 및 사용 경험 공유
- StyleTTS2를 테스트한 경험과 지역 설정에 유용할 수 있는 단계별 메모 공유.
- LJSpeech 모델과의 속도/품질 비교에서 StyleTTS2는 매우 빠르고 품질도 좋음.
-
StyleTTS2의 설치 및 작동에 대한 경험
- 문서화가 다소 불완전하여 설치가 약간 까다로웠지만, 약 20분 후에는 WSL Ubuntu 22.04에서 잘 작동함.
- 음질이 매우 좋고, 특히 4090 GPU를 사용할 때 매우 빠름.
- Eleven Labs의 품질에는 미치지 못하지만, Eleven의 강점은 고품질의 다양한 음성 라이브러리와 단 5분짜리 샘플로 놀랍도록 잘 작동하는 즉각적인 음성 클로닝 기능임.
- 이러한 기능을 완전히 오픈 소스 프로젝트에서 사용할 수 있기를 기대함.
-
StyleTTS2 음성 예제와 실제 음성의 비교
- TTS2 음성 예제가 실제 음성보다 더 자연스럽게 들림.
- 오디오북이 없는 ePub 파일, 특히 일본의 라이트 노벨 등을 위해 이 기술을 사용하는 데 흥분됨.
-
StyleTTS2의 음질에 대한 평가
- 음질이 매우 뛰어나며, 2000년대 초반에는 상상할 수 없었던 수준임.
- LLM이 캐릭터를 맡고 TTS가 NPC에게 목소리를 제공하는 게임에 흥미로운 전망이 있음.
-
StyleTTS2의 제목과 내용에 대한 의견
- 현재 해커뉴스의 제목은 "StyleTTS2 – 오픈 소스 Eleven Labs 품질의 텍스트 투 스피치"이지만, 실제 제목이나 arXiv 논문에는 Eleven Labs에 대한 언급이 없음.
- 이러한 편집적인 표현에 대해 우려의 목소리를 나타냄.
-
StyleTTS2의 추론 시간에 대한 질문
- 현대 CPU에서의 추론 시간에 대한 대략적인 추정치에 대한 질문.
-
StyleTTS2의 라이선스에 대한 질문
- 라이선스가 MIT가 아니므로 상업적인 용도로 사용할 수 없는지에 대한 질문.
-
텍스트 투 스피치 모델에 대한 마켓플레이스 전망
- Civitai 스타일의 LoRA 마켓플레이스가 텍스트 투 스피치 모델에도 등장할지에 대한 궁금증.