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. JavaScript 散集合(HashArray)

    散列表和散列映射是一样的,我们已经在本章中介绍了这种数据结构. 在一些编程语言中,还有一种叫作散列集合的实现.散列集合由一个集合构成,但是插入. 移除或获取元素时,使用的是散列函数.我们可以重用本章中 ...

  2. springMvc配置xml使ResponseBody返回Json

    @ResponseBody 在返回的数据不是html标签的页面,而是其他某种格式的数据时(如json.xml等)使用: 不在springMvc中配置json的处理的话,我们通常会在Controller ...

  3. [LeetCode] Design Log Storage System 设计日志存储系统

    You are given several logs that each log contains a unique id and timestamp. Timestamp is a string t ...

  4. [LeetCode] Word Abbreviation 单词缩写

    Given an array of n distinct non-empty strings, you need to generate minimal possible abbreviations ...

  5. 一.Kylin的伪分布式安装

    一.伪分布式安装kylin 2018年4月15日 15:06 安装需要的环境 1. hadoop集群环境:由于安装的是CDH5.14.0的版本,所以相关组件都是跟5.14.0相关 2. spark采用 ...

  6. ognl版本错误

    错误信息: 2014-2-6 21:20:10 org.apache.catalina.core.StandardWrapperValve invoke严重: Servlet.service() fo ...

  7. ABP领域层知识回顾之---实体

    标题:重温ABP领域层 1. 前言  最近一段时间一直在看<ABP的开发指南>(基于DDD的经典分层架构思想).因为之前一段时间刚看完<领域驱动设计:软件核心复杂性应对之道>, ...

  8. [Codeforces 946G]Almost Increasing Array

    Description 题库链接 给你一个长度为 \(n\) 的序列 \(A\) .现在准许你删除任意一个数,删除之后需要修改最小的次数使序列单调递增.问最小次数. \(1\leq n\leq 200 ...

  9. [HNOI2003]激光炸弹

    Description 一种新型的激光炸弹,可以摧毁一个边长为R的正方形内的所有的目标.现在地图上有n个目标,用整数,表示目标在地图上的位置,每个目标都有一个价值.激光炸弹的投放是通过卫星定位的,但其 ...

  10. 【BZOJ1951】【SDOI2010】古代猪文

    Background "在那山的那边海的那边有一群小肥猪.他们活泼又聪明,他们调皮又灵敏.他们自由自在生活在那绿色的大草坪,他们善良勇敢相互都关心--" --选自猪王国民歌 很久很 ...