《ROS理论与实践》学习笔记(七)机器人语音交互

《ROS理论与实践》学习笔记(七)机器人语音交互

在学习《ROS理论与实践》课程时,记录了学习过程中的编程练习,课后作业以及发现的问题,后续会对尚未解决的问题继续分析并更新,纯小白,仅供参考。
本次学习笔记关于课程中的第八讲:机器人语音交互 。主要学习了讯飞开放平台、ROS的语音识别、输出和交互。


课程内容

在进行课程之前突然发现不能联网了,在网上找了很多办法,包括修改网络共享,桥接模式、NAT模式、自定义模式之类的,都不行,最后发现重启以下网络连接就好了。

$ sudo service network-manager stop
$ sudo rm /var/lib/NetworkManager/NetworkManager.state
$ sudo service network-manager start 

1.讯飞开放平台使用

登录讯飞开放平台,在控制台创建一个应用robot_voice_ros_zzy,下载SDK

  • 语音识别例程
    首先对samples中的iat_online_record_sample进行编译

    $ source 64bit_make.sh
    

    出现错误提示

    alsa/asoundlib.h: No such file or directory
    

    解决方法:

    $ sudo apt-get install libasound2-dev
    

    在bin目录下运行代码:

    $ ./iat_online_record_sample
    

    出现错误提示:

    ./iat_online_record_sample: error while loading shared libraries: libmsc.so: cannot open shared object file: No such file or directory
    

    解决方法:
    把libmsc.so文件复制到usr/local/lib文件夹下

    $ sudo cp libs/x86/libmsc.so /usr/local/lib/
    $ sudo ldconfig
    

    可以通过麦克风或者音频文件输入,运行能够输出对应的文字

  • 文字输出为音频例程
    首先对samples中的tts_online_sample进行编译

    $ source 64bit_make.sh
    

    在bin目录下运行代码:

    $ ./tts_online_sample
    

    程序输出一个名为tts_sample.wav的音频文件


2.ROS语音识别与语音输出

  • 语音识别
    创建一个节点iat_publish,创建subscriber用于接收唤醒信号,将wakeupFlag变量置位,创建publisher用于调用SDK的语音识别功能,识别成功后置位resultFlag,将识别出来的字符串发布。即通过topic通信唤醒一次,通过麦克风输入语音信号,将语音识别结果打印在屏幕上
    代码来自课程代码包,不再贴出
    启动方法:

    $ roscore
    $ rosrun robot_voice iat_publish
    $ rostopic pub /voiceWakeup std_msgs/String "data:'xxx'"
    
  • 语音输出
    创建一个节点,创建subscriber用于订阅voiceWords话题,接收输入的字符串,创建voiceWordCallback用于使用SDK接口将字符串转换成中文语音
    代码来自课程代码包,不再贴出
    启动方法:

    $ roscore
    $ rosrun robot_voice tts_subscribe
    $ rostopic pub /voiceWakeup std_msgs/String "data:'啊喽哈'"
    
  • 语音输入与输出结合
    通过launch文件同时启动两个节点,通过话题唤醒,然后接收麦克风输入信号,语音识别成字符串后,转换为语音。
    代码来自课程代码包,不再贴出
    启动方法:

    $ roslaunch robot_voice repeat_voice.launch
    $ rostopic pub /voiceWakeup std_msgs/String "data:'xxx'"
    

3.语音交互

创建一个节点voice_assistant,创建subscriber订阅voicewords话题,接收输入的字符串,创建voicewordscallback,通过if判断关键词,完成语音回复。
代码来自课程代码包,不再贴出
启动方法:

```
$ roslaunch robot_voice voice_assistant.launch
$ rostopic pub /voiceWakeup std_msgs/String "data:'xxx'"
```

运行效果:
在这里插入图片描述


本讲作业

通过语音输入控制Gazebo仿真器中机器人的运动,后续更新。

结语

本讲主要学习了机器人的语音交互 ,主要学习了讯飞开放平台、ROS的语音识别、输出和交互,并在作业中加深理解。

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
ROS机器人理论实践pdf》是一本关于ROS机器人操作系统)的理论实践方面的电子书籍,内容非常丰富。ROS是一个开源的机器人软件平台,为机器人开发者提供了一套强大的工具和库,用于创建、运行和管理机器人软件。 这本书主要分为两个部分,理论实践。在理论部分,作者详细介绍了ROS的基本概念、架构和工作原理。读者可以了解到ROS的节点、话题、服务、参数等核心概念,以及ROS的通信机制和消息传递方式。此外,还介绍了ROS的软件包管理系统和常用工具,帮助读者更好地使用ROS进行机器人开发。 在实践部分,作者提供了一些具体的应用案例,涵盖了机器人的感知、控制和导航等领域。读者可以学习如何使用ROS来构建机器人的传感器驱动程序、运动控制算法和导航系统。此外,还介绍了如何使用ROS与外部硬件进行通信,以及如何将ROS与机器学习、深度学习等技术相结合,实现更智能的机器人应用。 这本书适合有一定编程基础的读者阅读,尤其对于对机器人领域感兴趣的学生和工程师来说,是一本很好的参考书。通过学习这本书,读者可以系统地学习ROS理论知识,并通过实践项目来巩固所学内容。同时,这本书也可以作为学校机器人课程的教材,帮助教师传授ROS相关知识和技能。 总之,《ROS机器人理论实践pdf》是一本全面介绍ROS的电子书,对于进一步学习和应用ROS的读者来说,具有很大的参考价值。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值