私有化部署ASR
# 下载FunASR模型
流识别(websocket实时传输音频流识别),比如对接mod_cti(新一代电话机器人和实时质检)
一句话识别(http接口提交录音文件识别),比如对接mod_vad(老电话机器人接口)
普通话模型:
curl -s http://down.ddrj.com/getasrmodel.sh | bash -s paraformer-large
对应模型配置:请点击跳转
8K模型(普通话):
curl -s http://down.ddrj.com/getasrmodel.sh | bash -s paraformer-8k
对应模型配置:请点击跳转
热词模型(需要更多的CPU,支持定义热词):
curl -s http://down.ddrj.com/getasrmodel.sh | bash -s paraformer-large-contextual
对应模型配置:请点击跳转
SenseVoice-Small 模型 支持 中文、粤语、英语、日语、韩语,和情感辨识(情绪识别):
curl -s http://down.ddrj.com/getasrmodel.sh | bash -s SenseVoice-Small
对应模型配置:请点击跳转
# 更新asrproxy程序
只有最新版本的asrproxy程序,才支持FunASR模型的私有化部署,以下是asrproxy程序升级命令:
curl -s http://down.ddrj.com/upgrade.sh | bash -s asrproxy
# 配置asrproxy.json文件
模型下载完成后,需要在下边的配置中找到下载模型的对应配置,然后配置到 asrproxy.json 文件中:
# 流识别-普通话模型配置
//ASR配置
"asr":{
"listen_ip":"127.0.0.1", //外网访问要改成0.0.0.0
"listen_port":9988,
"storage":"record", //asr录音目录,调用asr时,设置了asr_params.recordfilename才会录音。
"acl":"*", //哪些IP可以访问,配置*任意IP都可以访问,多个IP用逗号隔开,如果不配置acl,通过127.0.0.1不需要配置在ACL里面也可以访问。
"interface": {
//流识别普通话模型(实时大模型)
"paraformer_realtime_16K": {
"type": "funasr",
"engine": "2pass",
"quantize": true,
"enable_itn": true,
"itn-dir": "/ddt/asrproxy/funasr/fst_itn_zh",
"vad-dir": "/ddt/asrproxy/funasr/speech_fsmn_vad_zh-cn-16k-common-onnx",
"vad-quant": true,
"punc-dir": "/ddt/asrproxy/funasr/punc_ct-transformer_zh-cn-common-vad_realtime-vocab272727-onnx",
"model-dir": "/ddt/asrproxy/funasr/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-onnx",
"online-model-dir": "/ddt/asrproxy/funasr/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-online-onnx",
"lm-dir": "",
"chunk-size": 800
},
"asr配置名字:新加ASR配置会自动生效(1分钟之内)": {
"说明": "已经存在的修改type,engine,appid,key,secret 不会生效,如果要修改这几个参数只能新添加一个ASR配置或者重启asrproxy程序,其他参数修改后自动生效"
}
},
"groups":{
//默认使用的ASR
"default":{
"mode":0, //0:顺序使用,当使用数量等于count的时候切换下一个 1:循环使用
"enable": //启用的那些ASR配置
[
"paraformer_realtime_16K"
]
}
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# 流识别-热词模型配置
//ASR配置
"asr":{
"listen_ip":"127.0.0.1", //外网访问要改成0.0.0.0
"listen_port":9988,
"storage":"record", //asr录音目录,调用asr时,设置了asr_params.recordfilename才会录音。
"acl":"*", //哪些IP可以访问,配置*任意IP都可以访问,多个IP用逗号隔开,如果不配置acl,通过127.0.0.1不需要配置在ACL里面也可以访问。
"interface": {
//流对接热词模型(实时热词模型)
"paraformer_contextual_16K": {
"type": "funasr",
"engine": "2pass",
"quantize": true,
"enable_itn": true,
"itn-dir": "/ddt/asrproxy/funasr/fst_itn_zh",
"vad-dir": "/ddt/asrproxy/funasr/speech_fsmn_vad_zh-cn-16k-common-onnx",
"vad-quant": true,
"punc-dir": "/ddt/asrproxy/funasr/punc_ct-transformer_zh-cn-common-vad_realtime-vocab272727-onnx",
"model-dir": "/ddt/asrproxy/funasr/speech_paraformer-large-contextual_asr_nat-zh-cn-16k-common-vocab8404-onnx",
"online-model-dir": "/ddt/asrproxy/funasr/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-online-onnx",
"lm-dir": "/ddt/asrproxy/funasr/speech_ngram_lm_zh-cn-ai-wesp-fst",
"hotword": "",
"chunk-size": 800
}
},
"groups":{
//默认使用的ASR
"default":{
"mode":0, //0:顺序使用,当使用数量等于count的时候切换下一个 1:循环使用
"enable": //启用的那些ASR配置
[
"paraformer_contextual_16K"
]
}
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# 一句话识别-普通话16K模型配置
//一句话识别配置
"short_sentence_asr":{
"listen_ip":"0.0.0.0", //一句话识别监听的IP
"listen_port":9990,
"bgasr_thread_count":null, //录音文件识别的ASR线程个数,如果不设置就是根据CPU个数自动设置。
"users":{
//用户ID,可以配置多个用户
"test":{
"not_validate_signature":false,//是否禁用验证签名,改成true,就是不验证签名
"key":"test",//用户KEY
"ip":"*" //*任意IP都可以访问,也可以限制可以访问的ip
}
}
},
//ASR配置
"asr":{
"listen_ip":"127.0.0.1", //外网访问要改成0.0.0.0
"listen_port":9988,
"storage":"record", //asr录音目录,调用asr时,设置了asr_params.recordfilename才会录音。
"acl":"*", //哪些IP可以访问,配置*任意IP都可以访问,多个IP用逗号隔开,如果不配置acl,通过127.0.0.1不需要配置在ACL里面也可以访问。
"interface": {
//一句话识别普通话模型
"paraformer_16K": {
"type": "funasr",
"engine": "sentence",
"quantize": true,
"enable_itn": true,
"itn-dir": "/ddt/asrproxy/funasr/fst_itn_zh",
"vad-dir": "/ddt/asrproxy/funasr/speech_fsmn_vad_zh-cn-16k-common-onnx",
"vad-quant": true,
"punc-dir": "/ddt/asrproxy/funasr/punc_ct-transformer_zh-cn-common-vocab272727-onnx",
"model-dir": "/ddt/asrproxy/funasr/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-onnx",
"online-model-dir": "",
"lm-dir": "",
"hotword": ""
}
},
"groups":{
//一句话识别和文件识别使用的ASR
"shortsentence":{
"mode":0,
"enable":[
"paraformer_16K"
]
}
}
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# 一句话识别-普通话8k模型配置
//一句话识别配置
"short_sentence_asr":{
"listen_ip":"0.0.0.0", //一句话识别监听的IP
"listen_port":9990,
"bgasr_thread_count":null, //录音文件识别的ASR线程个数,如果不设置就是根据CPU个数自动设置。
"users":{
//用户ID,可以配置多个用户
"test":{
"not_validate_signature":false,//是否禁用验证签名,改成true,就是不验证签名
"key":"test",//用户KEY
"ip":"*" //*任意IP都可以访问,也可以限制可以访问的ip
}
}
},
//ASR配置
"asr":{
"listen_ip":"127.0.0.1", //外网访问要改成0.0.0.0
"listen_port":9988,
"storage":"record", //asr录音目录,调用asr时,设置了asr_params.recordfilename才会录音。
"acl":"*", //哪些IP可以访问,配置*任意IP都可以访问,多个IP用逗号隔开,如果不配置acl,通过127.0.0.1不需要配置在ACL里面也可以访问。
"interface": {
//一句话识别8K(普通话)模型
"paraformer-8k": {
"type": "funasr",
"engine": "sentence",
"quantize": true,
"enable_itn": true,
"itn-dir": "/ddt/asrproxy/funasr/fst_itn_zh",
"vad-dir": "/ddt/asrproxy/funasr/speech_fsmn_vad_zh-cn-8k-common-onnx",
"vad-quant": true,
"punc-dir": "/ddt/asrproxy/funasr/punc_ct-transformer_zh-cn-common-vocab272727-onnx",
"model-dir": "/ddt/asrproxy/funasr/speech_paraformer_asr_nat-zh-cn-8k-common-vocab8358-tensorflow1-onnx",
"online-model-dir": "",
"lm-dir": "",
"hotword": ""
}
"asr配置名字:新加ASR配置会自动生效(1分钟之内)": {
"说明": "已经存在的修改type,engine,appid,key,secret 不会生效,如果要修改这几个参数只能新添加一个ASR配置或者重启asrproxy程序,其他参数修改后自动生效"
}
},
"groups":{
//一句话识别和文件识别使用的ASR
"shortsentence":{
"mode":0,
"enable":[
"contextual_16K"
]
}
}
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# 一句话识别-热词模型配置
//一句话识别配置
"short_sentence_asr":{
"listen_ip":"0.0.0.0", //一句话识别监听的IP
"listen_port":9990,
"bgasr_thread_count":null, //录音文件识别的ASR线程个数,如果不设置就是根据CPU个数自动设置。
"users":{
//用户ID,可以配置多个用户
"test":{
"not_validate_signature":false,//是否禁用验证签名,改成true,就是不验证签名
"key":"test",//用户KEY
"ip":"*" //*任意IP都可以访问,也可以限制可以访问的ip
}
}
},
//ASR配置
"asr":{
"listen_ip":"127.0.0.1", //外网访问要改成0.0.0.0
"listen_port":9988,
"storage":"record", //asr录音目录,调用asr时,设置了asr_params.recordfilename才会录音。
"acl":"*", //哪些IP可以访问,配置*任意IP都可以访问,多个IP用逗号隔开,如果不配置acl,通过127.0.0.1不需要配置在ACL里面也可以访问。
"interface": {
//一句话识别热词模型
"contextual_16K": {
"type": "funasr",
"engine": "sentence",
"quantize": true,
"enable_itn": true,
"itn-dir": "/ddt/asrproxy/funasr/fst_itn_zh",
"vad-dir": "/ddt/asrproxy/funasr/speech_fsmn_vad_zh-cn-16k-common-onnx",
"vad-quant": true,
"punc-dir": "/ddt/asrproxy/funasr/punc_ct-transformer_zh-cn-common-vocab272727-onnx",
"model-dir": "/ddt/asrproxy/funasr/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-onnx",
"online-model-dir": "",
"lm-dir": "/ddt/asrproxy/funasr/speech_ngram_lm_zh-cn-ai-wesp-fst",
"hotword": ""
},
"asr配置名字:新加ASR配置会自动生效(1分钟之内)": {
"说明": "已经存在的修改type,engine,appid,key,secret 不会生效,如果要修改这几个参数只能新添加一个ASR配置或者重启asrproxy程序,其他参数修改后自动生效"
}
},
"groups":{
//一句话识别和文件识别使用的ASR
"shortsentence":{
"mode":0,
"enable":[
"contextual_16K"
]
}
}
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
# 一句话识别-SenseVoice-Small模型配置
//一句话识别配置
"short_sentence_asr":{
"listen_ip":"0.0.0.0", //一句话识别监听的IP
"listen_port":9990,
"bgasr_thread_count":null, //录音文件识别的ASR线程个数,如果不设置就是根据CPU个数自动设置。
"users":{
//用户ID,可以配置多个用户
"test":{
"not_validate_signature":false,//是否禁用验证签名,改成true,就是不验证签名
"key":"test",//用户KEY
"ip":"*" //*任意IP都可以访问,也可以限制可以访问的ip
}
}
},
//ASR配置
"asr":{
"listen_ip":"127.0.0.1", //外网访问要改成0.0.0.0
"listen_port":9988,
"storage":"record", //asr录音目录,调用asr时,设置了asr_params.recordfilename才会录音。
"acl":"*", //哪些IP可以访问,配置*任意IP都可以访问,多个IP用逗号隔开,如果不配置acl,通过127.0.0.1不需要配置在ACL里面也可以访问。
"interface": {
//一句话SenseVoice-Small 模型
"SenseVoice-Small": {
"type": "funasr",
"engine": "sentence",
"quantize": true,
"enable_itn": true,
"itn-dir": "",
"vad-dir": "/ddt/asrproxy/funasr/speech_fsmn_vad_zh-cn-16k-common-onnx",
"vad-quant": true,
"punc-dir": "",
"model-dir": "/ddt/asrproxy/funasr/SenseVoiceSmall-onnx",
"online-model-dir": "",
"lm-dir": "",
"hotword": ""
},
"asr配置名字:新加ASR配置会自动生效(1分钟之内)": {
"说明": "已经存在的修改type,engine,appid,key,secret 不会生效,如果要修改这几个参数只能新添加一个ASR配置或者重启asrproxy程序,其他参数修改后自动生效"
}
},
"groups":{
//一句话识别和文件识别使用的ASR
"shortsentence":{
"mode":0,
"enable":[
"contextual_16K"
]
}
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# 重启asrproxy程序
如果是通过systemctl服务命令方式启动的程序,执行以下命令重启asrproxy程序:
sudo systemctl restart asrproxy
1如果通过任务计划执行fscheck脚本启动的程序,需要先kill掉程序进程,然后等待一分钟,程序会自动启动。执行以下命令kill掉asrproxy的程序进程:
kill -9 `pgrep asrproxy`
1
# 测试配置是否生效
根据测试文档进行测试:https://ddcti.com/asrproxy/ASR-test/ (opens new window)
# 一句话模型对接方式
# 1. mod_vad对接
asr对接mod_vad可根据该文档链接进行配置:mod_vad对接流程 (opens new window)