创建一个ROS工作区间
参考:https://www.cnblogs.com/huangjianxin/p/6347416.html
创建语音交互相关包
步骤参考:
https://www.ncnynl.com/archives/201702/1287.html
https://blog.csdn.net/xiao9469/article/details/109716656
https://www.ncnynl.com/archives/201702/1287.html
问题:
最后一步编译时报错
WARNING: Target "iat_sample" requests linking to directory "/home/mujiali/robot/HSR18_04/nlp_ws". Targets may link only to libraries. CMake is dropping the item.
WARNING: Target "iat_publish_speak" requests linking to directory "/home/mujiali/robot/HSR18_04/nlp_ws". Targets may link only to libraries. CMake is dropping the item.
WARNING: Target "tts_subscribe_speak" requests linking to directory "/home/mujiali/robot/HSR18_04/nlp_ws". Targets may link only to libraries. CMake is dropping the item.
WARNING: Target "tts_sample" requests linking to directory "/home/mujiali/robot/HSR18_04/nlp_ws". Targets may link only to libraries. CMake is dropping the item.
WARNING: Target "iat_record" requests linking to directory "/home/mujiali/robot/HSR18_04/nlp_ws". Targets may link only to libraries. CMake is dropping the item.
WARNING: Target "asr_sample" requests linking to directory "/home/mujiali/robot/HSR18_04/nlp_ws". Targets may link only to libraries. CMake is dropping the item.
解决:
没有连接到文件libmsc.so,找到/home/mujiali/robot/HSR18_04/nlp_ws/src/xfei_asr
路径下的文件CMakeLists.txt,修改其中的target_link_libraries,修改成如下路径
/home/mujiali/robot/HSR18_04/nlp_ws/src/xfei_asr/lib/libmsc.so -ldl -pthread
报错:
/home/mujiali/robot/HSR18_04/nlp_ws/src/xfei_asr/src/iat_sample.c: In function ‘run_iat’:
/home/mujiali/robot/HSR18_04/nlp_ws/src/xfei_asr/src/iat_sample.c:78:37: warning: initialization makes integer from pointer without a cast [-Wint-conversion]
char rec_result[BUFFER_SIZE] = {NULL};
^~~~
/home/mujiali/robot/HSR18_04/nlp_ws/src/xfei_asr/src/iat_sample.c:78:37: note: (near initialization for ‘rec_result[0]’)
解决:
修改/home/mujiali/robot/HSR18_04/nlp_ws/src/xfei_asr/src路径下的
iat_sample.c文件里面参数:
char rec_result[BUFFER_SIZE] = "See you later!";
char hints[HINTS_SIZE] = "Bye!"; //hints为结束本次会话的原因描述,由用户自定义(后来运行发现,此处不必修改,忽略就行)
后来编译频频报错,也找不到原因,可能是下载xf-ros包时出现问题,中断过一次,可能包下载不完整,决定将环境删除重新下载,重新下载后按网站步骤进行不再出现报错。
出现一个提示:
/home/mujiali/catkin_ws/src/xfei_asr/src/iat_sample.c: In function ‘run_iat’:
/home/mujiali/catkin_ws/src/xfei_asr/src/iat_sample.c:78:37: warning: initialization makes integer from pointer without a cast [-Wint-conversion]
char rec_result[BUFFER_SIZE] = {NULL};
^~~~
/home/mujiali/catkin_ws/src/xfei_asr/src/iat_sample.c:78:37: note: (near initialization for ‘rec_result[0]’)
/home/mujiali/catkin_ws/src/xfei_asr/src/iat_sample.c:79:32: warning: initialization makes integer from pointer without a cast [-Wint-conversion]
char hints[HINTS_SIZE] = {NULL}; //hints为结束本次会话的原因描述,由用户自定义
^~~~
/home/mujiali/catkin_ws/src/xfei_asr/src/iat_sample.c:79:32: note: (near initialization for ‘hints[0]’)
没有影响,忽略就行。
编译成功:
测试:
运行
roscd xfei_asr/src
时注意所在路径,每个电脑不同
我是直接跳转到/home/mujiali/robot/HSR18_04/nlp_ws/src/xfei_asr/src路径下:
mujiali@mujiali-Inspiron-5485:~/robot/HSR18_04/nlp_ws/src/xfei_asr/src$ rosrun xfei_asr tts_subscribe_speak
###########################################################################
## 语音合成(Text To Speech,TTS)技术能够自动将任意文字实时转换为连续的 ##
## 自然语音,是一种能够在任何时间、任何地点,向任何人提供语音信息服务的 ##
## 高效便捷手段,非常符合信息时代海量数据、动态更新和个性化查询的需求。 ##
###########################################################################
I heard :测试ncnynl.com
开始合成 ...
正在合成 ...
>>>>
合成完毕
sh: 1: mplayer: not found
^CMplayer Run Success
按任意键退出 ...
没有mplayer,安装mplayer: https://blog.csdn.net/libai13/article/details/107381860
报错:
do_connect: could not connect to socket
connect: No such file or directory
Failed to open LIRC support. You will not be able to use your remote control.
修改mplayer即可
参考:https://blog.csdn.net/u011573853/article/details/103164128
成功:
结合图灵机器人:
https://blog.csdn.net/CHENKAIFAN__/article/details/80611020
https://blog.csdn.net/CHENKAIFAN__/article/details/80617659
报错10107:参数const char* session_begin_params不能按网站中复制,需要自己原来的参数。
报错10407:没有修改APPID。
每次修改后都需要重新编译再运行。
图灵机器人还未认证成功
现在的运行结果应该是key和一些在图灵机器人上的参数没有设置导致的。