本文介绍使用 ChatTTS 开源模型构建语音对话机器人的实战指南。它本质上是一个针对对话场景优化的文本转语音(TTS)模型,生成的语音更自然。
1. 开发环境配置
ChatTTS 主要基于 Python,推荐使用 Python 3.8 到 3.10 版本。
安装核心依赖
pip install chattts sounddevice scipy
如果安装较慢,可更换 pip 源,例如清华源:pip install chattts -i https://pypi.tuna.tsinghua.edu.cn/simple。
创建虚拟环境
为避免包冲突,建议创建独立虚拟环境。
# 创建虚拟环境
python -m venv chattts_env
# 激活虚拟环境 (Windows)
chattts_env\Scripts\activate
# 激活虚拟环境 (macOS/Linux)
source chattts_env/bin/activate
2. 核心 API 调用
使用流程为:初始化模型 -> 准备文本 -> 生成语音 -> 播放或保存。
import chattts
import numpy as np
from scipy.io import wavfile
import sounddevice as sd
# 1. 初始化模型
# 首次运行会自动下载模型文件
model = chattts.ChatTTS()
# 2. 准备要合成的文本
texts = ["你好,我是你的语音助手。", "今天天气真不错,你想聊点什么?"]
# 3. 生成语音
audio_data_list = []
for audio_data in model.infer(texts):
audio_array = audio_data['wav']
audio_data_list.append(audio_array)
# 4. 播放和保存语音
sample_rate = 24000
for i, audio_array in enumerate(audio_data_list):
print(f"正在播放第{i+1}句")
sd.play(audio_array, samplerate=sample_rate)
sd.wait()
filename = f"output_{i}.wav"
wavfile.write(filename, sample_rate, audio_array)
()

