上一节,我们介绍了语音智能宝宝有问必答的聊天功能,
树莓派(古德微)制作语音智能宝宝(1)--智能问答
好玩吗?今天我们给智能宝宝添加一个语音中译英的功能。
二、语音中译英
这个在古德微平台里面,实现起来也是非常的简单……
具体的流程:
语音唤醒→录入语音并转中文→中译英→语音播报英文。
是不是感觉和第一节的流程非常的相似?我们按照第一节的1-4步骤,完成智能宝宝的语音识别,
语音识别接下来,我们就将语音识别出来的中文转成英文,平台更新之后,再也不用像此前写的案例那样,通过调用百度的AI来将中文转成英文,直接用一个块就能实现了。
英文翻译块我们通过输出调试信息来查看翻译……
查看输出信息这翻译比我的英文厉害多了~
最后,将英文用语音播报的方法输出来。顺便测试一下看看翻译的效果。
语音播报翻译
PS:播放语音块的设置说明。播放语音为输入需要播放语音的文本内容,发音人:0为普通女生,1为普通男生,3为男情感合成,4为女情感合成;音调:取值0-15,默认为5中语速;语速:取值0-15,默认3为中语速。
OK,至此语音智能宝宝的中译英功能已经实现了。
当我们呼唤“小度,小度”的时候,它是如何识别究竟是智能问答还是翻译功能呢?在录入语音的时候,给定一个用于区分的标识。如翻译语句,则说“翻译……”,这样,树莓派就能识别这是需要进行翻译的语音,否则就是进行智能问答。
流程图我们新建一个“文字标识”的变量,用于存储每次输入语音转文字后的前两个文字,这里要注意的,古德微平台里面采用UTF-8编码(?),每个汉字占3个字符。因此取的字符范围是从1-6:
文字标识赋值
新建一个变量为“操作文字”,用来存储语音识别文本从第3个汉字到末尾的字串。在此用作需要翻译的文本内容。
操作文字
为了将实现的功能模块化,我们建立“智能问答”和“汉英翻译”两个函数。如下图:
函数定义
按照流程图,我们就可以得到这样的条件分支结构:
判断语句
最后,整合在一起,就得到以下程序块。
参考代码块
我们现在来测试一下吧。
--“小度,小度,你好吗?”
--“小度,小度,翻译你好吗??
查看调试输出
OK,到这里,我们就把”智能问答“和”中译英“的语音功能实现并整合在一起了,下一节,我们开始进行语音点播功能的实现。
网友评论