既然产品有有优化升级的功能那么对于我们来说同样也有建议和反馈的功能,通常的反馈都是利用发信息和提示通知的方式来表达,有的可能是操作说明,有的可能是产品维护更新的最新操作教程等等,这些都是较为之详尽的文字表达形式,我们尝试想一下在用户反馈的时候用语音代替文字的方式效果又会怎么样呢?
一、下面我们来展示一下替代方式的TTSAPI方式来进行Android的系统视角参数的修改。
代码:
texttospeech.oninitlistener{publicclasstexttospeechdemo工具
私人最终语音mtexttospeech;/tts对象
私人最终concurrentlinkedqueuembufferedmessages;/消息队列
私人mcontext上下文;
私人布尔misready;/标识符
公共texttospeechdemo(上下文(上下文)
上下文this.mcontext=;//获取上下文
this.mbufferedmessages=新的concurrentlinkedqueue();//实例化队列
this.mtexttospeech=新的语音(this.mcontext,这实例化tts);//
}
既然我们是要修改视角上的方式,那么我们要把原有的文字表达形式的代码重新的修改一遍改为语音的参数,我们要在代码重加入初始化的TTS引擎
代码如下:
//初始化tts引擎
“重写
publicvoid{OnInit(int)的状态
log.i(“texttospeechdemo”,string.valueof(地位));
if(地位texttospeech.success{==)
intresult=this.mtexttospeech.sETLanguage(locale.china);//设置识别语音为中文
同步(这){
this.misready=true;/设置标识符为true
for(字符串bufferedmessage:this.mbufferedmessages){
speaktext(bufferedmessage);//读语音
}
this.mbufferedmessages.clear();//读完后清空队列
}
}
}
二、重新的获得释放资源,进行代码的输入。
代码如下:
//释放资源
publicvoid释放(){
同步(这){
this.mtexttospeech.shutdown();
this.misready=false;
}
}
三、更新代码的队列顺序或更新读语音的提醒功能
代码:
//更新消息队列,或者读语音
公共无效notifynewmessage(字符串lanaugh){
字符串消息=lanaugh;
同步(此)
如果(这。misready){
speaktext(消息);
其他{}
这个mbufferedmessages添加(消息);
}
}
}
四、语音代码输入:
//读语音处理
privatevoidspeaktext(字符串){
日志。我(“liyuanjinglyj”消息);
新hashmap()HashMap参数=;
参数。把(TextToSpeech。引擎。key_param_stream,“stream_notification”);//设置播放类型(音频流类型)
这个mtexttospeech。说(消息,texttospeech.queue_add,params);//将这个发音任务添加当前任务之后
这个mtexttospeech。playsilence(100,TextToSpeech。queue_add,params);//间隔多长时间
}
}
五、但是大多数的Android手机是不支持中文测试的,我们可以下载一款叫讯飞的TTS引擎软件来进行测试,因为TTS的异步初始化,在执行语音转换的过程中能够发送多个消息提示的窗口,我们把系统的音频和多个连续的消息同步处理,通过一种顺序形式的音频播放,调价对队列中,由下图所示。这样用户更能清楚功能的应用,熟知启动和停止。
总结:我们今次的目的是为了利用讯飞TTS的异步操作来用于Android的文字转换语音的格式,通过语音的顺序排列更够让好地通知永辉改变用户的操作指引,因为在用户操作困扰的过程中更够在语音的提示下更够更好的操作和教程相结合,更加容易理解。
¥98.00
¥199.00
¥398.00
¥179.00