F5-TTS
本项目基于 F5-TTS 模型封装,提供简洁的 Docker 部署方式,支持 SSML 输入,输出 PCM 原始音频,可用于语音合成。
Quickstart
1. 安装镜像
docker build -t tts:f5 . -f Dockerfile_f5
2. 启动服务
docker run -it --rm \
-v /models/F5-TTS_Emilia-ZH-EN:/mnt/models \
-e ASCEND_VISIBLE_DEVICES=1 \
--device /dev/davinci2:/dev/davinci0 \
--device /dev/davinci_manager \
--device /dev/devmm_svm \
--device /dev/hisi_hdc \
-v /usr/local/dcmi:/usr/local/dcmi \
-v /usr/local/bin/npu-smi:/usr/local/bin/npu-smi \
-v /usr/local/Ascend/driver/lib64/:/usr/local/Ascend/driver/lib64/ \
-v /usr/local/Ascend/driver/version.info:/usr/local/Ascend/driver/version.info \
-v /etc/ascend_install.info:/etc/ascend_install.info \
--privileged \
-p 8080:80 \
-e MODEL_DIR=/mnt/models \
-e MODEL_NAME=model_1250000.safetensors \
tts:f5
参数说明:
MODEL_DIR:模型所在目录(挂载到容器内/mnt/models)MODEL_NAME:加载的模型文件名(通常为.safetensors)-p 8080:80:将容器内服务端口映射到宿主机8080
3. 测试服务
curl --request POST "http://localhost:8080/tts" \
--header 'Content-Type: application/ssml+xml' \
--header 'User-Agent: curl' \
--data-raw '<speak version="1.0" xml:lang="zh">
<voice xml:lang="zh" xml:gender="Female" name="zh">
今天天气很好,不知道明天天气怎么样。
</voice>
</speak>' \
--output sound.pcm
Notes
- Fix NPU 兼容问题: F5-TTS/src/f5_tts/model/modules.py -> get_vocos_mel_spectrogram()