Skip to Content

ElevenLabs シリーズ

ElevenLabs の音声モデルで、全 2 モデルです。Eleven v4 は音声合成、Scribe v2 は文字起こしに使います。どちらも OpenAI 互換の音声エンドポイントで呼び出します。

モデル ID(そのままコピーしてください)
Eleven v4(音声合成)elevenlabs/eleven_v4POST /v1/audio/speech
Scribe v2(文字起こし)elevenlabs/scribe_v2POST /v1/audio/transcriptions

エンドポイントの共通パラメータは Audio Speech API と Audio Transcriptions API を参照してください。リアルタイムの価格はモデルページ を参照してください。音声合成は文字数、文字起こしは音声の長さで課金されます。

Eleven v4 音声合成

ポイントvoice にはボイス名ではなくボイス ID を渡します。OpenAI の alloy などのボイスには対応していません。
eleven_tts.py
import os from openai import OpenAI client = OpenAI(base_url="https://api.ofox.ai/v1", api_key=os.environ["OFOX_API_KEY"]) with client.audio.speech.with_streaming_response.create( model="elevenlabs/eleven_v4", voice="21m00Tcm4TlvDq8ikWAM", input="こんにちは、OfoxAI の音声合成へようこそ。", response_format="mp3", ) as resp: resp.stream_to_file("speech.mp3")
パラメータ説明
voice必須。ElevenLabs のボイス ID(20 文字)。例:21m00Tcm4TlvDq8ikWAM。ボイス ID は ElevenLabs ボイスライブラリ で確認できます。ボイス名(例:Rachel)を渡すと 404 が返ります
response_formatmp3(デフォルト、44.1 kHz)、opus(48 kHz、Ogg コンテナ)、wav(16 kHz)、pcm(16 kHz、16 ビットモノラル)。aac、flac には非対応
language_code言語コード。例:zh、en。省略すると自動判定されます
provider_optionsElevenLabs 固有のパラメータをそのまま渡します。例:{"elevenlabs": {"voice_settings": {"stability": 0.3}}}。パラメータの定義は ElevenLabs 公式ドキュメント を参照

実測では、約 20 文字の中国語の文で約 2 秒でレスポンスが返り、生成された音声は約 4 秒でした。

Scribe v2 文字起こし

Scribe v2 は文字起こしのテキストに加えて、単語ごとの開始・終了時刻を返し、話者の識別もできます。

scribe.py
import json import os from openai import OpenAI client = OpenAI(base_url="https://api.ofox.ai/v1", api_key=os.environ["OFOX_API_KEY"]) with open("meeting.mp3", "rb") as f: result = client.audio.transcriptions.create( model="elevenlabs/scribe_v2", file=f, extra_body={"provider_options": json.dumps({"elevenlabs": {"diarize": True}})}, ) print(result.text) for w in (result.model_extra or {}).get("words", [])[:10]: print(w.get("speaker"), w["start"], w["end"], w["word"])

レスポンスの構造:

フィールド説明
text文字起こしの全文
words[]単語ごとの結果。word、start、end(秒)を含みます。話者分離を有効にすると speaker(例:speaker_0、speaker_1)も含まれます
language認識された言語。例:zho、eng
duration音声の長さ(秒)
usage{"type": "duration", "seconds": ...}。長さで課金されます
  • 話者分離は provider_options で有効にします:{"elevenlabs": {"diarize": true}} を JSON 文字列としてフォームフィールドで渡します。
  • response_format は json と verbose_json に対応しており、どちらも同じ内容を返します。字幕ファイルが必要な場合は、words のタイムスタンプから生成してください。

よくあるエラー

HTTPエラーメッセージ原文原因対処方法
404A voice with voice_id 'Rachel' was not found.voice にボイス名または存在しない ID を渡したボイス ID を使う
400unsupported ElevenLabs response_format: aac対応していないフォーマットmp3、opus、wav、pcm のいずれかに変更する
400Unsupported response_format 'srt'. Only 'json' and 'verbose_json' are supported on this gateway文字起こしで text、srt、vtt を指定したjson に変更する

その他のエラーは Audio Speech API と Audio Transcriptions API を参照してください。

公式ドキュメント

よくある質問

ElevenLabs の voice には何を指定しますか?

ボイス ID(20 文字)を指定します。例:21m00Tcm4TlvDq8ikWAM。ElevenLabs のボイスライブラリで確認できます。ボイス名(例:Rachel)や OpenAI の alloy を指定すると 404 voice_id not found が返ります。

Eleven v4 が対応している音声フォーマットは?

mp3(デフォルト)、opus、wav、pcm です。aac と flac には対応していません。

Scribe v2 で話者を区別できますか?

できます。provider_options で {"elevenlabs": {"diarize": true}} を渡すと、レスポンスの words の各単語に speaker フィールド(例:speaker_0、speaker_1)が付きます。

Scribe v2 で srt 字幕を直接出力できますか?

できません。response_format は json と verbose_json のみに対応しています。レスポンスの words にある start と end のタイムスタンプから字幕を生成してください。

ElevenLabs の音声はどのように課金されますか?

Eleven v4 は入力文字数、Scribe v2 は音声の長さで課金されます。単価はモデルページを参照してください。

最終更新日