用途:当目标 YouTube 视频没有字幕或自动字幕时,使用本技能在本地完成音频转录,作为 anibon-timestamper 的备用路径。
主要能力:先用 yt-dlp 与 ffmpeg 单次提取单声道 16kHz 16-bit PCM WAV 音频,避免临时文件与长音频(8 小时以上)WAV 头溢出;再用 GPU 加速的 whisper.cpp 转录,默认模型为 $HOME/whisper.cpp/models/ggml-large-v3-turbo.bin,可指定语言(示例为泰语 -l th)并输出 JSON;随后把 whisper_output.json 转换为流水线标准的 raw_transcript.json;对 2 小时以上直播中可能出现的音乐或静音循环幻觉,提供分治恢复脚本 fix_hallucinations.py,并可用 prepare_video.py 做分块。
使用方式:提取音频命令为 yt-dlp -f ba -x --audio-format wav --postprocessor-args "ExtractAudio:-ar 16000 -ac 1 -c:a pcm_s16le" -o "audio_16k.%(ext)s" "VIDEO_URL";若遇 HTTP 403 先执行 yt-dlp --update。转录示例:whisper-cli -m models/ggml-large-v3-turbo.bin -f audio_16k.wav -l th -ot 240000 -t 8 --output-json -of whisper_output。Windows 下需用 python -X utf8 运行脚本,并以 errors="replace" 解码 JSON,避免泰文等多字节字符崩溃或截断。
适用场景:YouTube 无字幕视频、长直播音频的本地转录与时间戳流水线。
限制:依赖本地 whisper.cpp 构建与模型文件;Windows 存在 UTF-8 编码约束;幻觉恢复与分块脚本的具体参数需按实际环境调整。其余平台支持与性能细节暂未提供。