SuperAPI AI 工具集

generate-voiceover-elevenlabs-v3

通用与其它

查看项目

更新于 10-16 05:49

技能介绍

用途:将 v3 标签脚本(通常由 format-script-to-style 生成)用 ElevenLabs 的 eleven_v3 模型渲染为 mp3 配音,音色从 VOICES.md 中交互选择,并按需做语速后处理。

为何单独做 v3 技能:v3 能表现性地解释音频标签,但会静默忽略 speed 设置,因此节奏控制必须放在后处理中,本技能已内置这一点。

输入:tagged_script(v3 标签脚本文本);target_duration_seconds(可选,提供则计算并应用 atempo 系数,不提供则不做后处理);音色选择为交互式,展示 VOICES.md 中已批准音色供用户选择,使用所选音色的 v3 默认设置;output_dir 默认为项目 working/voiceover/ 或测试运行目录。

工作流:可程序化调用附带脚本 python3 skills/atoms/voiceover/generate-voiceover-elevenlabs-v3/scripts/generate.py,支持 --voice-id、--script-file、--target-duration、--output-dir、--name 参数,脚本负责环境加载、v3 API 调用、ffprobe 时长测量、atempo 计算与钳制、清单写入。聊天调用时应先展示 VOICES.md 音色列表供选择并提取 voiceId 及 v3 设置,再展示脚本确认后再付费调用,从 gtm-goose/.env 读取 ELEVEN_LABS_API_KEY(注意下划线)并别名为 ELEVENLABS_API_KEY,然后 POST https://api.elevenlabs.io/v1/text-to-speech/<VOICE_ID>?output_format=mp3_44100_128,model_id 为 eleven_v3。使用 mp3_44100_128,更高格式受套餐限制。用 ffprobe 测量时长;若提供目标时长,atempo_factor = 渲染时长 / 目标时长,钳制在 [1.0, 1.25],超过 1.25 声音会失真,应提示用户而非继续;系数小于 1.05 则跳过后处理;否则执行 ffmpeg -y -i "<name>.mp3" -filter:a "atempo=<factor>" -b:a 192k "<name>_atempo<factor>.mp3",并写出含参数与路径的 manifest。

输出:原始 mp3、仅在提供目标时长且系数大于 1.05 时的 atempo 修正 mp3、manifest.json。质量检查包括音色在 VOICES.md 中、API 返回 200、mp3 有效且时长非零、最终时长在目标 ±10% 内、atempo 系数在钳制范围内、密钥从 .env 加载。

失败模式:403 subscription_required 需降级到 mp3_44100_128;401 检查环境变量名;音色不在 VOICES.md 需用户确认并可用 clone-voice-elevenlabs 或 search-voices-elevenlabs 添加;渲染远超目标需停止并建议删减脚本或换用 eleven_multilingual_v2;音频标签被读出说明标签语法或堆叠有误;脚本含 4 字节 Unicode 表情会破坏 JSON,应先剔除。

限制:定价、套餐与可用平台暂未提供。