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인 새 계정에서도 그대로 실행됩니다.
speech.py
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를 전달하세요. 빈 문자열을 전달하면 모델의 기본 음성이 사용됩니다.
요금
S2.1-Pro는 입력 텍스트의 UTF-8 바이트 수로 과금됩니다. 영어는 한 글자가 1바이트이므로 tts-1과 요금이 같고 tts-1-hd의 절반입니다. 중국어, 일본어, 한국어 문자는 대부분 3바이트입니다.
공식 요금 페이지 기준 가격(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일 전에 전환하세요
무료 키를 만들고, 두 줄을 바꾸고, 음성 기능을 계속 제공하세요.