这是一个用于测试小智同学服务器的工具,使用 Edge TTS 进行语音合成输入的文字的音频 或者 通过麦克风录制音频,发送语音到小智同学服务器,并播放返回的语音。
- 支持批量测试用例
- 自动保存生成的音频文件
- 使用websocket连接小智同学服务器
- 小智官方服务端接口:wss://api.tenclass.net/xiaozhi/v1/
- 开源服务端(需自建):xiaozhi-esp32-server
- 安装依赖:
pip install -r requirements.txt
建议:可以先安装conda,然后使用conda创建一个xiaozhi-py
的专属环境。
- 安装系统依赖:
- Linux:
sudo apt-get install python3-pyaudio portaudio19-dev ffmpeg
- MacOS:
brew install portaudio ffmpeg
- Windows:
- 通常无需额外安装
- 需要安装 FFmpeg
# 默认运行
python main.py
# 开启声音播放
python main.py --play-audio
# 开启声音录制:启动后,输入r开始录音,不说话会自动结束播放
python main.py --use-mic
python main.py --mode interactive --play-audio --use-mic
python main.py --mode automated --scenario scenarios/example.json --play-audio
.
├── README.md
├── requirements.txt
├── main.py # 交互式客户端
├── scenarios/ # 测试场景目录
│ └── example.json # 示例测试场景
└── tmp/ # 生成的音频文件目录
在 scenarios
目录下创建 JSON 文件,格式如下:
{
"name": "基础对话测试",
"description": "测试基本的对话流程",
"messages": [
{
"text": "你好,小智同学",
"delay": 2.0
},
{
"text": "今天天气怎么样?",
"delay": 3.0
}
]
}
- 采样率:16kHz
- 声道数:单声道
- 位深度:16位
- 音频格式:WAV/Opus
-
音频设备
- 确保系统有可用的音频输出设备
- 检查音频权限设置
-
存储空间
- 测试音频文件会保存在
tmp
目录 - 定期清理不需要的音频文件
- 测试音频文件会保存在
- 音频播放问题
- 检查系统音频设备
- 确认 PyAudio 安装正确
- opus.dll问题:
- 错误提示:
FileNotFoundError: Could not find module 'opus.dll' (or one of its dependencies). Try using the full path with constructor syntax.
- 将目录中的
opus.dll
拷贝到系统目录中(通常为C:\Windows\System32
),然后再次运行
- 错误提示:
- 程序会输出详细的日志信息
- 音频文件保存在
tmp
目录 - 可以通过日志追踪测试流程
- 贤立
- HonestQiao
MIT License