直接回答
离线翻译录音文件,不等于离线实时对话。应用必须能够接收用户选中的文件或内容 URI,识别并解码可用音轨,把音频转换为语音识别流程所需的表示,生成转写文本,再翻译指定方向,并在断网时返回可以复核的结果。Android 文件选择器可以让应用通过 URI 访问用户选定的文档;MediaExtractor 可以检查轨道并读取编码样本,但这两个 API 都不能证明某个翻译应用支持所有容器、编码格式、时长或语言。Cove 当前共享推理代码描述的是将 PCM 音频封装为 WAV,并连同转写指令送入 LiteRT-LM 的 CPU 推理路径。该源码事实不能证明 Cove 已经具有公开的音频文件导入功能、完整语音翻译链路或可供下载的应用。本文提供的是证据检查方法,不承诺 Cove 或任何特定应用能离线导入指定录音。
场景:离开 Wi-Fi 后翻译保存的车站广播
旅行者在离开旅馆前收到一段当地人保存的语音。录音里包含到达时间、车站名称,以及一条换乘提示。旅客在火车上没有网络,希望得到可对照原始录音检查的译文;他不应因为应用有麦克风按钮,就推断它也能打开已保存的音频文件。
决策
出发前应针对实际应用、文件类型、语言方向和设备逐项测试。把文件选择、音轨解码、识别、翻译和结果复核分开记录。如果应用只接受现场麦克风输入,就把文件导入标记为未支持,而不要用未经说明的方式把录音外放到麦克风。
预期结果
旅客最后得到的是一条已验证的文件导入流程,包含新生成的转写和可复核的译文;或者清楚记录该应用需要其他格式、联网步骤或单独的转写工具。测试结果不代表 Cove 当前已提供音频文件导入。
需要收集的证据
只有将以下证据与同一模型文件和测试运行关联起来,结论才可复核:
- 授权选取音频文件并记录内容 URI
- 音轨、编码格式和解码结果
- 离线任务各阶段结果与清理记录
任务质量需要有版本记录的语料和验收规则;流畅的单条样例不等于准确度结果。
实施流程
- 确认录音文件与导入路径. 记录文件扩展名、容器、约略时长、已知声道数、语言方向、应用版本和 Android 版本。按应用文档或系统文件选择器选取文件,并记下应用收到的是内容 URI,还是要求另行复制文件。如果用户选定 URI 足够,就不要额外要求广泛存储权限;麦克风按钮不能证明文件导入存在。
- 先检查音轨,不要立即归因于翻译质量. 使用应用诊断或安全的测试夹具,确认文件中存在当前流水线可以解码的音轨。Android 的媒体容器和编解码器支持会随设备及系统版本变化。如果应用拒绝文件、报告没有音轨或输出空音频,应记录为访问或解码失败;这不是翻译模型“译错了”的证据。
- 保留源转写并拆分各处理阶段. 用短小的合成录音或已获授权的录音,并由熟悉语言的人复核参考转写。记录应用是否先输出文字、时间戳或其他中间结果,将识别错误和翻译错误分开。若人名或数字在转写阶段已听错,就不应把问题只记为译文问题;译文也不能掩盖缺失或截断的源片段。
- 断网冷启动,执行一次全新的导入任务. 先在联网状态完成必要的模型或语言资源准备,再断开 Wi-Fi 和移动数据,关闭并重新打开应用,选择一份新文件并走完导入到结果的完整路径。旧预览不算通过。如果应用因首次设置、账户验证或资源下载需要联网,就应记录这个边界,不能把文件翻译笼统称为离线。
- 为较长录音界定内存和处理方式. 用相同的已知内容准备短、中、长三组样本,观察取消、进度和故障恢复。压缩文件大小不是运行时峰值内存:解码、PCM 缓冲区、转写文本、模型权重、运行时缓冲及操作系统余量都会占用资源。只有实现文档或可复现记录确实支持时,才写分段或有界处理;没有设备记录就不要发布通用时长或 RAM 限值。
- 分别复核、导出和删除. 让用户能够把源转写和译文并排查看、重听并拒绝不确定片段。检查导出动作是否会把录音悄悄上传,并确认删除临时任务会清理应用自己创建的副本。报告应清楚说明实际检查的范围,不能把它扩展为操作系统备份、其他应用或测试边界以外服务的保证。
让每个阶段的状态都可观察。失败信息应指出阶段、模型、运行时和恢复动作,同时避免记录用户私密内容。
验收标准
- 文件经文档化的用户授权 URI 打开,原始文件保持不变。
- 文件访问、解码、识别、翻译和复核分别记录结果。
- 完成资源准备后,在断网条件下完成全新的翻译任务;缓存输出不算通过。
- 较长文件的取消与清理有记录,但不编造时长或内存阈值。
决策对照表
| 维度 | 选择或证据 | 解读方式 |
|---|---|---|
| 输入 | 导入录音文件 | 需要文件访问、容器及编码处理、音频解码与可复核转写。 |
| 输入 | 实时麦克风对话 | 捕获现场发言,不足以证明应用能打开已保存的录音。 |
| 输入 | 已存在的转写文本 | 仅测试文字翻译;音频解码与语音识别已在其他环节完成。 |
需要避免的失败模式
- 把实时麦克风功能当作文件导入
- 仅凭压缩文件大小推断峰值内存
- 把旧预览或缓存结果算作离线通过
还要避免静默回退、版本未固定、缺少取消处理,以及把不同配置的结果混在一起下结论。失败运行也应与成功记录一并保存。
最小复现记录
| 层级 | 记录内容 |
|---|---|
| 设备 | 厂商、型号、芯片、内存档位、操作系统版本 |
| 软件 | 应用版本和 Git 提交号 |
| 模型 | 系列、变体、版本、格式、文件长度、摘要、量化方式 |
| 运行时 | 名称、版本、请求后端及实际后端证据 |
| 工作负载 | 样例版本、输入摘要、提示词摘要、输出策略 |
| 结果 | 完成、失败、取消、回退及保护隐私的诊断信息 |
发布检查表
- ☐ 主要搜索问题已回答,且没有未经支持的数字。
- ☐ 所有模型文件和运行时版本均已固定。
- ☐ 代表性任务和失败处理策略均有说明。
- ☐ 生命周期、取消、清理和回退均已测试。
- ☐ 用户内容与网络边界均有说明。
- ☐ 结论只适用于被记录的配置。
- ☐ 新增测试结果时链接到原始方法或证据。
来源与相关证据
- Cove Travel 语音翻译实现
- Android Developers — 访问共享存储文档与文件
- Android Developers — MediaExtractor API
- Android Developers — 支持的媒体格式
中文部署与排错专题见。奇连 AI 端侧专题。
常见问题
应用能离线翻译实时语音,就一定能翻译音频文件吗?
不一定。实时输入和文件导入在权限、格式、解码、时长与复核方式上不同。应检查应用自己的文件选择器或官方文档,并执行一次新的文件导入测试。
有离线语言包是否就能证明录音不会上传?
不能。语言包可能支持某种翻译模式,但它本身不能说明文件导入、语音识别、崩溃报告、备份或其他网络行为。应把推理路径证据和更广泛的网络审计分开。
可以据此说 Cove 支持离线音频文件导入吗?
依据当前事实卡不能这样说。Cove 源码描述了 PCM 音频进入 LiteRT-LM 的路径,但没有证明用户可见的文件选择器、支持格式或已发布的音频文件工作流。
文章可以给出最长录音时长或 RAM 要求吗?
只有在原始记录列明具体文件、模型、运行时、设备、系统、时长、峰值内存和失败结果后,才可陈述对应测试的数值。文件大小本身不能证明推理峰值内存。