配置不同语种的ASR
# 创建不同语种的语音识别项目
浏览器访问该地址:阿里云智能语音交互 (opens new window),注册并登录阿里云账号。然后点击“管理控制台”按钮开通智能语音交互服务。
网站切换到控制台页面后,点击该页面的“创建项目”按钮开始创建项目;在创建项目过程中,需要选择项目类型,类型选择可参考以下图片提示。项目类型我们可以选择“仅语音识别”,只配置ASR即可:
项目创建完成后,会自动进入到“项目功能配置”页面,可以开始配置想要语种的ASR。
如果需要不同语种的ASR,重复执行第二步和第三步的操作。需要多少语种的ASR就创建多少个项目。例如:我需要能够识别普通话(国语)、英语、泰语的ASR,就创建三个项目,分别支持识别这些语种。
ASR配置完成后,将鼠标移动到右上角头像处,在显示的菜单中点击“AccessKey管理”进入到新页面创建AccessKey。创建完成后,将
AccessKey ID
和AccessKey Secret
这两个秘钥复制下来,后续在与asrproxy程序对接的时候需要用上。返回到项目创建页面,找到自己创建的项目,并复制这些项目的
项目Appkey
。
# 对接识别不同语种的ASR
打开 asrproxy.json 配置文件,路径:/ddt/asrproxy/。然后找到对接阿里云ASR的配置:
asr.interface.aliyun_01
,并复制多份配置,复制多少份由之前创建的项目数决定,再将复制的配置名称重命名,如:aliyun_1、aliyun_2等等。 对接参数说明:- appid:对应阿里云的项目ID AccessKey ID(不同配置对应不同的项目ID)
- key:对应阿里云的秘钥 AccessKey ID(阿里云的 AccessKey ID 可以共用)
- secret:对应阿里云的秘钥 AccessKey Secret(阿里云的 AccessKey Secret 可以共用)
在
asr.group
中配置自定义组,用于使用识别不同语种的ASR。可复制asr.group.default
配置,然后将复制的配置名称重命名,如:aliyun_zhong
、aliyun_ying
、aliyun_tai
等等。
重启 asrproxy 程序
- 启动 asrproxy 命令:
cd /ddt/asrproxy
./asrproxy
- asrproxy 控制台中输入退出命令:
shutdown
# 如何切换不同语种的ASR
# json类型话术切换不同语种的ASR
需要使用到语音识别功能一般是在机器人话术中,识别用户说的话,然后提交给系统做判断,是否进入到话术的下一个流程。 这里需要用到我们的机器人话术编辑器,下载地址:
- windows环境:http://down.ddrj.com/robotflow.zip (opens new window)
- mac环境:http://down.ddrj.com/robotflow_macos.zip (opens new window)
打开话术编辑器 -> 全局配置 -> ASR -> “参数
”配置使用识别语种的ASR的组。
参数说明:
参数
:【asr_params】ASR参数,控制asrproxy使用那个asr配置组去识别。例:这个话术需要识别泰语,那这参数就可以配置为:{"group":"aliyun_tai"}
# http类型话术切换不同语种的ASR
以php代码为例:
$response = array(
"action"=>"cti_play_and_detect_speech",
"argument"=>"'1' '64' '0' '0.8' '$asr_addr' '120' '800' '5000' '20000' '' '' '$appid' '1' '\${strftime(%Y-%m-%d)}' 'wav'", "tts"=>array("ttsurl"=>$tts_addr,"ttsvoicename"=>"","ttsconfig"=>"","ttsengine"=>"","ttsvolume"=>0,"ttsspeechrate"=>0,"ttspitchrate"=>0),
"privatedata"=>"test",
"playbacks"=>array("欢迎进入测试程序,被叫号码是","\${destination_number}","请说话测试吧","test.wav"),
"sound_file_dir"=>"E:/sad/",
"pre_tts_text"=>array("徐先生","2022年12月6日"),
"quickresponse"=>true,
"log"=>"create succeed");
2
3
4
5
6
7
8
9
action:执行的动作要是
cti_play_and_detect_speech
,可以指定识别的asr组;argument:动作参数;
参数顺序:
具体参数作用可参考这个文档:asr动作参数说明 (opens new window)
<mode> <interrupt> <vad_mode> <vad_filter> <asrproxy_addr> vad_min_active_time_ms vad_max_end_silence_time_ms wait_speech_timeout_ms max_speech_time_ms hot_word asr_params appid record_mode record_template record_format
1asr_params:asr参数,这个参数可以指定识别的asr组,不指定时使用默认组。例如:
{\"group\":\"default\"}
,指定识别的asr组是dafault组。