(简体中文|[English](./websocket_protocol.md)) # websocket/grpc通信协议 本协议为FunASR软件包通信协议,分为离线文件转写([部署文档](./SDK_tutorial_zh.md)),实时语音识别([部署文档](./SDK_tutorial_online_zh.md)) ## 离线文件转写 ### 从客户端往服务端发送数据 #### 消息格式 配置参数与meta信息用json,音频数据采用bytes #### 首次通信 message为(需要用json序列化): ```text {"mode": "offline", "wav_name": "wav_name","wav_format":"pcm","is_speaking": True,"hotwords":"阿里巴巴 达摩院 阿里云"} ``` 参数介绍: ```text `mode`:`offline`,表示推理模式为离线文件转写 `wav_name`:表示需要推理音频文件名 `wav_format`:表示音视频文件后缀名,可选pcm、mp3、mp4等 `is_speaking`:False 表示断句尾点,例如,vad切割点,或者一条wav结束 `audio_fs`:当输入音频为pcm数据时,需要加上音频采样率参数 `hotwords`:如果AM为热词模型,需要向服务端发送热词数据,格式为字符串,热词之间用" "分隔,例如 "阿里巴巴 达摩院 阿里云" ``` #### 发送音频数据 pcm直接将音频数据,其他格式音频数据,连同头部信息与音视频bytes数据发送,支持多种采样率与音视频格式 #### 发送音频结束标志 音频数据发送结束后,需要发送结束标志(需要用json序列化): ```text {"is_speaking": False} ``` ### 从服务端往客户端发数据 #### 发送识别结果 message为(采用json序列化) ```text {"mode": "offline", "wav_name": "wav_name", "text": "asr ouputs", "is_final": True,"timestamp":"[[100,200], [200,500]]"} ``` 参数介绍: ```text `mode`:`offline`,表示推理模式为离线文件转写 `wav_name`:表示需要推理音频文件名 `text`:表示语音识别输出文本 `is_final`:表示识别结束 `timestamp`:如果AM为时间戳模型,会返回此字段,表示时间戳,格式为 "[[100,200], [200,500]]"(ms) ``` ## 实时语音识别 ### 系统架构图
