ROS语音交互

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

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

ROS语音交互_第1张图片

ROS语音交互_第2张图片

ROS语音交互_第3张图片

注意选对sdk版本,以及选择好对应的功能
(2)准备工作:申请图灵机器人帐号
ROS语音交互_第4张图片
创建机器人:
ROS语音交互_第5张图片
记录创建机器人apikey做为连接端口;
(3)利用科大讯飞源码和图灵机器人建立ros节点

建立文本转语音ros节点:

ROS语音交互_第6张图片

 

建立语音转文本ros节点:

ROS语音交互_第7张图片

 

建立图灵机器人ros节点:

ROS语音交互_第8张图片

 

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

std_msgs::String msg;

msg.data = "y";

while(1){

pub.publish(msg);

}

ROS语音交互_第9张图片

 

(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库;

ROS语音交互_第10张图片

 

科大讯飞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

你可能感兴趣的:(ROS,技术总结,语音交互,ros,turtlebot,智能语音,唤醒)