< >
Home » ROS与传感器教程 » ROS与传感器教程-科大讯飞麦克风阵列6麦阵列模块

ROS与传感器教程-科大讯飞麦克风阵列6麦阵列模块

文章说明

  • 介绍如何整合科大讯飞麦克风阵列6麦阵列模块使用ROS

  • 采用科大讯飞出的一款可以屏蔽电子音的板子,支持Linux系统,它采用平面式分布结构,包含 6 个麦克风,可实现 360 度等效拾音,唤醒分辨率为 1 度。可以使用麦克风阵列获取原始和降噪音频,获取唤醒角度,主麦编号

  • 测试环境:TX2 arm架构开发板

整合步骤

步骤1:

  • 配置麦克风阵列别名
#增加别名
echo 'KERNEL=="ttyUSB*",ATTRS{idVendor}=="1a86",ATTRS{idProduct}=="7523", MODE:="0777", SYMLINK+="xfserial"'  | sudo tee /etc/udev/rules.d/xfspeech.rules

#赋予权限
sudo chmod a+x /etc/udev/rules.d/xfspeech.rules

#重启设备别名管理
sudo udevadm trigger
sudo service udev reload 
sudo service udev restart 

#执行完上面命令后,重插阵列USB,再检查是否成功
ll /dev/xfserial

步骤2:

  • 下载离线语音SDK

    • 注册讯飞开放平台账号:打开讯飞开放平台网页,网址 https://www.xfyun.cn,注册账号。
    • 创建新应用:选择控制台——我的应用——创建新应用——填好对应资料后提交。
    • 下载Linux SDK:进入刚创建的应用,下载离线命令词识别 linux SDK(我这里使用的聚合SDK下载页生成的Linux平台SDK,同时包含了唤醒、识别、合成等库,下载后解压到~/linux_sdk备用)。
    • 获取APPID

步骤3:

  • 增加唤醒词

    • 进入新创建的应用,点击资源制作
    • 填好自己想要的唤醒词,然后点击下载按钮(唤醒词的灵敏度值越低,越容易被唤醒,误差率增大)
    • 打开下载到的压缩包,把里面的res.bin文件提取出来,放在jetson/PC上
    • 打开jetson,下载一个adb的调试器 sudo apt-get install adb
    • 把板上的UAC接口接到jetson的USB接口,等待一分钟后,输入arecord -l,显示card x:XFM-DP-V0.0.18, 为该 R818 麦克风套装的编号,这说明成功连上了。(jetson--x:2,旭日x3派--x:0)
    • 把res.bin 放在麦克阵列中
1)通过adb 命令adb push res.bin /oem/build/vtn/res.bin
2)adb shell 进入adb 控制台
3)在adb 控制台输入 cd /oem/build/vtn
4)接着输入 vim vtn.ini ,修改该文件的appid,保存,退出
5))输入sync 同步
6)输入 reboot 重启
  • 可以把板上的串口口连接到jetson/旭日X3派 上(要下载一个cutecom才能看到串口的信息),或者把串口连接到电脑,通过电脑的串口调试助手看串口的信息。
  • 对板子说你更换的唤醒词,这时电路板被唤醒, 串口将输出唤醒信息, 信息中包含使用的唤醒词信息、 唤醒角度信息等。

步骤4:

  • 安装语音阵列SDK
#下载SDK
mkdir ~/tools/
cd ~/tools
git clone https://gitee.com/ncnynl/xfspeech_linux_sdk

#复制新的linux SDK的common.jet文件到上面目录
cp ~/linux_sdk/bin/msc/res/asr/common.jet ~/tools/xfspeech_linux_sdk/bin/msc/res/asr/common.jet 

#替换appid,替代行为`const char *login_config    = "appid = 58268xxx"; //登录参数`
vim ~/tools/xfspeech_linux_sdk/samples/asr_offline_record_sample/asr_offline_record_sample.c


#库文件复制
#通过uname -a确认架构

#如果是arm64,新开发板,如jetson tx2 nano 树莓派4B等 , 默认是arm64
cd ~/tools/xfspeech_linux_sdk/libs/arm64
sudo cp lib* /usr/lib

#如果是x86,老机器
cd ~/tools/xfspeech_linux_sdk/libs/x86
sudo cp lib* /usr/lib

#如果是x64,一般是pc或虚拟机
cd ~/tools/xfspeech_linux_sdk/libs/x64
sudo cp lib* /usr/lib

#如果是arm32,是老开发板
cd ~/tools/xfspeech_linux_sdk/libs/arm32
sudo cp lib* /usr/lib



#编译
cd ~/tools/xfspeech_linux_sdk/samples/asr_offline_record_sample
make

#运行
cd ~/tools/xfspeech_linux_sdk/bin
./asr_offline_record_sample

#说出唤醒词

步骤5:

  • 安装语音阵列ROS库
#下载源码
cd ~
git clone https://gitee.com/ncnynl/ros1_xfspeech_ws

#更改common.jet
cp ~/linux_sdk/bin/msc/res/asr/common.jet ~/ros1_xfspeech_ws/src/speech_command/config/AIUI/asr/common.jet

#更改appid,修改其中的string offline_appid = "appid = 582683xx";    
vim ~/ros1_xfspeech_ws/src/speech_command/include/Globle.h

#针对不同架构,更改
link_directories(
  lib/arm64  #默认arm64
#  lib/x86  
#  lib/x64  
)

#编译
cd ros1_xfspeech_ws
catkin_make

#运行
source ~/ros1_xfspeech_ws/devel/setup.bash
roslaunch speech_command speech_command.launch

#说出唤醒词就可以对话了

参考

纠错,疑问,交流: 请进入讨论区点击加入Q群

获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号


标签: ros与传感器教程