音频转录与字幕提取技能 (skill-audio-transcriber)
Goal
接收本地音频或视频文件路径,自动转录并输出与源文件同路径、同主文件名的 .txt 文案与 .srt 字幕文件。
支持三种字幕策略模式(智能成本与精度分流):
- 默认行为(句字幕模式 --srt-mode sentence):默认生成同名 .txt 和 .srt(采用 aliyun/paraformer-v2 原生句字幕模式,成本仅为 FunASR 的 1/3,速度极快,适合日常文案提取与快速浏览)。
- 字字幕模式(--srt-mode word):自动切换为 aliyun/fun-asr 高精度声学模型,输出纯字/词级独立时序字幕(真实声学起止毫秒时间戳,专用于后续剪映/Premiere音视频精细剪辑、字级动画、声画对齐与口误剔除)。
- 语义大模型模式(--srt-mode semantic):先通过 aliyun/fun-asr 获取真理级字级时间戳,再调用 MiniMax M2.7 High Speed 进行滑动重叠窗口自然语义断句(适合影视、演讲、播客等高质量字幕展示)。
Required Inputs
- 媒体文件路径 (
input_path):音频 (.mp3,.wav,.m4a,.aac,.flac,.ogg,.wma) 或视频 (.mp4,.mkv,.avi,.mov,.flv,.wmv,.webm)。 - 输出模式与字幕策略:
- 默认(句字幕):--format all --srt-mode sentence
- 精细剪辑专用(纯字字幕):--format all --srt-mode word
- 大模型增强(语义句字幕):--format all --srt-mode semantic
Workflow & Decision Tree
graph TD
A[用户输入音频/视频文件] --> B{用户选择哪种字幕模式?}
B -- 默认/快速浏览/文案提取 -- > C[执行默认命令: 句字幕模式]
C --> C1[python scripts/chunked_transcribe.py input_file --format all --srt-mode sentence]
C1 --> C2[生成同名 .txt 全文 + .srt 原生句字幕]
B -- 需要音视频精细剪辑/字级对齐/卡点 -- > E[执行字字幕命令: 纯字时序模式]
E --> E1[python scripts/chunked_transcribe.py input_file --format all --srt-mode word]
E1 --> E2[生成同名 .txt 全文 + .srt 逐字独立高精度字幕]
B -- 影视/演讲/播客高质量阅读字幕 -- > D[执行大模型组句命令: 语义模式]
D --> D1[python scripts/chunked_transcribe.py input_file --format all --srt-mode semantic]
D1 --> D2[调用 MiniMax M2.7 进行滑动窗口语义断句 + LCS 时间戳映射]
D2 --> D3[生成同名 .txt 全文 + .srt 大模型语义句字幕]
Standard Execution Commands (标准调用规范)
1. 默认标准流程(日常场景/快速文案)
python scripts/chunked_transcribe.py "E:/Media/sample.mp4" --format all --srt-mode sentence
2. 精细剪辑专用流程(纯字级独立时序字幕)
当后续需要做基于字级别的剪辑对齐、口误剔除、字级卡点动画时执行:
python scripts/chunked_transcribe.py "E:/Media/sample.mp4" --format all --srt-mode word
3. 大模型语义组句模式(影视/演讲/播客展示)
当用户明确要求“大模型组句”、“按语义重新切分字幕”时执行:
python scripts/chunked_transcribe.py "E:/Media/sample.mp4" --format all --srt-mode semantic
4. 对已有转录缓存直接重新进行大模型组句
python scripts/semantic_segment.py "E:/Media/sample.mp4"
Output Requirements
- 同名同路径:
- 输入E:/Audios/meeting.mp3
- 必定输出E:/Audios/meeting.txt和E:/Audios/meeting.srt - UTF-8 编码:所有
.txt与.srt文件采用 UTF-8 编码,标准换行。 - 严格覆盖:生成的 SRT 从视频首个有声时间点完整覆盖至结尾。
Lessons Learned & Technical Specs
- 长音频自动切片:ServiceHub OSS 代理上限约 900KB,
chunked_transcribe.py会自动将长音视频按约 4 分钟切片,无需人工干预。 - 字级剪辑支持:Word 模式保留 100% 原始字级起止时间戳,结合 20ms 帧安全消毒(Sanitize),杜绝剪映/Premiere轨道冲突。
- 大模型组句算法:采用 800 词大块 + 80 词 Overlap 滑动窗口,搭配 MiniMax M2.7 High Speed,100% 逐字保留(Verbatim),无 Token 截断、无跨块级联误差。
- 磁盘缓存保护:所有 ASR 分片响应自动保存在
.asr_cache/中,重跑时不重复消耗 ASR 积分。