ROS - 科大讯飞语音包使用

时间:2024-04-04 14:30:43

科大讯飞程序包

$ sudo install mplayer

安装语音库:
$ sudo apt-get install libasound2-dev

下载语音包:

git clone https://github.com/ncnynl/xf-ros.git

将下载的文件包放置在:

cp  -R  xf-ros/xfei_asr  ~/catkin_ws/src/

修改CMakelist.txt:
将 CMakelist.txt 的所有 target_link_libraries 内容按如下修改

target_link_libraries(
   asr_sample
   ${catkin_LIBRARIES} 
   /home/ubu/catkin_ws/src/xfei_asr/lib/libmsc.so -ldl -pthread
 )
/home/ubu/catkin_ws/src/xfei_asr/lib/libmsc.so -ldl -pthread 修改为 
/home/xxxx/catkin_ws/src/xfei_asr/lib/libmsc.so -ldl -pthread

xxxx 是你的主机名

修改代码:

把所有.c 和 .cpp 中的 appid = 58249817 替换为你申请的 appid 。

appid 申请

        需要到科大讯飞网站注册)科大讯飞网站

        ROS - 科大讯飞语音包使用

编译:

        $ cd ~/catkin_ws/
        $ catkin_make

运行:

        $ roscd xfei_asr/src/
        $ rosrun xfei_asr asr_sample # 读取 src/wav/iflytek01.wav, 识别出文字
        $ rosrun xfei_asr iat_sample
        $ rosrun xfei_asr iat_record

将文字主题转变成语音播放 :tts_subscribe_speak
$ roscore 
$ rosrun xfei_asr tts_subscribe_speak
$ rostopic pub xfwords std_msgs/String "测试ncnynl.com"

ROS - 科大讯飞语音包使用

将录音转变成文字输出,并发布主题 : iat_publish_speak
$ roscore 
$ rosrun xfei_asr iat_publish_speak  # 订阅 xfwakeup 主题,发布 xfspeech 和 xfwords
$ rostopic echo /xfspeech # 主题是录音专成的文字
$ rostopic echo /xfwords  # 主题是错误提示文字

$ rostopic pub xfwakeup std_msgs/String "ok"  # xfwakeup主题是唤醒功能,每发一次就可以录音一次