影像复核现场常会把一段语音备注放到画面旁边作为字幕:检查人员需要知道字幕显示的是哪一种语言、字号是否遮挡画面、颜色在不同背景上是否可读,也需要追问文字本身来自哪里。最容易发生的混淆,是看到样式已经换成目标语言和指定颜色,就顺手把屏幕上的一段文字写成“识别结果”。

当前项目把这两部分拆开:语言、字号和颜色属于展示配置;字幕片段另有来源标签;组件准备、PCM 输入和错误回调保留在独立状态区。模拟器分析区还能生成本地片段或记录输入异常,让验收人员练习核对“配置已应用”和“文本从何而来”这两个问题,而不是用一张好看的字幕卡片覆盖来源缺口。

在这里插入图片描述

一、字幕验收先问“显示规则”,再问“文字来源”

显示规则包括源语言、目标语言、字号和颜色。它们决定一段文字会如何出现在复核界面,但并不决定文字是否来自组件输出。当前页面在切换语言和样式时同步更新组件选项,也同步更新本地展示;这适合检查配置是否前后一致,却不能替代对文本来源的核验。

this.sourceLanguage = 'zh-CN';
this.targetLanguage = mode === '中文 → 法文' ? 'fr-FR' : 'en-US';
this.captionFontSize = AICaptionFontSize.NORMAL;
this.captionFontColor = fontColor;

这段代码能够证明页面保存了语言和样式参数,并将其传入字幕组件选项。它不能证明组件已经接收音频,也不能证明屏幕文字是识别、翻译或人工转述的结果。

建议在每次验收记录中分别保留“当前展示配置”和“当前文本来源”两项。前者可由页面状态直接核对;后者必须标明是本地分析素材、组件回调、人工转述,还是没有生成文本。

在这里插入图片描述

二、为什么固定片段要显式标注为本地分析材料

为了让模拟器中也能复现复核流程,当前项目准备了固定的会议片段。它们的价值在于:可以观察中法或中英切换后文本区域是否遮挡、字号是否合适、颜色在深色背景上是否可辨;它们不应被包装成 AICaptionComponent 的输出。

生成本地片段时,页面会把来源写为“模拟器分析素材”,并带上片段时间;同时在文本区展示当前配置。这个标记解决的是可追溯性:后续人员看到文字时,无需猜测它来自真实组件、缓存内容还是人工草稿。

this.simulatorCaptionState = '本地字幕片段已生成,等待人工复核';
this.simulatorTextSource = `模拟器分析素材 · ${segment.time} · 非 AICaptionComponent 回调`;
this.simulatorResultText = this.displayedTranslation(segment);

这段代码能够证明本地片段具有明确来源,并可随当前语言设置改变展示文本。它不能证明 SpeechKit 已识别语音、已完成翻译,或能代表真实语速和延迟。

三、组件状态与本地文字为什么必须并列,而不是互相覆盖

页面还保留了真实组件的准备、错误、麦克风授权、PCM 写入次数和最后回调时间。这一栏回答的是运行链走到了哪里:组件是否已准备、是否出现错误、音频输入是否开始。它和本地片段的来源是两条并行证据链。

页面信息 可以说明什么 不能说明什么
语言、字号、颜色 当前展示配置已经被选择。 文本质量或翻译正确性。
本地片段来源 当前文本用于模拟器分析。 组件已经返回相同文本。
onPrepared / onError 组件准备或错误状态。 某一行字幕已经形成。
PCM 写入次数 页面尝试写入音频数据的次数。 语音内容已经被识别。

这种并列设计可以避免一个常见误判:组件显示“prepared”时,并不自动产生可验收的文本;反过来,本地片段能展示得很完整,也不能替代组件的运行状态。

四、输入异常时,页面应该保留空缺而不是补一行漂亮字幕

模拟器分析区提供“记录输入异常”操作。触发后,页面将状态改为“未生成字幕片段”,并明确无文本来源、不允许用固定样本补成组件结果。这个分支对于影像验收尤其重要:没有来源的字幕即使没有错别字,也不能进入素材交付说明。

异常状态不意味着配置失效。语言、字号和颜色仍可被检查,只是其结论应写为“展示规则已设置,文本结果待补”。因此异常出口既保留了工作进度,也阻止了把未发生的文本结果提前写进验收单。

五、人工复核应确认什么

人工复核不是给字幕“盖章”,而是逐项确认:这条文字的来源是什么;它当前采用了哪组语言与样式;有无遮挡复核画面;若是本地分析素材,是否被错误写成组件结果。当前项目的人工复核动作只在存在本地片段时开放;没有来源的异常状态会阻断复核记录。

这样产生的记录适合用于文章和素材验收的分析:它清楚说明配置、文本来源与人工判断各自处于何种状态。至于真实语音转写、翻译效果和跨设备表现,应由相应运行材料另行评价,不能由本地分析片段替代。

六、把字幕材料拆成三张不同的验收卡

做影像复核时,字幕往往同时承担阅读辅助、语言提示和交接说明。正因为它看上去是一块连续的文字区域,才更容易把不同性质的信息压成一个“字幕已生成”的结论。实际应拆成三张验收卡:配置卡、来源卡和内容卡。

验收卡 需要核对的内容 页面中的证据来源 可以作出的判断 不能作出的判断
配置卡 源/目标语言、字号、颜色、显示开关。 组件选项和本地展示状态。 展示规则是否已选择并应用。 文本是否识别正确。
来源卡 本地分析素材、组件回调、人工转述或无来源。 来源标签、回调时间、异常状态。 当前文字应按什么证据等级处理。 语音语义是否正确。
内容卡 术语、断句、遮挡、时间对应关系。 人工复核记录和相邻画面。 当前素材是否便于阅读和交接。 组件整体性能或翻译能力。

这三张卡应随着同一段字幕一起保存,但不能互相补位。例如来源卡是“本地分析素材”时,配置卡仍可通过;内容卡也可以指出该片段遮挡画面。唯一不能写的是“组件已经识别出这段话”。把卡片拆开后,页面的等待、异常和人工转述状态就不再是尴尬的空白,而是下一步应补什么的清晰说明。

七、从语音备注到交接字幕,复核人员实际怎样操作

在这里插入图片描述

第一步,先选定源语言、目标语言、字号和颜色,并截取当前配置状态。这一步不需要有文字结果,它解决的是“如果有结果,页面会怎样显示”。第二步,选择一条本地分析片段或等待组件输入,并确认来源标签。第三步,把文本区域放在目标画面上检查:关键部位是否被遮挡,字号是否能在当前分辨率下读清,颜色是否与背景冲突。第四步,记录人工复核意见,明确意见针对的是视觉呈现、来源标识还是文本内容。

如果操作中发生输入异常,不应跳过第二步直接使用固定片段完成检查。正确做法是记录“文本结果待补”,继续保留已经选择的样式配置。这样交接人员可以看出:现在缺的是输入或回调材料,不是页面设计,也不是语言设置。

对于人工转述,同样要标为人工来源,并最好留下转述人和复核时间。人工转述并不低级,它在设备输入不可用、现场需要即时说明时非常有价值;问题只在于不能被写成组件识别结果。

八、三类错误不应被“字幕看起来正常”掩盖

来源错误。 文本从固定样本或人工草稿而来,却在交接材料中被称为“识别结果”。页面已用来源标签避免这种混淆,复核时应优先看标签而不是先看文字是否通顺。

样式错误。 文本本身没有问题,但字号过大遮挡影像要点,或颜色在深浅背景切换时不可读。这类问题不需要等待真实识别回调才能发现,模拟器片段已经足够用于检查。

时序错误。 组件准备、PCM 写入、本地片段和人工复核发生在不同时间,却被拼成一条连续记录。纠正方式是保留每一层的状态与时间:prepared 只说明准备,writeAudio 只说明输入尝试,来源标签说明文字性质,人工复核说明谁作了什么判断。

这三类错误说明文章的核心不在于“把字幕跑出来”,而在于让任何一段出现在影像旁边的文字都能被准确归类。只有来源、展示和人工判断各归其位,素材验收才不会用一段视觉上完整的字幕掩盖证据缺口。

九、交接时如何写出不误导的结论

可以使用这样的句式:“当前页面已应用中文到法文、22sp、暖黄色的展示配置;页面中的字幕片段标记为模拟器分析素材,已完成人工可读性检查,未作为组件回调文本处理。”这句话同时交代了配置、来源和复核范围。

不宜写成:“字幕已翻译完成,可以发布。”它把页面配置、本地片段、文本质量和业务发布混成了一个结论。若组件真的返回文本,也应补充回调时间、输入状态和内容复核结果,而不是只替换一句状态文案。

当字幕遮挡画面或来源待补时,交接记录应明确保留异常出口,例如“保留当前语言与颜色配置,待补文本来源后重新核对断句和遮挡”。这种写法不会拖慢工作,反而让后续人员知道无需重复配置,只需补齐缺失证据。

FAQ

固定片段能不能用于检查字幕颜色和字号?

可以。它适合复核视觉呈现、布局和交互,但必须保留“本地分析素材”的来源标签,不能被写成组件识别或翻译结果。

组件显示 prepared,为什么还不能写“字幕已生成”?

prepared 只表示组件准备状态。字幕文本还需要有明确输入、输出来源和相应的内容复核;这三层不能由准备状态替代。

人工转述什么时候可以进入交接材料?

当它被明确标为人工来源、说明适用范围并完成可读性复核时可以进入交接材料。它不能替代真实组件回调的技术事实。

必要条件|从SDK到设备的依赖链路

本文技术点的运行链路必须按以下顺序成立:

  1. SDK/API:工程使用 HarmonyOS 6.1.1(API 24),DevEco Studio 和 Hvigor 能完成 entry 模块构建。

    在这里插入图片描述

  2. Kit:源码实际引入本文所需 Kit,例如 @kit.CameraKit@kit.MapKit@kit.NotificationKit@kit.SpeechKit@kit.VisionKit

  3. 模块/页面:页面路由写入 main_pages.json,模块保持 Stage 配置,相关权限写入 entry/src/main/module.json5

  4. 权限:动态能力调用前完成 CAMERA、MICROPHONE 或其他系统授权;网络页面确认 INTERNET 已声明。

  5. 系统能力/硬件:设备满足本文 API 和能力要求。相机、麦克风、地图、CardRecognition 等能力缺失时必须进入降级分支。
    在这里插入图片描述

MapKit文章在上述链路后增加服务配置:在 AppGallery Connect 创建或选择项目,绑定与工程一致的包名和签名证书,进入服务管理开通 MapKit,并按控制台要求完成应用服务凭据/授权配置;不要在文章或源码中公开 App ID、Client ID、API 密钥或私钥。完成后再验证地图初始化、搜索或事件回调。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