语音机器人Robot
先了解你将做出什么
应用介绍
识别语言指令并控制机器人运动,主要用到语音识别器及文本朗读器组件,语音识别相关开发最佳入门。代码逻辑简单,App交互性及趣味性非常强~
语音Robot教程(难度系数:★★)
语音识别器

一般Android手机提供的是Google语音识别引擎,但是经过测试,中文支持不好,经常识别失败,因此这里改用讯飞语音+识别引擎来进行,体验较好,识别率很高。
不过目前版本还稳定维持在1.1.1045,后续几乎不再更新了。

-
安装方法:应用市场,应用市场找不到的请自行下载apk安装。
-
无需设置,安装完成后,当触发需要识别语音时,系统会弹出对话框让你选择使用哪个识别引擎,这时选择“讯飞语音”,点“始终”就OK了。测试代码如下:

-
效果展示:

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

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

测试代码如下:

这时,可以对App进行第一阶段的测试,将你的语音识别成文本,输出到屏幕,并朗读出来。
这种交互也是很有趣的,大家有兴趣的话还可以试试将讯飞语音设置为英文、粤语等,这时可以识别出你说的英语及粤语方言~
App基本逻辑设计
基本的交互设计,简单地设计3点如下:
- 打招呼指令,可以说“请打个招呼”或“你好”,这时机器人回复说“你好”。
- 控制机器人上下左右、斜着移动、回到屏幕中间,若指令不能识别,则说出相应的提示。
- 点击机器人提示“别碰我”。
Robot逻辑代码
机器人运动的过程(角度的定义,请右键代码块,查看”帮助“):

语言识别的逻辑如下:

点击机器人事件:

后记
代码总体非常简单,但是已经具有一定的交互性和可玩性,大家可以自行拓展。
本次课程的关键点在于语音识别引擎的选择,好在直接安装后无需设置就能使用。
文本转语音引擎:一般安卓手机已经默认装好了,但是不排除有些手机没有或者是国外的引擎,这时需要进行一定的设置,建议使用Google引擎,并将语言设置为中文。
卡在哪一步?直接查操作
不用退出当前教程。速查会在新页面打开,查完回来继续刚才的进度。