基于ROS2和科大讯飞的语音转文字入门教程
基于ROS2和科大讯飞的文字转语音TTS入门教程
本文将展示,如何利用ROS2和科大讯飞的TTS模块,实现简单的文字转语音功能。利用ROS2,实现listener和talker,当talker发送以‘topic’为主题的消息时,listener接收并处理消息内容,并调用科大讯飞的TTS模块,将某些文字转换成语音文件。
1.环境搭建
操作系统:ubuntu22.04
ROS2版本:humble
1.1.安装ubuntu
本文使用的操作系统为vm虚拟机,安装的ubuntu22.04,请大家自行百度安装。
注:先不要着急改源地址。
1.2.安装humble
本文使用的ROS2 humble,百度搜索的一键安装ROS2,具体链接如下:
https://www.pudn.com/news/62deb7e055398e076bda404f.html#_6
采用一键安装脚本,妈妈再也不用担心你装不好 ROS2 humble。
安装好环境前后,建议各做1个快照,方便恢复环境状态。
1.3.安装VSCODE
在上一步中,可以直接通过选项安装vscode,也可以直接在ubuntu软件商店里安装,区别是软件商店里的版本更新。
文章来到此处,证明ros2环境已经搭建好,开始上指令操作项目。
2.创建工程
首先打开linux指令终端,使用linux标准指令创建工作空间(linux中的文件夹)。
mkdir -p /home/toycar/robot_ws/src
cd /home/toycar/robot_ws/
然后,使用ROS2指令创建项目
ros2 pkg create toycar_voice --build-type ament_cmake --node-name my_publish --dependencies std_msgs rclcpp
指令解析
工程名称:toycar_voice
编译类型:ament_cmake
节点名称:my_publish (创建项目后某人创建的节点源码,后来才知道,可以不写这个,可以自行创建节点代码。)
项目依赖:std_msgs rclcpp
创建项目后目录下文件内容:

再然后,将科大讯飞中的include文件,放入项目的include目录内,如下图:

接着,使用指令打开vscode进行项目开发
code .
随后,在vscode中,添加2个cpp文件
publisher_member_function.cpp
subscriber_member_function.cpp

/home/toycar/robot_ws/src/toycar_voice/src/publisher_member_function.cpp
这里利用定时器作为消息源,通过publisher_定时向接收者发送消息,实际开发中,可以替换成相应的业务逻辑。
#include <chrono>
#include <functional>
#include <memory>
#include <string>
#include "rclcpp/rclcpp.hpp"
#include "std_msgs/msg/string.hpp"
using namespace std::chrono_
4508




被折叠的 条评论
为什么被折叠?



