如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
🐸 Coqui TTS 是一个用于高级文本转语音生成的库。
🚀 支持 1100 多种语言的预训练模型。
🛠️ 用于训练新模型和微调任意语言现有模型的工具。
📚 用于数据集分析和整理的实用程序。
[!NOTE] 从
coqui-tts0.27.4 版本开始,默认不再包含 PyTorch,您需要自行安装。
🐸TTS 已在 Ubuntu 24.04 上通过测试,要求 python >= 3.10
| 依赖项 | 说明 |
|---|---|
codec-cuda | 安装 torchcodec (CUDA),PyTorch>=2.9 时需要 |
如果您使用 Ubuntu (Debian),也可以运行以下命令进行安装:
make system-deps
make install
您也可以使用 Docker 镜像无需安装即可试用 Coqui TTS。只需运行以下命令,即可运行 TTS:
docker run --rm -it -p 5002:5002 --entrypoint /bin/bash ghcr.io/idiap/coqui-tts-cpu
python3 TTS/server/server.py --list_models # 获取可用模型列表
python3 TTS/server/server.py --model_name tts_models/en/vctk/vits # 启动服务器
然后您可以通过 此处 访问 TTS 服务器。更多详细信息,如 GPU 支持和 Docker Compose 配置,可参见 文档。
多说话人多语言模型
import torch
from TTS.api import TTS
# 获取设备
device = "cuda" if torch.cuda.is_available() else "cpu"
# 列出可用的 🐸TTS 模型
print(TTS().list_models())
# 初始化 TTS
tts = TTS("tts_models/multilingual/multi-dataset/xtts_v2").to(device)
# 列出说话人
print(tts.speakers)
# 运行 TTS
# ❗ XTTS 两者都支持,但许多模型只允许使用 `speaker` 和 `speaker_wav` 参数中的一个
# TTS 输出振幅值列表,从 `speaker_wav` 克隆语音
wav = tts.tts(
text="Hello world!",
speaker_wav="my/cloning/audio.wav",
language="en"
)
# TTS 输出到文件,使用预设说话人
tts.tts_to_file(
text="Hello world!",
speaker="Craig Gutsy",
language="en",
file_path="output.wav"
)
从 0.27.0 版本开始,您可以使用自定义 speaker ID 缓存克隆的语音,因此只需在 speaker_wav 中传递一次音频文件。
[!NOTE] 如需更多控制或额外输出(例如时间戳),请使用底层 Synthesizer API。
单说话人模型
# 使用目标模型名称初始化 TTS
tts = TTS("tts_models/de/thorsten/tacotron2-DDC").to(device)
# 运行 TTS
tts.tts_to_file(text="Ich bin eine Testnachricht.", file_path=OUTPUT_PATH)
语音转换 (VC)
将 source_wav 中的语音转换为 target_wav 的语音:
tts = TTS("voice_conversion_models/multilingual/vctk/freevc24").to("cuda")
tts.voice_conversion_to_file(
source_wav="my/source.wav",
target_wav="my/target.wav",
file_path="output.wav"
)
其他可用的语音转换模型:
voice_conversion_models/multilingual/multi-dataset/knnvcvoice_conversion_models/multilingual/multi-dataset/openvoice_v1voice_conversion_models/multilingual/multi-dataset/openvoice_v2更多详情,请参见此 专门页面。
结合单说话人 TTS 模型与默认 VC模型进行语音克隆
通过这种方式,您可以使用 🐸TTS 中的任何模型克隆语音。合成语音后使用 FreeVC 模型进行语音转换。
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 模型支持约 1100 种语言 🤯
对于 Fairseq 模型,请使用以下名称格式:tts_models/<语言ISO代码>/fairseq/vits。您可以在 此处 找到语言 ISO 代码,并在 https://github.com/***research/fairseq/tree/main/examples/mms 了解 Fairseq 模型。
# 使用 fairseq 模型进行 TTS
api = TTS("tts_models/deu/fairseq/vits")
api.tts_to_file(
"Wie sage ich auf Italienisch, dass ich dich liebe?",
file_path="output.wav"
)
注意: 某些 Fairseq 模型需要安装罗马化库 uroman。为此,您可以安装带有 languages 扩展的 coqui-tts。
tts在命令行合成语音。
您可以使用训练好的模型或从提供的列表中选择模型。
tts --list_models
--list_models 获得的名称。tts --model_info_by_name "<语言>/<数据集>/<模型>"
例如:
tts --model_info_by_name tts_models/tr/common-voice/glow-tts
tts --model_info_by_name vocoder_models/en/ljspeech/hifigan_v2
单说话人模型
tts_models/en/ljspeech/tacotron2-DDC)运行 TTS:tts --text "Text for TTS" --out_path output/path/speech.wav
tts --text "Text for TTS" --pipe_out --out_path output/path/speech.wav | aplay
tts --text "Text for TTS" \
--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 --text "Text for TTS" \
--model_name "<语言>/<数据集>/<模型>" \
--vocoder_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 --text "Text for TTS" \
--model_path path/to/model.pth \
--config_path path/to/config.json \
--out_path output/path/speech.wav
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
多说话人模型
<说话人ID>:tts --model_name "<语言>/<数据集>/<模型>" --list_speaker_idxs
tts --text "Text for TTS." --out_path output/path/speech.wav \
--model_name "<语言>/<数据集>/<模型>" --speaker_idx <说话人ID>
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 <说话人ID>
语音转换模型
tts --out_path output/path/speech.wav --model_name "<语言>/<数据集>/<模型>" \
--source_wav <源音频路径> --target_wav <目标音频路径>
来自真实用户的反馈,见证轩辕镜像的优质服务