asrproxy对接自定义ASR
# asrproxy.json添加配置
"asr":{
"interface": {
"ps": {
"type": "ps",
"append_callid":false,
"url": "ws://ip:8818/asr"
},
},
"groups":{
"default":{
"mode":0,
"enable":
[
"ps"
]
}
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
配置添加完成后保存并退出,最后重启asrproxy程序使配置生效。
# 用法说明
- 用户需要自己实现一个接口,通过websocket接收二进制的数据流,websocket分文本帧,二进制帧。如果用户说话停止,会发送文本帧 字符串 stop,给websocket 通知数据发送完毕;连接断开时 先发送 字符串close,然后发送websocket协议的close帧。
- 如果需要把callid通知到websocekt接口,需要修改asrproxy.json配置:
- append_callid修改成true,就会自动在接口地址追加参数callid=callid_appid。例如:
ws://ip:8818/asr?callid=ce1e85f1-4e69-4716-bb7d-ac49a0579ba0_ed7cd6af-35fb-459f-9aa2-0ae30b36b19c
- append_callid修改成true,就会自动在接口地址追加参数callid=callid_appid。例如:
- 如果要透传自定义的ID到asr,可以在mod-cti的asrparam设置:
{"userid":"你的ID"}
- url默认会加上这2个参数:
samples_per_second=8000&end_silence_time=800
samples_per_second
:声音频率 8000-16000。end_silence_time
:vad参数静音时间,静音大于这个时间ASR就返回说话结束。
# 识别结果
响应的code为200时,就是成功;响应的code为其他时,就是失败。
响应成功示例:
{ "code": 200, "data": { "result": { "name": "SentenceEnd", "text": "您好,我是机主的电话助理,请问你找他什么事吗?" } } }
1
2
3
4
5
6
7
8
9响应参数说明:
必须返回为否的字段,在识别失败时都存在有不返回的情况。
参数名称 是否必须返回 参数类型 参数说明 data 是 string 识别结果。 result 否 json 识别结果,识别失败时会有result 不存在的情况。 name 否 string SentenceBegin:识别开始(声音开始);SentenceStreaming:识别中(中间结果);SentenceEnd:识别结束(一句话结束最后一个结果)。 text 否 string 识别结果。 asr检测到说话开始的示例:
{ "code": 200, "data": { "result": { "name": "SentenceBegin", "text": "" } } }
1
2
3
4
5
6
7
8
9asr识别到文字的示例:
{ "code": 200, "data": { "result": { "name": "SentenceStreaming", "text": "中间的识别结果" } } }
1
2
3
4
5
6
7
8
9asr检测到说话停止的示例(也可能是客户端发送了stop):
{ "code": 200, "data": { "result": { "name": "SentenceEnd", "text": "最终的识别结果" } } }
1
2
3
4
5
6
7
8
9
上次更新: 2024/10/18, 18:25:48