Android 原创 开发&源码 ·

9.【小萌伴Android】机器人陪聊–语音功能及其实现

前几篇都是介绍一些辅助功能,如新闻、H5游戏段子趣图、原生手电筒应用等,现在再来聊聊机器人陪聊主体功能--语音功能及其实现。

小萌伴】语音

小萌伴】中的语音功能使用的是百度语音sdk,包含语音输入、语音播放、语音转文字、文字转语音、声音变换、离线语音语义识别、语音唤醒等。

其中功能的主要可分为三部分:语音识别语音合成、语音唤醒。(我用的sdk比较老了,下面代码也许已经不兼容新sdk,具体请参考 百度语音 官网

ChatActivity实现了RecognitionListener及SpeechSynthesizerListener接口,这两个接口是语音识别与合成的监听。

初始化

语音识别和语音合成需要在进入Activity后执行初始化,在销毁时进行销毁。初始化如下,语音识别初始化没有封装,语音合成则用TtsUtils封装了一下。

语音输入及识别

对这一块,通过BdVoiceUtil类进行了封装,通过调用如下方法即可开启语音识别:

在RecognitionListener的回调中获取语音识别的结果,包括实时(部分)转换及全量(整句话)转换为文字,在onResults或者onPartialResults中将转换的文字发送到机器人api,之后逻辑与正常机器人陪聊一致。

语音合成

将机器人返回的语音转换为文字,这一块也在BdVoiceUtil进行了一下封装:

通过以上代码即可以开始转换,将msg.getContent()转换为语音,可以通过SpeechSynthesizerListener监听转换是否成功,语音播放的进度等。

语音合成后,也可以通过setParam控制声音(0 (普通女声), 1 (普通男声), 2 (特别男声), 3 (情感男声), 4 (童声))等

语音唤醒

语音唤醒功能在这里没有用到,主要是在后续介绍的“找手机”功能用到;包括语音唤醒、通过语音识别达到唤醒的目的、与微信等的语音输入冲突问题等,这些留到后续介绍“找手机”时再说。

BdVoiceUtil

对语音相关的简单封装,其实还有TtsUtils等,总的代码太多,这里就不贴了...

页面布局与一般输入框没大差别,这里就不多说了~~~

简书:ThinkinLiu 博客: IT老五


IT老五(it-lao5):关注公众号,一起源创,一起学习!

相关内容:
【小萌伴Android】相关文章目录
1.【小萌伴Android】思量再三,终于鼓起勇气开源~
2.【小萌伴Android】机器人陪聊模块分享
3.【小萌伴Android】新闻/H5游戏模块及广告过滤
4.【小萌伴Android】段子趣图模块及其实现 及 段子趣图数据爬取
5.【小萌伴Android】原生小游戏及其实现(一)2048
6.【小萌伴Android】原生小游戏及其实现(二)小鸟
7.【小萌伴Android】原生小游戏及其实现(三)飞机
8.【小萌伴Android】手电筒功能及其实现
9.【小萌伴Android】机器人陪聊--语音功能及其实现

参与评论