注意:此软件已基本过时,将不再更新。
一些替代方案:
一个与OpenAI API兼容的文本转语音服务器。
完全兼容性:
tts-1:alloy、echo、fable、onyx、nova和shimmer(可配置)tts-1-hd:alloy、echo、fable、onyx、nova和shimmer(可配置,默认使用OpenAI样本)mp3、opus、aac、flac、wav和pcm详细信息:
tts-1通过https://github.com/rhasspy/piper%E5%AE%9E%E7%8E%B0%EF%BC%88%E9%80%9F%E5%BA%A6%E6%9E%81%E5%BF%AB%EF%BC%8C%E8%BF%90%E8%A1%8C%E4%BA%8ECPU%EF%BC%89voice_to_speaker.yaml配置文件映射自定义https://rhasspy.github.io/piper-samples/tts-1-hd通过https://github.com/coqui-ai/TTS%E7%9A%84xtts_v2%E8%AF%AD%E9%9F%B3%E5%85%8B%E9%9A%86%E5%AE%9E%E7%8E%B0%EF%BC%88%E9%80%9F%E5%BA%A6%E8%BE%83%E5%BF%AB%EF%BC%8C%E4%BD%86%E9%9C%80%E8%A6%81%E7%BA%A64GB GPU显存)tts-1-hd可使用自定义克隆语音,参见:自定义语音指南pre_process_map.yaml中的正则表达式修复如果您为tts-1或tts-1-hd找到了更匹配的语音,请告诉我,以便我更新默认值。
Version 0.18.2, 2024-08-16
Version 0.18.1, 2024-08-15
Version 0.18.0, 2024-08-15
Version 0.17.2, 2024-07-01
Version 0.17.1, 2024-07-01
Version 0.17.0, 2024-07-01
Version 0.16.0, 2024-06-29
Version 0.15.1, 2024-06-27
Version 0.15.0, 2024-06-26
Version 0.14.1, 2024-06-26
--use-deepspeed),但预构建Docker镜像中未启用(体积过大)。需要安装cuda-toolkit,详见Dockerfile注释Version 0.14.0, 2024-06-26
response_format:支持wav和pcmtts-1和tts-1-hd支持生成时流式输出Version 0.13.0, 2024-06-25
restart: unless-stopped)audio_reader.py用于流式文本输入和长文本读取Version 0.12.3, 2024-06-17
Version 0.12.2, 2024-06-16
docker compose up
docker compose -f docker-compose.rocm.yml up
[!NOTE] XTTS在此处仅支持CPU且速度非常慢,您可以使用带CPU的Nvidia镜像运行XTTS(速度慢),或使用仅含piper的镜像(推荐)
如需仅含piper支持的最小Docker镜像( speech.mp3
或者这样:
```shell
curl -s http://localhost:8000/v1/audio/speech -H "Content-Type: application/json" -d '{
"input": "The quick brown fox jumped over the lazy dog."}'
> speech.mp3
或者如OpenAI文本转语音指南中的示例:
import openai
client = openai.OpenAI(
# 如果在导入openai前设置了这些环境变量,则不需要此部分
# export OPENAI_API_KEY=sk-11111111111
# export OPENAI_BASE_URL=http://localhost:8000/v1
api_key = "sk-***",
base_url = "http://localhost:8000/v1",
)
with client.audio.speech.with_streaming_response.create(
model="tts-1",
voice="alloy",
input="Today is a wonderful day to build something people love!"
) as response:
response.stream_to_file("speech.mp3")
另请参见示例应用say.py,了解如何使用openai-python API。
# 播放音频,需安装'pip install playsound'
python say.py -t "The quick brown fox jumped over the lazy dog." -p
# 以flac格式保存到文件
python say.py -t "The quick brown fox jumped over the lazy dog." -m tts-1-hd -v onyx -f flac -o fox.flac
您也可以尝试使用附带的audio_reader.py来收听长文本和流式输入。
示例用法:
python audio_reader.py -s 2 < LICENSE # 快速朗读软件许可证
config/voice_to_speaker.yaml 中添加新的语音配置段,例如:...
tts-1:
ryan:
model: voices/en_US-ryan-high.onnx
speaker: # 默认说话人
download_voices_tts-1.sh 脚本下载。例如:bash download_voices_tts-1.sh en_US-ryan-high
Coqui XTTS v2 语音克隆仅需 6 秒清晰音频即可工作。要创建自定义语音克隆,需准备一个 WAV 格式的语音样本文件。
可使用 FFmpeg 处理音频文件,以下是一些示例:
# 将多通道音频文件转换为单声道,设置采样率为 22050 Hz,修剪为 6 秒,并输出为 WAV 文件
ffmpeg -i input.mp3 -ac 1 -ar 22050 -t 6 -y me.wav
# 使用简单噪声滤波器清理音频,并选择采样起始时间
ffmpeg -i input.wav -af "highpass=f=200, lowpass=f=3000" -ac 1 -ar 22050 -ss 00:13:26.2 -t 6 -y me.wav
# 更复杂的降噪设置,包括音量调整
ffmpeg -i input.mkv -af "highpass=f=200, lowpass=f=3000, volume=5, afftdn=nf=25" -ac 1 -ar 22050 -ss 00:13:26.2 -t 6 -y me.wav
准备好 WAV 文件后,将其保存到 /voices/ 目录,并更新 config/voice_to_speaker.yaml 文件中的新文件名。
例如:
...
tts-1-hd:
me:
model: xtts
speaker: voices/me.wav # 可以是您自己的语音
也可使用子文件夹存放多个音频样本,以合并小样本或混合不同样本。
例如:
...
tts-1-hd:
mixed:
model: xtts
speaker: voices/mixed
其中 voices/mixed/ 文件夹包含多个 WAV 文件。总音频长度仍限制为 30 秒。
多语言克隆支持在 0.11.0 版本中添加,且仅适用于 XTTS v2 模型。要在 piper 中使用多语言语音,只需下载特定语言的语音模型。
Coqui XTTSv2 支持多种语言:英语(en)、西班牙语(es)、法语(fr)、德语(de)、意大利语(it)、葡萄牙语(pt)、波兰语(pl)、土耳其语(tr)、俄语(ru)、荷兰语(nl)、捷克语(cs)、阿拉伯语(ar)、中文(zh-cn)、匈牙利语(hu)、韩语(ko)、日语(ja)和印地语(hi)。未设置时,系统将尝试自动检测语言,默认回退为英语(en)。
遗憾的是 OpenAI API 不支持语言设置,但您可以创建自定义说话人语音并为其设置语言。
config/voice_to_speaker.yaml 并包含正确的 Coqui language 代码。例如:xunjiang:
model: xtts
speaker: voices/xunjiang.wav
language: zh-cn
config/pre_process_map.yaml 中移除高 Unicode 字符!如果存在以下行,需要将其删除。例如:删除:
- - '[\U0001F600-\U0001F64F\U0001F300-\U0001F5FF\U0001F680-\U0001F6FF\U0001F700-\U0001F77F\U0001F780-\U0001F7FF\U0001F800-\U0001F8FF\U0001F900-\U0001F9FF\U0001FA00-\U0001FA6F\U0001FA70-\U0001FAFF\U00002702-\U000027B0\U000024C2-\U0001F251]+'
- ''
这些行在 0.11.0 版本前默认添加到 config/pre_process_map.yaml 配置文件中:
添加自定义 xtts 模型非常简单。以下是添加自定义微调的 "halo" XTTS 模型的示例。
voices/ 下(需包含所有 4 个文件,包括模型的 vocab.json)openedai-speech$ ls voices/halo/
config.json vocab.json model.pth sample.wav
config/voice_to_speaker.yaml 的 tts-1-hd 部分添加自定义语音条目:tts-1-hd:
...
halo:
model: halo # 此名称必须唯一
speaker: voices/halo/sample.wav # 语音样本为必需项
model_path: voices/halo
--preload 目前不适用于自定义模型)XTTSv2 语音生成可通过以下选项进行微调(包含默认值):
tts-1-hd:
alloy:
model: xtts
speaker: voices/alloy.wav
enable_text_splitting: True
length_penalty: 1.0
repetition_penalty: 10
speed: 1.0
temperature: 0.75
top_k: 50
top_p: 0.85
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
不支持 push
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务