今日やったこと(結論)
- ElevenLabs の APIキーを発行
- voice_id を取得
- Mac のターミナル(zsh)から cURL でTTS音声を生成
-
say.mp3
を作成し、Apple Music で再生確認
手順メモ
1. APIキーの発行
- ElevenLabs にログイン
- 右下プロフィール → API Keys
- Create new key → 名前を付けて生成 → コピー
-
.env
などに保存(※Gitに上げないよう注意!)
2. voice_id の確認
- Webアプリの Voices から使いたい声を選択 → 「…」メニュー → Copy voice ID
例:
ELEVENLABS=sk-xxxx
voice_id=JBFqnCBsd6RMkjVDRZzb
3. zsh で .env 読み込み
.env
をテスト用に読み込む場合はこれが便利:
set -a
source .env
set +a
これで echo $ELEVENLABS
echo $voice_id
で確認できる。
4. cURL で音声ファイル生成
curl -X POST \
"https://api.elevenlabs.io/v1/text-to-speech/${voice_id}?output_format=mp3_44100_128" \
-H "xi-api-key: ${ELEVENLABS}" \
-H "Content-Type: application/json" \
-d '{
"text": "こんにちは。ElevenLabsのTTSテストです。",
"model_id": "eleven_multilingual_v2"
}' \
-o say.mp3 -v
-
o say.mp3
: 出力ファイル名を指定 -
v
: デバッグ用にレスポンスを表示
5. Mac で再生確認
open say.mp3
→ Apple Music が立ち上がり、音声を確認できた。
Finderからもダブルクリックで再生可能。
ハマりどころと回避
-
.env
の書き方がKEY=VALUE
形式でないとbad assignment
が出る - 無料プランでは
pcm
系出力は非対応。mp3_44100_128
を指定する - エラーが出た場合は
cat say.mp3
で中身を見て、JSONならAPIリクエストが失敗している
次回(ToDo)
- Unity から直接 ElevenLabs API を叩いて AudioClip 再生
- AudioSource に TTS 音声を流す仕組みを構築する