las_audio_convert)将 TOS 上的音频文件转换为指定格式(wav/mp3/flac),可通过 extra_params 传入 ffmpeg 参数调整采样率、声道数等。
本 skill 主要采用:
lasutil CLI 调用las_audio_convertprocess)LAS_API_KEY (必填)> 详细参数与接口定义见 references/api.md。
env.sh 并写入 export LAS_API_KEY="...",SDK 会自动读取。复制此清单并跟踪进度:
执行进度:
- [ ] Step 0: 前置检查
- [ ] Step 1: 初始化与准备
- [ ] Step 2: 预估价格
- [ ] Step 3: 执行/提交任务
- [ ] Step 4: 结果呈现
在接受用户的任务后,不要立即开始执行,必须首先进行以下环境检查:
LAS_API_KEY 与 LAS_REGION:确认环境变量或 .env 中是否已配置。LAS_REGION 常见为 cn-beijing)。LAS_REGION 必须与您的 API Key 及 TOS Bucket 所在的地域完全一致。如果用户中途切换了 Region,必须提醒用户其 TOS Bucket 也需对应更换,否则会导致权限异常或上传失败。LAS_API_KEY,无需额外 TOS 凭证)。VOLCENGINE_ACCESS_KEY 和 VOLCENGINE_SECRET_KEY。对于仅需要上传输入文件的场景,TOS 凭证不再必须。环境初始化(Agent 必做):
# 执行统一的环境初始化与更新脚本(会自动创建/激活虚拟环境,并检查更新)
source "$(dirname "$0")/scripts/env_init.sh" las_audio_convert
workdir=$LAS_WORKDIR
> 如果网络问题导致更新失败,脚本会跳过检查,使用本地已安装的 SDK 继续执行。
```bash
# 提前检查容器格式(避免参数错误)
./scripts/check_format.sh
# 本地使用 ffprobe 获取时长(无需上传即可预估价格)
duration_sec=$(ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:noprint_section=1
```
计算预估价格并等待用户确认后,再执行上传:
```bash
# 用户确认后,上传到 TOS
lasutil file-upload
```
上传成功后返回 JSON,取其中的 tos_uri(格式 tos://bucket/key)传给算子作为输入路径。
```bash
# 使用 ffprobe 本地获取
duration_sec=$(ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:noprint_section=1
```
如果 ffprobe 失败,再使用 lasutil 远程获取:
```bash
lasutil media-duration
```
构造基础 data.json(仅需必填项,高级用法可在其中加 "extra_params": ["-ar", "44100", "-ac", "1"]):
{
"input_path": "<presigned_url>",
"output_path": "tos://bucket/output.wav",
"output_format": "wav"
}
执行命令:
data=$(cat "$workdir/data.json")
lasutil process las_audio_convert "$data" > "$workdir/result.json"
使用脚本自动生成结果展示(自动包含计费声明):
./scripts/generate_result.md.sh $workdir/result.json <estimated_price>
生成内容包含:
手动提取方式:
jq '[.data.audios[] | {
input: (.input_path | split("/") | last),
output: .output_path,
duration: "\(.duration)s",
status: .status
}]' result.json
如果 status 为 failed,标记为 ❌ 并提示用户检查输入格式。
执行完成后,Agent 应自检:
共 1 个版本