呼叫中心语音-在线合成
接口描述及运行环境
本文档是百度呼叫中心语音MRCP的用户指南。
本程序做为MRCP Server端,集成了呼叫中心8K采样率语音识别(ASR)和呼叫中心专属发音人语音合成(TTS)两种能力,用户可分别单独使用某一种或同时使用。
接入步骤
- 参考"AI接入指南",创建应用,获取AppID、API Key、Secret Key,用于后续配置使用
- 点击呼叫中心语音解决方案MrcpServer完成Mrcp Server下载;
- 在下载的对应文件中修改相关信息,启动服务并进行程序验证
开发环境
-
开发环境依赖:
Plain Text1 - Linux 64位 centos 6u3、centos 7+版本 2 3 - gcc: 8.2以上版本libc,CXX11。程序自带compiler.tar.gz压缩包
-
并发受机器内存、核数等性能影响。
Plain Text1 - 参考:4核8G内存,并发数为20。
音频格式
要求项 | 取值要求 |
---|---|
采样率 | 8KHz |
采样精度 | 16bits |
声道 | 单声道 |
- 音频内容为:清晰的真人发音,无背景音或其它噪音,日常用语。
- 开发者MRCP Client端发送的音频格式通过SIP协议交互约定,目前mrcp server支持的音频格式有: PCMU PCMA L16/96/8000
语言及模型支持
支持中文普通话
发音人
目前支持九位发音人,详情见附件文档
调用流程
MRCP下载与目录
点击呼叫中心语音解决方案MrcpServer完成MRCP Server下载;
目录结构
1${SERVER_ROOT}
2|--- README // 说明文件
3|--- bootstrap.sh // 环境初始化
4|--- compiler.tar.gz // gcc-8.2编译器lib库
5|--- mrcp-server // 主程序模块
6 |--- audio // 音频保存目录
7 |--- bin // 服务可执行程序
8 |--- unimrcpserver_control // 启动脚本
9 |--- conf // 配置文件
10 |--- unimrcpserver.xml // 可执行程序框架配置项
11 |--- unimrcpserver_control.conf // 启动配置项
12 |--- mrcp-asr.conf // 识别插件配置项
13 |--- mrcp-proxy.conf // 合成插件配置项
14 |--- comlog.conf // 日志配置项
15 |--- data // 资源文件
16 |--- lib // 依赖库
17 |--- log // 日志目录
18 |--- plugin // 插件目录
鉴权与IP参数配置
用户首先需进行相关配置以启动程序。一般地,配置采用默认值即可,需要用户修改的主要有:
- 在主程序配置文件
${SERVER_ROOT}/mrcp-server/conf/unimrcpserver.xml
中配置本程序IP,具体位置:unimrcpserver->properties->ip,可选用多种方式,只能同时使用一种:
1 * type="auto",由程序自动获取机器IP。默认配置,用户无需修改。
2 * type="iface",填写网口名称,较少使用。
3 * 直接手动填写IP,如:<ip>10.10.0.1</ip>,可以使用。
- 语音识别配置
conf/mrcp-asr.conf
中更改AUTH_APPID和AUTH_APPKEY为从百度官方获取的APPID和API Key的值。 - 语音合成配置
conf/mrcp-proxy.conf
中更改AUTH_APPID和AUTH_APPKEY为从百度官方获取的APPID和API Key的值。 - 启动配置文件
${SERVER_ROOT}/mrcp-server/conf/unimrcpserver_control.conf
,用于监测相应IP和端口,判断程序是否启动成功。搜索到_check_cmd_pro="./bin/check 127.0.0.1 1544"的位置:
1 * 如果主程序配置IP采用默认type="auto"方式,则该处"127.0.0.1"不用修改。
2 * 如果主程序配置IP使用手动填写IP方式,则该处的IP值修改为与它相同的值。
详细的配置说明见模块内README文件-${SERVER_ROOT}/mrcp-server/README
服务启动
- 初次下载MRCP server安装包,需要在
${SERVER_ROOT}/
目录下,以 root 权限执行bootstrap.sh
脚本,以完成百度自带gcc8.2环境配置。 - 程序调试阶段,建议在程序目录
${SERVER_ROOT}/mrcp-server/
下,手动使用命令"./bin/unimrcpserver -r . &"启动程序,方便查看输出、定位问题。使用netstat -nlp | grep unimrcp
,查看IP和端口5060/1544/1554,看是否启动成功。如果公司有防火墙限制,请记得将这三个端口打开。 -
使用启动脚本,以守护进程形式启动程序。在生产环境使用时,建议使用该方式:
- 启动:在
${SERVER_ROOT}/mrcp-server
目录执行./bin/unimrcpserver_control start
- 停止:在
${SERVER_ROOT}/mrcp-server
目录执行./bin/unimrcpserver_control stop
- 重启:在
${SERVER_ROOT}/mrcp-server
目录执行./bin/unimrcpserver_control restart
- 启动:在
- 进行
start
前确保系统无MRCP进程;进行stop/restart
时确保系统有MRCP进程。如果不行,通过ps aux | grep mrcp
尝试将所有MRCP相关的进程kill掉,重新start
。
请求说明
如需使用语音合成能力,则需在下载的Mrcp Server中对合成配置文件进行参数更改 {SERVER_ROOT}/mrcp-server/conf/mrcp-proxy.conf
。确保AUTH_APPID和AUTH_APPKEY填写正确。
- AUDIO_CONTROLLER_ADDR,百度上游服务地址(默认值当前有效)。
- AUTH_APPID和AUTH_APPKEY,从百度官方获取的APPID和API Key的值。
- NEED_SAVE_AUDIO,是否保存合成语音,默认1为保存。
- TR_ENABLE,默认为1表示开启合成文本
正则替换
功能,详见./data/rules.dat
,注意,正则替换原则是按配置从上到下逐条进行匹配,因此建议将泛化能力强的正则放在上面,配置不当下面的正则会使上面的失效,请用户自行体验。不需要该功能可以关闭。 - 目前配置中,支持九种精品发音,用户呼叫软件在进行合成请求时,请填写对应音色参数。
在线合成 - 配置MrcpServer
配置音色
- 在conf/mrcp-proxy.conf中按照如下格式配置发音人:
- 该步骤为必要步骤。需要配置完成后,才能使用发音人。
1[@VOICE_INFO]
2NAME : fduxiaowen###
3ID : 100
4
5[@VOICE_INFO]
6NAME : duxiaoxia
7ID : 5130
8
9[@VOICE_INFO]
10NAME: duxiaoxi
11ID: 5117
12
13[@VOICE_INFO]
14NAME: duxiaowei
15ID: 5120
16
17[@VOICE_INFO]
18NAME: duxiaojin
19ID: 5221
20
21[@VOICE_INFO]
22NAME: duxinghe
23ID: 5131
24
25[@VOICE_INFO]
26NAME: duxiaoyao
27ID: 3
28
29[@VOICE_INFO]
30NAME: duxiaoqiao
31ID: 1117
32
33[@VOICE_INFO]
34NAME: dulinger
35ID: 105
- 在MRCP SPEAK请求的header中设置Voice-Name,对应第一步中的NAME字段的配置
比如下图中将使用"duxiaoxia"发音人,ID:5130,mrcp client中设置SYNTHESIZER_HEADER_VOICE_NAME即可。
示例:
1<resource-header-field key="SYNTHESIZER_HEADER_VOICE_NAME"
2value="duxiaoxia"/>
3.如果没有设置MRCP SPEAK中header的Voice-Name字段,则默认使用conf/mrcp-proxy.conf中DEFAULT_SPEAKDER_ID对应的发音人。
合成效果
在mrcp-proxy.conf中可以通过修改参数更改效果。通过对VOICE_PITCH(音高)、VOICE_VOLUME(音量)和VOICE_SPEED(语速)参数的调整,可以获得不同的发声效果,更好满足您业务场景中的播报需求。
如音高稍高,声音听起来会显得年轻。
设置音高
1.默认的音量值见conf/mrcp-proxy.conf中VOICE_PITCH对应的值,默认为5
2.在MRCP SPEAK请求的header中设置Prosody-pitch,可修改音高值
Prosody-pitch对应的value值支持3种类型
第一类:xlow,low,medium,high,xhigh,default几种,音高由低到高
第二类:0到9共10个数字,音高由低到高
第三类:+或者-后跟数字再跟单位h或t,如+100h表示相对调高音高100hz,-50t则表示相对降低音高50st
设置音量
1.默认的音量值见conf/mrcp-proxy.conf中VOICE_VOLUME对应的值,默认为5
2.在MRCP SPEAK请求的header中设置Prosody-volume,可修改音量值,如下图所示
Prosody-volume对应的value值支持3种类型
第一类:silent,xsoft,soft,medium,loud,xloud,default几种,音量由低到高
第二类:0到9共10个数字,音量由低到高
第三类:+或者-后跟数字,如+1表示相对调高音量1,-1则表示相对降低1
设置语速
和设置音量类似
1.默认的语速值见conf/mrcp-proxy.conf中VOICE_SPEED对应的值,默认为5
2.在在MRCP SPEAK请求的header中设置Prosody-rate,可修改语速值
Prosody-rate对应的value值支持2种类型
第一类:xslow,slow,medium,fast,xfast,default几种,语速由低到高
第二类:0到9共10个数字,语速由低到高
忽略MRCP请求header中性别,音量,语速,音高参数
修改mrcp-proxy/conf/mrcp-proxy.conf,修改后需重启
1#是否忽略性别, 0:不忽略(默认); 1: 忽略
2IGNORE_GENDER_IN_MRCP_HEADER : 0
3#是否忽略语速, 0:不忽略(默认); 1: 忽略
4IGNORE_SPEED_IN_MRCP_HEADER : 0
5#是否忽略音量, 0:不忽略(默认); 1: 忽略
6IGNORE_VOLUME_IN_MRCP_HEADER : 0
7#是否忽略音高, 0:不忽略(默认); 1: 忽略
8IGNORE_PITCH_IN_MRCP_HEADER : 0
程序验证
首先,需要将程序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 目录下。
验证语音合成正确性,则执行 ./unimrcpclient
,输入 run synth
,等待一段时间,确保合成结束。合成的是 mrcp-server/data
目录下的speak.xml文本,查看audio目录下是否有相应音频,如有错误,log目录下日志mrcp_debug.log可以看到相关信息。
注意,在输入识别或合成命令后,等待一段时间,确保识别或合成结束,再使用 quit
退出。使用help
查看帮助。
返回说明
如果配置文件设置了NEED_SAVE_AUDIO,音频会在audio目录下保存,名称为{sn}.pcm,当前请求的sn可在日志文件mrcp_debug.log里查看。
附
音色名称 |
采样率 |
音色per |
合成文本 |
合成样音 |
---|---|---|---|---|
度小希 | 8000 | 5117 | 您有什么问题可以随时告诉我,我会尽我所能为您提供满意的解答和服务。期待能为您带来愉快的沟通体验,祝您一切顺利! | 度小希 |
度小唯 | 8000 | 5120 | 感谢您对我们的支持!祝您购物愉快!如果后续有任何问题,随时联系我哦,我会一直在这里等您的!再见啦! | 度小唯 |
度小夏 | 8000 | 5130 | 明亮的火烛,将寝室里照得亮如白昼。不知何处来了一阵风,烛火摇曳不定,在洁白的墙壁上投下飘忽不定的阴影。躺在凤榻上的陆皇后面色晦暗,猛地咳嗽几声,转头吐出一口血。 | 度小夏 |
度小璟 | 8000 | 5221 | 欢迎来到客服中心,我是您的客服助手。为了更快更好地帮助您解决问题,请问您是关于哪方面的咨询呢? | 度小璟 |
度星河 | 8000 | 5131 | 最近天气变化大,要注意保暖,别着凉了。另外,您有什么需要帮忙的吗?比如查询信息或者安排日程,尽管告诉我,我会尽力帮您解决。 | 度星河 |
度小雯 | 8000 | 100 | 中国科学院南京地质古生物研究所网站1月21日消息,生物发光现象广泛地存在于各类生物中。在陆生动物中,能进行生物发光的物种大多都属于鞘翅目昆虫。 | 度小雯 |
度逍遥 | 8000 | 3 | 林荒大吼出声,即便十年挣扎,他也从未感到过如此无助。自己的身体一点点陷入岁月之门,却眼睁睁的看着君倾城一手持剑,雪白的身影决然凄厉。就这样孤身一人,于漫天风雪中,对阵数千武者。 | 度逍遥 |
度小乔 | 8000 | 1117 | 北京现在气温-1℃,晴,西南风1级,空气质量良,空气质量指数81。 | 度小乔 |
度灵儿 | 8000 | 105 | 前方路口左转,距离目的地还有500米,请小心驾驶。 | 度灵儿 |