Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在开发一个使用多个线程和 tts 的应用程序。线程的执行取决于 tts 说出文本所花费的时间,所以我的问题是,
在 tts 开始说话之前,我们可以在几秒钟内得到时间来通过 tts 说出完整的文本吗?
我还没有找到一种方法来找出说出特定话语需要多长时间。但是,如果您的意图只是想知道一个话语何时完成,则有回调。
https://developer.android.com/reference/android/speech/tts/UtteranceProgressListener.html#onDone(java.lang.String)
根据您的用例,这实际上可能会更好。我这么说是因为发言请求会排队,可能不会立即发言。更不用说 TTS 引擎是在另一个进程中运行的服务,并且请求朗读文本会产生一些开销。因此,即使您知道某个字符串需要 5 秒才能说出,也不一定会在调用 5 秒后说出speak()。
speak()