ROS语音工具汇总,目前先给出链接,只用过一些简单的命令。

中文语音:

参考链接:使用科大讯飞库

http://www.ncnynl.com/archives/201611/1069.html

http://blog.csdn.net/zhouge94/

pocketsphinx:

https://github.com/cmusphinx

http://cmusphinx.sourceforge.net/

julius:

https://github.com/julius-speech/julius

rospeex:

http://rospeex.org/top/

----

将语音识别实现,然后用ROS控制机器人,完成接口就可。

补充其他资料:

hark:

HARK是开源的机器人试听软件,即机器人的声音处理。 它包括声源定位模块,声源分离模块和分离的语音信号的自动语音识别模块,其工作在具有任何麦克风配置的任何机器人上。

http://wiki.ros.org/hark

百度语音接口:

http://wiki.ros.org/baidu_speech

https://github.com/DinnerHowe/simple_voice

推荐阅读:

http://rosclub.cn/post-571.html

http://rosclub.cn/post-572.html

ROS语音交互系统_科大讯飞连续语音识别代码解析(上)

2016-12-5 09:22| 发布者: adm1n| 查看: 26| 评论: 0|来自: 微信

| 评论: 0|来自: 微信

摘要: 这次教程讲解了科大讯飞的iat_record代码中如何利用麦克风进行拾音,并且传输至服务器并自动检测端点(VAD),然后返回识别结果文本到本地的整个过程。 ...


这次教程讲解了科大讯飞的iat_record代码中如何利用麦克风进行拾音,并且传输至服务器并自动检测端点(VAD),然后返回识别结果文本到本地的整个过程。

在demo_mic函数中主要调用了三个函数来完成整个识别过程:

(1)sr_init()函数,主要进行参数的初始化,本地结构体变量的状态初始化,设置服务器参数的回调函数。在此函数中进一步调用了科大讯飞提供的create_recorder()函数和open_recorder()函数,但是这些函数最终都是调用ALSA接口完成的pcm设备的初始化和打开设备。

(2)sr_start_listening()函数,主要完成的功能是调用QISRSessionBegin()函数与服务器进行通信,开始进行一次语音识别,调用成功后服务器返回会话ID,获取到ID后,调用start_recorder()函数,来开始从麦克风中获取音频数据,并通过回调函数将获取到的音频数据传至科大讯飞服务器,服务器然后会返回识别的结果,是否识别到VAD等回调各种状态。若识别到VAD则会自动关闭麦克风,停止继续获取音频流数据,服务器返回识别结果,通过回调函数通知到本地。

(3)sr_stop_listening()函数,主要完成收尾工作,关闭麦克风,销毁创建麦克风申请的各种资源,缓冲区等。

在整个代码解析过程中,我认为可能大家会比较感兴趣的地方都在开始的图片里展示出来了。

首先是为什么头文件中在声明函数地方,都要加上

#ifdef __cplusplusextern "C" {#endif ..int function();...

#ifdef __cplusplus}#endif

就是为了在c++代码中,编译时防止函数名词被修改,因为C语言编译和c++编译过程不相同,函数名称会被修改。如果在C++编译中不加这个宏定义进行包裹,那么C编译的so文件库可能在C++中调用可能就会有问题。

然后就是在打印调试信息方面有个小技巧,如下:

#define SR_DBGON 1 --SR_DBGON 这个名词可以根据需要自行修改#if SR_DBGON == 1# define sr_dbg printf ---sr_deb也可以自行修改,这个名词就代替了printf#else# define sr_dbg #endif

在最开始的#define SR_DBGON 1这个就是所以调试信息的总开关,如果设置为1,那么 sr_dbg 就是等同于printf这个函数,

  示例:...sr_dbg("mem alloc failed\n");...

  那么示例中的sr_deb就会被替换成,printf("mem alloc failed\n");

  如果设置SR_DBGON 为0,那么根据#if SR_DBGON == 1这个判断可得,#define sr_dbg 就会被识别为空,那么示例中代码就会被替换成如下:

  ("mem alloc failed\n");即调试信息不会输出了。

   本次教程的优酷视频地址如下:

  http://v.youku.com/v_show/id_XMTg0NzcxMzA3Ng==.html

