注意:此软件已基本过时,将不再更新。
一些替代方案:
一个与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%E5%BF%AB%EF%BC%8C%E4%BD%86%E9%9C%80%E8%A6%81%E7%BA%A64GB GPU显存)pre_process_map.yaml使用正则表达式修复如果您为tts-1或tts-1-hd找到更好的语音匹配,请告知我,以便我更新默认值。
版本 0.18.2,2024-08-16
版本 0.18.1,2024-08-15
版本 0.18.0,2024-08-15
版本 0.17.2,2024-07-01
版本 0.17.1,2024-07-01
版本 0.17.0,2024-07-01
版本 0.16.0,2024-06-29
speed超过2时,可能会出现音频欠载(播放延迟或暂停)。这使得多个客户端成为可能且安全,但实际上最多支持2或3个同时流而不会出现音频欠载。版本 0.15.1,2024-06-27
版本 0.15.0,2024-06-26
版本 0.14.1,2024-06-26
--use-deepspeed),但未在预构建Docker镜像中启用(体积过大)。需要安装cuda-toolkit,详见Dockerfile注释。版本 0.14.0,2024-06-26
response_format:支持wav和pcmtts-1和tts-1-hd的输出流式传输(生成时)版本 0.13.0,2024-06-25
restart: unless-stopped)audio_reader.py用于流式文本输入和长文本读取版本 0.12.3,2024-06-17
版本 0.12.2,2024-06-16
docker compose up
docker compose -f docker-compose.rocm.yml up
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 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务