FutureInfra 무료로 시작
문서

AI 보이스

글을 목소리로 읽어 주는 음성 합성입니다. 목소리 163개(한국어 127개·영어 전용 36개) 가운데 고르고, 감정·빠르기·음높이·음량을 어느 목소리든 같은 방식으로 조절합니다. 소리는 만들어지는 대로 흘려보내 첫 소리가 0.3~0.6초 안에 나옵니다.

가장 짧은 예

목소리 이름(key)과 읽을 문장만 주면 mp3 가 옵니다. 모델은 목소리가 알아서 정합니다.

curl -X POST https://futureinfra.ai/v1/ai/audio/speech \
  -H "Authorization: Bearer $FI_KEY" -H "Content-Type: application/json" \
  -d '{"voice":"fish-hayoon","input":"안녕하세요, 퓨쳐인프라입니다."}' \
  --output hello.mp3
목소리 목록과 10초 미리듣기는 콘솔 AI 보이스 메뉴에서 볼 수 있습니다. 카드의 API 예시 복사를 누르면 위 명령이 그 목소리로 채워집니다.

목소리 고르기

GET /v1/ai/voices — 조건을 주면 서버가 거르고, q 는 설명·태그·용도에서 점수로 줄 세웁니다.

# 한국어 여성, 차분한 오디오북용, 첫 소리 0.7초 안, 3개만
GET /v1/ai/voices?language=ko&gender=female&q=오디오북 차분&maxFirstSoundMs=700&limit=3

# 무료로도 쓸 수 있는 목소리를 첫 소리 빠른 순으로
GET /v1/ai/voices?free=true&sort=fast
조건값
q찾는 낱말(예: 광고 밝은, 뉴스, 명상). 어울리지 않는 용도에 걸리면 뒤로 밀립니다
gender · ageBandfemale·male / 20대·30대·40대·50대 이상
languageko(한국어 목소리) · en(영어 목소리 — Deepgram 은 영어 전용, ElevenLabs 는 한국어·영어 둘 다)
mood · use분위기 7가지, 용도 8가지(응답의 filters 에 목록이 있습니다)
emotion그 감정을 모델이 직접 받는 목소리만
pitchLevel · pace음높이(낮음~높음) · 말 빠르기(느림~빠름) — 같은 성별 목소리 사이의 위치
maxFirstSoundMs평균 첫 소리가 이 값(ms) 이하. 실시간 대화라면 600 안팎
free · maxKrwPer1k무료 모델로도 되는 목소리 · 1,000자당 값 상한
sort · limitfast(첫 소리 빠른 순) · cheap(싼 순) · 개수

목소리마다 오는 값 가운데 고를 때 쓰는 것:

  • description — 소리를 직접 듣고 쓴 설명(음높이·음색·빠르기·발음, 어울리는 장면). useCases·notFor 는 어울리는 곳과 안 어울리는 곳
  • firstSoundMs — 요청부터 첫 소리까지 걸린 시간(공개 주소로 3번 잰 가운데 값)
  • pitchHz·pitchLevel·pace·intonation — 소리 분석 값
  • emotionSupport — 이 목소리의 모델이 감정 16가지를 어떻게 받는지(아래 "결과 확인" 참고)
  • directionSupport — 자유 연기 지시를 모델이 직접 받는지
  • krwPer1kChars·freeModel — 1,000자당 값, 무료로 합성할 때 쓸 모델 이름

조절 — 모든 목소리 공통

같은 이름의 값을 어느 목소리에 줘도 됩니다. 모델이 직접 못 하는 것은 우리가 받은 소리를 다듬어 맞춥니다.

값범위설명
emotion16가지happy·excited·calm·tender·confident·sad·moved·angry·surprised·fearful·nervous·embarrassed·disgusted·sarcastic·whisper (neutral=기본)
intensitylow·medium·high감정 세기
direction200자자유 연기 지시(예: "라디오 진행자처럼 다정하게"). 한국어로 써도 됩니다
speed0.5~2말 빠르기 배율
pitch-12~12음높이(반음). 목소리 결은 그대로 둡니다
volume-20~10음량(dB)
normalizetrue·"exact"·false기본 켬 — 어떤 목소리든 같은 크기(-16 LUFS). "exact" 는 문장마다 정밀하게 맞춥니다
trimSilencetrue·false앞뒤 무음 자르기
response_format · sampleRatemp3·wav·ogg·pcm · 16000~48000형식과 샘플레이트
model선택보통은 비워 둡니다. freeModel 을 주면 무료로 합성합니다
{"voice":"gemini-kore","input":"드디어 합격했어요!",
 "emotion":"moved","intensity":"high","speed":0.95,"pitch":1}

문장 속 괄호로도 됩니다

[ ] < > ( ) 어느 괄호든, 영어든 한국어든 같은 뜻으로 읽고 괄호는 소리 내어 읽지 않습니다.

