首页 > 代码库 > ros科大讯飞语音识别
ros科大讯飞语音识别
转自http://www.ncnynl.com/archives/201611/1069.html
ROS入门教程-编写科大讯飞语音SDK的ROS包
说明
- ROS软件包xfei_asr是集成自科大讯飞的linux的DEMO
- 介绍xfei_asr的安装和使用
- 介绍如何发布文字主题转变成语音播放
- 介绍如何录音并转变成文字输出,并发布主题
xf-ros说明
@author ncnynl <1043931@qq.com>
@time 2016-11-12
@website http://www.ncnynl.com
要求:
- 需要到科大讯飞网站注册帐号(只需要APPID),访问科大讯飞网站
- 下载linux版本ROS软件包,已经包含需要SDK库文件 github库
- 安装语音库:sudo apt-get install libasound2-dev (录音)
安装依赖:
$ sudo apt-get update
$ sudo apt-get install libasound2-dev
下载:
$ cd ~
$ git clone https://github.com/ncnynl/xf-ros.git
$ cp -R xf-ros/xfei_asr ~/catkin_ws/src/
修改CMakelist.txt:
target_link_libraries(
asr_sample
${catkin_LIBRARIES}
/home/ubu/catkin_ws/src/xfei_asr/lib/libmsc.so -ldl -pthread
)
- 找到所有的
target_link_libraries
,修改/home/ubu/catkin_ws
为你自己的工作空间/home/xxxx/catkin_ws
修改代码:
- 找到 .c 和.cpp文件中查找appid = 58249817,替换58249817为你自己申请的APPID.
同时更换自己下载sdk里面的libmsc.so到对应的xfei_asr/lib/libmsc.so
(根据网友武哥的测试需要更换才能成功!)
编译:
$ cd ~/catkin_ws/
$ catkin_make
文件结构:
文件结构:
ubu@ubu:~/xf-ros/xfei_asr$ tree
.
├── CMakeLists.txt
├── include
│ ├── formats.h
│ ├── linuxrec.h
│ ├── msp_cmn.h
│ ├── msp_errors.h
│ ├── msp_types.h
│ ├── qisr.h
│ ├── qtts.h
│ ├── speech_recognizer.h
│ └── xfei_asr
├── lib
│ └── libmsc.so
├── package.xml
├── README.md
└── src
├── asr_sample.c
├── gm_continuous_digit.abnf
├── iat_publish_speak.cpp
├── iat_record.c
├── iat_sample.c
├── linuxrec.c
├── msc
│ ├── b0c4f74dc1f1bd969732c841500eff0d
│ │ ├── u.data
│ │ └── urec.data
│ └── msc.cfg
├── sch_speak.c
├── sch_text.c
├── source.txt
├── speech_recognizer.c
├── tts_sample.c
├── tts_sample.wav
├── tts_subscribe_speak.cpp
├── userwords.txt
└── wav
├── iflytek01.wav
├── iflytek02.wav
└── weather.pcm
使用说明:
- 进入包的src源目录(
所有的rosrun要在源目录执行,因为一些相对路径的目录在src目录下
)
$ roscd xfei_asr/src
- 执行SDK DEMO, 目前可用:asr_sample、iat_sample、iat_record
- 命令:
$ rosrun xfei_asr asr_sample
- 效果:(读取src/wav/iflytek01.wav, 并识别出文字)
- 命令:
$ rosrun xfei_asr iat_sample
- 效果:
- 命令:
$ rosrun xfei_asr iat_record
- 效果:
- 运行ROS DEMO,目前可用:tts_subscribe_speak、iat_publish_speak
$ rosrun xfei_asr tts_subscribe_speak
$ rosrun xfei_asr iat_publish_speak
- tts_subscribe_speak详细使用:
- 新开终端1:
$ roscore
- 新开终端2:
$ rosrun xfei_asr tts_subscribe_speak
- 新开终端3:
$ rostopic pub xfwords std_msgs/String "测试ncnynl.com"
因为我的电脑没有安装mplayer所以报错,
安装
$ sudo apt-get install mplayer
但还会有警告,关闭lirc即可
$ sudo vi /etc/mplayer/mplayer.conf
添加 nolirc=yes 即可
语音播放效果
- iat_publish_speak详细使用:
- 新开终端1:
$ roscore
- 新开终端2: (订阅xfwakeup主题,发布xfspeech主题和xfwords主题)
$ rosrun xfei_asr iat_publish_speak
- 新开终端3:(xfspeech主题是录音专成的文字)
$ rostopic echo /xfspeech
- 新开终端4:(xfwords主题是错误提示文字)
$ rostopic echo /xfwords
- 新开终端5:(xfwakeup主题是唤醒功能,每发一次就可以录音一次。)
$ rostopic pub xfwakeup std_msgs/String "ok"
- 效果:
ros科大讯飞语音识别
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。