私有化部署ASR
# FunASR模型下载命令
流识别(websocket实时传输音频流识别),比如对接mod_cti(新一代电话机器人和实时质检)
大模型:
curl -s http://down.ddrj.com/getasrmodel.sh | bash -s paraformer-large paraformer-large-online
热词模型(需要更多的CPU,支持定义热词):
curl -s http://down.ddrj.com/getasrmodel.sh | bash -s paraformer-large-contextual paraformer-large-online
一句话识别(http接口提交录音文件识别),比如对接mod_vad(老电话机器人接口)
大模型:
curl -s http://down.ddrj.com/getasrmodel.sh | bash -s paraformer-large
热词模型(需要更多的CPU,支持定义热词):
curl -s http://down.ddrj.com/getasrmodel.sh | bash -s paraformer-large-contextual
# 更新asrproxy程序
只有最新版本的asrproxy程序,才支持FunASR模型的私有化部署,以下是asrproxy程序升级命令:
curl -s http://down.ddrj.com/upgrade.sh | bash -s asrproxy
# 配置asrproxy.json文件
模型下载完成后,在下边的配置中找到对应下载模型的配置,然后配置到 asrproxy.json 文件中,保存并退出,最后重启 asrproxy 程序使配置文件生效:
流识别大模型配置:
//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" ] } }
1
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流识别热词模型配置:
//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" ] } }
1
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一句话识别大模型配置:
"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" ] } } }
1
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一句识别热词模型配置:
"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" ] } } }
1
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
# 重启asrproxy程序
SSH控制台按顺序执行以下命令:
pgrep asrproxy
:获取asrproxy程序的进程ID。kill -9 进程ID
:杀掉asrproxy的进程。cd /ddt/asrproxy
:进入asrproxy目录。./asrproxy
:启动asrproxy程序。
# 测试
根据测试文档进行测试:http://ddcti.com/pages/ASR-test/ (opens new window)