Skip to Content
API 레퍼런스OpenAI 호환 프로토콜Audio Speech

Audio Speech API

텍스트를 음성으로 변환합니다. OpenAI의 POST /v1/audio/speech와 호환되며, 응답 본문은 JSON이 아니라 오디오 파일(바이너리) 그 자체입니다.

시리즈모델설명
ElevenLabselevenlabs/eleven_v4ElevenLabs 참고
Gemini TTSgoogle/gemini-3.8-flash-tts 등Gemini TTS 참고

voice, response_format 등 파라미터의 허용 값은 모델마다 다르므로 시리즈 페이지를 기준으로 하십시오.

빠른 시작

base_urlhttps://api.ofox.io/v1
엔드포인트https://api.ofox.io/v1/audio/speech
모델 IDgoogle/gemini-3.8-flash-tts
speech.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="google/gemini-3.8-flash-tts", voice="Kore", input="안녕하세요, OfoxAI 음성 합성을 이용해 주셔서 감사합니다.", response_format="wav", ) as resp: resp.stream_to_file("speech.wav")

요청 파라미터

model필수string

모델 ID입니다. 위 표를 참고하십시오.

input필수string

합성할 텍스트입니다. 비어 있으면 400이 반환됩니다.

voicestring

음성입니다. Gemini TTS에서는 필수이며 Google의 음성 이름(예: Kore)을 지정합니다. ElevenLabs에서는 음성 ID(예: 21m00Tcm4TlvDq8ikWAM)를 지정합니다. OpenAI의 음성 이름(예: alloy)은 두 시리즈 모두에서 사용할 수 없습니다.

오디오 형식입니다. 허용 값은 모델마다 다릅니다. Gemini TTS는 wav, pcm을, ElevenLabs는 mp3, opus, wav, pcm을 지원합니다. 지원하지 않는 형식을 전달하면 400이 반환됩니다.

어조와 스타일에 대한 지시입니다(예: “밝은 어조로 읽어 주세요”). Gemini TTS에 적용됩니다.

언어 코드입니다(예: cmn-CN(Gemini TTS), zh(ElevenLabs)). 생략하면 모델이 텍스트를 보고 판단합니다.

stream_formatstring· 허용 값sse

sse를 전달하면 Server-Sent Events로 오디오 청크를 스트리밍합니다. Gemini TTS에 적용됩니다.

공급자 전용 파라미터로, 해당 공급자에 그대로 전달됩니다. 예: ElevenLabs의 {"elevenlabs": {"voice_settings": {...}}}. 각 시리즈 페이지를 참고하십시오.

응답

성공하면 HTTP 200이 반환되며, 응답 본문은 오디오 파일이고 Content-Type은 형식에 대응합니다.

response_formatContent-Type
mp3audio/mpeg
wavaudio/wav
opusaudio/ogg
pcmaudio/L16;rate=<샘플링 레이트>;channels=1, 파일 헤더가 없는 16비트 PCM

응답 본문을 그대로 파일에 쓰십시오. 오류 시에는 응답이 JSON이고 Content-Type이 application/json이므로, 오류 메시지를 오디오 파일로 저장하지 않도록 먼저 상태 코드를 확인하십시오.

자주 발생하는 오류

HTTP오류 원문원인해결 방법
400model and input are required.model이 없거나 input이 비어 있음파라미터를 채움
400voice is required for speech completionGemini TTS에서 voice를 전달하지 않음Kore 같은 음성 이름을 전달
400unsupported Gemini response_format: mp3해당 모델이 선택한 형식을 지원하지 않음시리즈 페이지에 나열된 형식을 사용
400Request contains an invalid argument.Gemini TTS의 음성 이름이 존재하지 않음유효한 음성 이름을 사용
404A voice with voice_id 'alloy' was not found.ElevenLabs의 음성 ID가 존재하지 않음유효한 음성 ID를 사용
400 endpoint_not_supportedModel 'openai/gpt-5.4' does not support the /v1/audio/speech endpoint on this platform.선택한 모델이 음성 합성 모델이 아님위 표의 모델을 사용

전체 오류 코드 설명은 오류 처리를 참고하십시오.

마지막 업데이트