语音交互功能:
根据https://code.corvin.cn/corvin_zhang/ros_voice_system开源代码进行改编;

(1)准备工作:申请科大讯飞帐号,下载SDK
 



注意选对sdk版本,以及选择好对应的功能
(2)准备工作:申请图灵机器人帐号

创建机器人:

记录创建机器人apikey做为连接端口;
(3)利用科大讯飞源码和图灵机器人建立ros节点

建立文本转语音ros节点:

 

建立语音转文本ros节点:

 

建立图灵机器人ros节点:

 

  1. 创建art_driver节点,其中实现了一直给iflytek_wakeup节点发送确认消息,使iflytek_wakeup节点一直处于监听状态;

std_msgs::String msg;

msg.data = "y";

while(1){

pub.publish(msg);

}

 

(5)仿照iflytek_asr节点创建iflytek_wakeup节点,这个节点一直处于监听状态,一但本节点确认到关键词(这里我定义的是小艾),一句话中只要有小艾这个词就会被激活,发送激活消息给ifytek_asr节点,并且持续三分钟,三分钟以后需要再次唤醒;ifytek_asr节点继续监听我们询问的问题,并且转换成对应文本,文本发给tuling_nlu节点,并通过接口api下拉智能机器人回馈消息,并把文本输入到iflytek_tts节点进行文本转语音进行播放;

(6)替换成我们的接口

科大讯飞asr:

<node pkg="iflytek_asr" type="iflytek_asr_node" name="iflytek_asr_node" output="screen">

<param name="app_id" type="String" value="57207923" />

appid需要替换成我们的appid值

并且.so库换成我们在科大讯飞官网上下载sdk包中的.so库;

 

科大讯飞tts:

同asr流程。

图灵机器人:

<node pkg="tuling_nlu" type="tuling_nlu_node" name="tuling_nlu_node" respawn="true" output="screen">

    <param name="tuling_key" type="String" value="5149fb75f6434b029480f3aa8dd77945" />

<rosparam file="$(arg config_file)" command="load" />

需要我们填写自己的apikey

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