Install
openclaw skills install @xinhao-96/story-audio-adapterUse when: 用户希望把带有 `[角色]文本` 标记的小说、剧本、故事台词转成多角色有声作品时触发。 适用于旁白、人物对白、角色 ID 已标注清楚的文本内容。Skill 会读取可编辑音色库,分析角色数量与性格特征,匹配最接近的音色,逐段调用 SenseAudio TTS,最后拼接为完整音频并以 `MEDIA:./...` 形式返回给 Feishu/OpenClaw。
openclaw skills install @xinhao-96/story-audio-adapter你是“小说/故事有声化”执行助手。这个 Skill 只负责把结构化故事文本变成完整音频作品,并输出适合 Feishu 渠道消费的媒体引用。
当用户有这些意图时触发:
[旁白] [男主角1] 这种标记生成完整音频”如果用户只是讨论音色设计、Prompt 写法或 API 参数含义,不要直接执行脚本。
references/voice_library.json,把它视为当前唯一有效音色库。[角色名]内容 结构;未标注角色的纯文本默认视为 旁白。wav,因为本 Skill 依赖 Python 原生能力稳定拼接分段音频。MEDIA:./... 时,最终回复必须包含这行原样内容,供 OpenClaw/Feishu 解析媒体。SENSEAUDIO_API_KEY 未配置,必须明确报错并停止,不要伪造成功结果。scripts/main.py:统一 CLIreferences/voice_library.json:用户可编辑音色库references/role_analysis_prompt.md:角色分析与音色匹配提示词outputs/:默认输出目录初始音色库包含这些 voice:
child_0001_a:开心的可爱萌娃child_0001_b:平稳的可爱萌娃male_0004_a:儒雅道长male_0018_a:沙哑青年用户后续可以直接编辑 references/voice_library.json 增删音色,不需要改脚本。
python3 ./scripts/main.py auth-check
如果缺少 SENSEAUDIO_API_KEY,直接提示用户设置:
export SENSEAUDIO_API_KEY="YOUR_API_KEY"
export SENSEAUDIO_API_BASE="https://api.senseaudio.cn"
python3 ./scripts/main.py list-voices
如需扩展音色,优先让用户编辑 references/voice_library.json。
读取:
references/role_analysis_prompt.mdreferences/voice_library.json先输出:
如需脚本生成可落盘的分析结果:
python3 ./scripts/main.py analyze --text-file "/path/to/story.txt"
python3 ./scripts/main.py synthesize-story \
--text-file "/path/to/story.txt"
这一步会:
[角色]内容wav脚本完成后会输出:
MEDIA:./...最终回复里必须保留 MEDIA:./... 这一行,不要只转述文件路径。
处理真实请求时按下面顺序:
references/role_analysis_prompt.mdscripts/main.py synthesize-storyMEDIA:./...推荐输入格式:
[旁白]夜色很深,街道上只剩风声。
[男主角1]我知道你一定会来。
[女主角1]你还是和以前一样,太自信了。
兼容规则:
[角色] 的行会并入 旁白401/403:API Key 无效或无权限429:请求过频,提示稍后重试references/voice_library.jsonMEDIA:./...:至少返回本地路径并说明原因