资讯 社区 文档
技术能力
语音技术
文字识别
人脸与人体
图像技术
语言与知识
视频技术

语音识别

语音识别

如需使用语音识别能力,则需在下载的Mrcp Server中对识别配置文件进行参数更改 ${SERVER_ROOT}/mrcp-server/conf/mrcp-asr.conf。确保AUTH_APPID和AUTH_APPKEY填写正确。

* AUDIO_CONTROLLER_ADDR,百度上游服务地址(默认值当前有效)
* AUTH_APPID和AUTH_APPKEY,从百度官网中获取的APPID和API Key的值。
* NEED_SAVE_AUDIO,是否保存语音识别时用户语音,默认1为保存

程序验证

首先,将mrcp-server/lib目录加入系统环境变量中,export LD_LIBRARY_PATH=${SERVER_ROOT}/mrcp-server/lib:$LD_LIBRARY_PATH,注意将${SERVER_ROOT}修改为程序真实路径。

在主程序启动后,可使用自带的测试工具进行验证。conf/client-profiles/unimrcp.xml 是测试工具的配置文件,需要将其中的unimrcpclient->settings->sip-settings->server-ip的值修改为本机IP,端口设置为主程序端口,如5060。

切换到 ${SERVER_ROOT}/mrcp-server/bin 目录下

  1. 验证语音识别正确性,则执行 ./asrclient,输入 run grammar.xml xeq.pcm,可看到返回的识别结果,使用 quit 退出。识别的是 ../data 目录下的xeq.pcm音频,也可查看log目录下日志mrcp_debug.log是否有识别结果。该工具只为测试部署正确性,测试较长音频时,会因为vad截断而只识别音频里的第一句话;只支持pcm格式音频识别;该工具也不支持批量音频识别。
  2. 用户呼叫软件如freeswitch,在与mrcp server通信时可能需要传递grammar文件,请使用mrcp server中data/grammar.xml文件。
  3. 呼叫中心场景,噪声识别是个很难解的问题。如果用户想忽略因噪声而误识别出的单字结果,例如等,可在conf/mrcp-asr.conf中设置DETECT_START_OF_INPUT_BY_VAD为0,并在SINGLE_WORD_WHTIL_LIST配置的白名单文件中进行相应配置。功能开启后,单字识别结果的场景下,只会识别白名单中的单字

结果返回

  • 语音识别. 往前端返回如下xml格式的内容:
<?xml version="1.0" encoding="UTF-8" ?>
<result>
    <asr confidence="100">今天天气怎么样</asr>
    <ext>
        <logid>6a373e36722811e9_2_1</logid>
    </ext>
</result>
  • 识别结果格式支持模版配置,在conf/mrcp-asr.conf中,修改XML_ASR_RESULT_TEMPLATE 的值即可。在conf目录下默认定义了几种模版,用户可根据需要选择一项或自己定义。

模型自训练

对于特定词句如人名、专业术语等,语音识别结果会存在不准确的情况。可通过百度语音自训练平台,进行自训练,提升识别效果。 训练完成后会得到一个模型ID,用户通过mrcp进行识别请求时,需要在mrcp客户端的vendor_specific_params参数中添加相应的键值对,如:lmid=123。

上一篇
调用流程
下一篇
语音合成