Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >如何用低代码构建一个会说话的机器狗

如何用低代码构建一个会说话的机器狗

作者头像
GPUS Lady
发布于 2022-10-08 05:12:47
发布于 2022-10-08 05:12:47
94700
代码可运行
举报
文章被收录于专栏:GPUS开发者GPUS开发者
运行总次数:0
代码可运行

在构建一个复杂的语音 AI 机器人系统时,从接受自然语言命令到安全地与环境和周围的人实时交互,开发人员很容易被其复杂性吓倒。但事实上,利用开发工具,今天的语音 AI 机器人系统可以将任务执行到以前机器无法实现的水平。

国外一个开发者,将Jetson AGX Orin开发套件装到一个机器狗上,让它摇身一变,变成一款支持语音 AI 的机器人,可以自行取饮料。为了轻松添加语音 AI 技能,例如自动语音识别(ASR) 或文本转语音 (TTS),许多开发人员在构建复杂的机器人系统时会利用更简单的低代码构建块。

让我们一起来了解一下语音 AI 技术如何使智能机器人能够接受食品订单,将这些订单转发给餐厅员工,并最终在出现提示时导航回家吧!

项目背景和目标

复杂的系统由几个构建块组成。每个构建块本身都更容易理解。

当您了解每个组件的功能时,最终产品就会变得不那么令人生畏。如果您使用的是低代码构建块,您现在可以专注于需要更多努力的特定领域的自定义。

这个项目使用四足机器人“Spot”和通过以太网电缆连接到 Spot的NVIDIA Jetson Orin 。

该项目是使用 AI 构建块形成复杂的语音 AI 机器人系统的主要示例。

我们的目标是制造一个机器人,它可以自己从当地餐馆给我们拿零食,而我们的干预尽可能少。我们还着手使用开源库和工具中的内容尽可能少地编写代码。该项目中使用的几乎所有软件都是免费提供的。

为了实现这一目标,人工智能系统必须能够与人类进行语音交互,感知其环境(在我们的例子中,使用嵌入式摄像头),并安全地在周围环境中导航。下图显示了交互、平台和导航如何代表 Spot 机器人的三个基本操作组件,以及这些组件如何进一步细分为低代码构建块。

注意:这篇文章只关注来自 Riva SDK人机交互模块。

使用 Riva 添加语音识别和语音合成技能

我们每天与人们进行如此多的互动,以至于很容易忽视这些互动实际上是多么复杂。说话对人类来说很自然,但对于智能机器来说,理解和说话并不是那么简单。

Riva 是一个完全可定制的、GPU 加速的语音 AI SDK,可处理 ASR 和 TTS 技能,并可在本地、所有云、边缘和嵌入式设备上部署。它促进了人机语音交互。

Riva 完全在 Spot 机器人上本地运行。因此,处理是安全的,不需要互联网访问。它也可以通过一个简单的参数文件完全配置,因此不需要额外的编码。

每个语音 AI 任务的 Riva 代码示例

Riva 提供即用型 Python 脚本和命令行工具,用于将麦克风捕获的音频数据实时转换为文本(ASR、语音识别或语音到文本),并将文本转换为音频输出( TTS,或语音合成)。

调整这些脚本以与 Open Robotics (ROS) 兼容只需要进行微小的更改。这有助于简化机器人系统开发过程。

ASR 自定义

Riva OOTB Python 客户端 ASR 脚本名为transcribe_mic.py。默认情况下,它将 ASR 输出打印到终端。通过修改它,ASR 输出被路由到一个 ROS 主题,并且可以被 ROS 网络中的任何东西读取。以下代码示例显示了脚本 main() 函数的关键添加:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 inter_pub = rospy.Publisher('intermediate', String, queue_size=10) final_pub = rospy.Publisher('final', String, queue_size=10) rospy.init_node('riva_asr', anonymous=True)

以下代码示例包括对 main 的更重要的添加:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
   for response in responses:           if not response.results:               continue           partial_transcript = ""           for result in response.results:               if not result.alternatives:                   continue               transcript = result.alternatives[0].transcript               if result.is_final:                   for i, alternative in enumerate(result.alternatives):                       final_pub.publish(alternative.transcript)              else:                  partial_transcript += transcript           if partial_transcript:               inter_pub.publish(partial_transcript)
TTS 自定义

