LifeOS AudioEditor Clean 工作流实战:用 Whisper + Claude + ffmpeg 自动去除填充词与静音

发布时间:2026/9/14 6:34:44
LifeOS AudioEditor Clean 工作流实战:用 Whisper + Claude + ffmpeg 自动去除填充词与静音 LifeOS AudioEditor Clean 工作流实战用 Whisper Claude ffmpeg 自动去除填充词与静音【免费下载链接】LifeOS⛰️ The Life Operating System — an intent engineering platform that moves you from your current state to your ideal state, in life and work.项目地址: https://gitcode.com/GitHub_Trending/pe/LifeOS本篇技术指南聚焦 LifeOS 中 AudioEditor 技能的核心工作流——Clean 工作流完整讲解如何用一条命令将录音中的填充词um/uh、口吃、错误开头、死静音与剪辑标记一键清理干净。读完本文你将掌握从定位音频文件、按用户意图映射命令行参数、运行端到端流水线到解读编辑报告与单独调试各工具的完整实战能力。背景为什么需要自动清理音频人工清理一段录音意味着要在波形图上逐帧找出每一个 um、每半句没说完的话和三秒静默再为每个剪切点做交叉淡化以免出现咔哒声。这既慢又枯燥而粗暴的自动工具又容易过度剪切——它会把演讲中有意的修辞停顿与无意的冷场一并干掉或者在拼接处留下可闻的接缝。AudioEditor 技能用三层流水线解决这个问题Whisper 产出词级时间戳 → Claude 对每个片段分类区分修辞强调与意外重复→ ffmpeg 以 40ms qsin 交叉淡化执行剪切并用房间底噪填补空隙。可选地再叠加一次 Cleanvoice 云服务精修处理口腔音、残余填充词与响度归一化。准备工作环境与 API 密钥Clean 工作流依赖以下运行环境详见 SKILL.md服务环境变量说明Anthropic分析步骤ANTHROPIC_API_KEY随 Claude Code 已就绪Cleanvoice可选精修CLEANVOICE_API_KEY需要时在 cleanvoice.ai 控制台生成写入~/.claude/.env转写引擎二选一insanely-fast-whisper首选MPS 加速或标准whisperCLI。编辑步骤依赖ffmpeg与ffprobe运行环境为 bun 脚本。步骤零语音通知不可跳过工作流被触发后第一时间要发送语音通知与文本通知。语音通知通过本机 31337 端口的通知服务完成curl -s -X POST http://localhost:31337/notify \ -H Content-Type: application/json \ -d {message: Running the Clean workflow in the AudioEditor skill to clean audio} \ /dev/null 21 同时输出文本通知Running the **Clean** workflow in the **AudioEditor** skill to clean audio...这是硬性要求This is not optional执行时间在几毫秒内不影响后续流程。步骤一定位音频文件从用户的请求中识别目标音频文件按以下顺序排查显式路径用户直接给出的完整路径优先下载目录最近下载的文件检查~/Downloads/搜索兜底用fd按关键词与扩展名检索fd -e mp3 -e wav -e m4a -e flac keyword ~/Downloads若检索到多个匹配文件必须询问用户确认使用哪一个不能擅自选择。步骤二根据用户意图映射命令行参数Clean 工作流的核心是把用户的自然语言请求映射为 Pipeline.ts 支持的标志位。从源码看Pipeline 解析--polish、--aggressive、--preview与--output四个参数用户表述标志效果preview、show edits、what would you cut--preview只展示建议的编辑不执行剪切aggressive、tight、heavy edit--aggressive更紧的静音/填充词检测阈值polish、cleanvoice、final pass--polishCleanvoice 云端精修需CLEANVOICE_API_KEY默认无特殊表述无采用保守阈值的标准清理--aggressive与--polish可叠加使用如 aggressively clean this audio and polish it 映射为--aggressive --polish--output path可自定义输出路径。步骤三运行端到端流水线定位文件并确定标志后执行bun ~/.claude/skills/AudioEditor/Tools/Pipeline.ts \ audio-file-path \ [FLAGS_FROM_INTENT_MAPPING] \ --output output-path仓库内对应脚本位于 Pipeline.ts安装路径~/.claude/skills/AudioEditor/与仓库结构一致。输出命名约定默认在与输入文件相同的目录下生成原文件名_edited.原扩展名。超时设置为命令设置 10 分钟超时。长文件的转写尤其是 MPS 上的 Whisper可能需要数分钟Polish.ts 的轮询上限更是长达 30 分钟。流水线内部四步拆解Pipeline 依次串联四个阶段Pipeline.ts第 1 步转写Transcribe— Transcribe.ts 优先调用insanely-fast-whisper参数为--device-id mps --timestamp word --model-name openai/whisper-large-v3 --batch-size 4输出词级时间戳 JSON若该工具不可用则回退到标准 whisper--model medium --word_timestamps True并把输出转换为统一格式。产物为文件名.transcript.json。Pipeline 会检测该文件是否已存在并直接复用避免重复转写。第 2 步分析Analyze— Analyze.ts 分三个阶段工作Phase 1 无需 LLM 的长停顿检测遍历相邻词块间隙超过阈值标准模式 5.0 秒、aggressive 模式 3.0 秒即标记为CUT_DEAD_AIR并保留其中 1 秒作为节奏缓冲Phase 2 窗口化 LLM 分类以 750 词为窗口、150 词重叠构建带[MM:SS.ss-MM:SS.ss]时间戳的文本块通过inference()调用 Claude 分类支持CUT_FILLER、CUT_FALSE_START、CUT_EDIT_MARKER、CUT_STUTTER、CUT_SELF_CORRECTION、CUT_REDO_TAKE等类型并要求区分修辞强调如 very very important与意外重复如 the the。窗口内置信度 ≥ 0.6 的编辑才会被采纳重叠区结果会被去重Phase 3 排序合并所有编辑按时间排序间隔小于 0.3 秒的相邻编辑合并为一个复合编辑。第 3 步编辑Edit— Edit.ts 把剪切清单转换为保留区间keep segments的逆运算构建 ffmpeg filter每个保留片段atrim后asetptsPTS-STARTPTS重置时间戳在非首/尾片段边界施加 40ms 的 qsin 曲线淡入淡出afadetin/out:curveqsin最后concat拼接。房间底噪填充与呼吸声衰减50% 音量而非删除在同流程中处理。编码器按扩展名选择mp3 用libmp3lame、wav 用pcm_s16le、flac 用flac、m4a/aac 用aac码率取原文件码率与下限96k/128k的较大值。长 filter 写入临时脚本文件后经-filter_complex_script传入 ffmpeg。第 4 步精修Polish可选— 仅在传入--polish时执行。Polish.ts 将音频上传至 Cleanvoice APIX-API-Key鉴权配置filler_words: true、mouth_sounds: true、deadair: false死静音已由本地处理不重复切、normalize: true随后每 5 秒轮询一次状态上限 30 分钟完成后下载结果。中间文件文件名_edited_pre-polish.ext会被自动删除。步骤四汇报结果流水线完成后向用户汇报Pipeline 完成时会打印Output / Elapsed / Artifacts摘要编辑数量共应用了多少处剪切移除总时长累计剪掉多少秒/分钟原始 vs 编辑后时长如Original: 1248.3s→Edited: 1102.7s输出文件路径生成的产物转写 JSON文件名.transcript.json、编辑清单 JSON文件名.edits.json、编辑后的音频。若使用了--preview则展示完整编辑清单每条含时间区间、类型、理由、上下文文本与总剪切时长汇总并询问用户是否继续执行。预览模式在 Pipeline.ts 中于分析完成后直接退出不触碰音频文件。单工具调试跳过流水线逐步验证排障或需要部分执行时各工具可独立运行SKILL.md 工具清单# 仅转写 bun ~/.claude/skills/AudioEditor/Tools/Transcribe.ts file # 仅分析需先有 transcript.json bun ~/.claude/skills/AudioEditor/Tools/Analyze.ts transcript.json # 仅编辑需音频 edits.json bun ~/.claude/skills/AudioEditor/Tools/Edit.ts file edits.json # 仅精修需 CLEANVOICE_API_KEY bun ~/.claude/skills/AudioEditor/Tools/Polish.ts file各工具均支持--output path指定产物路径完整参数表见 Pipeline.help.md 与 Transcribe.help.md。典型场景速查场景命令标准清理播客录音bun Pipeline.ts ~/Downloads/podcast.mp3先预览再决定bun Pipeline.ts ~/Downloads/podcast.mp3 --preview激进清理 云端精修bun Pipeline.ts ~/Downloads/podcast.mp3 --aggressive --polish自定义输出路径bun Pipeline.ts ~/Downloads/podcast.mp3 --output ~/Desktop/cleaned.mp3实践中的注意事项Gotchas转写精度受音质影响背景噪声、多人说话、口音都会降低 Whisper 的准确率进而影响后续分类质量剪切判定本质是启发式的自动化剪切可能误删有意的停顿务必在提交前用--preview预览云端精修会上传音频到外部服务对敏感内容需先征得用户同意dB 域悬崖检测器对淡出脚部会误报合法的余弦淡入数字零在脚部具有无限 dB 斜率任何 NdB/2ms 的检测器都会永久误报验证修复应使用样本域 STEP 检测GateScan而非 dB 斜率单侧迭代淡出不收敛于杂散边界脉冲位于门限边界的单样本会躲过反复的单侧淡出向下再向上的淡出静音反而保留脉冲边缘V 型缺口边界两侧余弦归零与门控静默内的硬归零才是收敛修复仪表干净 ≠ 耳朵干净扫描器能发现滴答声但修复可能制造扫描器判定为干净的可闻空洞——检测探针要与人类听到的缺陷类别匹配修复保持最小侵入并在交付时给出前后对比试听片段。执行完成后按 SKILL.md 的 Execution Log 规范向~/.claude/LIFEOS/MEMORY/SKILLS/execution.jsonl追加一条 JSONL 记录含时间戳、工作流名、输入摘要、状态与耗时保持技能使用历史可追溯。【免费下载链接】LifeOS⛰️ The Life Operating System — an intent engineering platform that moves you from your current state to your ideal state, in life and work.项目地址: https://gitcode.com/GitHub_Trending/pe/LifeOS创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询