WEB开发网
开发学院手机开发Android 开发 Android 实现自动朗读(TTS) 阅读

Android 实现自动朗读(TTS)

 2010-03-25 17:02:00 来源:WEB开发网   
核心提示:Type设置为系统中Alarm类型,对上一个例子稍作改动:HashMap myHashAlarm = new HashMap();myHashAlarm.put(TextToSpeech.Engine.KEY_PARAM_STRE AM,String.valueOf(AudioManager.STREAM_ALARM)
Type设置为系统中Alarm类型,对上一个例子稍作改动:

HashMap myHashAlarm = new HashMap();

myHashAlarm.put(TextToSpeech.Engine.KEY_PARAM_STRE AM,

String.valueOf(AudioManager.STREAM_ALARM));

mTts.speak(myText1, TextToSpeech.QUEUE_FLUSH, myHashAlarm);

mTts.speak(myText2, TextToSpeech.QUEUE_ADD, myHashAlarm);

应用语音功能的Completion Callback:

TTS中的Speak()的是异步调用,无论应用QUEUE_FLUSH 或者QUEUE_ADD作为参数都可以通过定义Listener监听当前任务的完成状态。可以利用这个方法追加Speak()执行之后的一些额外操作。下接下来的例子中,当完成第二次Speak()方法调用之后,利用OnUtteranceCompletedListener接口来调用其它方法:

mTts.setOnUtteranceCompletedListener(this);

myHashAlarm.put(TextToSpeech.Engine.KEY_PARAM_STRE AM,

String.valueOf(AudioManager.STREAM_ALARM));

mTts.speak(myText1, TextToSpeech.QUEUE_FLUSH, myHashAlarm);

myHashAlarm.put(TextToSpeech.Engine.KEY_PARAM_UTTE RANCE_ID,

"end of wakeup message ID");

// myHashAlarm now contains two optional parameters

mTts.speak(myText2, TextToSpeech.QUEUE_ADD, myHashAlarm);

下边是定义Listener的代码,类似与监听按 CuteFTP Home 8.3.3.0054下载钮或者其它View Events的方法。在这里将会把Speak()中HashMap参数传进Listener中,作为条件的判断依据:

public void onUtteranceCompleted(String uttId) {

if (uttId == "end of wakeup message ID") {

playAnnoyingMusic();

}

}

“烘焙”当前实时的语音数据:

看到烘焙两个字,就会让人联想到香喷喷的面包。软件开发要关注于是否可以最大限度的实现资源的复用,特别是针对资源有限的手机应用平台。那么对于TTS这么奢侈的应用如何才能更高效的使用资源呢?这次一起来体验比烘焙面包更加让人激动的功能,将TTS Engine输出的Audio Stream作为永久的音频文件保存在当前的存储空间中(SDCard)。这样可以对需要重复播放的某些语音内容实现快速的回放功能,从而实现国际倡导的 “减排”目的,能省就省吧!在下边的例子用通过TTS的synthesizeToFile方法,将合成的语音Stream保存在参数所指定的地址中。

上一页  1 2 3 4 5  下一页

Tags:Android 实现 自动

编辑录入:coldstar [复制链接] [打 印]
赞助商链接