直接回答
Android 上没有一个通用的应用版本号,可以保证所有设备和语言都能离线朗读译文。显示目标语言文字和产生语音可能是两个独立阶段:翻译应用提供文字,文字转语音引擎选择本地语种语音并生成音频,再交给设备的音频输出播放。Android 提供接口查询可用语音、地区语言支持、语音数据缺失,以及指定 Voice 是否需要网络。这些状态描述的是当前设备上的引擎与已安装数据,不构成跨设备兼容承诺。下载语音数据可能需要网络;下载完成也不代表飞行模式下一定能播放。可靠的答案应注明应用版本、目标语言、所选 TTS 引擎和语音,确认所需语音数据已安装,然后关闭网络并朗读一条新译文。还要把输入端语音识别与输出端文字转语音分开。Android 的离线识别偏好可能被识别器忽略,不能用它推断手机能否离线读出译文。
场景:断网时听车站公告的译文
旅行者使用翻译应用得到目标语言文字,并希望手机在车站网络不稳定时朗读出来。系统设置中出现多个语音选项,旅行者猜测某个应用版本也许能保证离线播报。实际结果可能取决于目标语言、已安装的语音包、选中的引擎、音频输出路径,以及应用是否通过网络合成语音。
决策
将语音输出路径与翻译和语音输入分开测试。固定应用版本与目标语言,识别正在使用的 TTS 引擎和确切语音,检查语言支持及数据状态,再断网生成一条新语音。如果某个环节无法确认,应标成不可用或未知,并保留可查看的译文。
预期结果
用户可以确认当前这台设备上的具体配置能否离线读出目标语言结果。结论不能推广到其他语言、另一种 TTS 语音、后续应用版本或麦克风识别流程。
需要收集的证据
只有将以下证据与同一模型文件和测试运行关联起来,结论才可复核:
- 目标语种文字样本
- 语音清单与合成引擎身份
- 离线播放和语音不可用状态
任务质量需要有版本记录的语料和验收规则;流畅的单条样例不等于准确度结果。
实施流程
- 明确“朗读译文”指哪个步骤. 先把四项操作分开:采集源语言语音、识别或转写、翻译成目标语言文字、合成该文字并播放。若应用已经显示译文,接下来要核验的是文字转语音输出。屏幕阅读器朗读界面上的可见文字属于辅助功能,不应算作翻译应用已经生成了目标语言语音的证据。
- 固定应用、方向和译文样本. 记录应用名称与版本、Android 版本、源语言和目标语言,以及译文是由文字输入还是麦克风任务产生。准备一条短小且不含敏感信息的目标语言样本,预先校对字符和标点。每次使用相同文本,才能判断音频变化是否来自语音选择或播放,而非译文本身发生变化。
- 查看当前 TTS 引擎和语音. 在 Android 设置中查看文字转语音引擎和可用语音。Voice 对象包含地区信息,并能报告是否需要网络;TextToSpeech 接口也能查询指定地区语言的支持程度。记录真正选中的语音,而不要只看设备的系统语言或“离线语音”之类的宣传名称。
- 检查地区语言支持和语音数据. 确认引擎是否支持准确的目标地区语言,并区分语音数据缺失与语言不支持。Android 提供由 TTS 引擎安装必要语音资源的操作入口,但用户可以拒绝或中断安装。离开网络覆盖前完成所需下载,再回到语音清单确认目标语音已经存在。
- 断网后执行一次新的合成. 关闭 Wi-Fi 和移动数据,关闭并重开翻译应用,生成一条新译文,再点击朗读。确认听到的是预期目标语言,并检查扬声器或耳机输出确实可听。断网前已经朗读过的句子、另存的音频或缓存结果,不能证明当前语音引擎完成了离线合成。
- 按阶段记录问题,并保留文字备选. 如果播报失败,保留屏幕上的译文,分别记录语言选择、语音数据、合成回调、音频输出或网络环节是否失败。检查引擎错误状态和实际输出路径;只有当语种查询或引擎状态支持这一结论时,才说该语言不受支持。若应用确实提供文字复制或换语音方式,可以把它们作为备选。
让每个阶段的状态都可观察。失败信息应指出阶段、模型、运行时和恢复动作,同时避免记录用户私密内容。
验收标准
- 测试记录包含应用与系统版本、源和目标语言、TTS 引擎、选中语音及其数据安装状态。
- 关闭网络后成功合成并听到一条新的目标语言译文;没有把缓存音频或之前会话计作成功。
- 语音数据缺失、地区语言不支持、语音需要联网、合成报错、静音或输出设备错误被分开记录。
- 结论仅适用于测试过的应用、引擎、语音、语言、设备和版本,不暗示所有版本与语种都支持。
决策对照表
| 维度 | 选择或证据 | 解读方式 |
|---|---|---|
| 已安装的 Android TTS 语音 | 地区语言可用、语音数据已安装,且所选 Voice 报告无需网络 | 这使其成为离线播报候选,但仍需断网朗读一条新译文。 |
| 需要网络的 TTS 语音 | 所选语音报告需要网络,或断网后合成失败 | 界面上有朗读按钮或翻译文字,不代表这条语音可以离线使用。 |
| 屏幕阅读器播报 | 辅助技术朗读界面或当前焦点文字 | 它可能让可见内容更易访问,但不能单独证明翻译应用的目标语音输出链路可用。 |
| 预录制短语音频 | 某个固定短语或提示存在预录音频 | 预录音频只能朗读录制过的内容,不能证明可合成任意译文。 |
需要避免的失败模式
- 把屏幕阅读器播报误当成翻译语音输出
- 假设每种语言都已安装语音数据
还要避免静默回退、版本未固定、缺少取消处理,以及把不同配置的结果混在一起下结论。失败运行也应与成功记录一并保存。
最小复现记录
| 层级 | 记录内容 |
|---|---|
| 设备 | 厂商、型号、芯片、内存档位、操作系统版本 |
| 软件 | 应用版本和 Git 提交号 |
| 模型 | 系列、变体、版本、格式、文件长度、摘要、量化方式 |
| 运行时 | 名称、版本、请求后端及实际后端证据 |
| 工作负载 | 样例版本、输入摘要、提示词摘要、输出策略 |
| 结果 | 完成、失败、取消、回退及保护隐私的诊断信息 |
发布检查表
- ☐ 主要搜索问题已回答,且没有未经支持的数字。
- ☐ 所有模型文件和运行时版本均已固定。
- ☐ 代表性任务和失败处理策略均有说明。
- ☐ 生命周期、取消、清理和回退均已测试。
- ☐ 用户内容与网络边界均有说明。
- ☐ 结论只适用于被记录的配置。
- ☐ 新增测试结果时链接到原始方法或证据。
来源与相关证据
- Cove 基准测试方法
- 端侧 AI 架构概览
- Android Developers — TextToSpeech 语言与数据可用性
- Android Developers — Voice 地区语言与网络要求
- Android Developers — TTS 引擎语音数据安装
- Android Developers — RecognizerIntent 离线识别偏好边界
中文部署与排错专题见。奇连 AI 端侧专题。
常见问题
哪个 Android 翻译 App 版本支持离线朗读译文?
没有一个版本号能保证所有 Android 设备和语言都支持。语音输出取决于应用是否提供播报、目标地区语言、所选 TTS 引擎和语音、语音数据安装状态、音频输出设备以及网络要求。请检查这台设备上的准确语音,并为目标语种执行一次全新的飞行模式测试。
下载翻译语言包,就包含了可离线朗读的声音吗?
不一定。翻译应用的语言资源与 Android TTS 语音数据可能由不同来源提供,并有各自的安装状态。应分别检查应用资源状态、TTS 引擎支持的地区语言和语音数据,然后在断网后重新合成目标语言文字。
Android 的离线语音识别选项能证明播报离线吗?
不能。EXTRA_PREFER_OFFLINE 是对麦克风输入端语音识别的偏好请求;Android 文档提醒,识别器实现可能忽略它。文字转语音属于输出链路。请检查当前选中的 Voice,并在离线状态直接测试合成。
Android TTS 显示“语言可用”是什么意思?
TextToSpeech 会分别报告语言、国家地区或变体层面的支持情况,也可以报告语音数据缺失或语言不受支持。这些 API 状态有助于定位配置问题,但不能证明某个翻译应用会选择该语音,也不能保证声音成功从扬声器播放。仍需端到端测试。
可以改用屏幕阅读器读出译文吗?
屏幕阅读器可能会读出界面公开给辅助服务的文字,但这与翻译应用自己的语音输出按钮不是一回事。它可能使用不同语言设置,也可能同时读出标签或周围界面文本。应单独测试并说明辅助阅读路径,同时保留可检查的文字译文。