史上最强DIY,手工制作一只会说话的机器狗
摘要:波士顿动力的机器狗,想要么?快来跟我一起动手制作吧。
波士顿动力的机器狗了解吗?
一个会后空翻、会开门、会爬楼梯的AI。
最近,我们实验室就来了一批mini版的机器狗,虽然不会各种高难度杂技动作,但在我们各种捣鼓下,现在特别“能说会道”。
目标:一只具备语音交互的机器狗
当前,采用API访问云端实现诸如语音识别、语音合成模块功能,逐渐可以简化或者取代一些复杂的本地资源部署,快速实现相应的功能。
但对于一些语音交互科研机器人,语音服务经常面临本地部署设备数目少、部署成本高、维护麻烦等问题。寻求低成本、部署方便、语音合成迅速的语音交互服务模块,成为设计语音交互机器人的关键瓶颈。
这次,我们对机器狗科研Demo样机搭载语音识别ASR、自然语言处理NLP、语音合成TTS服务,从而实现准确快速的语音识别、多音色富有情感的语音合成、语音运动控制、智能提醒等功能。
针对上述要求,我们选用了华为云的语音识别ASR、语音合成TTS以及自然语言处理NLP产品。具体实验改造过程其实很简单,分为三步:
- 在本地设备部署语音唤醒服务,设备语音唤醒后,将录音片段通过华为云的语音识别接口传至华为云进行语音识别处理。
- 将华为云返回的语音识别文字信息在本地进行自然语言处理,或运用华为云的自然语言处理模块进行自然语言处理得到相应的语义、控制指令信息。
- 将需要语音合成的文字通过华为云的语音合成接口传至华为云,得到相应的音频信息。

图:业务架构图/方案截图:
诞生!一只可对话的机器狗
最终,通过华为云的语音识别相关产品,这只机器狗既能听懂人话,还能和大家交流,具体可以实现以下几个场景的语音交互。
控制指令识别:通过语音识别服务,在本地通过正则匹配,数据库对比等操作,得到语音信息中的控制指令信息,用于机器人的语音控制。
对话语音的语音转写:运用语音识别服务,获取语音信息中相应的文字信息,用于自然语言处理模块的文本输入,或者对话机器人API的输入。
自然语言处理:通过华为云的自然语言处理服务,得到相应的回复语言,用于智能对话、智能提醒等功能。
语音合成功能:运用华为云的语音合成服务实现对答文本的语音合成服务。

