ROS语音交互(三)科大讯飞语音在ROS平台下使用

本文介绍了如何在ROS环境中使用科大讯飞的语音SDK进行语音交互。步骤包括下载SDK、创建ROS Package、拷贝头文件和源码、配置CMakeLists以及处理运行时依赖。在完成配置后,需要替换appid并确保安装了必要的依赖库。
摘要由CSDN通过智能技术生成

以上节tts语音输出为例

下载sdk链接:http://www.xfyun.cn/sdk/dispatcher

1、下载SDK,解压;

2、在ROS工作空间下创建一个Package;

  catkin_create_pkg tts_voice roscpp rospy std_msgs

3、将SDK文件夹中的头文件,即下载的SDK文件夹中include文件夹下的 .h文件拷贝至tts_voice/include/下;

4、将SDK文件夹中sample/tts_sample中的xf_tts.cpp文件拷贝至tts_voice/src/下;

5、将SDK文件夹中libs/x64/libmsc.so文件拷贝至/user/libs/下;

6、打开CMakelist,

    1)修改include_directories为:即包括拷贝的头文件所在的include目录

         include_directories(
                                     ${catkin_INCLUDE_DIRS}
                                     include
                                     )

    2)添加:

  add_executable(tts_voice_node src/xf_tts.cpp)

        target_link_libraries(tts_voice_node
   ${catkin_LIBRARIES} -lmsc -lrt -ldl -lpthread
 )

# 生成可执行文件
     # 添加链接库,其中动态链接库路径按实际修改

CmakeLists.txt

cmake_minimum_required(VERSION 2.8.3)
project(tts_voice)

## Find catkin macros and libraries
## if COMPONENTS list like find_package(catkin REQUIRED COMPONENTS xyz)
## is used, also find other catkin packages
find_package(catkin REQUIRED COMPONENTS
  roscpp
  rospy
  std_msgs
)
catkin_package(
#  INCLUDE_DIRS include
#  LIBRARIES tts_voice
#  CATKIN_DEPENDS roscpp rospy std_msgs
#  DEPENDS system_lib
)

###########
## Build ##
###########

## Specify additional locations of header files
## Your package locations should be listed before other locations
# include_directories(include)
include_directories(
  ${catkin_INCLUDE_DIRS}
   include
)

## Declare a C++ executable
 add_executable(tts_voice_node src/xf_tts.cpp)

## Specify libraries to link a library or executable target against
 target_link_libraries(tts_voice_node
   ${catkin_LIBRARIES} -lmsc -lrt -ldl -lpthread
 )

xf_tts.cpp源文件

/*
* 语音合成(Text To Speech,TTS)技术能够自动将任意文字实时转换为连续的
* 自然语音,是一种能够在任何时间、任何地点,向任何人提供语音信息服务的
* 高效便捷手段,非常符合信息时代海量数据、动态更新和个性化查询的需求。
*/
#include <ros/ros.h>
#include "std_msgs/String.h"

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <unistd.h>

#include "qtts.h"
#include "msp_cmn.h"
#include "msp_errors.h"

const char* FileName = "/home/cam/Music/voice.wav";
const char* PlayPath = "play /home/cam/Music/voice.wav";

/* wav音频头部格式 */
typedef struct _wave_pcm_hdr
{
    char            riff[4];                // = "RIFF"
    int        size_8;                 // = FileSize - 8
    char            wave[4];                // = "WAVE"
    char            fmt[4];              
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值