Android TTS 文本长度超过 4k 字符无法播放

2023-12-31

我在用TextToSpeech有时会播放一些长文本,我注意到从那以后Android 4.1.2如果文本长度超过 4000 个字符,则不会播放。

我没有收到任何错误,但文本不会播放。直到现在我才能够重现这个Android 4.1.2(三星 Galaxy Nexus、Nexus7)。

这是一个错误吗?4.1.2或者这是正常的(尽管我没有找到有关此行为的任何文档)?

我还发现了一个帖子:如果收到的 TTS 太长,onUtteranceCompleted() 会丢失 https://stackoverflow.com/questions/6863107/onutterancecompleted-lost-if-tts-received-is-too-long这表明超过 4000 个字符的文本存在不同的问题。

EDIT:我尝试将字符串分割成 4k 长度的块,然后将其发送到TTS using QUEUE_ADD我遇到了另一个bug https://stackoverflow.com/questions/13482899/android-jelly-bean-tts-queue-add-does-not-work: QUEUE_ADD不起作用,而是刷新现有队列,并且只播放最后一个块。

EDIT2: 这是我的电话TTS

mTTS.speak(longText, TextToSpeech.QUEUE_FLUSH, null);

TtsService.java 中的 MAX_SPEECH_ITEM_CHAR_LENGTH = 4000,在 4.1 上我在代码中看到警告:

    @Override
    public boolean isValid() {
        if (mText == null) {
            Log.wtf(TAG, "Got null text");
            return false;
        }
        if (mText.length() >= MAX_SPEECH_ITEM_CHAR_LENGTH) {
            Log.w(TAG, "Text too long: " + mText.length() + " chars");
            return false;
        }
        return true;
    }

看起来 2.3 会分割文本,所以理论上你的代码应该在 android

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

