这个服务用于接收语音识别任务,并将识别结果发送给调用方。
可以运行于没有公网 IP 的环境,通过 WebSocket 连接到任务分发服务器,以便于快速扩容。
VAD:speech_fsmn_vad_zh-cn-16k-common-pytorch
ASR:SenseVoiceSmall
Embedding:ERes2NetV2_w24s4ep4
VAD < 1ms,ASR < 50ms,Embedding < 50ms
GPU 显存:4GB
使用 CPU 增加 5 ~ 10 倍的请求耗时。
需要配置环境变量
ASR_TASK_SERVER_URL=wss://
conda create -n xiaozhi python=3.12
codna activate xiaozhi
pip install -r requirements.txt
python app.py
JSON:
1、detect 唤醒词声纹检测
{ "session_id": "xxx", "type": "listen", "state": "detect", "text": "你好小智" }
2、start 启动语音识别
{ "session_id": "xxx", "type": "listen", "state": "start", "mode": "auto" }
3、stop 结束语音识别(仅 mode 为 manual 时有效)
{ "session_id": "xxx", "type": "listen", "state": "stop" }
4、finish 完成检测任务
{ "session_id": "xxx", "type": "finish" }
二进制:
每次发送的二进制数据包含 session_id 和 PCM 音频数据两部分,格式如下:
session_id length,uint32 big
session_id 字符串
pcm length,uint32 big
pcm data
JSON:
{ "session_id": "xxx", "type": "reply", "content": "文本内容", "embedding": "音频向量", "url": "音频下载地址" }