Riva 还为 TTS 提供了talk.py脚本。默认情况下,您在终端或 Python 解释器中输入文本,Riva 从中生成音频输出。为了让 Spot 说话,修改了输入文本 talk.py 脚本,以便文本来自 ROS 回调而不是人类的击键。OOTB 脚本的主要更改包括用于提取文本的此功能:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
def callback(msg):   global TTS   TTS = msg.data

它们还包括对 main() 函数的这些添加:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  rospy.init_node('riva_tts', anonymous=True)  rospy.Subscriber("speak", String, callback)

main() 函数中这些更改的条件语句也是关键:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
while not rospy.is_shutdown():           if TTS != None:               text = TTS
语音交互脚本

像voice_control.py这样的简单脚本主要由回调函数和 talker 函数组成。他们告诉 Spot 要听什么词以及如何回应。 

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
def callback(msg):   global pub, order   rospy.loginfo(msg.data)   if "hey spot" in msg.data.lower() and "fetch me" in msg.data.lower():       order_start = msg.data.index("fetch me")       order = msg.data[order_start + 9:]       pub.publish("Fetching " + order)
def talker():   global pub   rospy.init_node("spot_voice_control", anonymous=True)   pub = rospy.Publisher("speak", String, queue_size=10)   rospy.Subscriber("final", String, callback)   rospy.spin()

换句话说,如果文本包含“Hey Spot,……来找我……” Spot 会将句子的其余部分保存为命令。在 ASR  transcript指示句子完成后,Spot 激活 TTS 客户端并背诵“Fetching”一词以及订单内容。然后其他脚本会使用 ROS 操作服务器,指示 Spot 导航到餐厅,同时注意避开汽车和其他障碍物。

当 Spot 到达餐厅时,它会通过说“Hello Spot”等人来点餐。如果 ASR 分析脚本检测到此序列,Spot 会背诵该命令并以“please”结束。餐厅员工将订购的食物和任何零钱放在适当的容器中,放在 Spot 的背上。在 Riva ASR 发现餐厅工作人员说“回家吧,Spot”后,Spot 回家了。

Riva等语音 AI SDK 背后的技术用于构建和部署完全可定制的实时语音 AI 应用程序,可在本地、所有云、边缘和嵌入式中部署,将 AI 机器人技术带入现实世界。

当机器人与人无缝交互时,它开辟了一个新领域的世界,机器人可以在其中提供帮助,而无需计算机上的技术人员进行翻译。

使用低代码解决方案部署您自己的语音 AI 机器人

总体而言,像 NVIDIA、Open Robotics 和机器人社区这样的团队在解决语音 AI 和机器人问题以及让日常机器人用户可以使用和使用该技术方面做得非常出色。

任何渴望进入该行业或改进现有技术的人都可以向这些团体寻求灵感和尖端技术的示例。这些技术可通过免费 SDK(Riva、ROS、NVIDIA DeepStream、NVIDIA CUDA)和功能强大的硬件(机器人、NVIDIA Jetson Orin、传感器)使用。

更多:

NVIDIA Jetson Orin NANO模组发布,会是大冤种么?

AI如何协助牙科医生解决难以发现的牙齿问题

NVIDIA AI技术如何燃爆“美国达人秀”半决赛现场

