Skip to content

Latest commit

 

History

History
 
 

asr-worker

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 

ASR Task Client

这个服务用于接收语音识别任务,并将识别结果发送给调用方。

可以运行于没有公网 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

WebSocket 协议

发起请求

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": "音频下载地址" }