语音识别与语音控制

通过上文-语音识别(录音与语音播报),相信大家已经有了一个基本的语音采集的能力,本文将沿着上文的内容向大家介绍语音识别与语音控制。

硬件平台

机器硬件:OriginBot(导航版/视觉版)
PC主机:Windows(>=10)/Ubuntu(>=20.04)
扩展硬件:X3语音版

运行案例

首先进入OriginBot主控系统,运行一下指令。请注意,部分操作OriginBot内暂未放入,请根据内容进行适当处理。

cd /userdata/dev_ws/
# 配置TogetheROS环境
source /opt/tros/setup.bash

# 从tros.b的安装路径中拷贝出运行示例需要的配置文件。
cp -r /opt/tros/lib/hobot_audio/config/ .

# 加载音频驱动,设备启动之后只需要加载一次
bash config/audio.sh

#启动launch文件
ros2 launch speech speech_recongnition_launch.py  

其中speech_recongnition_launch.py 文件内容如下:

from launch import LaunchDescription
from launch.actions import DeclareLaunchArgument
from launch.substitutions import LaunchConfiguration
from launch_ros.actions import Node

def generate_launch_description():

# 启动音频采集pkg
audio_get = Node(
        package='hobot_audio',
        executable='hobot_audio',
        output='screen',
        parameters=[
            {"config_path":"./config"},
            {"audio_pub_topic_name": "audio_smart"}
        ],
        arguments=['--ros-args', '--log-level', 'error']
    )

return LaunchDescription([
    audio_get
])

​ 此时出现如下报错是因为没有语音唤醒,说出“地平线你好”后,即可唤醒

报错

​ 当人依次在麦克风旁边说出“地平线你好”、“向左转”、“向右转”、“向前走”、“向后退”命令词,语音算法sdk经过智能处理后输出识别结果,log显示如下

​ 识别到语音命令词“向前走”、“向左转”、“向右转”、“向后退”,并且输出DOA的角度信息,如recv hrsc sdk doa data: 110字段表示DOA角度为110度。

语音控制

SSH连接OriginBot成功后,配置智能语音模块:

#从TogetheROS的安装路径中拷贝出运行示例需要的配置文件。
cp -r /opt/tros/lib/hobot_audio/config/ .

#加载音频驱动,设备启动之后只需要加载一次
bash config/audio.sh

启动机器人底盘
在终端中输入如下指令,启动机器人底盘:

ros2 launch originbot_bringup originbot.launch.py

启动语音控制
以下是口令控制功能的指令:

ros2 launch audio_control audio_control.launch.py

此时即可看到小车运动的效果了