ROS(indigo) 语音工具 科大讯飞 百度 pocketsphinx julius rospeex 16.11.22更新 ROS中文语音的更多相关文章

  1. ROS Learning-001 安装 ROS indigo

    如何在 Ubuntu14.04 上安装 ROS indigo 我使用的虚拟机软件:VMware Workstation 11 使用的Ubuntu系统:Ubuntu 14.04.4 LTS ROS 版本 ...

  2. ROS(indigo)MoveIt!控制ABB RobotStudio 5.6x 6.0x中机器人运动

    Gazebo以及相关参考文献,参考: ROS(indigo)ABB机器人MoveIt例子 这里需要配置RobotStudio,请参考ROS官网教程.下面列出要点:   window端配置结束后,在Ub ...

  3. 机器人操作系统ROS(indigo)与三维仿真软件V-Rep(3.2.1)通信接口使用笔记

    关键字:ROS(indigo),V-Rep(3.2.1), vrep_ros_bridge(lagadic). vrep_ros_bridge提供了V-Rep和ROS之间的通信接口,可以实现使用ROS ...

  4. Installing ROS Indigo on the Raspberry Pi

    Installing ROS Indigo on the Raspberry Pi Description: This instruction covers the installation of R ...

  5. ROS indigo 删除和安装

    删除比较容易:  sudo apt-get remove ros-jade-desktop-full 但是如果怕删不干净可以采用: sudo apt-get remove ros-*  ,但是不确定会 ...

  6. Ubuntu14.04安装和配置ROS Indigo(一)

    安装ROS 配置Ubuntu的软件源 配置Ubuntu要求允许接受restricted.universe和multiverse的软件源,可以根据下面的链接配置: https://help.ubuntu ...

  7. ubuntu 14.04 (desktop amd 64) 安装和配置ROS Indigo

    安装ROS 配置Ubuntu的软件源 配置Ubuntu要求允许接受restricted.universe和multiverse的软件源,可以根据下面的链接配置: https://help.ubuntu ...

  8. ubuntu 14.04 server(amd64) 安装ros indigo

    1.添加软件源(添加了正确的软件源,操作系统就知道去哪里下载程序,并根据命令自动安装软件) sudo sh -c 'echo "deb http://packages.ros.org/ros ...

  9. 学习使用turtlebot2——安装ROS Indigo系统

    最近在学习使用turtlebot2,特此做一些学习记录. 安装ROS前要先决定自己电脑的Ubuntu(乌班图)系统.现在学习ROS常使用的Ubuntu系统有Ubuntu 16.04 和Ubuntu14 ...

随机推荐

  1. iframe 里的高度适应的问题

    iframe 这个东西功能是很强大,但是有一个巨大的问题就是高度自适应的问题: 不过这个问题,百度或者谷歌上有很多解决办法,但是,很多时候都有兼容性问题: 所有我就每个方法都试了一遍,终于找到了一个 ...

  2. 关于手机APP开发的一些常见误解

    移动应用不适用于小型企业和创业公司 如果你想要开发一款移动APP,那么在前期开发一种偏见的态度并不是一个好主意.如果你认为移动APP只有跨国公司和大企业创业者才会去开发,那么你可能错过了成功的捷径.而 ...

  3. svg 五花 元辅音 助读器

    如图,使用svg 创建5个圆,中间 辅音字母,外圈 元音字母 以及 示例单词. 可以使用  提交 按钮 进行更新

  4. Python默认版本切换

    Mac上自带python2.7 版本,但是我又下了一个3.7版本(下载的版本默认安装在 /Library/Frameworks/Python.framework/Versions/3.7/bin/py ...

  5. html checkbox样式美化

    思路:使用label结合checkbox,背景图片进行美化. 原理: 1. for 属性规定 label 与哪个表单元素绑定,显式绑定和隐式绑定,均可实现checkbox的选用与取消效果,具体见:&l ...

  6. [HAOI2006]数字序列

    题目描述 现在我们有一个长度为n的整数序列A.但是它太不好看了,于是我们希望把它变成一个单调严格上升的序列.但是不希望改变过多的数,也不希望改变的幅度太大. 输入输出格式 输入格式: 第一行包含一个数 ...

  7. VK Cup 2017 - Round 2

    FallDream打的AB都FFT了,只剩一个我打的C,没进前一百,之后看看马拉松复活赛有没机会呗. A. Voltage Keepsake 题目大意:n个东西,每个东西一开始有bi能源,每秒消耗ai ...

  8. SPOJ NSUBSTR

    You are given a string S which consists of 250000 lowercase latin letters at most. We define F(x) as ...

  9. 【Codeforces Round #431 (Div. 1) D.Shake It!】

    ·最小割和组合数放在了一起,产生了这道题目. 英文题,述大意:     一张初始化为仅有一个起点0,一个终点1和一条边的图.输入n,m表示n次操作(1<=n,m<=50),每次操作是任选一 ...

  10. [NOI2012]

    来自FallDream的博客,未经允许,请勿转载,谢谢. 一天一套noi 简直了.... 昨天勉强做完了noi2011 今天教练又丢出来一套noi2012  去掉提答还有5题 勉强做了3题  先占个坑 ...