如何在Android Java上暂停文字转语音

如何在Android Java上暂停文字转语音,第1张

概述目前,我已经实现了文字语音(TTS)来阅读书籍.由于TTS最多只能容纳4000个字符(而且一本书的数量更多),因此我将本书拆分,并将每个部分添加到TTS队列中.我想要单击一个按钮并暂停TTS,然后稍后从用户停止的地方继续TTS.我尝试使用synthesizeToFile并暂停媒体文件对象,但是同样,您一

目前,我已经实现了文字转语音(TTS)来阅读书籍.由于TTS最多只能容纳4000个字符(而且一本书的数量更多),因此我将本书拆分,并将每个部分添加到TTS队列中.我想要单击一个按钮并暂停TTS,然后稍后从用户停止的地方继续TTS.

我尝试使用synthesizetofile并暂停媒体文件对象,但是同样,您一次只能合成一个文件,少于4000个字符.我不想仅在TTS上将数百个媒体文件存储在用户设备上.

我可以让TTS读这本书,只是停下来不停,然后不得不从书的开头开始TTS.

在下面的代码中,我将整本书存储在一个字符串bookText中.
TTS引擎是tts变量.

这是我加载TTS队列的方式:

int position = 0;int pos = 0;int sizeOfChar = bookText.length();String testString = bookText.substring(position,sizeOfChar);int next = 500;while(true) {    String temp = "";    try {        temp = testString.substring(pos, next);        HashMap<String, String> params = new HashMap<String, String>();        params.put(TextToSpeech.Engine.KEY_ParaM_UTteraNCE_ID, temp);        tts.speak(temp, TextToSpeech.QUEUE_ADD, params);        pos = pos + 500;        next = next + 500;    }    catch (Exception e) {       temp = testString.substring(pos, testString.length());       tts.speak(temp, TextToSpeech.QUEUE_ADD, null);       break;    }}

这就是我“停止” TTS的方式:

tts.speak("Pausing!", TextToSpeech.QUEUE_FLUSH, null);

解决方法:

由于TextToSpeech类没有暂停/继续方法,因此建议执行以下 *** 作:

1)将本书分成句子,而不是500个字符块. (您可以使用“.”作为分隔符进行解析).

2)引入一个“主索引”计数器X,该计数器跟踪进度为:我们在句子X /总句子中.

3)当用户单击暂停时,只需使用stop()方法.

4)当用户单击“继续”时,在被中断的句子的开头继续讲话.

无论如何,与字面上的暂停和恢复中间句子相比,这将导致更好的用户理解力.

总结

以上是内存溢出为你收集整理的如何在Android Java上暂停文字转语音全部内容,希望文章能够帮你解决如何在Android Java上暂停文字转语音所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1080722.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存