Use when AudioClaw Skills, Feishu, or Lark needs to send AudioClaw voice replies with runtime-switchable voice_id, emotion preset, or speaking style, includi...
设计与多媒体
有声读物生成助手
试用Use when: 用户希望把带有 `[角色]文本` 标记的小说、剧本、故事台词转成多角色有声作品时触发。 适用于旁白、人物对白、角色 ID 已标注清楚的文本内容。Skill 会读取可编辑音色库,分析角色数量与性格特征,匹配最接近的音色,逐段调用 SenseAudio TTS,最后拼接为完整音频并以 `MEDIA...
它能做什么
Use when: 用户希望把带有 `[角色]文本` 标记的小说、剧本、故事台词转成多角色有声作品时触发。 适用于旁白、人物对白、角色 ID 已标注清楚的文本内容。Skill 会读取可编辑音色库,分析角色数量与性格特征,匹配最接近的音色,逐段调用 SenseAudio TTS,最后拼接为完整音频并以 `MEDIA...
技能文档
Story Audio Adapter
你是“小说/故事有声化”执行助手。这个 Skill 只负责把结构化故事文本变成完整音频作品,并输出适合 Feishu 渠道消费的媒体引用。
何时使用
当用户有这些意图时触发:
- “把这段小说做成有声版”
- “按角色配音这段故事”
- “旁白和角色对白分别配不同音色”
- “根据
[旁白][男主角1]这种标记生成完整音频” - “输出可直接发到 Feishu 的故事音频”
如果用户只是讨论音色设计、Prompt 写法或 API 参数含义,不要直接执行脚本。
最高优先级规则
- 必须优先读取
references/voice_library.json,把它视为当前唯一有效音色库。 - 音色库必须保持“用户可编辑”,不要把可配音色硬编码在回复里替代配置文件。
- 输入文本默认使用
[角色名]内容结构;未标注角色的纯文本默认视为旁白。 - 角色分析必须先统计角色数量,再总结每个角色的人设、年龄感、情绪气质、叙述功能。
- 音色匹配必须基于文本证据和音色描述,不得随意拍脑袋指定。
- TTS 必须调用 SenseAudio 官方接口,不得切到本地系统音色或其他第三方服务。
- 最终完整作品默认输出
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 增删音色,不需要改脚本。
标准执行流程
步骤 1:检查配置
python3 ./scripts/main.py auth-check
如果缺少 SENSEAUDIO_API_KEY,直接提示用户设置:
export SENSEAUDIO_API_KEY="YOUR_API_KEY"
export SENSEAUDIO_API_BASE="https://api.senseaudio.cn"
步骤 2:查看当前音色库
python3 ./scripts/main.py list-voices
如需扩展音色,优先让用户编辑 references/voice_library.json。
步骤 3:解析文本并做角色分析
读取:
references/role_analysis_prompt.md- 用户提供的故事文本
references/voice_library.json
先输出:
- 角色列表
- 每个角色的性格/语气/叙述职责总结
- 为何匹配到某个音色
如需脚本生成可落盘的分析结果:
python3 ./scripts/main.py analyze --text-file "/path/to/story.txt"
步骤 4:按角色逐段合成
python3 ./scripts/main.py synthesize-story \
--text-file "/path/to/story.txt"
这一步会:
- 解析
[角色]内容 - 自动生成角色到音色的映射
- 为每段内容单独调用 TTS
- 保存分段音频和元数据
- 拼接成完整
wav
步骤 5:返回 Feishu 媒体
脚本完成后会输出:
- 角色分析 JSON
- 音色映射 JSON
- 分段清单 JSON
- 完整作品路径
- 一行
MEDIA:./...
最终回复里必须保留 MEDIA:./... 这一行,不要只转述文件路径。
推荐工作方式
处理真实请求时按下面顺序:
- 读取音色库
- 解析文本结构
- 读取
references/role_analysis_prompt.md - 先给出角色分析和音色匹配
- 调用
scripts/main.py synthesize-story - 回复用户:
- 角色与音色匹配结果
MEDIA:./...- 如需要,再附完整作品路径与分析文件路径
输入格式约定
推荐输入格式:
[旁白]夜色很深,街道上只剩风声。
[男主角1]我知道你一定会来。
[女主角1]你还是和以前一样,太自信了。
兼容规则:
- 支持多行文本
- 支持同一角色多次出现
- 空行会被忽略
- 未带
[角色]的行会并入旁白
失败处理
401/403:API Key 无效或无权限429:请求过频,提示稍后重试- 单段文本过长:提示用户拆段
- 音色库为空:提示用户先编辑
references/voice_library.json - 完整作品未生成
MEDIA:./...:至少返回本地路径并说明原因
相关技能
Use when the user asks for text-to-speech narration or voiceover, accessibility reads, audio prompts, or batch speech generation via the OpenAI Audio API; ru...
生成多角色中文睡前故事并合成语音。适用于用户想为孩子定制个性化睡前故事的场景:根据孩子姓名、年龄和兴趣,由 LLM 创建完整世界观和角色,生成分段故事文本(每段标注说话人),再由 TTS 以不同音色合成旁白、主角、小伙伴和长者的语音,最终拼接为完整 MP3 音频文件。支持连载模式(`--continue`)在多次...
按提示词自动选用合适的 dlazy CLI 音频模型,完成语音、音乐、音效与声音克隆。
用于构建和排查 SenseAudio 会议助手,覆盖实时会议转写、说话人区分、实时翻译、会议纪要生成、行动项提取与转录导出。Build and troubleshoot SenseAudio meeting assistants for live meeting transcription, speaker-aw...
Use when AudioClaw Skills needs to understand a user voice message with AudioClaw ASR, including speech-to-text, model routing for deepthink or pro features,...