CentOS 7 Freeswitch1.10.7 对接百度MrcpServer实现 TTS和ASR

通过百度MrcpServer实现简单的呼叫对话机器人。

一、参考百度AI接入指南,创建应用,获取AppID、API Key、Secret Key,用于后续配置使用

https://ai.baidu.com/ai-doc/REFERENCE/Ck3dwjgn3

二、下载MrcpServer安装包 sdk_asr_MRCPServer-20200609.tar.gz

https://ai.baidu.com/ai-doc/SPEECH/7kaxz0h2z

https://ai.baidu.com/download?sdkId=111

wget https://platform.bj.bcebos.com/sdk%2FasMRCPServer-20200609.tar.gz


三、解压sdk_asr_MRCPServer-20200609.tar.gz文件。会生成个MRCPServer文件夹。

tar -xvf sdk%2Fasr%2FMRCPServer-20200609.tar.gz

四、.安装百度MrcpServer

cd MRCPServer/

sh ./bootstrap.sh

ll /opt/compiler/

total 4

drwxrwxr-x 3 3308 3308 4096 Jun 9 2020 gcc-8.2

五、配置Mrcp

1>配置ASR,为FreeSWITCH提供语音识别服务。

mrcp-server/conf/mrcp-asr.conf

更改AUTH_APPID和AUTH_APPKEY为从百度官方获取的APPID和API Key的值



2>配置TTS,为FreeSWITCH提供语音合成服务。
配置文件为:mrcp-server/conf/mrcp-proxy.conf

更改AUTH_APPID和AUTH_APPKEY为从百度官方获取的APPID和API Key的值

3>配置MrcpServer的SIP服务端,为FreeSWITCH的MrcpClient提供SIP服务。

mrcp-server/conf/unimrcpserver.xml


4>启动MrcpServer,无报错即正常。

cd mrcp-server/

./bin/unimrcpserver -r . &


5>FreeSWITCH使用百度的MrcpServer需要用到grammar.xml这个语法文件。

cp /MRCPServer/mrcp-server/data/grammar.xml /etc/freeswitch/grammar/baidu.gram

六、FreeSWITCH配置

vim /etc/freeswitch/conf/mrcp_profiles/baiduserver.xml


  
  
    
    
    
    
    
    

    
    
    
    
    
	
    
    
    
    
    
    

    
    
    

    
    
      
    
  


vim /etc/freeswitch/conf/autoload_configs/unimrcp.conf.xml


  
    
    
    
    

    
    
    
  

  
    
  

七、测试


   
   
   
        >> ASR result parse failed 
%s' % e)
                continue
        session.sleep(1000)
    session.hangup()


def asr2text(text): 
     xml_dom = parseString(text)  
     collection = xml_dom.documentElement
     returnInfo = collection.getElementsByTagName("input") 
     guest_text =returnInfo[0].firstChild.data 
     return guest_text
def bot_chat(chat_input, user_id, client_id, client_secret):
    # 设置默认回复
    chat_reply = "不好意思,我正在学习中,随后回复你"
    # 固定的url格式
    url = "https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=%s&client_secret=%s" % (
    client_id, client_secret)
    res = requests.post(url)
    access_token = json.loads(res.text)["access_token"] 
    unit_chatbot_url = "https://aip.baidubce.com/rpc/2.0/unit/service/v3/chat?access_token=" + access_token
    # 拼装聊天接口对应请求    
    post_data = {
        "version": "3.0",
        "service_id": "S75157",
        "session_id": "",
        "log_id": str(random.random()),
        "skill_ids":["1237888","1237895"],
        "request":
            {
                "terminal_id": user_id,
                "query": chat_input
            }
    }  
    # 将聊天接口对应请求数据转为json数据
    res = requests.post(url=unit_chatbot_url, json=post_data)

    # 获取聊天接口返回数据
    unit_chat_obj = json.loads(res.text) 
    if unit_chat_obj["error_code"] != 0:
        return chat_reply+'('+unit_chat_obj["error_msg"]+')' 
    unit_chat_response_reply = unit_chat_obj['result']['responses'][0]['actions'][0]['say']
    return unit_chat_response_reply 
展开阅读全文

页面更新:2024-03-12

标签:服务端   机器人   语法   文件夹   语音   不好意思   接口   文件   官方   数据

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2008-2024 All Rights Reserved. Powered By bs178.com 闽ICP备11008920号-3
闽公网安备35020302034844号

Top