happy-audio-gen について
happy-audio-genは、6つのプロバイダーでテキストを音声に変換するコマンドラインスキルです。ナレーションや吹き替えの作成に向け、長文の分割にも対応します。
主な機能
- 016つのプロバイダーによるテキスト読み上げ
- 02プロバイダーと音声の選択
- 03読み上げ速度と音声指示の指定
- 04長文の自動分割
- 05MP3、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
1 つの 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に沿ってユーザーを案内します。 -
少なくとも 1 つのプロバイダーに認証情報があることを確認します(環境変数または 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は、1 回の呼び出しで処理できる長さに上限があるプロバイダー(Bailian は 1 回あたり中国語 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が表示される → Aliyun のコンテンツフィルターによるエラーです。ユーザーに伝えてください。[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 対応