树莓派极速部署ChatTTS-ui:打造低功耗语音合成服务节点
【免费下载链接】ChatTTS-ui 匹配ChatTTS的web界面和api接口 项目地址: https://gitcode.com/GitHub_Trending/ch/ChatTTS-ui
你是否曾想过在资源受限的树莓派上运行高性能语音合成服务?本文将带你实现这一目标,通过优化部署方案,让ChatTTS-ui在树莓派上稳定运行,为智能家居、物联网设备提供本地化语音交互能力。
部署环境准备
树莓派部署需满足以下硬件要求:
- 树莓派4B/5(推荐4GB以上内存)
- 至少16GB Class10 microSD卡
- 5V/3A电源适配器
- 可选散热片或风扇(长时间运行时)
系统环境配置:
# 更新系统
sudo apt update && sudo apt upgrade -y
# 安装基础依赖
sudo apt install -y python3 python3-venv python3-pip git ffmpeg
项目构建与优化
源码获取与依赖调整
克隆项目仓库:
git clone https://gitcode.com/GitHub_Trending/ch/ChatTTS-ui.git chat-tts-ui
cd chat-tts-ui
修改requirements.txt文件,注释掉CUDA相关依赖,保留CPU版本:
Flask
ipython
modelscope
numpy==1.26.4
numba
einops
tqdm
omegaconf>=2.3.0
torch>=2.1.0 # 移除CUDA版本限定
python-dotenv
requests
soundfile
tokenizers
transformers==4.41.1
vector-quantize-pytorch
vocos
waitress
pybase16384
pynini==2.1.5; sys_platform == 'linux'
WeTextProcessing; sys_platform == 'linux'
nemo_text_processing; sys_platform == 'linux'
av
pydub
pandas
Docker容器化部署
使用CPU优化的Docker配置文件docker-compose.cpu.yaml:
services:
chat-tts-ui:
build:
context: .
dockerfile: Dockerfile.cpu
container_name: chat-tts-ui
restart: always
volumes:
- "./:/app"
ports:
- 9966:9966
user: "${UID}:${GID}"
environment:
LOG_LEVEL: DEBUG
WEB_ADDRESS: 0.0.0.0:9966
command: python3 app.py
构建并启动容器:
# 构建镜像
docker compose -f docker-compose.cpu.yaml build
# 启动服务
docker compose -f docker-compose.cpu.yaml up -d
# 查看日志
docker compose logs -f --no-log-prefix
模型下载与配置
首次启动服务会自动下载模型文件,若因网络问题下载失败,可手动下载后放置到asset/目录:
手动下载地址:
- GitHub下载地址: https://github.com/jianchang512/ChatTTS-ui/releases/download/v1.0/all-models.7z
- 百度网盘下载地址: https://pan.baidu.com/s/1yGDZM9YNN7kW9e7SFo8lLw?pwd=ct5x
下载后解压并复制模型文件:
# 安装解压工具
sudo apt install -y p7zip-full
# 解压模型文件
7z x all-models.7z -o./asset
# 设置权限
sudo chmod -R 755 ./asset
性能优化策略
内存占用优化
修改app.py文件,添加模型加载参数:
# 在模型加载部分添加
model = ChatTTS(
device="cpu",
compile=False, # 禁用Torch编译加速
low_cpu_mem_usage=True
)
创建交换空间(当内存不足时):
# 创建2GB交换文件
sudo dd if=/dev/zero of=/swapfile bs=1M count=2048
sudo mkswap /swapfile
sudo swapon /swapfile
# 设置开机自动挂载
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
服务自动启动配置
创建系统服务文件:
sudo nano /etc/systemd/system/chat-tts.service
添加以下内容:
[Unit]
Description=ChatTTS UI Service
After=network.target
[Service]
User=pi
WorkingDirectory=/home/pi/chat-tts-ui
ExecStart=/usr/bin/docker compose -f docker-compose.cpu.yaml up
Restart=always
[Install]
WantedBy=multi-user.target
启用并启动服务:
sudo systemctl enable chat-tts
sudo systemctl start chat-tts
功能验证与使用
本地测试
访问Web界面:在浏览器中输入http://树莓派IP:9966,出现ChatTTS-ui界面即表示部署成功。
API接口测试:
curl -X POST http://localhost:9966/tts \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "text=欢迎使用树莓派语音合成服务&voice=2222&temperature=0.3"
语音合成效果示例
生成的语音文件默认保存在listen-speaker/目录,可通过以下命令播放测试:
aplay listen-speaker/*.wav
常见问题解决
启动失败排查
查看服务日志:
sudo journalctl -u chat-tts -f
模型下载问题参考asset/模型下载说明.txt文件。
性能瓶颈突破
若合成速度过慢,可修改配置文件降低采样率:
# 在合成参数中添加
params = {
"sample_rate": 22050, # 降低采样率
"batch_size": 1
}
应用场景拓展
智能家居集成
通过API接口与Home Assistant集成,实现语音控制反馈:
# Home Assistant自动化示例
service: rest_command.chat_tts
data:
text: "温度已调整到26度"
voice: 6653
物联网设备语音交互
结合MQTT协议,实现设备状态播报:
import paho.mqtt.client as mqtt
import requests
def on_message(client, userdata, msg):
text = f"设备{msg.topic}状态更新为{msg.payload.decode()}"
requests.post("http://localhost:9966/tts", data={"text": text})
client = mqtt.Client()
client.on_message = on_message
client.connect("mqtt_broker_ip", 1883, 60)
client.subscribe("device/#")
client.loop_forever()
部署总结与展望
通过本文方法,我们成功在树莓派上部署了ChatTTS-ui语音合成服务,主要完成了:
- 系统环境配置与依赖安装
- Docker容器化部署与优化
- 模型下载与配置
- 性能优化与服务自启动
- 功能验证与应用场景拓展
未来可进一步探索的优化方向:
- 模型量化压缩(INT8精度转换)
- 语音合成任务队列管理
- WebRTC实时语音合成支持
项目完整文档可参考README.md,更多问题解答请查阅faq.md。
点赞收藏本教程,关注后续优化方案更新!如有部署问题,欢迎在项目讨论区交流。
【免费下载链接】ChatTTS-ui 匹配ChatTTS的web界面和api接口 项目地址: https://gitcode.com/GitHub_Trending/ch/ChatTTS-ui
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



