[轉(zhuǎn)載]ROS與語音交互-科大訊飛語音SDK的ROS包使用(xf-ros )

http://www.ncnynl.com/archives/201702/1287.html


ROS與語音交互-編寫科大訊飛語音SDK的ROS包

說明

ROS軟件包xfei_asr是集成自科大訊飛的linux的DEMO

介紹xfei_asr的安裝和使用

介紹如何發(fā)布文字主題轉(zhuǎn)變成語音播放

介紹如何錄音并轉(zhuǎn)變成文字輸出,并發(fā)布主題

xf-ros說明

@author ncnynl <1043931@qq.com>

@time? 2016-11-12

@website? http://www.ncnynl.com

要求:

需要到科大訊飛網(wǎng)站注冊帳號(只需要APPID),訪問科大訊飛網(wǎng)站

下載linux版本ROS軟件包,已經(jīng)包含需要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(根據(jù)網(wǎng)友武哥的測試需要更換才能成功!)

編譯:

$ 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要在源目錄執(zhí)行,因為一些相對路徑的目錄在src目錄下)

$ roscd xfei_asr/src

執(zhí)行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"

效果:

iat_publish_speak詳細使用:

新開終端1:

$ roscore

新開終端2: (訂閱xfwakeup主題,發(fā)布xfspeech主題和xfwords主題)

$ rosrun xfei_asr? iat_publish_speak

新開終端3:(xfspeech主題是錄音專成的文字)

$ rostopic echo /xfspeech

新開終端4:(xfwords主題是錯誤提示文字)

$ rostopic echo /xfwords

新開終端5:(xfwakeup主題是喚醒功能,每發(fā)一次就可以錄音一次。)

$ rostopic pub xfwakeup std_msgs/String "ok"

效果:

參考:

http://www.ncnynl.com

http://www.xfyun.cn/

http://blog.csdn.net/zhouge94/article/details/52028698

?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容