"[속삭이듯] 비밀인데요, [웃음] 사실은 제가 만들었어요."
"<happy> 오늘도 좋은 하루!"
"(천천히) 한 번 더 말씀드릴게요. [쉼] 준비되셨나요?"
"[라디오 진행자처럼] 오늘의 첫 곡입니다."
  • 감정 낱말(기쁘게·차분하게·긴장해서…) → emotion
  • 빠르기 낱말(천천히·빠르게) → speed
  • 소리 효과([웃음]·[한숨]·[쉼]·[숨]) → 그 자리에 모델마다 맞는 표기
  • 그 밖의 괄호 속 문장 → direction

결과 확인 — X-Voice-Controls

응답 헤더에 조절이 실제로 어떻게 들어갔는지 JSON(URL 인코딩)으로 옵니다. 조용히 무시하지 않습니다.

X-Voice-Controls: {"emotion":"approx","emotionAs":"fearful","speed":"verified",
                   "post":{"pitch":1,"normalize":"fixed","stream":true}}
값뜻
verified들어서 확인한 방식으로 적용
best_effort모델 공식 방식으로 적용(세기는 모델에 따라 다름)
approx그 감정 대신 가장 비슷한 감정으로(emotionAs)
unsupported이 모델에는 적용할 방법이 없음 — 다른 목소리를 고르세요
post우리가 소리를 다듬은 내용(음높이·빠르기·음량·음량 맞춤·무음 자르기·흘려보내기)

모델마다 잘하는 것

값은 1,000자 기준, 첫 소리는 목소리들의 가운데 값입니다(2026년 9~10월 실측).

모델목소리첫 소리1,000자강점
Fish Audio한국어 180.28초약 27원 · 무료 모델 있음가장 빠름. 감정 폭이 넓고 연기 지시를 받습니다
MiniMax한국어 490.51초약 107원캐릭터 목소리가 많습니다. 감정 7가지를 직접 받습니다
xAI Grok한국어 50.53초약 27원속삭임·세기 조절이 또렷합니다
Deepgram영어 360.61초무료영어 억양(미국·영국 등)이 다양합니다
Google Gemini한국어 30약 3.8초약 58원 · Flash-Lite 더 쌈연기 지시를 가장 잘 따릅니다. 긴 낭독·녹음용
Qwen Audio 3.0한국어 4약 0.7초약 23~31원차분한 안내·아나운서 톤. 8개 언어 모두 또렷합니다
ElevenLabs한국어·영어 21약 1.0초약 70원(v4 Turbo) · v4·v3 약 140원웃음·한숨·속삭임을 문장 속 꼬리표로 직접 받습니다. 한 목소리로 한국어·영어를 모두 읽습니다
실시간 대화처럼 첫 소리가 중요하면 Fish·MiniMax·Grok, 미리 만들어 두는 낭독·광고라면 Gemini 가 잘 맞습니다. 무료 모델은 시험과 적은 양에 알맞습니다.

말할 수 있는 언어

모델마다 8개 언어 문장을 합성해 받아쓰기로 확인했습니다(2026년 9~10월). 목록의 speaks 값이고, ?speaks=ja 로 거를 수 있습니다.

모델한국어영어일본어중국어스페인어프랑스어독일어베트남어
xAI Grok✓✓✓✓✓✓✓✓
MiniMax✓✓✓✓✓✓✓✓
Google Gemini · Flash-Lite✓✓✓✓✓✓✓✓
Qwen Audio 3.0✓✓✓✓✓✓✓✓
ElevenLabs v4 · v3 · Flash v2.5✓✓✓✓✓✓✓✓
ElevenLabs Multilingual v2 · Turbo v2.5✓✓✓✓✓✓✓—
Fish Audio✓✓✓✓✓✓✓—
Deepgram—✓——✓△✓—
억양은 목소리 본래 언어를 따릅니다. 한국어 목소리로 영어를 읽으면 한국어 억양이 조금 남습니다 — 영어가 중심이면 영어 목소리(Deepgram)를 고르세요.

프로그램에서 — 받는 대로 재생

응답은 만들어지는 대로 흘러옵니다. 파일로 받아도 되고, 받는 즉시 재생해도 됩니다.

# Python
import requests
r = requests.post("https://futureinfra.ai/v1/ai/audio/speech",
    headers={"Authorization": f"Bearer {KEY}"},
    json={"voice": "minimax-korean-calmlady", "input": "안녕하세요", "emotion": "tender"},
    stream=True)
with open("out.mp3", "wb") as f:
    for chunk in r.iter_content(4096):
        f.write(chunk)

// JavaScript (브라우저)
const r = await fetch("/v1/ai/audio/speech", { method: "POST",
  headers: { Authorization: "Bearer " + KEY, "Content-Type": "application/json" },
  body: JSON.stringify({ voice: "grok-eve", input: "안녕하세요", pitch: 2 }) });
new Audio(URL.createObjectURL(await r.blob())).play();

AI 에이전트에서 — MCP

ai.voices 도구가 위 조건을 그대로 받습니다. 에이전트가 설명을 읽고 목소리를 고른 뒤 합성합니다.

ai.voices { "q": "광고 밝은", "language": "ko", "maxFirstSoundMs": 700, "limit": 5 }