--- id: ei_asr_mrcp sidebar_label: EI ASR MRCP服务 privacy: secret html: embed_local_images: true embed_svg: true toc: false author: YF title: EI ASR MRCP服务 部署手册 description: EI ASR MRCP服务部署手册

 

 

EI ASR MRCP服务 部署手册

 

目录

▶︎
all
running...

1. 概述

ASR MRCP服务解压部署包即可。

2. 部署图

部署 ASR MRCP服务需要依赖华为云语音交互服务(SIS)。

部署示意图如下:

asr_mrcpSIS业务sip端口ipaddr:8060wss语音识别接口业务请求

3. 组件包

部署 ASR MRCP服务需要以下组件包,版本号已省略,以产品号为准。

组件 包名称 服务名称/描述 安装必选 说明
asr_mrcp ei-*-asr_mrcp.tar.gz - ASR MRCP服务

4. 准备工作

4.1 硬件资源

ASR MRCP服务硬件需求

  系统:  CentOS 6、CentOS 7、Suse 12 SP1、麒麟
         Glibc 2.12+, Kernel 2.6.32+
  CPU:   x86_64、aarch64
  内存:  8G+
  硬盘:  500G+

5. 部署安装

假设安装目录为 $HOME/aicp,将组件包拷贝到此目录并解压。
安装后, ei_asr_mrcp 的服务目录为 $HOME/aicp/ei_asr_mrcp,配置文件 ei_asr_mrcp.toml 在其中的 conf 目录下。

5.1 目录结构

安装后,服务目录 $HOME/aicp/ei_asr_mrcp 中有以下内容

ei_asr_mrcp/
├──bin/
│  └──ei_asr_mrcp*
├──conf/
│  ├──ei_asr_mrcp.toml
│  ├──logfile.xml
│  ├──logger.xml
│  ├──default_grammar.xml
│  └──ei_asr_mrcp.xml
├──lib/
│  ├──libapr-1.so.0*
│  ├──libaprutil-1.so.0*
│  ├──libcrypto.so.1.1*
│  ├──libcurl.so.4*
│  ├──libexpat.so.0*
│  ├──libsofia-sip-ua.so.0*
│  ├──libssl.so.1.1*
│  └──libunimrcpserver.so.0*
├──log/
├──plugin/
│  └──libasr_mrcp.so*
└──script/
   ├──mrcp_result.lua
   └──param_adjust.lua

6. 配置项

本章节仅对经常使用的配置进行说明,更多配置项的说明请参考配置文件中注释说明。

6.1 mrcp服务配置

配置文件路径为$HOME/aicp/ei_asr_mrcp/conf/ei_asr_mrcp.xml

其中默认为:

注:mrcp服务更多高级配置遵循unimrcp框架官方配置

6.2 asr插件配置

配置文件路径为 $HOME/aicp/ei_asr_mrcp/conf/ei_asr_mrcp.toml

6.2.1 修改API信息

# API配置 
[api]
# endpoint
endpoint = 'sis-ext.cn-north-4.myhuaweicloud.com'
# project_id
project_id = 'your_project_id'

6.2.2 修改语法文件、mrcp消息、本地配置中相同参数的优先级

找到param_adjust_script配置项,该配置指向了一个lua脚本,打开脚本内容如下:

     function get_adjust_value(name,local_value,rule_value,mrcp_value)
         local real_value=local_value
         if( rule_value~= "") then
             real_value=rule_value
         elseif( mrcp_value~= "") then
             real_value=mrcp_value
         else
             real_value=local_value
         end
         return real_value
     end

6.2.3 支持本地配置语法文件

找到default_grammar_file配置项,该配置指向了一个xml文件
支持加载本地语法文件。

注:默认情况不需要配置此项,即使用客户传入的语法文件;如果配置此项目,则始终本地语法文件优先级高于传入的语法文件

6.2.4 支持结果返回前字符限制

找到asr_result_max_byte_limit配置项,此配置项支持识别结果返回前允许的最大字符限制,单位Byte,超出后,后面的内容将会被截断。默认0不限制

6.2.5 修改MRCP结果格式

找到xml_result_charset配置项,该配置项可以指定结果的字符编码,可选utf-8或者gbk 找到xml_result_generate_script配置项,该配置指向了一个lua脚本,打开脚本内容如下:

str_format = [==[
<?xml version="1.0" encoding="%s" ?>
<result>
    <interpretation grammar="%s" confidence="%s">
        <instance>
            <r0>%s</r0>
            <start>%s</start>
            <nlresult>type=%s time=%s %s result=%s score=%s</nlresult>
        </instance>
        <input mode="speech">%s</input>
     </interpretation>
</result>
]==]
 
function get_xml_result()
  if (_recog_mode~="speech-to-text") then
    _recog_mode = "voice-guide"
  end
  return string.format(str_format,_charset,symbol_cvt(_grammar_url),_confidence,_channel_id,_time_begin,_recog_mode,_time_begin,_time_end,
end

注:此脚本内容根据不同客户需求,可进行定制化修改

6.2.6 脚本可编程项

在所配置的lua脚本中允许使用的全局变量列表如下:

变量名 含义 可用时机
_recog_mode 识别模式{voice-guide,speech-to-text} 语法文件解析后
_charset 结果编码{gbk,utf-8} 识别完成后
_grammar_url 语法文件路径 识别完成后
_confidence 识别置信度 识别完成后
_channel_id 通道标识 会话建立后
_asr_result 语音识别结果 识别完成后
_time_begin 识别时间戳-开始 识别完成后
_time_end 识别时间戳-结束 识别完成后
_speed 识别结果语速 识别完成后,需配置语能开启
_avg_vol 识别结果平均音量 识别完成后,需配置功能开启
_max_vol 识别结果最大音量 识别完成后,需配置功能开启
_emotion 识别结果情绪信息 识别完成后,需配置功能开启
_logging_tag 同mrcp头域中Logging-Tag mrcp请求中携带
_vendor_specific_parameters mrcp头域中Vendor-Specific-Parameters mrcp请求中携带
^例如:params1=aaa;params2=222;params3=33"
VSP_xxx 其中xxx表示从Vendor-Specific-Parameters中分割出的参数 Vendor-Specific-Parameters
^例如:VSP_params1、VSP_params2、VSP_params3,变量对应的值依次即为aaa、222、33
_sentence_index 当前识别句索引 识别完成后(仅流式识别模式下有效)
_silence_duration 句间静音时长 识别完成后(仅流式识别模式下有效)

6.3 日志配置

MRCP接口服务选用unimrcp框架实现业务支持,日志配置遵循unimrcp日志框架配置方式。

6.4 运行日志

日志格式

2020-06-11 07:38:55:708760 140358121944832 [INFO] [mrcp_server_connection.c:789] Log Message
 ────────────┬────────────  ─────┬──────    ─┬──   ────────┬─────────────────── 
             │                   │           │             └────── 文件名:行号
             │                   │           └──────────────────── 日志级别
             │                   └──────────────────────────────── 线程号
             └──────────────────────────────────────────────────── 日期时间

7. 运行

bin目录下执行: ./ei_asr_mrcp -d --ak yourAK --sk yourSK