본문으로 건너뛰기

Audio (Speech & Transcription)

텍스트 음성 변환(TTS)과 음성 받아쓰기(STT)를 제공합니다. OpenAI Audio API와 호환됩니다.

프롬프트로 음악을 생성하는 POST /v1/audio/generations는 별도 문서 /docs/api/music에서 다룹니다.

텍스트 음성 변환#

POST/v1/audio/speech

POST /v1/audio/speech는 텍스트를 음성 오디오로 변환합니다. 요청에는 plm_로 시작하는 API 키가 필요합니다.

파라미터타입필수설명
modelstring선택TTS 모델 ID. 기본값 tts-1.
inputstring필수변환할 텍스트. 최대 8,000자.
voicestring선택음성 종류. 기본값 alloy.
response_formatstring선택오디오 형식(예: mp3).
curl
curl https://apirouter.pleum.ai/v1/audio/speech \
  -H "Authorization: Bearer $PLEUM_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "tts-1",
    "input": "Hello from PleumRouter.",
    "voice": "alloy",
    "response_format": "mp3"
  }' \
  --output out.mp3
OpenAI SDK (Python)
from openai import OpenAI

client = OpenAI(api_key="plm_...", base_url="https://apirouter.pleum.ai/v1")

response = client.audio.speech.create(
    model="tts-1",
    input="Hello from PleumRouter.",
    voice="alloy",
    response_format="mp3",
)
response.write_to_file("out.mp3")
OpenAI SDK (TypeScript)
import OpenAI from "openai";
import fs from "node:fs";

const client = new OpenAI({ apiKey: "plm_...", baseURL: "https://apirouter.pleum.ai/v1" });

const response = await client.audio.speech.generate({
  model: "tts-1",
  input: "Hello from PleumRouter.",
  voice: "alloy",
  response_format: "mp3",
});

fs.writeFileSync("out.mp3", Buffer.from(await response.arrayBuffer()));
이 엔드포인트의 응답 본문은 JSON이 아니라 원시 오디오 바이트입니다. Content-Type은 형식에 따라 audio/mpeg(mp3) 등으로 설정됩니다. 비용은 본문이 아니라 응답 헤더 X-Cost-Krw·X-Cost-Usd로 반환됩니다. 과금은 입력 글자 수 기준입니다.

받아쓰기#

POST/v1/audio/transcriptions

POST /v1/audio/transcriptions는 오디오 파일을 텍스트로 받아씁니다. 요청에는 plm_로 시작하는 API 키가 필요합니다.

이 엔드포인트는 multipart/form-data로 요청합니다 — JSON 본문이 아니라 파일을 폼 필드로 업로드합니다.

파라미터타입필수설명
filefile필수받아쓸 오디오 파일. 폼 필드로 업로드.
modelstring선택받아쓰기 모델 ID(폼 필드). 기본값 whisper-1.
curl
curl https://apirouter.pleum.ai/v1/audio/transcriptions \
  -H "Authorization: Bearer $PLEUM_API_KEY" \
  -F file=@speech.mp3 \
  -F model=whisper-1
OpenAI SDK (Python)
from openai import OpenAI

client = OpenAI(api_key="plm_...", base_url="https://apirouter.pleum.ai/v1")

with open("speech.mp3", "rb") as f:
    response = client.audio.transcriptions.create(model="whisper-1", file=f)
print(response.text)
OpenAI SDK (TypeScript)
import OpenAI from "openai";
import fs from "node:fs";

const client = new OpenAI({ apiKey: "plm_...", baseURL: "https://apirouter.pleum.ai/v1" });

const response = await client.audio.transcriptions.create({
  model: "whisper-1",
  file: fs.createReadStream("speech.mp3"),
});

console.log(response.text);

응답은 받아쓴 text와 사용된 model, 그리고 cost(원화 비용·환율·마크업)를 담은 JSON입니다. 과금은 오디오 길이(분) 기준입니다.

200 OK
{
  "text": "Hello from PleumRouter.",
  "model": "whisper-1",
  "cost": {
    "usd": 0.006,
    "krw": 8,
    "fx_rate": 1525.0,
    "markup_rate": 0.0
  }
}