跳到教程内容
教程首页
App Inventor 2 教程 语音机器人Robot
准备开始
动手创造 · PROJECT LAB

语音机器人Robot

准备探索你的新作品
0%
★★ 项目难度每一步,都离作品更近

先了解你将做出什么

应用介绍

识别语言指令并控制机器人运动,主要用到语音识别器及文本朗读器组件,语音识别相关开发最佳入门。代码逻辑简单,App交互性及趣味性非常强~

演示视频: App Inventor 2 语音交互零基础最佳入门 App,使用讯飞语音识别引擎,兼具交互性和趣味性

语音Robot教程(难度系数:★★)

语音识别器

语音识别器

一般Android手机提供的是Google语音识别引擎,但是经过测试,中文支持不好,经常识别失败,因此这里改用讯飞语音+识别引擎来进行,体验较好,识别率很高。

不过目前版本还稳定维持在1.1.1045,后续几乎不再更新了。

讯飞语音

  1. 安装方法:应用市场,应用市场找不到的请自行下载apk安装。

  2. 无需设置,安装完成后,当触发需要识别语音时,系统会弹出对话框让你选择使用哪个识别引擎,这时选择“讯飞语音”,点“始终”就OK了。测试代码如下: 开始语音识别

  3. 效果展示: 中文识别结果

注:当设置语音改成英语后,读中文的话,不是将你读的中文翻译成英文,而是将你读中文的音调相近的英语内容识别出来,也就是它认为你说的是英文,按英文规则识别。

文本朗读器

文本朗读器

文本朗读器这个能不能也使用讯飞语音呢?

经过测试,在“系统设置” — “语言和输入”—“文本转语音” 中将首选引擎设置为讯飞后,朗读出来的内容完全就是杂乱的,不知是不是因为版本过旧,还是其他设置问题,经过一系列尝试(包括设置文本朗读器的国家及语言属性)仍然是不行的。

最终只得选择“Google文字转语言引擎”,如图:

文本转语音引擎设置

测试代码如下:

语音识别后,显示文本并朗读

这时,可以对App进行第一阶段的测试,将你的语音识别成文本,输出到屏幕,并朗读出来。

这种交互也是很有趣的,大家有兴趣的话还可以试试将讯飞语音设置为英文、粤语等,这时可以识别出你说的英语及粤语方言~

App基本逻辑设计

基本的交互设计,简单地设计3点如下:

  1. 打招呼指令,可以说“请打个招呼”或“你好”,这时机器人回复说“你好”。
  2. 控制机器人上下左右、斜着移动、回到屏幕中间,若指令不能识别,则说出相应的提示。
  3. 点击机器人提示“别碰我”。

Robot逻辑代码

机器人运动的过程(角度的定义,请右键代码块,查看”帮助“): 机器人运动过程

语言识别的逻辑如下: 识别逻辑

点击机器人事件: 点击机器人

后记

代码总体非常简单,但是已经具有一定的交互性和可玩性,大家可以自行拓展。

本次课程的关键点在于语音识别引擎的选择,好在直接安装后无需设置就能使用。

文本转语音引擎:一般安卓手机已经默认装好了,但是不排除有些手机没有或者是国外的引擎,这时需要进行一定的设置,建议使用Google引擎,并将语言设置为中文。