目的
为了实现方便的,多语种的机器人语音控制器,很好的一个方法是首先通过Google speech to text API来进行语音消息到文本消息的转换,然后再将转换后的文本消息作为指令发送到机器人
问题
为了达成上面所描述的目标,我们所需要的步骤为两个:
在设备上调用API进行语音转文本信息
将问文本信息作为控制指令发送到机器人
这其中包含了几个问题
调用API的设备是什么
要求:
能提供网络支持用以调用API
能够接收语音消息
易用的以及方便携带的
如何将消息从调用API的设备发送到机器人
要求:
是否可以做到长距离传输
对于第一个问题,毋庸置疑的最方便的设备就是手机
对于第二个问题,可以作为方案的有
直接使用4G LTE网络进行数据传输(×)
理由:
需要开发手机应用
需要使用server作为消息转发的媒介,这将会引入一些延迟(当使用telebot进行测试时出现了大概2~3秒的消息延迟)
使用树莓派+ROS进行消息接收后通过Lora转发到机器人端(√)
理由
能够直接使用现成的APP完成语音识别部分
能够通过lora实现足够远的距离传输
实现方法
首先,对于手机端,我们这里直接使用ROS Voice Message进行使用,整个系统的数据传输框架如下图所示
对于其余部分,我们选用树莓派zero2W作为主控制器,用于接收来自ROS Voice Message应用的消息,然后再通过串口与lora发送给机器人端
测试结果记录
2024.5.30:Lora模块有一端及其不稳定,导致在数据传输时会有一定的延迟,等等把Lora模块换一换看看