gpt4 book ai didi

Android TTS 熄屏一段时间后停止朗读

转载 作者:行者123 更新时间:2023-12-05 04:30:06 31 4
gpt4 key购买 nike

我正在开发一个需要在屏幕关闭后继续大声朗读文本的应用程序。为了实现这个目标,我将文本转语音 (TTS) 代码放在前台服务中,这样 TTS 可以在屏幕关闭时继续运行。

它以前在我的手机上运行良好。但是我 Handlebars 机从Android 11升级到Android 12后,TTS会在屏幕关闭一段时间后停止工作,通常是几分钟后。

通常情况下,TTS说完一个句子后,会调用UtteranceProgressListeneronDone方法,这样我就可以让TTS在那里说下一句了。 TTS 停止工作的原因是 onDone 方法在屏幕关闭一段时间后停止调用。它不会立即停止,而是在几分钟后停止,有时时间更长,有时时间更短。

编辑:

一开始我关闭了整个系统的电池优化,但它不起作用。然后我关闭单个应用程序的电池优化。我需要转到单个应用程序的设置并将其关闭,或者像这样以编程方式执行此操作:

Check if battery optimization is enabled or not for an app

这个问题在我关闭单个应用的电池优化后得到了很大的改善。但是TTS还是会时不时停一次,大概几个小时停一次。我还注意到应用程序“T2S”即使在电池优化开启时也能继续运行。我该怎么做才能让 TTS 在电池优化开启时继续运行,就像“T2S”所做的那样,或者至少不要让它在电池优化关闭后停止?

最佳答案

补充 Denny Hsu 的回答:

每个 tts 引擎都有一个最大数量的字符,它将一次合成为语音。您可以通过以下方式找到此最大数量:

TextToSpeech.getMaxSpeechInputLength()

例如,我相信 Google TTS 引擎的最大值是 4000 个字符。

您可以通过阻止用户尝试说出超过此限制的文本,或者将文本在达到或超过此限制时分成单独的字符串并按顺序发送来解决这个问题。

在后一种情况下,最好找到限制之前的最后一个句子的结尾,并在那里分开以确保保持正确的发音。

关于Android TTS 熄屏一段时间后停止朗读,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72161852/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com