Saker.cc
返回 Skill Wardrobe
🎬 CORE · 创意生产音频生成

byted-las-audio-extract-and-split

Extracts audio tracks from video files and splits long audio into timed segments using Volcengine LAS. Audio extraction and separation from video — pull audio stream from mp4, wmv, avi, mkv, mov, flv video inputs, convert video to audio. Audio splitting, cutting, slicing, trimming, and segmentation — divide long recordings into chunks, clips, or fixed-length segments with configurable duration and indexed file naming.

Saker · 用法翻译

音频抽取 — 从视频中提取干净音轨
长音频切片 — 按10分钟分段便于 ASR
素材预处理 — 提取音频后再转字幕

Install · 安装

claude skill add byted-las-audio-extract-and-split --from https://github.com/volcengine/agentkit-samples/tree/main/skills/byted-las-audio-extract-and-split

Skill 文档 · 原文

LAS 音频提取与切分(las_audio_extract_and_split

从视频/音频中提取音频轨道并按固定时长切分为多段。支持 mp4/wmv/avi/mkv 等视频格式。

设计模式

本 skill 主要采用:

  • Tool Wrapper:封装 lasutil CLI 调用
  • Pipeline:包含 Step 0 -> Step N 的顺序工作流

核心 API 与配置

  • 算子 ID: las_audio_extract_and_split
  • API: 同步(process
  • 环境变量: LAS_API_KEY (必填)

Gotchas

  • 路径模板必填output_path_template 必须包含 {index} 变量,否则所有切片会写入同一文件。
  • 密钥安全:若聊天框屏蔽密钥,让用户在当前目录创建 env.sh 并写入 export LAS_API_KEY="...",SDK 会自动读取。
  • 免责声明:最终回复结果时必须包含:"本方式的计费均为预估计费,与实际费用有差距,实际费用以运行后火山产生的账单为准。计费说明请参考 Volcengine LAS 定价。",且禁止使用"实际费用"字眼描述预估价。

工作流(严格按步骤执行)

执行进度:
- [ ] Step 0: 前置检查
- [ ] Step 1: 初始化与准备
- [ ] Step 2: 预估价格
- [ ] Step 3: 执行/提交任务
- [ ] Step 4: 结果呈现

Step 0: 前置检查(必须在第一轮对话中完成)

在接受用户的任务后,不要立即开始执行,必须首先进行以下环境检查:

  1. 检查 `LAS_API_KEY` 与 `LAS_REGION`:确认环境变量或 .env 中是否已配置。
  2. 检查输入路径:如果用户要求处理的是本地文件,则需要先通过 File API 上传至 TOS。
  3. 确认无误后:才能进入下一步。

Step 1: 初始化与准备

环境初始化(Agent 必做)

source "$(dirname "$0")/scripts/env_init.sh" las_audio_extract_and_split
workdir=$LAS_WORKDIR
  • 处理本地文件时:先本地检查格式和时长,预估价格,用户确认后再上传:

``bash # 提前检查容器格式(避免参数错误) ./scripts/check_format.sh <local_path> # 本地使用 ffprobe 获取时长(无需上传即可预估价格) duration_sec=$(ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:noprint_section=1 <local_path>) ` 计算预估价格并等待用户确认后,再执行上传: `bash # 用户确认后,上传到 TOS lasutil file-upload <local_path> ``

Step 2: 预估价格(必须获得用户确认)

  1. 读取 references/prices.md 获取最新计费标准。
  2. 优先本地获取时长(避免不必要上传):

``bash duration_sec=$(ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:noprint_section=1 <local_path>) `` 如果 ffprobe 失败,再使用 lasutil 远程获取。

  1. 根据时长和模型单价计算总价,将计费单价与预估总价一并告知用户并强制暂停执行

Step 3: 执行切分 (Process)

构造基础 data.json

{
  "input_path": "<presigned_url>",
  "output_path_template": "tos://bucket/output/{index}.wav",
  "split_duration": 30,
  "output_format": "wav"
}

执行命令:

data=$(cat "$workdir/data.json")
lasutil process las_audio_extract_and_split "$data" > "$workdir/result.json"

结果呈现

使用脚本自动生成结果展示(自动包含计费声明):

./scripts/generate_result.md.sh $workdir/result.json <estimated_price>

手动提取方式:

total=$(jq '.data.output_paths | length' $workdir/result.json)
echo "共 ${total} 个片段"
jq -r '.data.output_paths[] | "  - " + .' $workdir/result.json

审查标准

执行完成后,Agent 应自检:

  1. 环境变量是否正确配置
  2. 输入文件是否成功上传
  3. 输出结果是否正确呈现给用户
  4. 计费声明是否包含

Related · 同类技能