关于 happy-audio-gen
happy-audio-gen 是通过六种提供商将文本转换为语音的命令行技能,适用于制作旁白、配音和朗读音频,并支持长文本分段处理。
主要功能
- 01通过六种提供商进行文本转语音
- 02选择提供商和语音
- 03调节语速和语音指令
- 04自动拆分长文本
- 05输出 MP3、WAV、OGG 和 FLAC
适用场景
- 01将长篇脚本制作成旁白
- 02生成中文或英文语音
- 03使用指定语音制作配音
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ iamzhihuix/ happy-claude-skills --skill happy-audio-gen安装后在 Claude Code 中输入/happy-audio-gen确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
package.jsonassets/EXTEND.template.mdreferences/error_codes.mdproviders.mdvoices.mdreferences/config/extend-schema.mdfirst-time-setup.mdscripts/main.tstypes.tsscripts/providers/bailian.tselevenlabs.tsminimax.tsopenai.tsplayht.tssiliconflow.tsscripts/utils/output.tstext_chunk.ts详细介绍
happy-audio-gen
通过一个 CLI 使用 6 家服务商将文本转换为语音。除 Bailian 的声音设计流程(仍受支持,但轮询窗口较长)外,所有服务商均为同步处理(TTS 速度很快,通常不到 10 秒)。
快速使用
# Shortest path — OpenAI default voice
bun scripts/main.ts --text "Hello, world" --out ./hello.mp3
# Chinese, MiniMax
bun scripts/main.ts --provider minimax --text "大家好" --voice male-qn-qingse --out ./hello.mp3
# Long-form, Bailian (auto-splits by sentence)
bun scripts/main.ts --provider bailian --textfiles ./script.md --out ./narration.mp3
何时调用此技能
- 用户要求合成语音、使用 TTS、朗读、旁白、配音或制作画外音。
- 用户要求将脚本、文本或文章转换为音频。
- 用户指定了 TTS 语音或模型。
如果用户想要将音频转录为文本(这是 STT,属于不同领域),或编辑/混音音频文件(请使用专用音频编辑器),不要将请求路由到此处。
第 0 步:预检(阻塞)
-
查找 EXTEND.md:
./.happy-skills/happy-audio-gen/EXTEND.md$XDG_CONFIG_HOME/happy-skills/happy-audio-gen/EXTEND.md~/.happy-skills/happy-audio-gen/EXTEND.md
如果均未找到,请运行
bun scripts/main.ts --setup,并引导用户完成references/config/first-time-setup.md中的设置。 -
确认至少一家服务商已配置凭据(环境变量或 1Password 引用)。
-
确认 Bun 可用。备用方案:
npx -y bun。
第 1 步:选择服务商
优先顺序:
--provider <id>- EXTEND.md 中的
default_provider - 自动检测环境变量:
openai > elevenlabs > bailian > minimax > siliconflow > playht
根据语言/语音需求选择:
- 英语,自然且快速 →
openai(gpt-4o-mini-tts / tts-1)。 - 多语言、语音克隆 →
elevenlabs。 - 中文、长文本 →
bailian(qwen-tts 会自动将长脚本分块)或minimax。 - 中文方言/声音设计 →
bailian(使用 qwen3-tts-vd 进行声音设计)或siliconflow(CosyVoice2)。 - 极其逼真、短文本 →
playht(2.0)。
第 2 步:填写参数
--text或--textfiles:输入内容。始终加引号。--out <path>:必填。扩展名决定格式(.mp3/.wav/.ogg/.flac)。--voice <id>:服务商专属。常用语音列表见references/voices.md。--rate 0.5..2.0:语速。--instruction "...":语音指导(仅openai的 gpt-4o-mini-tts 和siliconflow支持此参数)。--language <code>:en、zh、ja— 仅少数服务商明确支持此参数。
第 3 步:运行
bun scripts/main.ts \
--provider openai \
--model gpt-4o-mini-tts \
--voice alloy \
--text "..." \
--out ./out.mp3
JSON 模式:
{ "success": true, "provider": "openai", "model": "gpt-4o-mini-tts", "voice": "alloy", "output": "/abs/out.mp3", "size_bytes": 76032, "format": "mp3" }
第 4 步:处理长文本
happy-audio-gen会自动拆分长输入,以适配单次调用长度受限的服务商(Bailian 每次最多处理 200 个汉字)。输出时会逐字节拼接各个片段。- 为了尽可能保证拼接后的 MP3 音质,建议之后使用 ffmpeg 拼接片段,而不要依赖字节拼接。
第 5 步:错误处理
[openai] OpenAI TTS 400并提示invalid voice→ 该语音名称不受模型支持。请使用alloy、ash、coral、echo、fable、onyx、nova、sage、shimmer之一。[minimax] ... 2049 invalid api key→ 尝试设置MINIMAX_BASE_URL=https://api.minimaxi.com/v1(不同区域)。[bailian] ... 400 DataInspectionFailed→ 阿里云内容过滤。请告知用户。[elevenlabs] 401→ 密钥无效或订阅已过期。
参考资料
references/providers.md— 各服务商的环境变量、默认模型和语音列表。references/voices.md— 各服务商精选语音。references/error_codes.md— 常见错误及解决方法。references/config/first-time-setup.mdreferences/config/extend-schema.mdassets/EXTEND.template.md
评论
支持 Markdown