ROS机器人语音模块
文章目录
近期我参加了第十七届全国大学生智能汽车竞赛讯飞-家庭服务机器人挑战赛,目前我们队已经完成了场地搭建、环境配置,各传感器的功能也已验证完毕,接下来就是视觉代码编写以及ROS相关功能实现,其中就包括机器人语音功能,另外,互联网+比赛的机器人也需要实现语音功能。因此,实现ROS机器人语音功能的任务就落在了我的肩上。
目前,我找到了语音模块相关文档”环形六麦克风阵列开发者文档“,该文档用于描述科大讯飞环形六麦克风阵列的使用方法,覆盖语音唤醒、声源定位、语音获取、语音识别等应用的实现方式。废话不多说,直接开干咯!
零 乘骐骥以驰骋兮,来吾道夫先路
麦克风阵列简介:
-
麦克风阵列是由一定数目的声学传感器(一般为麦克风)组成, 对声场的空间特性进行采样并处理的系统。其主要作用有声源定位,抑制背景噪声、干扰、混响、回声,信号提取与分离。其中,声源定位是指利用麦克风阵列计算声源阵列的角度和距离,基于TDOA(Time Difference Of Arrival,到达时间差)实现对目标声源的跟踪;信号的提取与分离是指在期望方向上有效地形成一个波束,仅拾取波束内的信号,从而达到同时提取声源和抑制噪声的目的。
-
麦克风的一般使用流程:① 麦克风启动并进入工作状态 ② 设置麦克风的主麦方向,可唤醒或手动设置 ③ 获取降噪音频送入识别引擎进行识别和处理
【注:在麦克风阵列中,一般指定一个主麦来实现指定方向声音加强,其他方向抑制的目的,且降噪音频的获取也属于该主麦方向。若未主动设置主麦,主麦方向随机,则获取到的降噪音频不一定基于说话方向,此时生成的降噪音频可能不是最优的】
壹 路漫漫其修远兮,吾将上下而求索
Linux-SDK:
- 本次智能车比赛所用麦克风阵列板载系统为Linux,用户可以使用任一搭载Linux系统的主机进行通信,主机与麦克风阵列之间的通信方式为基于USB的自定义通信协议。基于这些协议,用户可以在主机端进行诸如麦克风板开机、获取音频、设置主麦方向、获取唤醒角度等操作。为便于使用,本次比赛所用麦克风阵列配备SDK,主要对一些协议进行了API封装
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mBRPthll-1652716821228)(https://gitlab.com/Muscularmonk/project_01/uploads/aa51e6b68a79d573dab694dcb9a8f353/2.png)]
- 将sdk拷贝到系统任一目录,切换到该目录,可以看到
sdk-vvui
以及 ros 中对应的功能包集vvui_ros-master
。初次使用且未配置本麦克风的udev规则