- ws api:
ws://{server}:{port}/paddlespeech/asr/streaming
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 端返回新连接的情况。
字段 | 必选 | 类型 | 说明 |
---|---|---|---|
status | 是 | string | ASR服务端状态 |
signal | 是 | string | 该流式连接必要的准备工作是完成状态 |
{
"status": "ok",
"signal": "server_ready"
}
服务端同时需要保存wav端的文件。
Client和Server建立连接之后,Client端不断地向服务端发送数据。
发送 PCM16 数据流到服务端。
每发送一个数据,服务端会将该数据包解码的结果返回出来。
字段 | 必选 | 类型 | 说明 |
---|---|---|---|
result | 是 | string | ASR解码的结果 |
Client和Server建立连接之后,Client端不断地向服务端发送数据。服务器会创建一个缓存区,将语音数据放到缓存区中,在对发送的语音进行进行静音检测(vad), 当检测有到有静音后才会进行语音识别.但是有些时候环境比较嘈杂.会检测有误.客户端可以发送识别命令到服务端,收到识别命令后也会进行识别
{
"name": "test.wav",
"signal": "recognize",
"nbest": 1
}
每发送一个数据,服务端会将该数据包解码的结果返回出来。
{
"status": "ok",
"result": "识别结果",
}
字段 | 必选 | 类型 | 说明 |
---|---|---|---|
result | 是 | string | ASR解码的结果 |
Client 发送完最后一个数据包之后,需要发送给服务端一个结束的命令,通知服务端销毁该链接的相关资源。
通过开始信号传入流式识别音频信息,以及解码参数
字段 | 必选 | 类型 | 说明 |
---|---|---|---|
name | 是 | string | 传入的音频名称 |
signal | 是 | string | 流式识别中命令类型 |
nbest | 是 | int | 识别nbest参数,默认是1 |
{
"name": "test.wav",
"signal": "end",
"nbest": 1
}
Server 端信息接收到结束信息之后,将最后的结果返回出去。
字段 | 必选 | 类型 | 说明 |
---|---|---|---|
name | 是 | string | 传入的音频名称 |
signal | 是 | string | 流式识别中命令类型,取发送的命令类型 |
result | 是 | string | 最后的识别结果 |
{
"name": "test.wav",
"signal": "end",
"result": ""
}