Android O 新的 TextToSpeech onRangeStart() 回调

2023-12-25

TTS UtteranceProgressListener 的新回调函数 onRangeStart() 可以让我们突出显示 TTS 引擎朗读的较长短语中的各个单词。回调在 Android API 参考中定义:https://developer.android.com/reference/android/speech/tts/UtteranceProgressListener.html#onRangeStart(java.lang.String https://developer.android.com/reference/android/speech/tts/UtteranceProgressListener.html#onRangeStart(java.lang.String、int、int、int),但当应用程序将短语(例如句子)发送到 TTS 引擎进行语音生成时,我无法在任何地方找到有关如何实际定义短语范围的信息。

这些“范围”到底是什么以及如何定义它们?或者它们被预先定义为“单词”或用空格分隔的任何内容?

更多信息:我使用 Android O 模拟器并在我的 TTS 应用程序中创建了 onRangeStart() 回调,使用 Google TTS 设置中的不同声音来查看是否自动定义了任何范围以及是否会调用回调。没有什么。也许范围必须以某种方式在 talk() 调用的“params”包中定义???


谷歌仍未记录此功能以及对此的最新回应在他们的跟踪器中提交的问题 https://issuetracker.google.com/issues/62484359是“我们已将其推迟到未来的版本,但目前仍处于开放状态。”

同时,通过在我的 TTS 应用程序中实现 onRangeStart() 回调并使其显示调试输出,我发现“范围”只是单词。仅使用 Google TTS 中的英语语音时,我会看到此回调命中,到目前为止我尝试过的 Google 或其他公司的其他 TTS 语音尚未实现此功能。例如,朗读一句话:“这是一个要朗读的句子”。在 onRangeStart() 中产生以下输出:

onRangeStart(avar-1) start=0, end=4, frame=275         (This)
onRangeStart(avar-1) start=5, end=7, frame=3575        (is)
onRangeStart(avar-1) start=8, end=9, frame=6270        (a)
onRangeStart(avar-1) start=10, end=18, frame=7810      (sentence)
onRangeStart(avar-1) start=19, end=21, frame=18535     (to)
onRangeStart(avar-1) start=22, end=26, frame=21285     (read)
onRangeStart(avar-1) start=27, end=32, frame=25795     (aloud)

如果谷歌的有人正式告诉我们“范围”只是单词,至少目前如此,那将会很有帮助。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android O 新的 TextToSpeech onRangeStart() 回调 的相关文章

