跳到主要内容

5.2.8 文本转语音

功能介绍​

本章节介绍如何将一段文本转化为语音信号,并通过音频输出接口播放。

代码仓库: (https://github.com/D-Robotics/hobot_tts.git)

支持平台​

平台运行方式示例功能
RDK X3Ubuntu 20.04 (Foxy), Ubuntu 22.04 (Humble)订阅文本消息,然后转化为语音数据,最后播放出去
RDK X5, RDK X5 ModuleUbuntu 22.04 (Humble)订阅文本消息,然后转化为语音数据,最后播放出去
RDK S100, RDK S100PUbuntu 22.04 (Humble)订阅文本消息,然后转化为语音数据,最后播放出去
RDK S600Ubuntu 24.04 (Jazzy)订阅文本消息,然后转化为语音数据,最后播放出去

注意:仅支持 RDK X3,RDK X3 Module 暂不支持, RDK S100/S600 只支持 USB 语音设备。

准备工作​

RDK 平台​

  1. RDK 已烧录好 Ubuntu 系统镜像。
  2. RDK 已成功安装 TogetheROS.Bot。
  3. 已有 RDK 适配的音频驱动板,并参考智能语音章节搭建好环境。
  4. 音频板耳机接口连接耳机或音响。
  1. RDK 已烧录好 Ubuntu 系统镜像。
  2. RDK 已成功安装 TogetheROS.Bot。
  3. 音频板耳机接口连接耳机或音响。

使用方式​

RDK 平台​

  1. 首次运行需要下载模型文件并解压,详细命令如下:

    # 配置tros.b环境
    source /opt/tros/setup.bash
    # 配置tros.b环境
    sudo apt update
    sudo apt install tros-humble-hobot-tts
    source /opt/tros/humble/setup.bash
    # 配置tros.b环境
    sudo apt update
    sudo apt install tros-jazzy-hobot-tts
    source /opt/tros/jazzy/setup.bash
    wget http://archive.d-robotics.cc/tts-model/tts_model.tar.gz
    sudo tar -xf tts_model.tar.gz -C /opt/tros/${TROS_DISTRO}/lib/hobot_tts/
注意

如果 sudo apt update 命令执行失败或报错,请查看常见问题章节的 Q10: apt update 命令执行失败或报错如何处理? 解决。

如果 sudo apt update 命令执行失败或报错,请查看常见问题章节的 Q10: apt update 命令执行失败或报错如何处理? 解决。

注意

如果 sudo apt update 命令执行失败或报错,请查看常见问题章节的 Q6: apt update 命令执行失败或报错如何处理? 解决。

如果 sudo apt update 命令执行失败或报错,请查看常见问题章节的 Q6: apt update 命令执行失败或报错如何处理? 解决。

  1. 运行如下命令检查音频设备是否正常:

    root@ubuntu:~# ls /dev/snd/
    by-path controlC0 pcmC0D0c pcmC0D1p timer

    如果出现类似 pcmC0D1p 音频播放设备则表示设备正常。

    首次使用音频板需要使用 srpi-config 进行配置,配置方法参考 RDK 用户手册RDK X3 微雪 Audio Drive章节。

    首次使用音频板需要使用 srpi-config 进行配置,配置方法参考 RDK 用户手册RDK X5 微雪 Audio Drive章节。

  2. 启动 hobot_tts 程序

    # 配置tros.b环境
    source /opt/tros/setup.bash
    # 配置tros.b环境
    source /opt/tros/humble/setup.bash
    # 配置tros.b环境
    source /opt/tros/jazzy/setup.bash
    # 屏蔽调式打印信息
    export GLOG_minloglevel=1

    ros2 run hobot_tts hobot_tts

    注意:若音频播放设备不是 pcmC0D1p ,则需要使用参数 playback_device 指定播放音频设备。例如音频播放设备为 pcmC1D1p ,微雪板子启动命令为: ros2 run hobot_tts hobot_tts --ros-args -p playback_device:="hw:1,1" ;usb 语音设备启动命令为: ros2 run hobot_tts hobot_tts --ros-args -p playback_device:="plughw:1,1"

  3. 新开一个终端,使用 echo 命令发布一条 topic

# 配置tros.b环境
source /opt/tros/setup.bash
# 配置tros.b环境
source /opt/tros/humble/setup.bash
# 配置tros.b环境
source /opt/tros/jazzy/setup.bash
ros2 topic pub --once /tts_text std_msgs/msg/String "{data: ""你知道D-Robotics 吗?是的,我知道D-Robotics 。它是一条从地面延伸到天空的线,它定义了地面和天空之间的分界线。""}"
  1. 耳机或音响可以听到播放的声音

注意事项​

目前仅支持中文和英文文本内容,切记勿发布其他语言文本消息。