Skip to content

Latest commit

 

History

History
140 lines (100 loc) · 3.68 KB

whiser-cpp-server-websocket-cn.md

File metadata and controls

140 lines (100 loc) · 3.68 KB

流式语音识别接口

1.1. 创建连接

  • ws api: ws://{server}:{port}/paddlespeech/asr/streaming

1.2. 开始信号

Client 通过开始信号传入流式识别音频信息,以及解码参数。

字段说明

字段 必选 类型 说明
name string 传入的音频名称
signal string 流式识别中命令类型
nbest int 识别nbest参数,默认是1
sampleRate int 例如48000,默认16000
bitsPerSample int 位深度(bitsPerSample):表示每个样本的位数,默认16
channels int 通道数,默认1

请求示例

{
  "name": "test.wav",
  "signal": "start",
  "nbest": 1
}

Server 信息

Server 端返回新连接的情况。

字段说明

字段 必选 类型 说明
status string ASR服务端状态
signal string 该流式连接必要的准备工作是完成状态
{
  "status": "ok",
  "signal": "server_ready"
}

服务端同时需要保存wav端的文件。

1.3. 数据

Client和Server建立连接之后,Client端不断地向服务端发送数据。

Client 信息

发送 PCM16 数据流到服务端。

Server 信息

每发送一个数据,服务端会将该数据包解码的结果返回出来。

字段说明

字段 必选 类型 说明
result string ASR解码的结果

1.4. 识别

Client和Server建立连接之后,Client端不断地向服务端发送数据。服务器会创建一个缓存区,将语音数据放到缓存区中,在对发送的语音进行进行静音检测(vad), 当检测有到有静音后才会进行语音识别.但是有些时候环境比较嘈杂.会检测有误.客户端可以发送识别命令到服务端,收到识别命令后也会进行识别

Client 信息

{
  "name": "test.wav",
  "signal": "recognize",
  "nbest": 1
}

Server 信息

每发送一个数据,服务端会将该数据包解码的结果返回出来。

{
  "status": "ok",
  "result": "识别结果",
}

字段说明

字段 必选 类型 说明
result string ASR解码的结果

1.5. 结束

Client 发送完最后一个数据包之后,需要发送给服务端一个结束的命令,通知服务端销毁该链接的相关资源。

通过开始信号传入流式识别音频信息,以及解码参数

字段说明

字段 必选 类型 说明
name string 传入的音频名称
signal string 流式识别中命令类型
nbest int 识别nbest参数,默认是1
{
  "name": "test.wav",
  "signal": "end",
  "nbest": 1
}

Server 信息

Server 端信息接收到结束信息之后,将最后的结果返回出去。

字段说明

字段 必选 类型 说明
name string 传入的音频名称
signal string 流式识别中命令类型,取发送的命令类型
result string 最后的识别结果
{
  "name": "test.wav",
  "signal": "end",
  "result": ""
}