直接回答
照片接语音对话的工作流应测试成彼此协调但仍然独立的任务。照片路径会采集图像、提取可见文字并展示译文供复核;语音路径会采集新的轮次、识别语音、翻译并返回结果。共享同一页面或叫“对话”并不能证明两条流水线共用离线引擎,也不能证明来源仍然对应。`COVE-OCR-01` 记录检查过的 Cove Photo 代码里有结构化可见文本及复制/导出行为;`COVE-ASR-01` 记录仓库的一种音频转录路径。这些事实支持分别记录阶段,但没有证明两个产品模式已集成,也没有证明照片翻译会自动转成语音对话上下文。 测试前先定义会话状态契约。为每张照片、OCR 输出、译文、音频轮次、转录和修正分配标识与来源引用。用户选择从照片结果进入对话时,记录明确交接动作:是复制已复核句子、选择某个区域,还是启动新的语音任务?不能把每条 OCR 结果静默转成麦克风输入。图像证据、识别文字、生成描述和翻译要保持不同数据类型。如果产品保留策略允许,应让用户仍能查看原图以便纠错;本地推理声明并不决定存储或网络行为。 使用一张含经核对可见文字的合成或授权图像,再单独用获准的语音样例测试后续轮次。验证方向、裁剪、源文字、不确定片段和目标翻译。语音需另行标注转录和方向。测试姓名、数字、否定、空白/无法识别区域,以及提到“那一行”的口头追问。检查追问是否使用用户选定且复核过的文字,而非未经审核的模型描述。如果来源无法保留,就清楚暴露这个限制,不要暗示对话内容有照片依据。 演练跨模式打断:取消图像处理、离开页面、撤销摄像头或麦克风权限、旋转或重建 Activity、失去网络,再从历史恢复。应用不能把旧照片结果挂到新的语音轮次,也不能显示错转录。历史与导出应分开检查:源图、OCR 文本、口语转录、译文和用户修正分别保存吗?按内容种类核验删除和复制行为。使用 CameraX ImageAnalysis 时要释放图像帧;Android 音频采集也有自己的权限和生命周期规则。关闭一条流水线不证明另一条的数据一并清除。 离线测试要写明起始状态。记录 OCR 库/模型、翻译资源、语音识别器、TTS 音色是否安装或缓存;设置后的离线任务和离线首次设置是不同场景。离线识别偏好可能被忽略,语音是否可用也要单独查证。结合受支持流量观察和代码审阅,不要把飞行模式等同于所有阶段都在本地。如果照片分析可用但语音识别不可用,应显示部分能力状态,不要贴一个全或无的离线标记。 报告包含构建、各模式的制品/运行时、图像和音频样例、交接动作、来源标识、网络状态、人工复核、历史行为、取消和全部失败。维持阶段级结论;没有清晰评分方法不要压缩成单一端到端分数。一条样例通过不证明所有照片、语言、语音或手机均可离线。这篇指南检验模式切换时的可追溯性和用户控制,不声称任何未发布功能或普遍翻译质量。
旅客读完路牌后提出口头追问
用户拍摄路牌、复核可见文字与译文,再用语音询问某一行。图像和音频由不同状态所有者处理。
决策
要求用户将已复核的一行明确交接到语音任务,保留来源,并分别测试模式及联网依赖。
预期结果
报告显示追问是否引用选定文本,以及图像和音频状态在历史、取消后是否仍分离。
需要收集的证据
只有将以下证据与同一模型文件和测试运行关联起来,结论才可复核:
- COVE-OCR-01:检查过的结构化可见文字及导出行为
- COVE-ASR-01:仓库音频转录路径
- ANDROID-CAMERAX-ANALYSIS-2026-01:图像帧生命周期
任务质量需要有版本记录的语料和验收规则;流畅的单条样例不等于准确度结果。
实施流程
- 定义跨模式状态和来源. 为图像、OCR、译文、音频轮次、转录和修正分配标识,规定哪项用户动作会连接两个阶段。
- 先验证图像流程. 使用核对过的样例检查方向、裁剪、字面文字、不确定片段、译文和用户修正,再继续下一模式。
- 将语音作为显式新任务. 采集获准的追问,独立记录方向和转录,并验证它引用的是用户复核的选中行,而不是生成描述。
- 注入生命周期和权限失败. 测试取消、导航、摄像头/麦克风撤销、屏幕重建、断网与历史恢复,确认旧图或转录状态不会串到新轮次。
- 审计保留和离线路由. 记录 OCR、翻译、识别和播放的设置/缓存状态;分别断网测试各模式并检查受支持流量和其他客户端代码。
让每个阶段的状态都可观察。失败信息应指出阶段、模型、运行时和恢复动作,同时避免记录用户私密内容。
验收标准
- 跨模式时图像源、识别文本、翻译、语音转录和用户修正仍可区分且来源明确。
- 取消、导航、权限撤销和进程重建不会把旧图像/音频数据串接到其他任务。
- 离线说法限定在记录过的设置、构建和网络观察,不作普遍模式或机型主张。
决策对照表
| 维度 | 选择或证据 | 解读方式 |
|---|---|---|
| 仅照片翻译 | 图像/OCR/翻译任务 | 不测试麦克风输入、轮次状态或语音追问。 |
| 独立语音翻译 | 新的语音任务 | 不能证明它以先前照片为依据或保存了该来源。 |
| 明确的复核后交接 | 用户选择照片文字作为上下文 | 检查跨模式边界,需要用户动作和来源映射。 |
需要避免的失败模式
- 未经用户选择就将 OCR 注入对话
- 把图像描述等同于识别文字
- 关闭图像流程后误认为语音数据也已清理
还要避免静默回退、版本未固定、缺少取消处理,以及把不同配置的结果混在一起下结论。失败运行也应与成功记录一并保存。
最小复现记录
| 层级 | 记录内容 |
|---|---|
| 设备 | 厂商、型号、芯片、内存档位、操作系统版本 |
| 软件 | 应用版本和 Git 提交号 |
| 模型 | 系列、变体、版本、格式、文件长度、摘要、量化方式 |
| 运行时 | 名称、版本、请求后端及实际后端证据 |
| 工作负载 | 样例版本、输入摘要、提示词摘要、输出策略 |
| 结果 | 完成、失败、取消、回退及保护隐私的诊断信息 |
发布检查表
- ☐ 主要搜索问题已回答,且没有未经支持的数字。
- ☐ 所有模型文件和运行时版本均已固定。
- ☐ 代表性任务和失败处理策略均有说明。
- ☐ 生命周期、取消、清理和回退均已测试。
- ☐ 用户内容与网络边界均有说明。
- ☐ 结论只适用于被记录的配置。
- ☐ 新增测试结果时链接到原始方法或证据。
来源与相关证据
中文部署与排错专题见。奇连 AI 端侧专题。
常见问题
拍照翻译可离线,口头追问也会离线吗?
不一定。OCR、翻译、语音识别和播放可能使用不同组件和设置。应按确切交接路径逐阶段测试,并记录资源、联网前提、配置和新输入。
所有照片识别行都应自动进入对话上下文吗?
不应如此。让用户选定并复核要用的文字,同时保留来源;不要静默注入未审核 OCR 或图像描述,也要防止旧状态串线并显示来源。
缓存照片结果能证明整个会话离线吗?
不能。使用新样例、记录资源与缓存状态,并确认语音追问是新处理而非重放旧状态;还应分别核实两条路径、阶段结果并留档。