使用预训练模型,在Jetson NANO上预测公交车到站时间

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-09-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 GPUS开发者 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
蓝桥ROS云课→一键配置←f1tenth和PID绕圈
前轮转向移动机器人的实验目的是为了让学生了解和掌握前轮转向移动机器人的基本原理和控制方法,以及学习机器人运动学方面的知识。此外,该实验还可以培养学生的动手能力和团队合作精神,提高学生的实验操作能力和实验设计能力。
zhangrelay
2023/03/31
4330
蓝桥ROS云课→一键配置←f1tenth和PID绕圈
ROS机器视觉入门:从基础到人脸识别与目标检测
从本文开始,我们将开始学习ROS机器视觉处理,刚开始先学习一部分外围的知识,为后续的人脸识别、目标跟踪和YOLOV5目标检测做准备工作。我采用的笔记本是联想拯救者游戏本,系统采用Ubuntu20.04,ROS采用noetic。
芯动大师
2025/05/15
720
ROS机器视觉入门:从基础到人脸识别与目标检测
【机器人】ROS1工程案例:自定义消息类型
作者:杨丝儿 座右铭:始于兴趣,源于热爱,成于投入。 介绍:爱丁堡大学 人工智能专业。技术兴趣点集中在机器人、人工智能可解释性、数学、物理等等。 个人博客:discover304.top
杨丝儿
2022/03/01
3870
【机器人】ROS1工程案例:自定义消息类型
【机器人】ROS1工程案例:基础部分
本文只提供在Linux平台上的代码演示和最基本的注释,不进行逻辑的解释。 相关解释以及需要用到的基础知识参见:【机器人】ROS程序框架:架构部分 ✨安装ROS1环境 需要用到的技术以及流程参见:【机器人】开发系统镜像制作指南 ✨搭建环境 cd ~/Desktop # 在桌面上新建工作区,方便观看过程 mkdir -p rob_dev_ws/src cd rob_dev_ws/src catkin_init_workspace ✨创建包 在src路径下执行 # 这里使用python,所以
杨丝儿
2022/02/28
2650
【机器人】ROS1工程案例:基础部分
一文说明如何在NVIDIA Jetson上玩转大模型应用
非常兴奋能在这里与您分享一些关于将最新的生成式AI和大模型LLM引入边缘计算的惊人进展。
GPUS Lady
2023/11/13
3.1K0
一文说明如何在NVIDIA Jetson上玩转大模型应用
从turtlesim到贪吃蛇……
简单:蓝桥ROS机器人之极简贪吃蛇 酷炫:蓝桥ROS机器人之绚丽贪吃蛇 效果如下: ---- 需要修改哪些功能包? 如何一步一步实现上述功能? 键盘遥控可否改成自动贪吃蛇? ---- 部分提示如下:  import rospy from tanksim.msg import Pose from tanksim.srv import Spawn from tanksim.srv import SetPen from geometry_msgs.msg import Twist from geometry
zhangrelay
2022/05/01
3520
从turtlesim到贪吃蛇……
在Jetson上玩转大模型Day12:NanoLLM开发平台(2):语音对话助手
前面已经简单介绍过在Jetson AI Lab所提供的NanoLLM开发平台上的API基本内容,使用这些API可以非常轻松地开发并整合比较复杂的应用,现在就用一个比较具有代表性的Llamaspeak对话机器人项目,做个简答的比较。
GPUS Lady
2024/11/18
2260
在Jetson上玩转大模型Day12:NanoLLM开发平台(2):语音对话助手
差速轮式机器人仿真升级:Gazebo与Rviz集成及传感器仿真详解
本篇文章我们介绍的内容是差速轮式机器人进行升级 ,我们添加相关的物理属性,使用gazebo+rviz进行仿真。 通过编写机器人控制的程序,遥控机器人在gazeob仿真环境中移动,并通过rviz实时察看 camera,kinect和lidar三种传感器的仿真效果。
芯动大师
2025/05/15
1040
差速轮式机器人仿真升级:Gazebo与Rviz集成及传感器仿真详解
ROS暑期学校分享-2023
网络编程和单机编程是两种不同的编程方式,它们的主要区别在于其应用场景和实现技术上。
zhangrelay
2023/08/02
2830
ROS暑期学校分享-2023
利用OpenAI和NVIDIA Riva,在Jetson上搭建一个AI聊天机器人
在尖端语音处理领域,Riva 是一款由 NVIDIA 开发的强大平台,使开发人员能够创建强大的语音应用。该平台提供了一系列复杂的语音处理能力,包括自动语音识别(ASR)、文本转语音(TTS)、自然语言处理(NLP)、神经机器翻译(NMT)和语音合成。Riva 的一个关键优势在于其利用了 NVIDIA 的 GPU 加速技术,确保在处理高负载时仍能保持最佳性能。通过用户友好的 API 接口和 SDK 工具,Riva 简化了开发人员构建语音应用的过程。此外,Riva 还在 NVIDIA NGC™ 存储库中提供了预训练的语音模型,这些模型可以在自定义数据集上使用 NVIDIA NeMo 进行进一步优化,从而将专业模型的开发加速了 10 倍。
GPUS Lady
2023/09/07
9020
利用OpenAI和NVIDIA Riva,在Jetson上搭建一个AI聊天机器人
NVIDIA Isaac ROS 3.2亮相ROSCon:生成式AI助力机器人智能提升
在丹麦奥登塞举办的ROSCon大会上,NVIDIA及其机器人生态系统合作伙伴为机器人操作系统(ROS)开发者宣布了生成式人工智能工具、仿真以及感知工作流。
GPUS Lady
2024/10/23
2300
NVIDIA Isaac ROS 3.2亮相ROSCon:生成式AI助力机器人智能提升
借助媛如意让ROS机器人turtlesim画出美丽的曲线-云课版本
首先安装并打开猿如意 其次打开蓝桥云课ROS并加入课程 在猿如意输入问题得到答案 在蓝桥云课ROS验证 ---- 如何通过turtlesim入门ROS机器人 您可以通过以下步骤入门ROS机器人: 安装ROS:您需要安装ROS,可以在ROS官网上找到安装指南。 安装turtlesim:turtlesim是ROS中的一个仿真器,可以帮助您学习ROS的基础知识。您可以在终端中输入以下命令安装turtlesim: sudo apt-get install ros-<distro>-tur
zhangrelay
2023/03/08
8410
借助媛如意让ROS机器人turtlesim画出美丽的曲线-云课版本
利用OpenAI和NVIDIA Riva,在Jetson上搭建一个AI聊天机器人
在尖端语音处理领域,Riva 是一款由 NVIDIA 开发的强大平台,使开发人员能够创建强大的语音应用。该平台提供了一系列复杂的语音处理能力,包括自动语音识别(ASR)、文本转语音(TTS)、自然语言处理(NLP)、神经机器翻译(NMT)和语音合成。Riva 的一个关键优势在于其利用了 NVIDIA 的 GPU 加速技术,确保在处理高负载时仍能保持最佳性能。通过用户友好的 API 接口和 SDK 工具,Riva 简化了开发人员构建语音应用的过程。此外,Riva 还在 NVIDIA NGC™ 存储库中提供了预训练的语音模型,这些模型可以在自定义数据集上使用 NVIDIA NeMo 进行进一步优化,从而将专业模型的开发加速了 10 倍。
GPUS Lady
2023/08/23
9390
利用OpenAI和NVIDIA Riva,在Jetson上搭建一个AI聊天机器人
基于NVIDIA Jetson AGX Orin和Audio2Face做一个AI聊天数字人
在当今的数字化时代,逼真会说话的虚拟形象(或称为“avatar”)已经成为一种全新的交流和表达方式。在本篇文章里,博主介绍如何利用NVIDIA Jetson AGX Orin 开发者套件、NVIDIA Omniverse平台以及强大的Unreal Engine虚幻引擎制作一个的逼真会说话的avatar。
GPUS Lady
2024/05/07
1.1K0
基于NVIDIA Jetson AGX Orin和Audio2Face做一个AI聊天数字人
机器人体验营笔记(五)总结 Cozmo+ROS+AI
版权声明:署名,允许他人基于本文进行创作,且必须基于与原先许可协议相同的许可协议分发本文 (Creative Commons)
zhangrelay
2019/08/15
1.2K0
机器人体验营笔记(五)总结 Cozmo+ROS+AI
在f1tenth仿真中如何实现更快速的跑圈-曲线分析篇
总之,要提高F1赛车在比赛中的圈速,需要综合考虑技术、战术和车队战略等多个因素。需要不断练习、尝试和调整,逐步提高自己的驾驶技能和竞争水平。
zhangrelay
2023/05/01
8370
在f1tenth仿真中如何实现更快速的跑圈-曲线分析篇
【2021GTC】遇见边缘AI和机器人的未来
本文学习自NVIDIA GTC演讲《Meet the future of Edge AI and Robotics:NVIDIA Jetson Orin》
GPUS Lady
2021/11/23
7030
【2021GTC】遇见边缘AI和机器人的未来
ROS 编程入门的介绍
ROS(Robot Operating System)是一种开源的机器人软件框架,广泛用于机器人开发中。通过使用 ROS,开发者可以轻松创建和管理机器人应用程序。在本节中,我们将介绍如何创建一个 ROS 功能包并实现一些基本功能。
芯动大师
2024/09/18
2180
ROS 编程入门的介绍
ROS学习记录②:Topic通讯和代码练习
Node间进行通讯,其中发送消息的一方,ROS将其定义为 Publisher(发布者) ,将接收消息的一方定义为 Subscriber(订阅者) 。
小黑鸭
2020/11/24
1.9K0
从开环到闭环的旅程-CoCube
这里,有一个bug,后续解决,问题在一个突变点-pi和pi这个点,当然不止这一个bug。
zhangrelay
2022/12/10
3250
从开环到闭环的旅程-CoCube
推荐阅读
相关推荐
蓝桥ROS云课→一键配置←f1tenth和PID绕圈
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验