질문과 토론은 전용 채널을 이용해 주세요. 더 많은 사람들이 혜택을 누릴 수 있도록 공개적으로 공유하면 도움이 훨씬 더 가치가 있습니다.
유형 | 플랫폼 |
---|---|
버그 보고서 | GitHub 문제 추적기 |
? 기능 요청 및 아이디어 | GitHub 문제 추적기 |
? 사용법 질문 | GitHub 토론 |
? 일반 토론 | GitHub 토론 또는 불일치 |
유형 | 모래밭 |
---|---|
선적 서류 비치 | ReadTheDocs |
? 설치 | TTS/README.md |
? 기여하는 중 | 기여 중.md |
? 로드맵 | 주요 개발 계획 |
출시 모델 | TTS 릴리스 및 실험 모델 |
? 서류 | TTS 논문 |
밑줄 친 "TTS*" 및 "Judy*"는 오픈 소스로 출시되지 않은 내부 ?TTS 모델입니다. 그들은 잠재력을 보여주기 위해 여기에 있습니다. 점이 앞에 붙은 모델(.Jofish .Abe 및 .Janice)은 실제 사람의 목소리입니다.
Trainer API
기능을 갖추고 있습니다.dataset_analysis
아래에서 Text2Speech 데이터 세트를 관리하는 도구입니다.더 많은 모델을 구현하는 데 도움을 주실 수도 있습니다.
?TTS는 Python >= 3.9, < 3.12를 사용하는 Ubuntu 18.04에서 테스트되었습니다. .
출시된 ?TTS 모델로 음성을 합성하는 데에만 관심이 있다면 PyPI에서 설치하는 것이 가장 쉬운 옵션입니다.
pip install TTS
모델을 코딩하거나 학습시키려는 경우 ?TTS를 복제하고 로컬에 설치하세요.
git clone https://github.com/coqui-ai/TTS
pip install -e .[all,dev,notebooks] # Select the relevant extras
Ubuntu(Debian)를 사용하는 경우 다음 명령을 실행하여 설치할 수도 있습니다.
$ make system-deps # intended to be used on Ubuntu (Debian). Let us know if you have a different OS.
$ make install
Windows를 사용하는 경우 ?@GuyPaddock이 여기에 설치 지침을 작성했습니다.
Docker 이미지를 사용하여 설치하지 않고 TTS를 사용해 볼 수도 있습니다. 다음 명령을 실행하기만 하면 TTS를 설치하지 않고도 실행할 수 있습니다.
docker run --rm -it -p 5002:5002 --entrypoint /bin/bash ghcr.io/coqui-ai/tts-cpu
python3 TTS/server/server.py --list_models # To get the list of available models
python3 TTS/server/server.py --model_name tts_models/en/vctk/vits # To start a server
그런 다음 여기에서 TTS 서버를 즐길 수 있습니다. GPU 지원과 같은 도커 이미지에 대한 자세한 내용은 여기에서 확인할 수 있습니다.
import torch
from TTS . api import TTS
# Get device
device = "cuda" if torch . cuda . is_available () else "cpu"
# List available ?TTS models
print ( TTS (). list_models ())
# Init TTS
tts = TTS ( "tts_models/multilingual/multi-dataset/xtts_v2" ). to ( device )
# Run TTS
# ❗ Since this model is multi-lingual voice cloning model, we must set the target speaker_wav and language
# Text to speech list of amplitude values as output
wav = tts . tts ( text = "Hello world!" , speaker_wav = "my/cloning/audio.wav" , language = "en" )
# Text to speech to a file
tts . tts_to_file ( text = "Hello world!" , speaker_wav = "my/cloning/audio.wav" , language = "en" , file_path = "output.wav" )
# Init TTS with the target model name
tts = TTS ( model_name = "tts_models/de/thorsten/tacotron2-DDC" , progress_bar = False ). to ( device )
# Run TTS
tts . tts_to_file ( text = "Ich bin eine Testnachricht." , file_path = OUTPUT_PATH )
# Example voice cloning with YourTTS in English, French and Portuguese
tts = TTS ( model_name = "tts_models/multilingual/multi-dataset/your_tts" , progress_bar = False ). to ( device )
tts . tts_to_file ( "This is voice cloning." , speaker_wav = "my/cloning/audio.wav" , language = "en" , file_path = "output.wav" )
tts . tts_to_file ( "C'est le clonage de la voix." , speaker_wav = "my/cloning/audio.wav" , language = "fr-fr" , file_path = "output.wav" )
tts . tts_to_file ( "Isso é clonagem de voz." , speaker_wav = "my/cloning/audio.wav" , language = "pt-br" , file_path = "output.wav" )
source_wav
의 음성을 target_wav
의 음성으로 변환
tts = TTS ( model_name = "voice_conversion_models/multilingual/vctk/freevc24" , progress_bar = False ). to ( "cuda" )
tts . voice_conversion_to_file ( source_wav = "my/source.wav" , target_wav = "my/target.wav" , file_path = "output.wav" )
이렇게 하면 ?TTS의 모든 모델을 사용하여 음성을 복제할 수 있습니다.
tts = TTS ( "tts_models/de/thorsten/tacotron2-DDC" )
tts . tts_with_vc_to_file (
"Wie sage ich auf Italienisch, dass ich dich liebe?" ,
speaker_wav = "target/speaker.wav" ,
file_path = "output.wav"
)
Fairseq 모델의 경우 tts_models/<lang-iso_code>/fairseq/vits
이름 형식을 사용합니다. 여기에서 언어 ISO 코드를 찾고 여기에서 Fairseq 모델에 대해 알아볼 수 있습니다.
# TTS with on the fly voice conversion
api = TTS ( "tts_models/deu/fairseq/vits" )
api . tts_with_vc_to_file (
"Wie sage ich auf Italienisch, dass ich dich liebe?" ,
speaker_wav = "target/speaker.wav" ,
file_path = "output.wav"
)
tts
명령줄에서 음성을 합성합니다.
학습된 모델을 사용하거나 제공된 목록에서 모델을 선택할 수 있습니다.
모델을 지정하지 않으면 LJSpeech 기반 영어 모델을 사용합니다.
제공된 모델 목록:
$ tts --list_models
모델 정보 가져오기(tts_models 및 vocoder_models 모두에 대해):
유형/이름별 쿼리: model_info_by_name은 --list_models의 이름을 그대로 사용합니다.
$ tts --model_info_by_name "<model_type>/<language>/<dataset>/<model_name>"
예를 들어:
$ tts --model_info_by_name tts_models/tr/common-voice/glow-tts
$ tts --model_info_by_name vocoder_models/en/ljspeech/hifigan_v2
유형/idx별 쿼리: model_query_idx는 --list_models의 해당 idx를 사용합니다.
$ tts --model_info_by_idx "<model_type>/<model_query_idx>"
예를 들어:
$ tts --model_info_by_idx tts_models/3
이름으로 모델 정보 쿼리 정보:
$ tts --model_info_by_name "<model_type>/<language>/<dataset>/<model_name>"
기본 모델로 TTS를 실행합니다.
$ tts --text "Text for TTS" --out_path output/path/speech.wav
TTS를 실행하고 생성된 TTS wav 파일 데이터를 파이프아웃합니다.
$ tts --text "Text for TTS" --pipe_out --out_path output/path/speech.wav | aplay
기본 보코더 모델을 사용하여 TTS 모델을 실행합니다.
$ tts --text "Text for TTS" --model_name "<model_type>/<language>/<dataset>/<model_name>" --out_path output/path/speech.wav
예를 들어:
$ tts --text "Text for TTS" --model_name "tts_models/en/ljspeech/glow-tts" --out_path output/path/speech.wav
목록에서 특정 TTS 및 보코더 모델로 실행:
$ tts --text "Text for TTS" --model_name "<model_type>/<language>/<dataset>/<model_name>" --vocoder_name "<model_type>/<language>/<dataset>/<model_name>" --out_path output/path/speech.wav
예를 들어:
$ tts --text "Text for TTS" --model_name "tts_models/en/ljspeech/glow-tts" --vocoder_name "vocoder_models/en/ljspeech/univnet" --out_path output/path/speech.wav
자신만의 TTS 모델 실행(Griffin-Lim Vocoder 사용):
$ tts --text "Text for TTS" --model_path path/to/model.pth --config_path path/to/config.json --out_path output/path/speech.wav
자신만의 TTS 및 Vocoder 모델을 실행해 보세요.
$ tts --text "Text for TTS" --model_path path/to/model.pth --config_path path/to/config.json --out_path output/path/speech.wav
--vocoder_path path/to/vocoder.pth --vocoder_config_path path/to/vocoder_config.json
사용 가능한 스피커를 나열하고 그 중에서 <speaker_id>를 선택합니다.
$ tts --model_name "<language>/<dataset>/<model_name>" --list_speaker_idxs
대상 스피커 ID를 사용하여 다중 스피커 TTS 모델을 실행합니다.
$ tts --text "Text for TTS." --out_path output/path/speech.wav --model_name "<language>/<dataset>/<model_name>" --speaker_idx <speaker_id>
자신만의 다중 스피커 TTS 모델을 실행해 보세요.
$ tts --text "Text for TTS" --out_path output/path/speech.wav --model_path path/to/model.pth --config_path path/to/config.json --speakers_file_path path/to/speaker.json --speaker_idx <speaker_id>
$ tts --out_path output/path/speech.wav --model_name "<language>/<dataset>/<model_name>" --source_wav <path/to/speaker/wav> --target_wav <path/to/reference/wav>
|- notebooks/ (Jupyter Notebooks for model evaluation, parameter selection and data analysis.)
|- utils/ (common utilities.)
|- TTS
|- bin/ (folder for all the executables.)
|- train*.py (train your target model.)
|- ...
|- tts/ (text to speech models)
|- layers/ (model layer definitions)
|- models/ (model definitions)
|- utils/ (model specific utilities.)
|- speaker_encoder/ (Speaker Encoder models.)
|- (same)
|- vocoder/ (Vocoder models.)
|- (same)