虽然身形没有波士顿动力的机器狗灵巧,但是在语音对话方面,这只机器狗或许要略胜一筹。
体验下来,华为云的语音识别类产品还是相当不错的。
首先它简化了语音交互模块的配置,学生可以轻松通过API调用的方式实现语音识别、语音合成等服务,简单便捷。
其次,提升了语音交互的质量。得益于华为云低延时高速的特性,在线服务可以与本地服务媲美,语音识别准确率很高,同时语音合成提供了多种语音交互音色供开发者使用。遗憾的是,当前对长语音的识别速度需要进一步优化,而且语音合成可以考虑中英语音的合成,提升中英语音合成的情感度,衔接的自然度。
现在,华为云的语音识别产品正在优惠中,1元就能体验语音语义服务,一分钱不花也可以享受一天的智能对话机器人,算下来,至少能省几大百,喜欢DIY机器人的赶紧上车。
史上最强DIY,手工制作一只会说话的机器狗的更多相关文章
- 史上最强Java NIO入门:担心从入门到放弃的,请读这篇!
本文原题“<NIO 入门>,作者为“Gregory M. Travis”,他是<JDK 1.4 Tutorial>等书籍的作者. 1.引言 Java NIO是Java 1.4版 ...
- 史上最强maven配置详情
史上最强maven配置详情 优点 对第三方依赖库进行了统一的版本管理 统一了构建过程 统一了项目的目录结构 构建 清理 : mvn clear 编译 : mvn compile 测试 : mvn te ...
- 一文深入了解史上最强的Java堆内缓存框架Caffeine
它提供了一个近乎最佳的命中率.从性能上秒杀其他一堆进程内缓存框架,Spring5更是为了它放弃了使用多年的GuavaCache 缓存,在我们的日常开发中用的非常多,是我们应对各种性能问题支持高并发的一 ...
- JVM面试题(史上最强、持续更新、吐血推荐)
文章很长而且持续更新,建议收藏起来,慢慢读! 高并发 发烧友社群:疯狂创客圈(总入口) 奉上以下珍贵的学习资源: 疯狂创客圈 经典图书 : 极致经典 + 社群大片好评 < Java 高并发 三部 ...
- Java算法面试题(史上最强、持续更新、吐血推荐)
文章很长,建议收藏起来,慢慢读! 疯狂创客圈为小伙伴奉上以下珍贵的学习资源: 疯狂创客圈 经典图书 : <Netty Zookeeper Redis 高并发实战> 面试必备 + 大厂必备 ...
- Webbrowser控件史上最强技巧全集
原文:Webbrowser控件史上最强技巧全集 Webbrowser控件史上最强技巧全集 VB调用webbrowser技巧集 1.获得浏览器信息: Private Sub Command1_Click ...
- 史上最强php生成pdf文件,html转pdf文件方法
body{ font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI& ...
- Android, IOS 史上最强多语言国际化,不仅第一次会尾随系统,并且会保存用户的语言设置
劲爆消息,我提供源代码了.你能够先看完再下载.也能够先下载再看完, android源代码地址: https://github.com/hebiao6446/------Bluetooth-Androi ...
- 金九银十,史上最强 Java 面试题整理。
以下会重新整理所有 Java 系列面试题答案.及各大互联网公司的面试经验,会从以下几个方面汇总,本文会长期更新. Java 面试篇 史上最全 Java 面试题,带全部答案 史上最全 69 道 Spri ...
- julia,集Python、C++、R为一体!Julia 1.0重磅发布, MIT发布史上最强科学计算编程语言?创始人独家解答11个问题
这个编程语言的新版本之所以受到整个人工智能界的关注,最主要的原因正是其将 C 语言的速度.Ruby 的灵活.Python 的通用性前所未有地结合在一起,支持并行处理,易于学习和使用,尤其适合科学和工程 ...
随机推荐
- ApiPost发送请求报错UT000036: Connection terminated parsing multipart data
发送请求报错Caused by: java.io.IOException: UT000036: Connection terminated parsing multipart data 这个报错是因为 ...
- 利用信号量SemaphoreSlim实现PaddleOCR的线程安全访问
Wlkr.Core.ThreadUtils 项目背景 早在PaddleOCR 2.2版本时期,认识了周杰大佬的PaddleSharp项目,试用其中PaddleOCR时,发现它在改为web api调用时 ...
- 一款简单漂亮的WPF UI - AduSkin
前言 经常会有同学会问,有没有好看简单的WPF UI库推荐的.今天就给大家推荐一款简单漂亮的WPF UI,融合多个开源框架组件:AduSkin. WPF是什么? WPF 是一个强大的桌面应用程序框架, ...
- Java替换RequestBody和RequestParam参数的属性
Java替换RequstBody和RequestParam参数的属性 本文主要讲解在Java环境中如何替换RequestBody和RequestParam参数中的属性 背景 近期由于接手的老项目中存在 ...
- Redis 6 学习笔记 1 —— NoSQL数据库介绍,Redis常用数据类型
NoSQL数据库介绍(了解) 技术的分类1.解决功能性的问题:Java.Jsp.RDBMS.Tomcat.HTML.Linux.JDBC.SVN,2.进一步地,解决系统功能扩展性的问题:Struts. ...
- 数据结构-线性表-单链表(c++)
线性表的运算 求长度GetLength(L),求线性表L的长度 置空表SetNull(L),将线性表置成空表 按位查找Get(L,i),查找线性表L第i个元素 按值查找Location(L,x),查找 ...
- Go类型嵌入介绍和使用类型嵌入模拟实现“继承”
Go类型嵌入介绍和使用类型嵌入模拟实现"继承" 目录 Go类型嵌入介绍和使用类型嵌入模拟实现"继承" 一.独立的自定义类型 二.继承 三.类型嵌入 3.1 什么 ...
- 【日常收支账本】【Day02】通过PyCharm集成QtDesigner和PyUIC快速创建界面
一.集成QtDesigner和PyUIC PyCharm集成QtDesigner和PyUIC教程 二.在QtDesigner中画出窗体 1. 主界面 编辑账本: 新增.修改或删除记录 可视化账本:通过 ...
- 微信支付:wxpay.unifiedOrder(data)返回appid 与 openId 不配
原因:小程序和APP.公众号等支付方式夸端口调用支付,后台配置多个appId时 A程序中的openid 在B程序中支付.即使用A程序的openid和B程序的appIdy去调用wxpay.unified ...
- linux登陆防护fail2ban的优化配置
fail2ban 默认在iptables 防火墙filter表的input 链内设置规则,这样导致端口映射,和nat转发的流量不在fail2ban控制内. 如果修改配置文件/etc/fail2ban/ ...