Skip to Content

ElevenLabs 시리즈

ElevenLabs의 음성 모델로 모두 두 가지입니다. Eleven v4는 음성 합성용, Scribe v2는 음성 전사용이며, 둘 다 OpenAI 호환 오디오 API로 호출합니다.

모델 ID(호출 시 그대로 복사)
Eleven v4(음성 합성)elevenlabs/eleven_v4POST /v1/audio/speech
Scribe v2(음성 전사)elevenlabs/scribe_v2POST /v1/audio/transcriptions

API의 공통 파라미터는 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_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.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는 오디오 길이 기준으로 과금되며, 단가는 모델 페이지를 참고하십시오.

마지막 업데이트