Android TTS 文本长度超过 4k 字符无法播放 的相关文章

  • Android Volley 对于一个请求返回两次结果

    我两天来一直在试图解决这个问题 但我完全被难住了 由于某种原因 我向队列发送一个请求 但 volley 返回两次 这会调用侦听器两次并使列表视图中的结果加倍 我打开了 Volley 的日志记录 可以看到请求被添加到队列中并返回 然后几秒钟后
  • 使用街景图像

    我想获取街景图片 注明纬度和经度 并显示在对话框中 这可能吗 我在这里看到了一些示例 但没有找到一个向我展示如何在对话框中显示图像的示例 抱歉 如果网站中已经存在这个问题 但我在搜索时没有找到 是的你可以 作为 URL 根 你可以使用这个h
  • 使用JACK时生成的proguard mappings.txt文件在哪里?

    我一直在尝试使用最新的JACK 和 JILL 构建系统到我的android项目 我知道JACK进程包括proguard处理 但之后我找不到映射 txt归档回溯堆栈跟踪Google Play 开发者控制台上提供的错误数 请帮我查找映射 txt
  • Cordova 无法构建项目

    Update 新读者 请检查我最后的编辑 更新cordova后 无法构建 运行 Mac mini de Toni funcook toniweb sudo cordova build Password Running command Use
  • 如何立即开始执行 Kotlin 协程

    我想立即启动一个协程 我有一段代码 class SampleActivity AppCompatActivity CoroutineScope private var job Job Job override val coroutineCo
  • 运行低于 Lollipop 的设备上的 CameraManager

    我遇到一个问题 我同时使用 Camera 低于 Lollipop 设备 和 CameraManager 类 Lollipop 及以上设备 运行低于 Lollipop 的设备会崩溃 我相信这是因为 import android hardwar
  • 使用意图过滤器从 URL 打开 Android 应用程序不起作用

    我有一个 Android 应用程序 人们用它来替代网站 因此 当用户遇到网站的 URL 时 我想为他们提供在我的应用程序中而不是在浏览器中 打开 URL 的选项 换句话说 我希望出现弹出窗口 让他们在我的应用程序和浏览器 可能还有其他应用程
  • Kotlin Android Studio - Var 在 SDK 29 中被视为 val

    我在 Kotlin 中遇到了一件非常奇怪的事情 我有 var myClipboard getSystemService CLIPBOARD SERVICE as ClipboardManager var myClip ClipData Cl
  • android 无法解析方法 setcontentview

    今天在android studio 中遇到了一个错误 我正在尝试在应用程序中创建一个关于我们的屏幕 布局 xml 文件已创建 任何帮助表示赞赏 谢谢 错误 无法解析方法 setcontentview int package example
  • 如何避免 Android 游戏中的时钟漏洞?

    我需要测量一段可以持续几个小时的时间 我假设执行此操作的正常方法是这样的 Date date new Date wait some time new Date getTime date getTime 但是用户是否可以将 Android 的
  • Android:如何检测双击?

    我在实现双击时遇到问题 好吧 我实施了onGestureListener我有gestureDetector 但我不确定问题出在哪里 这是我的代码 public class home extends TabActivity implement
  • Android 模拟器无法与 Xamarin/Visual Studio Mac 配合使用

    你好 我真的很难让 Android 模拟器在我的 Mac 上运行 我需要采取哪些步骤才能使其正常工作 我在 MacOS Catalina 上安装了 Visual Studio 2019 这是一个新的空白 Xamarin Forms 项目 我
  • MLKit Firebase android - 如何将 FirebaseVisionFace 转换为图像对象(如位图)?

    我已将 MLkit FaceDetection 集成到我的 Android 应用程序中 我已参考以下网址 https firebase google com docs ml kit android detect faces https fi
  • 向 Android 操作栏添加按钮

    我如何制作带有文本的按钮 在操作栏中带有图像 如下所示 是否可以使用内置的 android 按钮或图像按钮在操作栏中执行如下操作 我正在使用 appcompat 来使用操作栏 是的 如果需要 您可以膨胀自定义操作栏 Override pro
  • 无法将库添加到我的 Android 项目

    我正在创建一个新应用程序 我想使用一些像这样的库 https github com JakeWharton Android ViewPagerIndicator https github com JakeWharton Android Vi
  • TextView 中缩进项目符号列表

    我有一个 TextView 我用 strings xml 中的字符串资源中的文本填充它 字符串资源包含 元素 用于在 TextView 内创建项目符号列表 我的问题是我想控制项目符号列表中跨越多行的行的缩进 默认情况下 文本不会缩进超过项目
  • Android 中 Admob 的 XML 或 Java 关键字

    我似乎找不到任何有关通过 XML 或 Java 设置 adMob 广告关键字的可靠文档 我已经尝试过中看到的方法this https stackoverflow com questions 5066129 android admob api
  • 找不到 `activityViewModels()` Hilt Android

    我在我的项目中使用 Hilt 和 MVVM 我想要一个viewModel from activityViewModel在 2 个活动中使用相同的内容 但我的 Android Studio 说未解析的参考 我的应用程序 build gradl
  • 如何在 Android 中通过 gradle 列出 buildConfig 中的所有类型

    这是一个简单的 gradle 具有三种风格 apply plugin com android application android compileSdkVersion 23 buildToolsVersion 23 0 2 default
  • iOS:如何实现像Android的startActivityForResult这样的行为

    我是一名 Android 开发人员 正在开发我们应用程序的 iOS 版本 我需要知道如何在 Android 上实现类似于 startActivityForResult 的行为 我需要显示一个新的视图控制器 然后在新的视图控制器关闭时将控制权

