Skip to content

v2.1.5

Choose a tag to compare

@Ayleovelle Ayleovelle released this 06 May 12:50
· 30 commits to main since this release
Immutable release. Only release title and notes can be modified.

v2.1.5 - Docker / NapCat / 官方预处理排障增强

这次发布不改变语音识别主链路,重点增强排障可见性,帮助区分三类问题:

preprocess_stage warning = AstrBot 官方预处理在插件之前读不到 Record 文件
agent_sub_stages error = 官方 agent 后续仍扫到旧 Record
本插件 ffmpeg 失败 = 插件自己的转码链路无法启动或转码失败

主要变更

  • /volc_asr_status 增加插件版本、仓库地址和官方 preprocess_stage 责任边界提示。
  • README 在常见问题中新增 preprocess_stage 提示 Voice processing failed: not a valid file: xxx.amr 排障章节。
  • 文档说明 Ubuntu 宝塔面板 Docker / NapCat / OneBot 场景下,xxx.amr 可能只是 NapCat 容器临时文件名或 OneBot file id,不一定是 AstrBot 容器内真实路径。
  • 文档补充官方 STT 配置、platform_settings.path_mapping、Docker 共享卷、NapCat get_record 与插件 submit_mode=base64 的推荐排查顺序。

重要说明

AstrBot v4.24.2 的官方 PreProcessStage 会在插件 handler 之前尝试处理 Record

event.get_messages()
  -> 找到 Record
  -> component.convert_to_file_path()
  -> ensure_wav(original_path)
  -> 写回 component.file / component.path

所以,如果关闭本插件后仍看到:

[preprocess_stage.stage:81]: Voice processing failed: not a valid file: xxx.amr

这不是本插件 ffmpeg 没启动,也不是火山 ASR 失败,而是 AstrBot 官方前置预处理读不到 NapCat / OneBot 的裸语音文件引用。

v2.1.4 已经修复插件开启后官方 agent 后续继续扫旧 Record 的问题。v2.1.5 进一步把这个责任边界写入 README 和状态命令,便于部署在 Docker 中时判断问题属于哪一层。

建议配置

如果不使用 AstrBot 官方 STT,请检查:

{
  "provider_stt_settings": {
    "enable": false,
    "provider_id": ""
  }
}

插件侧建议保持:

submit_mode = base64
enable_transcode = true
prefer_bundled_ffmpeg = true

若 NapCat 和 AstrBot 分别运行在不同容器,建议让两边共享同一个数据目录,例如都能访问 /AstrBot/data

验证

  • python3 -m py_compile main.py astrbot_plugin_volcengine_asr/main.py tests/conftest.py tests/test_helpers.py tests/test_voice_workflow.py
  • 手动测试 runner:manual tests passed: 58
  • _conf_schema.json 双份 JSON 校验通过
  • README / CHANGELOG / metadata / schema 双份同步校验通过
  • Release zip 构建通过,包内 metadata.yaml 版本为 2.1.5,并包含 repo