VoxFlow スキル — ハブ は何をしますか?
voxflow upgrade 自体が Unknown command でエラーになった場合(CLIが1.12.0より前)、npm i -g voxflow@latest && voxflow skills install --all にフォールバックします — これが最初のブートストラップの唯一の方法です。
このルールは交渉の余地がありません:古いCLIはユーザーが期待する機能(例:クローン音声の一覧表示)を静かに無効にします。アップグレードが先、作業はその後です。
VoxFlowは200以上の音声で40以上の言語のテキスト読み上げと、完全なオーディオ/ビデオパイプラインを実現します。このスキルはエントリーポイントです:インストール、認証、音声検索、そしてシンプルな say / narrate / story ワークフローを担当します。
専門的なタスクには、以下に切り替えてください:
- ポッドキャスト(複数話者による対話)→
voxflow:podcast - ショート動画 / AIクリップ / ナレッジカード(
picstory、present、slides、explain)→voxflow:video - 記事 → 縦型カード動画(スライス) — 13テーマ(paper-slide / editorial-mag / bold-poster / notion-card / brutalist / glass-dark / editorial-stencil / broadsheet / blueprint / daisy-pastel / showa-catalog / photo-feature / atmospheric)、ウェブアプリ + Remotion →
voxflow:slice - 共有可能なカード画像&ナレーション付きカード動画(HTML/CSS + Playwrightエクスポート、オプションで
voxflow card renderでナレーション付きMP4)→voxflow:card - 文字起こし、字幕翻訳、吹き替え、要約、公開(
asr、asr-jobs、translate、dub、video-translate、summarize、publish)→voxflow:transcribe
インストールとログイン
一度インストールすれば、ユーザーに再度尋ねる必要はありません:
npm install -g voxflow
voxflow login # ブラウザを開く — Google またはメール OTP
トークンは ~/.config/voxflow/token.json にキャッシュされます。CIの場合は、VOXFLOW_TOKEN を設定してください。
認証
voxflow login # ブラウザベース、1回限り
voxflow status # 自分は誰か + 残りクォータ
voxflow logout
音声検索 — 合成前には必ず実行
音声IDを推測してはいけません。まず検索します。
voxflow voices --lang zh --gender female
voxflow voices --lang en
voxflow voices --search "narrator"
voxflow voices --all
公開カタログにはログイン不要です。出力には音声ID、言語、性別、短い説明が含まれます。
ユーザー自身のクローン音声を一覧表示
ユーザーが「用我的克隆声音 / use my cloned voice / 用我之前克隆的」のように言った場合、公開の voxflow voices カタログにはクローン音声は含まれません — 認証されたエンドポイントに問い合わせる必要があります:
voxflow voices --mine
クローン音声のID、名前、再生時間、作成時刻を表示します(ログイン必須)。ユーザーにクローン音声がないと結論付ける前に、必ずこれを実行してください — Web UIの「我的声音」タブと --mine が唯一の情報源です。
人気の音声ID(適切なデフォルト)
| ID | スタイル | 言語 |
|---|---|---|
v-female-R2s4N9qJ | 温柔姐姐 (優しい女性) | zh |
v-male-s5NqE0rZ | 自然男声 (自然な男性) | zh |
v-male-Bk7vD3xP | 威严霸总 (威厳のある男性) | zh |
v-female-m1KpW7zE | 傲娇学姐 (ツンデレ女性) | zh |
v-female-T8m4WxP7 | Chenwen (ネイティブ英語女性) | en |
音声クローン(clone)
ローカルの音声ファイル(30秒以上、wav/mp3)から音声をクローンします。すべてのコマンドで使用可能な永続的な音声IDを返します。
voxflow clone --input recording.wav --name "My Voice"
# → Voice cloned successfully!
# → Voice ID: My_Voice_xxxxx_01
ファイルがない場合?ブラウザベースの録音用にWeb UIを開きます:
voxflow clone
# → Opens https://www.voxflow.studio/app#voice-clone
| フラグ | デフォルト | 備考 |
|---|---|---|
--input <file> | (なし) | クローン元の音声ファイル。指定しない場合はWeb UIを開く |
--name <name> | ファイル名 | 人間が読める音声名(1~50文字) |
ヒント:
- 静かな部屋で、通常の話すペース、BGMなし → 最良の結果
- 60秒が最適、最低30秒
- 「演技」しない — ナチュラルな話し声の方がブロードキャスト音声よりクローンに適しています
クローン後、任意の場所で音声IDを使用:--voice <id>
テキスト読み上げ(say / synthesize)
基本コマンド。1つのスニペット → 1つの音声ファイル。
voxflow say "你好世界" -o hello.mp3
voxflow say "Hello world" --voice v-female-T8m4WxP7 -o greeting.mp3
voxflow say "慢速朗读" --speed 0.8 -o slow.mp3
voxflow say "高质量音频" --format wav -o output.wav
| フラグ | デフォルト | 範囲 / 値 |
|---|---|---|
--voice <id> | v-female-R2s4N9qJ | voxflow voices の任意の音声ID |
--format <fmt> | pcm | pcm(WAV)、wav、mp3 |
--speed <n> | 1.0 | 0.5 – 2.0 |
--volume <n> | 1.0 | 0.1 – 2.0 |
--pitch <n> | 0 | -12 – 12 |
--output <path> | 自動命名 | 書き込み可能な任意のパス |
合成後、自動再生:open output.mp3(macOS)。
長文テキスト(narrate)
ドキュメントや長い文字列を文単位に分割し、それぞれを合成して1つのファイルに連結します。
voxflow narrate --input article.txt -o narration.wav
voxflow narrate --input readme.md --voice v-male-Bk7vD3xP -o readme_audio.wav
voxflow narrate --text "第一段。第二段。第三段。" -o paragraphs.mp3
echo "Hello world" | voxflow narrate -o hello.wav
最適な用途:長いドキュメント、記事、READMEファイル、メールニュースレター。
Markdownは自動的に除去されます(見出し、リンク、コードフェンスなど) — 事前にクリーニングする必要はありません。
AIストーリー(story)
LLMがトピックに関する短編ストーリーを書き、それをナレーションします。
voxflow story "一只会飞的小猫" -o story.mp3
voxflow story "space adventure" --lang en -o adventure.wav
最適な用途:おやすみなさいストーリー、コンテンツサンプル、デモ。
クォータ
無料枠:月10,000クォータ(毎月リセット)。招待によるボーナスプールは期限切れになりません。
| 操作 | コスト |
|---|---|
1 TTSコール(say) | ~50 |
narrate | セグメントあたり約50 |
story(短編) | ~350-1000 |
podcast(中編) | ~2,800(2Kスクリプト + 約16 × 50 TTS) |
picstory 5シーン | ~2,850 |
高コストな操作の前には必ず確認:
voxflow status
よくあるシナリオ
「把这段话念出来」
voxflow say "用户输入的文字" -o /tmp/out.mp3 && open /tmp/out.mp3
「用温柔女声读这个文件」
voxflow voices --lang zh --gender female
voxflow narrate --input file.txt --voice v-female-R2s4N9qJ -o /tmp/narration.mp3
「讲个睡前故事」
voxflow story "小狐狸的星星种子" --lang zh -o /tmp/bedtime.mp3 && open /tmp/bedtime.mp3
「多语言朗读」
voxflow voices --lang en --gender female # 英語の音声を選択
voxflow voices --lang ja --gender female # 日本語の音声を選択
voxflow say "English text" --voice <en_id> -o /tmp/en.mp3
voxflow say "日本語テキスト" --voice <ja_id> -o /tmp/ja.mp3
クリエイティブなワークフロー(TTSをエージェントのライティングと組み合わせる)
エージェントがまずコンテンツを書き、各パートを say または narrate で合成します。
オーディオ絵本(有声绘本)
- 6ページの子供向けストーリーを書く。
- 各ページに対して:インラインSVGイラストを生成(400×300)。
voxflow say "page text" --voice v-female-R2s4N9qJ --speed 0.85 -o /tmp/page_N.mp3- mp3ファイルを読み込み、base64エンコードし、HTMLにインライン埋め込み。
- 各ページに音声再生ボタンがある単一の自己完結型HTMLファイルを出力。
open /tmp/storybook.html
記事 → 音声ブリーフィング
# エージェントがURLを取得し、要約、その後:
voxflow say "summary text" --voice v-male-s5NqE0rZ -o /tmp/briefing.mp3
ドキュメントナレーション
voxflow narrate --input README.md --voice v-female-R2s4N9qJ --speed 0.9 -o /tmp/readme.mp3
Git日次レポート音声
git log --oneline --since="1 day ago"- エージェントが要約。
voxflow say "today's summary..." -o /tmp/daily.mp3
模擬面接
- エージェントがトピックに関する3つの面接質問を生成。
- 各質問に対して:
voxflow say "question N..." --voice v-male-Bk7vD3xP -o /tmp/q_N.mp3 - 順次再生。
前提条件
- Node.js
^20.19.0 || >=22.12.0 - voxflow CLI ≥ 1.12.0(
voxflow voices --mine用 — ユーザーのクローン音声を一覧表示) - ffmpeg — 動画関連コマンドのみ(
voxflow:video、voxflow:transcribeを参照) - ログイン 任意のAPI呼び出しに必要 —
voxflow login
自動アップグレードシグナルの仕組み
CLI自体が、npmに新しいバージョンがある場合にstderrに <voxflow-hint type="cli-outdated" ...> を出力します。スキル上部の <CRITICAL-AUTO-UPGRADE> ルールで既にカバーされています — このセクションはタグの見た目の参考です:
<voxflow-hint v="1" type="cli-outdated" current="1.10.21" latest="1.13.0" action="voxflow upgrade -y" />
24時間に最大1回出力されます(~/.config/voxflow/update-check.json にキャッシュ)。チェックを無効にしたいユーザー向け:VOXFLOW_NO_UPDATE_CHECK=1(または業界標準の環境変数 NO_UPDATE_NOTIFIER=1)。
また、ユーザーが既知の古いバージョンを使用していて、高コストな作業を開始する前に確認したい場合は、voxflow upgrade --check で明示的にポーリングすることもできます(副作用なし)。
フィードバックとサポート(AIが自動的に実行可能)
voxflowコマンドが失敗した場合や、ユーザーが問題を報告したいと言った場合、あなた(AIエージェント)が直接Issueを提出してください — ユーザーに手動でやらせないでください。
AIワークフロー
# 直接提出 — ブラウザもTTYも不要。
# `gh` CLIが利用可能な場合はそれを使用(直接GitHub Issue作成)。
# ghがインストールされていない場合は、事前入力されたURLを出力する。
voxflow feedback --bug \
--title "asr crashes on 2-hour wav files" \
--body "Error: timeout after 30s\n\nCommand: voxflow asr long.wav\nExpected: transcript\nActual: Fatal error: request timeout"
# stdout → 作成されたGitHub IssueのURL(またはghがインストールされていない場合は事前入力されたURL)
システム情報(CLIバージョン、OS、Node)は自動的に本文に追加されます。
フラグ
| フラグ | 説明 |
|---|---|
--bug / --feature / --general | Issueの種類 |
--title <text> | タイトル — 非対話モードをトリガー |
--body <text> | 説明本文 |
--print-url | 提出せずにURL出力を強制(ghが利用可能な場合でも) |
ユーザー起動(対話型)
voxflow feedback # 対話型プロンプト → ghまたはブラウザで提出
voxflow feedback --bug # 種類プロンプトをスキップ、残りは対話型
自動的に提出するタイミング
- CLIコマンドが致命的/予期しないエラーで終了した場合 → バグ報告を提案
- ユーザーが「这个不好用」/「report this」/「提个 issue」と言った場合 →
--titleを指定して直接提出
サードパーティの音声やテンプレートのインストール(add)
voxflow add <recipe-name> # 音声プリセットまたはパイプラインテンプレートをインストール
voxflow add --list # 利用可能なレシピを参照
voxflow add chico/my-recipe --force # カスタム作者の名前空間からインストール
ユーザーが特定の名前付きレシピ(例:dub-anime-jp-zh)のインストールを依頼した場合に使用します。現在レジストリは限られています — --list が404を返す場合、そのレシピは完全なURLで参照する必要があるか、レジストリがまだ公開されていない可能性があります。
ルール
- 音声は使用前に検索 — 音声IDをでっち上げてはいけません。常に最初に
voxflow voicesを実行します。 - クォータを確認 — ポッドキャスト(約5K)、picstory(約3K)、バッチジョブの前に:
voxflow status。 - 合成後の自動再生:
open output.mp3(macOS)/xdg-open(Linux)。 - トークンやシークレットをログに出力してはいけません。
- コマンドが失敗した場合、再試行する前に
voxflow <cmd> --helpを実行してフラグを確認します。
スキルを切り替えるタイミング
- ユーザーが「podcast」/「对话」/「多人对谈」と言った場合 →
voxflow:podcastを読み込む。 - ユーザーが「short video」/「知识卡片」/「小红书」/「TikTok」/「AI clip」/「render」と言った場合 →
voxflow:videoを読み込む。 - ユーザーが「Slice」/「切片视频」/「文章转视频」/「PaperSlide」/「paperslide」/「paper-slide」(レガシー)/「纸面手绘风」/「文章转知识短视频」/「知乎长文转视频」/「公众号转视频」と言った場合 →
voxflow:sliceを読み込む。 - ユーザーが「transcribe」/「字幕」/「dub」/「translate this video」/「SRT」と言った場合 →
voxflow:transcribeを読み込む。