【发布时间】:2017-06-09 15:24:45
【问题描述】:
TTS UtteranceProgressListener 的新回调函数 onRangeStart() 可以让我们例如突出显示较长短语的单个单词,就像 TTS 引擎所说的那样。回调在https://developer.android.com/reference/android/speech/tts/UtteranceProgressListener.html#onRangeStart(java.lang.String, int, int, int) 的 Android API 参考中定义,但是当应用程序将短语(例如句子)发送到用于语音生成的 TTS 引擎。
这些“范围”究竟是什么以及如何定义它们?还是它们被预先定义为“单词”或任何用空格分隔的东西?
更多信息:我使用了 Android O 模拟器并在我的 TTS 应用程序中创建了 onRangeStart() 回调,使用来自 Google TTS 集的不同声音来查看是否自动定义了任何范围,回调将是叫。没有。也许范围必须以某种方式在 speak() 调用的“参数”包中定义???
【问题讨论】:
-
我还向 Google 问题跟踪器报告了缺少用于定义字级突出显示范围的文档的问题,请参阅我的报告及其回复:issuetracker.google.com/issues/62484359
-
现在在 Android 8 Oreo 版本中,当使用来自 Google TTS 产品的英语 TTS 语音时,我确实会在 onRangeStart() 中为每个说出的单词获得回调。终于可以在我的 TTS 应用中实现口语高亮了!
-
26 之前的 API 支持库中有这个吗?
-
到目前为止,我还没有看到它添加到任何支持库中。如果您对此有更多了解,请分享。也许还值得向 Google 发布反馈以通过支持库在较旧的 Android 中提供此功能。
-
感谢您的信息,...hmmm,我将搜索是否有相关的功能请求。