随机推荐

  • 出现错误 -java.lang.NoClassDefFoundError: javax/faces/component/behavior/ClientBehaviorHolder

    我在集成 SWF Primefaces 2 2 1 JSF 2 Spring Security 3 Spring 3 1 0 时遇到奇怪的错误 INFO Unsanitized stacktrace from failed start co
  • 了解 Python WSGI 应用程序中的全局对象持久性

    请考虑 Google App Engine 中我的 WebApp2 应用程序中的以下代码 count 0 class MyHandler webapp2 RequestHandler def get self global count co
  • 正则表达式删除重复单词?

    我用它来删除重复的单词 Notepad 或 Powergrep b w b W 1 用 来代替 1 如何更改以查找不连续的重复单词排成一行并删除第二个重复的单词 Example word1 word2 word1 word3 Result
  • 将四元数从右手坐标翻转到左手坐标

    我需要从右边翻转四元数 x left to right y front to back z top to bottom 到左手坐标 其中 x left to right y top to bottom z front to back 我该怎
  • unordered_set 将元素存储为指针

    缩小范围 我目前正在使用升压无序 http www boost org doc libs 1 49 0 doc html unordered html 我看到两种可能的解决方案 定义我自己的等式谓词和哈希函数 http www boost
  • VS2010不会显示项目属性(“底层RCW”)?

    只有有时 我还没有注意到模式 当我右键单击一个项目 各种类型的项目 并选择 特性 我通常可以在重新启动 VS2010 后查看项目页面 我用的是RTM版本 什么可能导致此错误 莱帕德英国 我遇到了同样的问题 最后发现出了什么问题 这是行为不当
  • 传单标记在某些情况下不显示

    我正在使用 leaflet htmlwidget 实现来使用 R 绘制基于 Web 的地图 我正在寻找特定的标记 但找不到它 并意识到它根本没有显示 但是 当我将数据集子集化为just该条目 标记显示得很漂亮 这是标记的屏幕截图 在将数据子
  • EF 映射为表中的所有列名称添加前缀

    我有一个大型现有数据库 它有一个约定 其中所有列名称都以非复数表名作为前缀 例如 Tablename addresses Columns addressId addressLine1 addressLine2 是否有任何配置可以申请映射 使
  • CMake 安装目标依赖项

    我正在编写一个包含库本身和示例的库 并且我正在使用 CMake cmake minimum required VERSION 3 6 add executable example main cpp install DIRECTORY inc
  • 断开连接时 Firebase 更新

    我在 firebase 上有一个节点 列出了游戏中的所有玩家 当新玩家加入时 此列表将更新 当当前用户 我 断开连接时 我想将自己从列表中删除 由于列表会随着时间的推移而变化 在我断开连接的那一刻 我想更新此列表并更新 firebase 这
  • javascript var 和 not var 有什么区别? [复制]

    这个问题在这里已经有答案了 可能的重复 JavaScript 中使用 var 和不使用 var 的区别 https stackoverflow com questions 1470488 difference between using v
  • 如果在离线状态下加载/刷新页面,JavaScript 后台同步将停止工作

    我目前正在学习如何使用后台同步来允许用户在离线使用网络应用程序时进行 PUT POST 更改 我按照杰克 阿奇博尔德 Jake Archibald 的指示进行操作后台同步简介 https developers google com web
  • 如何在 Asyncstorage 中设置多个值

    如何在 Asyncstorge 中设置多个值 因为我正在尝试设置token and user id 这些是服务器响应值 这就是响应的样子 json error 0 data User registered Successfully user
  • NSArray 基于密钥的 Tokenize

    我已经从服务器获取了数据并且传递的数据也填充了NSMutableArray after NSJSONSerialization 数组输出如下 NSArray jsonArray NSArray json NSLog Array jsonAr
  • 是否可以检测文件是否实际下载

    假设我有一个返回的控制器操作方法FileResult 是否可以检测文件是否被实际下载的完全交给客户 public ActionResult GetFile int id DownloadInfo data provider GetInfo
  • CUDA 中的块间同步

    我为这个问题搜索了一个月 我无法同步 CUDA 中的块 我读过很多关于atomicAdd 合作组等的文章 我决定使用一个全局数组 这样一个块就可以在全局数组的一个元素上写入 写入之后 块的线程将等待 即陷入 while 循环 直到所有块都写
  • 获取 Windows 窗体的大小

    我正在创建一个 Windows 窗体应用程序 如何捕获 Windows 窗体的大小 目前我的代码中有一些看起来像这样的东西 PictureBox display new PictureBox display Width 360 displa
  • 如何将 Json.NET 中缺失的属性反序列化为默认值?

    我有一个用 DataContract 和 DataMember 属性注释的类 部分成员被标记为DataMember IsRequired true 当我通过 Json NET 线路序列化实例时 所需的对象成员具有 null 值 那么它们的序
  • 请解释一下这个 Javascript 闭包练习 [重复]

    这个问题在这里已经有答案了 我是一个 javascript 菜鸟 试图理解下面的闭包练习 现在 我知道结果是 122 任何人都可以引导我一步步完成这个过程 什么被传递到什么 以便我能够理解闭包是如何工作的 var hidden myster
  • Android TTS 文本长度超过 4k 字符无法播放

    我在用TextToSpeech有时会播放一些长文本 我注意到从那以后Android 4 1 2如果文本长度超过 4000 个字符 则不会播放 我没有收到任何错误 但文本不会播放 直到现在我才能够重现这个Android 4 1 2 三星 Ga