
aculeasis/rhvoice-restrhvoice-rest是一个基于Flask框架和RHVoice语音合成器构建的Web服务,通过REST API提供文本转语音(TTS)功能。该服务易于集成到各类应用中,作为TTS提供商使用,支持多种语言、音频格式及语音参数调整。
bashdocker run -d \ --name=rhvoice-rest \ -p 8080:8080 \ --restart unless-stopped \ aculeasis/rhvoice-rest:latest
| 架构 | 支持状态 | 标签 |
|---|---|---|
| x86-64 | ✅ | amd64 |
| arm64 | ✅ | arm64v8 |
| armhf | ✅ | arm32v7 |
可配合Watchtower实现容器自动更新:
bashdocker run -d \ --name watchtower \ -v /var/run/docker.sock:/var/run/docker.sock \ containrrr/watchtower rhvoice-rest --interval 86400
[***] text=<文本>&voice=<语音>&format=<格式>&rate=<语速>&pitch=<音调>&volume=<音量>
参数说明:
SERVER:服务地址和端口(默认本地为localhost:8080)text:URL编码的文本内容(必填参数)voice:语音选择(可通过[***]获取完整列表,默认使用anna)format:输出格式(wav/mp3/opus/flac,默认mp3)rate:语速(0-100,默认50)pitch:音调(0-100,默认50)volume:音量(0-100,默认50)[***]
返回JSON格式的服务器信息
http://localhost:8080/say?text=Привет
http://localhost:8080/say?text=Hello%20world&voice=alan&format=opus
http://localhost:8080/say?text=Привет%20ещё%20раз&rate=60&pitch=40&volume=70
通过Rhasspy的Remote TTS系统集成,需将接口路径替换为/rhasspy:
json"text_to_speech": { "system": "remote", "remote": { "url": "http://localhost:8080/rhasspy?voice=anna" } }
注:Rhasspy集成时会忽略
text和format参数,格式固定为wav,文本通过POST请求体传递
可使用第三方组件ha-rhvoice实现与Home Assistant的集成
所有配置通过环境变量设置,可在docker run命令中使用-e参数传递:
| 环境变量 | 说明 | 默认值 |
|---|---|---|
| RHVOICELIBPATH | RHVoice库路径 | Windows: RHVoice.dll,Linux: libRHVoice.so |
| RHVOICEDATAPATH | RHVoice数据路径 | /usr/local/share/RHVoice |
| THREADED | 并发处理进程数(建议值:1.5 * CPU核心数) | 1 |
| LAMEPATH | lame编码器路径(影响mp3支持) | lame |
| OPUSENCPATH | opus编码器路径(影响opus支持) | opusenc |
| FLACPATH | flac编码器路径(影响flac支持) | flac |
| RHVOICE_DYNCACHE | 启用动态缓存(非no/disable/false时启用) | 禁用 |
| RHVOICE_FCACHE | 启用文件缓存(非no/disable/false时启用) | 禁用 |
| RHVOICE_FCACHE_LIFETIME | 缓存文件生命周期(小时) | 0(永久) |
| CHUNKED_TRANSFER | 启用分块传输编码(非no/disable/false时启用) | 禁用 |
bashdocker run -d \ --name=rhvoice-rest \ -p 8080:8080 \ -e THREADED=2 \ -e RHVOICE_FCACHE=true \ -e RHVOICE_FCACHE_LIFETIME=24 \ --restart unless-stopped \ aculeasis/rhvoice-rest:latest
服务启动后可通过以下URL验证:
http://localhost:8080/say?text=Приветhttp://localhost:8080/say?text=Привет%20ещё%20раз&format=opushttp://localhost:8080/say?text=Kaj%20mi%20ankaŭ%20parolas%20Esperanton&voice=spomenka&format=opus


manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务