基于树莓派zero2W+ROS开发语音控制器(更新中)

基于树莓派zero2W+ROS开发语音控制器(更新中)

目的 为了实现方便的,多语种的机器人语音控制器,很好的一个方法是首先通过

目的

为了实现方便的,多语种的机器人语音控制器,很好的一个方法是首先通过Google speech to text API来进行语音消息到文本消息的转换,然后再将转换后的文本消息作为指令发送到机器人

问题

为了达成上面所描述的目标,我们所需要的步骤为两个:

  • 在设备上调用API进行语音转文本信息

  • 将问文本信息作为控制指令发送到机器人

这其中包含了几个问题

  • 调用API的设备是什么

    • 要求:

      • 能提供网络支持用以调用API

      • 能够接收语音消息

      • 易用的以及方便携带的

  • 如何将消息从调用API的设备发送到机器人

    • 要求:

      • 是否可以做到长距离传输

对于第一个问题,毋庸置疑的最方便的设备就是手机

对于第二个问题,可以作为方案的有

  • 直接使用4G LTE网络进行数据传输(×)

    • 理由:

      • 需要开发手机应用

      • 需要使用server作为消息转发的媒介,这将会引入一些延迟(当使用telebot进行测试时出现了大概2~3秒的消息延迟)

  • 使用树莓派+ROS进行消息接收后通过Lora转发到机器人端(√)

    • 理由

      • 能够直接使用现成的APP完成语音识别部分

      • 能够通过lora实现足够远的距离传输

实现方法

首先,对于手机端,我们这里直接使用ROS Voice Message进行使用,整个系统的数据传输框架如下图所示

image-20240530215022310

对于其余部分,我们选用树莓派zero2W作为主控制器,用于接收来自ROS Voice Message应用的消息,然后再通过串口与lora发送给机器人端

测试结果记录

2024.5.30:Lora模块有一端及其不稳定,导致在数据传输时会有一定的延迟,等等把Lora模块换一换看看

Comment