随机推荐

  • MongoDB 列表 - 获取每第 N 个项目

    我有一个 Mongodb 架构 大致如下 name name1 instances value 1 date ISODate 2015 03 04T00 00 00 000Z value 2 date ISODate 2015 04 01T
  • 定义一个返回结构体指针的函数

    请耐心听我说 我是其他语言的新手 也是 c 语言的新手 正在学习它http c learncodethehardway org book learn c the hard way html http c learncodethehardwa
  • 从 where 子句中给定的集合中选择表中不存在的 ID

    我有一组用户 ID 512 5 13 14 67 和一个包含以下内容的表 Id userID 1 512 2 13 3 14 4 51 5 6 该集中的一些用户 ID 并不存在于表中 例如 用户身份5和用户 ID64不存在 当我执行时Sel
  • 按位 NOT 的奇怪输出

    我试图用 0 的补码得到 1 但我得到 4294967295 这是我所做的 unsigned int x 0 unsigned int y x cout lt lt y 我的输出是 4294967295 但我期望 1 为什么会这样 顺便说一
  • 如何将扫描仪输入放入数组中......例如几个数字

    Scanner scan new Scanner System in double numbers scan nextDouble double avg 你可以尝试这样的事情 public static void main String a
  • VS 2005 C++ 项目中的 msvcr90.dll 依赖项

    我在 VS 2005 中为本机 Win32 非托管 C 创建了一个 DLL 项目 将其命名为 myProj dll 它依赖于第 3 方商业 DLL 而该 DLL 又依赖于 msvcr90 dll 我假设它是从 VS 2008 项目构建的 我
  • 如何在Excel中计算分钟和秒的平均值

    B 列中的原始数据各占一个新行 如下所示 5 04 3 57 0 58 10 01 的左边 是 的分钟和右边 是秒 我需要计算我的数据的平均值 我该怎么办 您需要转换为真实时间 一种选择是使用TIME并解析原始数据 在新列中 使用 TIME
  • 时间 - 获取昨天的日期

    我正在尝试使用 Python 获取今天和昨天的时间time模块 这对我来说适用于今天的日期 dt time strptime time strftime d m Y d m Y 但我不知道如何获得昨天的日期 我发现了很多教程datetime
  • 向空对象添加属性

    我有这个代码 var MY OBJ MY OBJ test function 我正在使用 Vscode 我得到属性测试未定义 我怎么能让这只是一个警告 定义你的对象有一个test财产 var MY OBJ test Function MY
  • 每次服务器重新启动后端口“已在使用”

    寻求有关特殊问题的帮助 每次我停止并重新启动服务器时 我都会收到以下消息 Jim Jim PC MINGW64 nodeProjects express locallibrary tutorial npm start gt email pr
  • React 标签和按钮 onClick 传播

    我想创建一个带有 render 方法的 React 组件 该方法具有 a 如果您愿意的话 可以包裹整个 盒子 的标签 单击后会重定向到另一个页面 在所述盒子内有一个 a
  • spring自动装配aop循环依赖

    我正在使用 java 配置 ComponentScan为了初始化我的bean 和 EnableAspectJAutoProxy proxyTargetClass true 使用 cglib 代理 在这个项目中 我们有很多生成的服务 它们之间
  • 服务器标记在 asp 控件内不起作用

    好吧 让这快点 我想在更改或页面加载时动态设置日历扩展器的开始和结束日期 这些值被放入 ascx 上的隐藏字段中 并在页面加载期间在 if not postback 中填充 一组日历扩展器位于网格视图的项目模板字段中 称为set A 其他的
  • 使用钢琴键盘作为电脑键盘[关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 Locked 这个问题及其答案是locked help locked posts因为这个问题是题外话 但却具有历史意义 目前不接受新的答案或互动 I
  • Visual Studio 2015 错误。项目的默认 XML 命名空间必须是 MSBuild XML 命名空间

    让我用 是的 我见过类似的问题 但不完全是我的情况 作为问题的开头 我的环境是 Microsoft Visual Studio Professional 2015 版本 14 0 25431 01 更新3 我的行动 我创建一个新的 C 类库
  • java.io.IOException:管道损坏

    我们目前正在将遗留应用程序迁移到 Jetty 不知怎的 我对破损的管道有一个例外 Java 6 码头8 1 8 春季3 2 0 我正在尝试将 Glassfish Web 应用程序迁移到 Jetty 在我们的测试环境中 我们使用负载平衡器 一
  • iOS7 上的 Webview 被剪裁

    我开发了一个阅读器 在使用 css 添加水平分页后 它可以在 web 视图上显示 html 文件的内容 一切工作正常 但在 iOS7 上 我注意到 web 视图在左边缘被剪裁 我已经尝试过以下方法 readingWebView frame
  • 类型成员的表达式会产生不同的表达式(MemberExpression、UnaryExpression)

    描述 我有一个表达式来指向我类型的属性 但它并不适用于所有财产类型 不等于 的意思是 它会产生不同的表达类型 我以为这会导致MemberExpression但这种情况并非如此 For int and Guid它导致UnaryExpressi
  • Django:想要将空字段显示为空白而不是显示 None

    我有一个名为 client details html 的模板 它显示user note and datetime 现在有时 客户端可能没有用户 注释和日期时间的条目 我的程序将做的是显示None如果这些字段为空 我不想显示 无 如果某个字段
  • Android O 新的 TextToSpeech onRangeStart() 回调

    TTS UtteranceProgressListener 的新回调函数 onRangeStart 可以让我们突出显示 TTS 引擎朗读的较长短语中的各个单词 回调在 Android API 参考中定义 https developer an