本 skill 指导将 音视频 或 .tty 转为可用文本,生成 原文 与 纪要,并以固定结构交给 OpenClaw(龙虾) 做类型与内容判断。
mp3、 wav、 m4a、 aac、 flac、 ogg、 mp4、 mkv、 webm、 mov 等常见音视频,或扩展名为 .tty 的文件。--model base)或从 .tty 提取的可读文本,尽量保留说话人切换线索(若模型支持说话人分离则标注 说话人 A/B)。base 转写后,按 转写质量判断与模型升级建议 自检; 问题多 则提示用户改用 small / medium 重跑, 通过前不写定稿纪要; 问题少 再进入下一步。.tty 文本路径 不做 Whisper 质检,直接进入纪要。.tty 等路径:完成原文、纪要、交付块之后。 询问用户 是否保存,以及保存格式( Markdown 或 Word);若同意,按 保存文件(下载文件夹) 写入。优先使用 ffmpeg(需已安装并在 PATH 中)。
bash
ffmpeg -y -i "INPUT" -vn -acodec libmp3lame -q:a 2 "OUTPUT.mp3"
INPUT:任意 ffmpeg 可读音视频路径。-vn:去掉视频轨,只保留音频。libmp3lame 不可用,可改用: -acodec aac -b:a 192k "OUTPUT.m4a",并在后续转写步骤中改用该中间文件(仍按本 skill 的「原文 + 纪要 + 龙虾块」交付)。按环境选择其一(默认优先本地,避免泄露):
方式说明Whisper 系 CLI如 whisper、 faster-whisper 等,对 OUTPUT.mp3 跑转写,保存为 txt/ srt/ vtt。WhisperX在 Whisper 类转写之上做 词级对齐 与可选 说话人分离(diarization);见 WhisperX(说话人分离)。云端 ASR若用户明确要求或本地不可用,使用用户指定的 API;须注意隐私与合规。
pip install openai-whisper 会安装 PyTorch 等依赖, 磁盘占用常见为数百 MB 量级,CUDA 版可达约 1GB+(随平台与是否 GPU 版变化);Whisper 包本身相对较小。--model 单独下载权重:本 skill 默认 base(体积常见为 约百 MB 量级,以官方缓存为准); tiny 约 72MB 级; turbo 约 1.5GB 量级,下载与加载都更重,弱配置上易 OOM 或极慢。在中文区域设置的 Windows 上,直接运行 whisper --help 或转写时,Python 可能用 GBK 写 stdout,触发 UnicodeEncodeError: 'gbk' codec ...。在 同一 PowerShell 会话 内先设置再调用 Whisper:
powershell
$env:PYTHONIOENCODING = "utf-8"
whisper --help
转写示例(会话内已设好 PYTHONIOENCODING); 默认模型为 base:
powershell
whisper "OUTPUT.mp3" --model base --language Chinese
--model base 做首次转写,再进入 转写质量判断与模型升级建议。当用户需要 分说话人 的原文(如会议多角色),可选用 WhisperX(Python 库,非 openai-whisper 自带 CLI)。
安装
bash
pip install whisperx
仍依赖 PyTorch 等,整体磁盘与首次下载体积与 Whisper 路线 同量级,且对齐 / diarization 会再拉取额外权重。
中文对齐(ZH)
whisperx.load_align_model(language_code="zh", ...) 时,会 自动下载 中文 forced alignment 所用模型(首次需联网与足够磁盘);无需手动另选「ZH 对齐包」路径,但要在 notes_for_openclaw 中注明是否已首次拉取成功。Diarization(说话人分离)与 HuggingFace
huggingface-cli login 或环境变量 HF_TOKEN),否则无法拉取门控模型。use_auth_token=False 传给 API(或通过环境变量/封装参数, 以当前 WhisperX 版本文档为准)。注意: 部分模型在无 token 时不可用或行为异常,若采用此方式,须在交付备注中写明「未使用 HF 门控模型 / 可能降级」。pyannote/speaker-diarization-3.1(或同类 pyannote 门控模型):必须先在 HuggingFace 网站对该模型访问条款点击同意,再在本地配置 token 后下载权重;否则拉取会失败。启用 WhisperX 且带 diarization 时, 原文 中应显式标注说话人分段(如 SPEAKER_00 / 说话人 A 等与用户对齐的命名);后续仍执行 转写质量判断与模型升级建议(针对合并可读文本与分段合理性),再走纪要、交付块与可选落盘。
在 openai-whisper 默认 base 模型 产出原文后,agent 必须 对照下列 质量指标 做一次快速审查(结合音频时长与领域常识,不必过度纠结单次口误)。若已按建议改用 small / medium 重跑,则对 最后一次 转写结果重复本审查。
指标说明(出现则计为问题)错译 / 同音错字成片专有名词、数字、单位、人名地名等明显不合理或与音频常识不符乱码与异常符号不可读片段、大量无意义符号、编码异常痕迹无意义重复同一短语/句子异常堆叠,疑似解码或切片错误句意断裂大量不成句碎片、缺主谓宾导致无法理解叙述脉络语言/段落错配明显中英混排错误、段落顺序颠倒、长时间静音被填成幻觉句(若可判断)
分支:
small → medium(资源允许再考虑 large / turbo)。重跑后再次做本表自检。.tty 纯文本路径 不适用 Whisper 模型升级;若文本来自终端抽取且噪声大,在 notes_for_openclaw 中说明即可。
转写要求:
在取得原文、且 Whisper 路径已通过 转写质量判断与模型升级建议(或 .tty 等无需 Whisper 质检)之后,由当前 agent 基于原文 生成纪要(不得编造未出现的信息)。模板见下节。
.tty(终端录屏 / 会话日志)#.tty 并非单一国际标准格式,可能是 纯文本、 script/typescript 文本、或 ttyrec 类二进制。按顺序处理:
探测
file(Linux/macOS)或读取文件头若干字节判断是否为文本。sed/脚本剥离 \x1b[...m)。script 会话
Script started on / Script done on 等典型标记,可保留命令与输出;纪要中总结 执行了哪些命令、关键输出、错误信息。二进制 ttyrec
ttyplay / termplay / ttyrec 配套工具,或小型解析脚本将帧解码为文本流,再整理为原文。strings 提取可打印片段,并在交付块中 诚实标注「部分为 strings 抽取,可能不完整」。纪要
与音视频相同:基于提取出的文本生成纪要,并进入 OpenClaw 交付块。
markdown
## 纪要
### 主题(一句话)
[用一句话概括]
### 要点
- [要点 1]
- [要点 2]
### 行动项(若有)
- [ ] 负责人/角色未明则写「待确认」— [事项] — 截止时间未明则写「待定」
### 风险与待澄清
- [若有]
agent 可根据内容给出 1–3 个候选类型 与简短理由; 最终类型以龙虾判断为准。
示例维度(可按项目扩展):
代码含义(示例)meeting会议/讨论interview访谈/面试lecture课程/演讲support客服/技术支持terminal_session终端操作/排障录屏personal个人备忘/闲聊other其他(需在理由中说明)
完成转写与纪要后, 必须 附加以下结构化块(便于龙虾解析与路由):
markdown
---OPENCLAW_ASR_DELIVERY---
version: 1
source_kind: audio_video | tty
source_path: "<原始文件路径或用户提供的标识>"
intermediate_mp3: "<若适用,MP3 路径;tty 则填 null>"
language_guess: "<如 zh | en | mixed | unknown>"
type_candidates:
- code: "<meeting|interview|...>"
confidence: <0.0-1.0>
reason: "<一句理由>"
verbatim_text: |
<原文全文,或说明见附件路径>
summary_markdown: |
<纪要全文,使用上文「纪要模板」>
notes_for_openclaw: |
<给龙虾的备注:不确定性、敏感提示、需人工复核的点等>
---END_OPENCLAW_ASR_DELIVERY---
说明:
verbatim_text 过长时,可写 见: <path>,但需在 notes_for_openclaw 说明编码与换行是否保留。在已完成 原文 + 纪要 + 交付块 的组装后: Whisper 路径 须已通过 转写质量判断与模型升级建议; .tty 等路径 无 Whisper 质检要求。随后:
询问用户:是否需要将本次结果保存到本地(默认不擅自写入)。
若用户同意,再询问保存格式: Markdown 还是 Word。
保存到当前系统用户的 「下载」 目录:
%USERPROFILE%\Downloads(资源管理器中显示为「下载」)。~/Downloads。~/Downloads(若不存在可先创建或改用用户指定路径并说明)。文件命名(避免文件名非法字符, 不要使用冒号):
text
ASR_转写_YYYY-MM-DD_HHmmss.md
示例: ASR_转写_2026-05-07_143052.md。日期与时间取 保存时刻 的本地时间。
文件内容 须按顺序包含以下三部分(可用二级标题分隔):
---OPENCLAW_ASR_DELIVERY--- … ---END_OPENCLAW_ASR_DELIVERY---,与对话中交付给龙虾的块一致)。使用 huo15-openclaw-office-doc 技能(位于 skills/huo15-openclaw-office-doc/)将 纪要部分 生成为格式规范的 。docx 文件。
依赖安装(如未安装):
bash
pip install python-docx reportlab pygments
如果系统有多个 Python 版本(如 MSYS2 Python 与官方 Python 并存),请确认
pip安装的目标 Python 与执行脚本的 Python 保持一致。可通过python -c "import sys; print(sys.executable)"确认。
文件命名:
text
ASR_纪要_YYYY-MM-DD_HHmmss.docx
示例: ASR_纪要_2026-05-07_143052.docx。
操作步骤:
$env:TEMP\meeting_summary_<timestamp>.md)。注意:内容为执行本 skill 时已生成的 summary_markdown 字段, 不含交付块。create-word-doc.py 生成 Word:powershell
python <workspace>/skills/huo15-openclaw-office-doc/scripts/create-word-doc.py `
--output "<下载目录>\ASR_纪要_YYYY-MM-DD_HHmmss.docx" `
--title "会议纪要 - YYYY-MM-DD" `
--content @"<临时 markdown 文件路径>" `
--doc-format 会议纪要 `
--company-name "会议纪要" `
--no-title-block
<workspace>为本 skill 所在 OpenClaw 工作区根目录(即~/.openclaw/workspace-hanser)。因本机环境python指向 MSYS2 的 Python,需要显式使用官方 Python 路径:D:\Users\Grunray\AppData\Local\Programs\Python\Python313\python.exe(可通过python -c "import sys; print(sys.executable)"确认正确的路径)。
参数说明:
参数值说明--output下载目录下的 。docx 路径输出文件--title``会议纪要 - YYYY-MM-DD文档标题--content @<path>``@ 开头表示读取文件纪要正文(Markdown 格式)--doc-format 会议纪要指定为会议纪要规范自动匹配页眉/正文样式--company-name 会议纪要占位公司名避免因缺公司信息报错--no-title-block不额外渲染标题块标题已在正文中
注意:当前使用占位公司名「会议纪要」,header 区域可能显示占位名称。如希望定制公司信息,可使用
--company-name "<公司名>"和--logo-path "<LOGO路径>",或参照 office-doc 技能的本地公司信息工作流配置持久化信息。
音视频已尽量统一为 MP3(或等价单音频轨)再转写。
在 Windows 用 openai-whisper CLI 时,已设置 PYTHONIOENCODING=utf-8(或等价方式),避免 GBK 编码崩溃。
openai-whisper 默认已用 base 转写,并已按质量指标完成判断;问题多时已建议 small / medium 重跑。
若使用 WhisperX 做 diarization:已说明 HF 登录 / 协议同意 / use_auth_token=False 尝试 等实际情况,且原文已带说话人分段标注。
.tty 已按文本 / script / ttyrec 路径处理,不确定处已标注。
纪要严格来源于原文或终端输出。
已输出 OPENCLAW_ASR_DELIVERY 块供龙虾判断。
(Whisper 路径在质量可接受后,或 .tty 等路径在完成交付块后)已 询问 是否保存,以及保存格式(Markdown 或 Word)。
ASR_转写_YYYY-MM-DD_HHmmss.md,含 原文 + 纪要 + 交付块。huo15-openclaw-office-doc 技能的 create-word-doc.py 生成 。docx 文件到 下载 文件夹(仅含 纪要 部分)。.tty 辅助:见 scripts/README.md