游雁
2023-10-19 b9bcf1f093c3053fdc4e2cf4a1d38e27bbf429fb
funasr/runtime/docs/websocket_protocol_zh.md
@@ -1,5 +1,8 @@
(简体中文|[English](./websocket_protocol.md))
# websocket/grpc通信协议
本协议为FunASR软件包通信协议,分为离线文件转写([部署文档](./SDK_tutorial_zh.md)),实时语音识别([部署文档](./SDK_tutorial_online_zh.md))
## 离线文件转写
### 从客户端往服务端发送数据
#### 消息格式
@@ -7,7 +10,7 @@
#### 首次通信
message为(需要用json序列化):
```text
{"mode": "offline", "wav_name": "wav_name", "is_speaking": True,"wav_format":"pcm"}
{"mode": "offline", "wav_name": "wav_name","wav_format":"pcm","is_speaking": True,"hotwords":"阿里巴巴 达摩院 阿里云","itn":True}
```
参数介绍:
```text
@@ -15,7 +18,9 @@
`wav_name`:表示需要推理音频文件名
`wav_format`:表示音视频文件后缀名,可选pcm、mp3、mp4等
`is_speaking`:False 表示断句尾点,例如,vad切割点,或者一条wav结束
`audio_fs`:当输入音频为pcm数据是,需要加上音频采样率参数
`audio_fs`:当输入音频为pcm数据时,需要加上音频采样率参数
`hotwords`:如果AM为热词模型,需要向服务端发送热词数据,格式为字符串,热词之间用" "分隔,例如 "阿里巴巴 达摩院 阿里云"
`itn`: 设置是否使用itn,默认True
```
#### 发送音频数据
@@ -31,7 +36,7 @@
#### 发送识别结果
message为(采用json序列化)
```text
{"mode": "offline", "wav_name": "wav_name", "text": "asr ouputs", "is_final": True}
{"mode": "offline", "wav_name": "wav_name", "text": "asr ouputs", "is_final": True,"timestamp":"[[100,200], [200,500]]"}
```
参数介绍:
```text
@@ -39,12 +44,13 @@
`wav_name`:表示需要推理音频文件名
`text`:表示语音识别输出文本
`is_final`:表示识别结束
`timestamp`:如果AM为时间戳模型,会返回此字段,表示时间戳,格式为 "[[100,200], [200,500]]"(ms)
```
## 实时语音识别
### 系统架构图
<div align="left"><img src="images/2pass.jpg" width="400"/></div>
<div align="left"><img src="images/2pass.jpg" width="600"/></div>
### 从客户端往服务端发送数据
#### 消息格式
@@ -53,7 +59,7 @@
#### 首次通信
message为(需要用json序列化):
```text
{"mode": "2pass", "wav_name": "wav_name", "is_speaking": True, "wav_format":"pcm", "chunk_size":[5,10,5]
{"mode": "2pass", "wav_name": "wav_name", "is_speaking": True, "wav_format":"pcm", "chunk_size":[5,10,5], "hotwords":"阿里巴巴 达摩院 阿里云","itn":True}
```
参数介绍:
```text
@@ -63,6 +69,8 @@
`is_speaking`:表示断句尾点,例如,vad切割点,或者一条wav结束
`chunk_size`:表示流式模型latency配置,`[5,10,5]`,表示当前音频为600ms,并且回看300ms,又看300ms。
`audio_fs`:当输入音频为pcm数据是,需要加上音频采样率参数
`hotwords`:如果AM为热词模型,需要向服务端发送热词数据,格式为字符串,热词之间用" "分隔,例如 "阿里巴巴 达摩院 阿里云"
`itn`: 设置是否使用itn,默认True
```
#### 发送音频数据
直接将音频数据,移除头部信息后的bytes数据发送,支持音频采样率为8000(`message`中需要指定`audio_fs`为8000),16000
@@ -75,7 +83,7 @@
#### 发送识别结果
message为(采用json序列化)
```text
{"mode": "2pass-online", "wav_name": "wav_name", "text": "asr ouputs", "is_final": True}
{"mode": "2pass-online", "wav_name": "wav_name", "text": "asr ouputs", "is_final": True, "timestamp":"[[100,200], [200,500]]"}
```
参数介绍:
```text
@@ -83,4 +91,5 @@
`wav_name`:表示需要推理音频文件名
`text`:表示语音识别输出文本
`is_final`:表示识别结束
```
`timestamp`:如果AM为时间戳模型,会返回此字段,表示时间戳,格式为 "[[100,200], [200,500]]"(ms)
```