跳到主要内容

AIBook端上 TTS 运行说明

使用说明

基于端上语音合成轻量级工具包进行TTS模型推理。

安装包下载

wget https://mt-vaas-web.tos-cn-beijing.volces.com/tts/tts_service/litetts260807/litetts_delivery.tar

交付文件:

litetts_delivery.tar

该文件为未压缩 tar 包,包含完整的 LiteTTS 服务端和独立客户端。

第三方只需要获取这一个文件,无需:

  • 另外下载模型;
  • 安装 protos/perfmax
  • 准备 gRPC 协议文件。

1. 交付包内容

解包后包含两个目录:

litetts/
├── integrated_server/ # LiteTTS 服务端、模型和启动脚本
└── client/ # 独立流式调用客户端及客户端依赖

独立客户端文件:

litetts/client/litetts_stream_client.py

2. 部署

2.1 解包

litetts_delivery.tar 上传到目标机器后执行:

cd ~
rm -rf litetts
mkdir -p litetts
cd litetts
tar -xvf /path/to/litetts_delivery.tar

解包完成后,目录应为:

/home/<用户名>/litetts/integrated_server/
/home/<用户名>/litetts/client/

2.2 启动服务

进入服务目录:

cd ~/litetts/integrated_server

执行以下命令启动本地 CPU 服务:

TARGET_DEVICE=cpu \
PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python \
LOGURU_LEVEL=DEBUG \
ONNX_INTRA_OP_NUM_THREADS=2 \
ONNX_INTER_OP_NUM_THREADS=2 \
TORCH_NUM_THREADS=2 \
OMP_NUM_THREADS=2 \
MKL_NUM_THREADS=2 \
PROSODY_MODEL_TARGET_DEVICE=cpu \
NUM_FFMPEG_THREADS=2 \
TOKENIZERS_PARALLELISM=true \
LOG_DIR=/tmp \
POD_NAME=latest_lite \
TOS_ACCESS_KEY=XXX \
TOS_SECRET_KEY=XXX \
TZ=Asia/Shanghai \
./serving/start_server.sh \
--target_voices AIBC006_lite,AIBF002_lite,AIBF003_lite,AIBF105_lite,AIBF111_lite,AIBM101_lite,AIBM115_lite \
--grpc_port 51061 \
--start_all_services false

服务启动后,gRPC 地址为:

<服务地址>:51061

默认加载音色

上述启动命令加载原有 7 个 Lite 音色:

音色 ID音色名称
AIBC006_lite程小可
AIBF002_lite程小园
AIBF003_lite程小苏
AIBF105_lite程小星
AIBF111_lite程小艾
AIBM101_lite程小虎
AIBM115_lite程小春

如需使用其他随包配置的音色,可以将音色 ID 加入 --target_voices

客户端只能调用服务启动时成功加载的音色。


3. 流式推理调用

进入客户端目录:

cd ~/litetts/client

使用独立客户端调用:

python3 litetts_stream_client.py \
--address <服务地址>:51061 \
--voice AIBC006_lite \
--text "欢迎使用摩尔线程本地语音合成。"

客户端通过 StreamingSynthesizeSpeech 接口发送自然文本,并持续接收服务端返回的音频响应。

服务端内部会完成:

自然文本

本地文本规范化

分句

Frontend / G2P

MNN 推理

音频输出

因此,调用方不需要自行准备音素

默认输出文件:

~/litetts/client/gRPCClient.wav

也可以通过 --output_fpath 指定输出路径:

python3 litetts_stream_client.py \
--address <服务地址>:51061 \
--voice AIBF002_lite \
--text "欢迎使用摩尔线程本地语音合成。" \
--output_fpath ./result.wav

4. 调用参数

参数类型必填默认值当前支持范围含义
--address字符串localhost:51061<主机名或服务地址>:<gRPC端口>LiteTTS gRPC 服务地址。不要添加 http://https://。实际部署时建议显式传入。
--voice字符串AIBC006_lite本次服务启动时通过 --target_voices 成功加载的音色;默认部署为上述 7 个 Lite 音色指定合成音色。
--text字符串欢迎使用摩尔线程本地语音合成。中文、英文和中英文混合自然文本,可包含标点和换行;不能为空待合成的自然文本。
--output_fpath字符串gRPCClient.wav当前用户有写权限的路径,建议使用 .wav 后缀输出 WAV 文件路径。

参数示例

选择其他音色:

--voice AIBM101_lite

完整示例:

python3 litetts_stream_client.py \
--address <服务地址>:51061 \
--voice AIBM101_lite \
--text "欢迎使用摩尔线程本地语音合成。" \
--output_fpath ./result.wav

5. 输出格式

客户端会将服务端返回的音频 Chunk 按顺序合并为 WAV 文件。

默认输出格式:

属性格式
编码PCM 16-bit
声道单声道
采样率22050 Hz
容器格式WAV

6. 部署完成后验证

部署完成后,只需使用一个短文本进行验证。

进入客户端目录:

cd ~/litetts/client

执行:

python3 litetts_stream_client.py \
--address <服务地址>:51061 \
--voice AIBC006_lite \
--text "欢迎使用摩尔线程本地语音合成。"

确认以下结果即可:

  1. 命令正常结束;
  2. 成功生成 gRPCClient.wav
  3. WAV 文件可以正常播放;
  4. 实际合成音色与传入的 --voice 一致。

7. 快速部署流程

完整流程可以概括为:

# 1. 下载交付包
wget https://mt-vaas-web.tos-cn-beijing.volces.com/tts/tts_service/litetts260807/litetts_delivery.tar

# 2. 解包
cd ~
rm -rf litetts
mkdir -p litetts
cd litetts
tar -xvf /path/to/litetts_delivery.tar

# 3. 启动服务
cd ~/litetts/integrated_server

TARGET_DEVICE=cpu \
PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python \
LOGURU_LEVEL=DEBUG \
ONNX_INTRA_OP_NUM_THREADS=2 \
ONNX_INTER_OP_NUM_THREADS=2 \
TORCH_NUM_THREADS=2 \
OMP_NUM_THREADS=2 \
MKL_NUM_THREADS=2 \
PROSODY_MODEL_TARGET_DEVICE=cpu \
NUM_FFMPEG_THREADS=2 \
TOKENIZERS_PARALLELISM=true \
LOG_DIR=/tmp \
POD_NAME=latest_lite \
TOS_ACCESS_KEY=XXX \
TOS_SECRET_KEY=XXX \
TZ=Asia/Shanghai \
./serving/start_server.sh \
--target_voices AIBC006_lite,AIBF002_lite,AIBF003_lite,AIBF105_lite,AIBF111_lite,AIBM101_lite,AIBM115_lite \
--grpc_port 51061 \
--start_all_services false

# 4. 另开终端测试
cd ~/litetts/client

python3 litetts_stream_client.py \
--address <服务地址>:51061 \
--voice AIBC006_lite \
--text "欢迎使用摩尔线程本地语音合成。"