前几篇都是介绍一些辅助功能,如新闻、H5游戏、段子趣图、原生小游戏,手电筒应用等,现在再来聊聊机器人陪聊主体功能--语音功能及其实现。
【小萌伴】语音
【小萌伴】中的语音功能使用的是百度语音sdk,包含语音输入、语音播放、语音转文字、文字转语音、声音变换、离线语音语义识别、语音唤醒等。
其中功能的主要可分为三部分:语音识别、语音合成、语音唤醒。(我用的sdk比较老了,下面代码也许已经不兼容新sdk,具体请参考 百度语音 官网)
ChatActivity实现了RecognitionListener及SpeechSynthesizerListener接口,这两个接口是语音识别与合成的监听。
初始化
语音识别和语音合成需要在进入Activity后执行初始化,在销毁时进行销毁。初始化如下,语音识别初始化没有封装,语音合成则用TtsUtils封装了一下。
mSpeechRecognizer = SpeechRecognizer.createSpeechRecognizer(ChatActivity.this, new ComponentName(ChatActivity.this, VoiceRecognitionService.class));
// 注册监听器
mSpeechRecognizer.setRecognitionListener(ChatActivity.this);
mSpeechSynthesizer = TtsUtils.getSpeechSynthesizer(ChatActivity.this, ChatActivity.this, getVoice(mRobot));
语音输入及识别
对这一块,通过BdVoiceUtil类进行了封装,通过调用如下方法即可开启语音识别: