Skip to content

[asr] 转录失败时保留录音并支持在历史中重新转录 #613

Description

@HKLHaoBin

现象

  • 环境:Windows,Beta 构建
  • 触发条件:完成一次语音录入后,ASR 转录因网络错误、超时或引擎异常而失败(胶囊显示「识别失败」类错误)
  • 当前表现:
    1. 转录失败时通常不会写入 history.json,历史中看不到这次会话
    2. 即使开启了「保留原始录音(调试)」(recordAudioForDebug),用户也无法在历史页找到对应条目进行回放或重试
    3. 历史页现有能力仅限已成功入库条目的播放/导出,没有「重新转录」操作
  • 证据:coordinator/dictation.rs 中各 ASR 失败分支仅 emit_capsule(Error) 后 return Err,未调用 history.append_with_retention;仅 emptyTranscript 空转写场景会写历史并标记 has_audio_recording。

影响

  • 偶发转录失败时用户丢失可恢复的语音内容,需重新录制,体验差
  • 排查 ASR/网络问题时无法借助历史页回放原始音频并重试,增加支持成本

建议接受标准

  • ASR 转录失败时,若录音已成功归档,应写入一条历史记录(建议 errorCode 区分失败类型,如 transcribeFailed)
  • 该历史条目在详情区可播放/导出原始录音(复用现有 readAudioRecording 能力)
  • 历史详情提供「重新转录」按钮:对归档 wav 重新调用当前配置的 ASR 提供商
  • 重新转录成功后更新该条历史的 rawTranscript / finalText(及后续润色流程),并清除或更新错误状态
  • 重新转录失败时给出明确错误提示,保留原录音不丢失

TODO / 不确定项

  • 失败时是否应在未开启 recordAudioForDebug 时也自动保留录音(而不仅限于调试开关),待产品/隐私策略确认
  • 重新转录是否沿用录音时的 ASR 提供商,还是始终使用当前设置,待确认
  • 是否需要限制重新转录次数或显示转录重试历史,待确认

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions