6.5.2 语音识别集成实现

0.准备工作

请在当前工作空间准备一个名为 input.wav 的音频文件以作备用。

1.语音识别核心实现

功能包ros2_ps_bridge的src目录下,新建文件v2t.py,并编辑文件,输入如下内容:

import rclpy
from rclpy.node import Node
from std_msgs.msg import String
from paddlespeech.cli.asr.infer import ASRExecutor

class V2T(Node):
    def __init__(self):
        super().__init__("v2t_node")
        self.get_logger().info("语音转文字并发布节点创建")
        asr = ASRExecutor()
        result = asr(audio_file="input.wav",model='conformer_wenetspeech')

        self.get_logger().info("识别的文字为:%s"%result)

        self.pub_ = self.create_publisher(String,"asr_string",10)
        msg = String()
        msg.data = result
        self.pub_.publish(msg)

def main():
    rclpy.init()

    demo = V2T()
    rclpy.spin(demo)

    rclpy.shutdown()

if __name__ == '__main__':
    main()

2.编辑配置文件

setup.py 中的配置如下:

entry_points={
    'console_scripts': [
        'v2t = ros2_ps_bridge.v2t:main',
    ],
},

3.编译

终端中进入当前工作空间,编译功能包:

colcon build --packages-select ros2_ps_bridge

4.执行

新建一个终端,打印订阅到的语音转文本相关话题数据,指令如下:

ros2 topic echo /asr_string

当前工作空间下,再启动一个终端,并输入如下指令:

. install/setup.bash
ros2 run ros2_ps_bridge v2t

程序正常执行后,将在第一个终端中输出input.wav中对用的文本内容。

results matching ""

    No results matching ""