AivisSpeech Engine またはAivis Cloud APIを使用したコマンドラインTTS
- curl
- jq (
brew install jq) - sox (
brew install sox)
- AivisSpeech Engine が起動していること
- Aivis Cloud APIキー(Aivis Project Hubから取得)
- モデルUUID
そのままスクリプトライクに実行できます。
chmod +x say.goパスの通った場所に配置するか、エイリアスを設定してください:
# ~/.bashrc または ~/.zshrc に追加
alias say='/path/to/aivisay/say.go'事前にビルドすると起動が速くなります。
make build
# ~/.bashrc または ~/.zshrc に追加
alias say='/path/to/aivisay/say-go'chmod +x sayパスの通った場所に配置するか、エイリアスを設定してください:
# ~/.bashrc または ~/.zshrc に追加
alias say='/path/to/aivisay/say'macOSでパスが通った場所に配置する場合は、標準の say コマンドよりも優先して読み込まれる場所に配置してください。
# テキストを音声に変換
say "爆音が銀世界の高原に広がる"
# パイプからの入力
echo "爆音が銀世界の高原に広がる" | say
# 複数行のテキスト
cat text.txt | say
# ヘルプを表示
say --helpキャッシュを有効にすると、同じテキストの音声合成結果を保存し、2回目以降は高速に再生できます。
例えば、Claude Code Hooksのように、同じセリフの通知ボイスを何回も流す場合に生成ラグがなくなります。
# キャッシュを有効にして実行
say --cache "あらゆる現実をすべて自分のほうへねじ曲げたのだ"
# 2回目以降はキャッシュから高速再生
say --cache "あらゆる現実をすべて自分のほうへねじ曲げたのだ"キャッシュは以下の場所に保存されます:
- デフォルト:
~/.cache/aivisay/<speaker_id_or_model_uuid>/<sha256_hash>.<wav|mp3> - 環境変数で変更可能:
export AIVIS_CACHE_DIR=/path/to/cache
# 基本的な使い方
say "一週間ばかりニューヨークを取材した"
# キャッシュを使用
say --cache "一週間ばかりニューヨークを取材した"# 必要な環境変数を設定
export AIVIS_SOURCE=cloud
export AIVIS_CLOUD_API_KEY=your_api_key
export AIVIS_CLOUD_MODEL_UUID=your_model_uuid
# 使い方はローカルモードと同じ
say "小さな鰻屋に、熱気のようなものがみなぎる"
# キャッシュも同様に使用可能
say --cache "小さな鰻屋に、熱気のようなものがみなぎる"# ローカルモード(デフォルト)
export AIVIS_SOURCE=local
# クラウドモード
export AIVIS_SOURCE=cloud# AivisSpeech EngineのURL(デフォルト: http://localhost:10101)
export AIVISSPEECH_URL=http://localhost:10101
# 話者ID(デフォルト: 888753760)
export AIVISSPEECH_SPEAKER=888753760
# 話速(デフォルト: 1.0、範囲: 0.5-2.0)
export AIVISSPEECH_SPEED=1.2
# ピッチ(デフォルト: 0.0、範囲: -0.15-0.15)
export AIVISSPEECH_PITCH=0.1
# 音量(デフォルト: 1.0、範囲: 0.0-2.0)
export AIVISSPEECH_VOLUME=1.5# APIキー(必須)
export AIVIS_CLOUD_API_KEY=your_api_key_here
# モデルUUID(必須)
export AIVIS_CLOUD_MODEL_UUID=your_model_uuid_here
# APIエンドポイント(デフォルト: https://api.aivis-project.com)
export AIVIS_CLOUD_URL=https://api.aivis-project.com# 話速(デフォルト: 1.0)
export AIVISSPEECH_SPEED=1.2
# ピッチ(デフォルト: 0.0)
export AIVISSPEECH_PITCH=0.1
# 音量(デフォルト: 1.0)
export AIVISSPEECH_VOLUME=1.5# キャッシュディレクトリ(デフォルト: ~/.cache/aivisay)
export AIVIS_CACHE_DIR=/path/to/cache合法的なAIVMXファイルをアップロードするwrapperスクリプトを使用します:
./upload-model --file /path/to/file例: あけさとさん
❯ ./upload-model --file ~/Downloads/AivisSpeech-あけさとさんα-/あけさとさんα(ほがらか).aivmx
Uploading model: /Users/mohemohe/Downloads/AivisSpeech-あけさとさんα-/あけさとさんα(ほがらか).aivmx
Target URL: http://172.16.34.2:10101/aivm_models/install
✓ Model uploaded successfully!
Note: You may need to load the model using the appropriate UUID.
Use './list-speakers' to see available models and their UUIDs.
>>> elapsed time 7s251ms利用可能な話者を確認するには、list-speakersスクリプトを使用します:
./list-speakers ❯ ./list-speakers
Fetching available speakers from http://172.16.34.2:10101...
Available speakers and styles:
==============================
■ Anneli (Model UUID: e756b8e4-b606-4e15-99b1-3f9c6a1b2317)
└─ ノーマル (Speaker ID: 888753760, Type: talk)
└─ 通常 (Speaker ID: 888753761, Type: talk)
└─ テンション高め (Speaker ID: 888753762, Type: talk)
└─ 上機嫌 (Speaker ID: 888753764, Type: talk)
└─ 落ち着き (Speaker ID: 888753763, Type: talk)
└─ 怒り・悲しみ (Speaker ID: 888753765, Type: talk)
■ あけさとさんα(ひそひそ) (Model UUID: 13632fe5-58e5-41d2-a4e3-d36c9ec4a269)
└─ Whisper (Speaker ID: 1063129024, Type: talk)
■ あけさとさんα(ほがらか) (Model UUID: 74b5afe2-af67-4140-8e1e-64e49759a20c)
└─ Bright (Speaker ID: 97713888, Type: talk)
■ あけさとさんα(やわらか) (Model UUID: 24d6399a-0a3f-4560-93f6-68c7967e890e)
└─ Soft (Speaker ID: 1420750528, Type: talk)
❯ ./list-speakers 74b5afe2-af67-4140-8e1e-64e49759a20c
Fetching available speakers from http://172.16.34.2:10101...
Speaker details for UUID: 74b5afe2-af67-4140-8e1e-64e49759a20c
==============================
Name: あけさとさんα(ほがらか)
Model UUID: 74b5afe2-af67-4140-8e1e-64e49759a20c
Available styles:
• Bright (Speaker ID: 97713888, Type: talk)※上記は出力例であり、Anneliの利用を推奨するものではありません。
※クラウドモードでは、Aivis Project Hubでモデルを選択してUUIDを取得してください。
AivisSpeech Engineが起動していることを確認してください。
brew install jqbrew install sox