OpenAI는 2027년 1월 6일 API에서 tts-1, tts-1-hd, gpt-4o-mini-tts를 제거합니다.출처

OpenAI TTS 대안: SDK는 그대로, base URL만 변경

Fish Audio는 동일한 /v1/audio/speech 호출을 지원합니다. OpenAI 클라이언트를 Fish로 연결하고 무료 모델을 선택하면, OpenAI의 TTS 모델이 사라진 뒤에도 음성 합성 코드가 계속 동작합니다.

신용카드가 필요 없습니다. fish-audio/s2.1-pro-free의 요금은 2026년 11월 30일까지 $0입니다.

두 줄로 클라이언트 전환

base_url과 api_key로 공식 OpenAI SDK가 Fish를 가리키게 합니다. 호출에서는 Fish 모델과 음성을 지정합니다. 새 코드는 잔액이 $0인 새 계정에서도 그대로 실행됩니다.

import os from openai import OpenAI client = OpenAI(추가된 줄:     base_url="https://api.fish.audio/compat/v1",삭제된 줄:     api_key=os.environ["OPENAI_API_KEY"],추가된 줄:     api_key=os.environ["FISH_API_KEY"],) with client.audio.speech.with_streaming_response.create(삭제된 줄:     model="tts-1",삭제된 줄:     voice="alloy",추가된 줄:     model="fish-audio/s2.1-pro-free",추가된 줄:     voice="",    input="Hello, world!",    response_format="mp3",) as response:    response.stream_to_file("speech.mp3")
import fs from "node:fs";import OpenAI from "openai"; const client = new OpenAI({추가된 줄:   baseURL: "https://api.fish.audio/compat/v1",삭제된 줄:   apiKey: process.env.OPENAI_API_KEY,추가된 줄:   apiKey: process.env.FISH_API_KEY,}); const response = await client.audio.speech.create({삭제된 줄:   model: "tts-1",삭제된 줄:   voice: "alloy",추가된 줄:   model: "fish-audio/s2.1-pro-free",추가된 줄:   voice: "",  input: "Hello, world!",  response_format: "mp3",});fs.writeFileSync("speech.mp3", Buffer.from(await response.arrayBuffer()));
삭제된 줄: curl https://api.openai.com/v1/audio/speech \삭제된 줄:   -H "Authorization: Bearer $OPENAI_API_KEY" \추가된 줄: curl https://api.fish.audio/compat/v1/audio/speech \추가된 줄:   -H "Authorization: Bearer $FISH_API_KEY" \  -H "Content-Type: application/json" \  -d '{삭제된 줄:     "model": "tts-1",삭제된 줄:     "voice": "alloy",추가된 줄:     "model": "fish-audio/s2.1-pro-free",추가된 줄:     "voice": "",    "input": "Hello, world!",    "response_format": "mp3"  }' \  --output speech.mp3

공식 OpenAI SDK(pip install openai 또는 npm install openai)와 FISH_API_KEY에 설정한 Fish API 키가 필요합니다.

그 밖의 변경 사항

  • voice에는 Fish 음성 ID를 지정합니다. nova 같은 OpenAI 프리셋 이름은 400을 반환하며, 빈 문자열을 전달하면 모델의 기본 음성이 사용됩니다.
  • Fish에서 response_format의 기본값은 mp3가 아니라 pcm입니다. 명시적으로 설정하세요.
  • instructions는 지원되지 않으며 400을 반환합니다. 대신 [whispering] 같은 말투 지시를 텍스트에 직접 넣으세요.
  • tts-1, tts-1-hd, gpt-4o-mini-tts도 계속 모델 이름으로 사용할 수 있습니다. 이 이름들은 유료 모델인 fish-audio/s2.1-pro에 매핑됩니다.

음성 선택

OpenAI의 프리셋 음성은 Fish에 없습니다. Fish 음성 라이브러리에 있는 음성이나 직접 복제한 음성의 ID를 전달하세요. 빈 문자열을 전달하면 모델의 기본 음성이 사용됩니다.

Hannah · 음성 라이브러리

voice="9a9cf47702da476aa4629e2506d4a857"
음성 라이브러리 둘러보기

요금

S2.1-Pro는 입력 텍스트의 UTF-8 바이트 수로 과금됩니다. 영어는 한 글자가 1바이트이므로 tts-1과 요금이 같고 tts-1-hd의 절반입니다. 중국어, 일본어, 한국어 문자는 대부분 3바이트입니다.

모델가격
Fish Audiofish-audio/s2.1-pro-free2026년 11월 30일까지 공정 이용 정책 범위 내에서 무료입니다. S2.1-Pro와 같은 모델이지만 지연 시간(TTFA) 보장과 DPA가 제공되지 않으며, 요청이 모델 개선에 사용될 수 있습니다.$0.00 / 100만 UTF-8 바이트
Fish Audiofish-audio/s2.1-pro프로덕션용. 종량제이며 구독이 필요 없습니다.$15.00 / 100만 UTF-8 바이트
OpenAItts-12027년 1월 6일 OpenAI API에서 제거됩니다.$15.00 / 100만 자
OpenAItts-1-hd2027년 1월 6일 OpenAI API에서 제거됩니다.$30.00 / 100만 자

공식 요금 페이지 기준 가격(2026년 10월 29일 확인):Fish AudioOpenAI

자주 묻는 질문

OpenAI의 지원 중단 안내 페이지에는 tts-1, tts-1-hd, gpt-4o-mini-tts가 2027년 1월 6일 API에서 제거될 예정으로 나와 있습니다. OpenAI가 권장하는 대체 모델인 gpt-realtime-2.1-mini는 /v1/audio/speech가 아니라 Realtime API에서 동작합니다.

2027년 1월 6일 전에 전환하세요

무료 키를 만들고, 두 줄을 바꾸고, 음성 기능을 계속 제공하세요.