Skip to Content
模型用法ElevenLabs

ElevenLabs 系列

ElevenLabs 的語音模型,共兩款: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.io/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_options透傳 ElevenLabs 專有參數,如 {"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.io/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 按音訊時長計費,單價見模型頁。

最後更新於