TTS, 이제 '모델 하나 더 붙이는 일'이 됐어요

예전에 음성 합성 붙이려면 TTS 전용 SDK 따로 익히고, 인증 따로 붙이고, 사용량은 또 어디서 보는지 헷갈렸죠. 이번에 Vercel AI Gateway에 google/gemini-3.8-flash-tts와 google/gemini-3.8-flash-lite-tts가 정식으로 올라오면서, 그 삽질이 꽤 줄었어요.

핵심만 먼저 정리할게요.

  • 100개 이상 언어 지원, 장문 낭독(long-form narration) 가능
  • 자연어 프롬프트로 톤, 속도, 감정 연기(acting cue), 억양, 캐릭터 보이스까지 제어
  • 2인 대화(two-speaker dialogue) 지원 → 팟캐스트 스타일 자동 생성 가능
  • AI Gateway에서 사용량/비용 추적, 라우팅 규칙, BYOK(자체 키)까지 한 곳에서 관리

즉, LLM·이미지·임베딩 붙이던 그 파이프라인에 음성까지 같은 인터페이스로 들어온다는 얘기예요. 근거자료는 Vercel 공식 체인지로그에서 확인하실 수 있어요.

Developer generating multilingual speech audio files using Gemini Flash TTS on AI Gateway Algorithm Concept Visual

일단 코드부터 — 30초 안에 wav 뽑기

AI SDK의 experimental_generateSpeech를 쓰면 이게 전부예요. 별도 TTS SDK 안 배워도 됩니다.

// AI SDK의 실험적 음성 생성 API와 Node 파일 시스템 모듈을 불러옵니다
import { experimental_generateSpeech as generateSpeech } from 'ai';
import { writeFile } from 'node:fs/promises';

// Flash-Lite TTS로 한국어 음성을 생성합니다
const result = await generateSpeech({
  model: 'google/gemini-3.8-flash-lite-tts',
  text: '오디오 에디션에 오신 것을 환영합니다.',
  voice: 'Kore',           // 보이스 프리셋 지정
  outputFormat: 'wav',     // 출력 포맷 (wav 등)
});

// 생성된 오디오 바이너리를 파일로 저장합니다
await writeFile('speech.wav', result.audio.uint8Array);

result.audio.uint8Array가 그대로 파일로 떨어지니까, S3 업로드든 스트리밍 응답이든 그 위에 얹으면 끝이에요.

Flash-Lite vs Flash, 언제 뭘 쓰냐

  • Flash-Lite TTS: 대량 생성용. 톤·페이싱·라인 단위 전달 제어가 필요할 때. 비용 효율 우선이면 이쪽.
  • Flash TTS: 자연어 프롬프트로 캐릭터 디자인까지. 액센트, 감정 리액션, 대화체 연기가 필요할 때.

둘 다 Flash-Lite TTS 플레이그라운드나 Flash TTS 플레이그라운드에서 바로 들어볼 수 있어요. 세팅 방법은 speech quickstart와 text-to-speech 가이드에 정리돼 있습니다.

AI Gateway dashboard showing Gemini 3.8 Flash TTS model usage and cost tracking for speech generation Development Concept Image

실무에서 조심해야 할 부분

좋다고 다 던져 넣기 전에, 몇 가지는 미리 알고 가는 게 좋아요.

  1. experimental_ 접두사가 붙어 있다는 건 API 시그니처가 바뀔 수 있다는 뜻이에요. 프로덕션에 넣는다면 얇은 래퍼(wrapper)로 감싸서 교체 비용을 줄이세요.
  2. 장문 낭독은 청크 단위로 쪼개는 게 안전합니다. 한 번에 몇 만 자 던지면 지연 시간과 비용이 같이 튀어요.
  3. 보이스 일관성: 자연어 프롬프트로 캐릭터를 만들면 시리즈물에서 톤이 흔들릴 수 있어요. 프롬프트를 상수화해서 버전 관리하세요.
  4. 비용 추적은 AI Gateway 대시보드에서 요청 단위로 나옵니다. 모델별로 태그 달아두면 나중에 회계가 편해요.
  5. BYOK를 쓰면 자체 프로바이더 키로 라우팅할 수 있어서, 조직 정책상 외부 게이트웨이를 못 쓰는 환경에서도 우회로가 생깁니다.

특히 국내 SI/엔터프라이즈 환경에서는 음성 데이터가 개인정보로 묶이는 경우가 많아서, TTS 출력물의 저장 위치와 보존 기간을 처음부터 정해두는 걸 권합니다. 데모는 쉽지만 컴플라이언스는 별개거든요.

Cloud API architecture diagram connecting AI Gateway to Gemini TTS models for text-to-speech routing Developer Related Image

그래서, 지금 붙일 만한가?

결론부터 말하면 **'음성 기능이 필요했지만 TTS SDK 학습 비용 때문에 미뤘던 팀'**에게는 지금이 타이밍이에요. 이미 AI Gateway를 쓰고 있다면 모델 이름만 추가하는 수준이고, 아니라면 게이트웨이 하나로 LLM·이미지·음성을 통합 관리하는 이득이 꽤 큽니다.

다음 단계로는 이 순서를 추천합니다.

  1. Flash-Lite TTS로 짧은 낭독 파이프라인 먼저 뚫어보기
  2. 2인 대화 기능으로 팟캐스트/오디오 브리핑 프로토타입
  3. Flash TTS의 자연어 프롬프트로 브랜드 보이스 정의
  4. AI Gateway 라우팅 규칙으로 비용 상한선 걸기

함께 보면 좋은 글

음성 합성은 이제 '특별한 기능'이 아니라 파이프라인의 기본 부품이 되고 있어요. 미리 손에 익혀두면 다음 프로젝트에서 분명히 써먹습니다. 😄

본 콘텐츠는 신뢰할 수 있는 출처를 바탕으로 AI 도구를 활용하여 초안이 작성되었으며, 편집자의 검토를 거쳐 발행되었습니다. 전문가의 조언을 대체하지 않습니다.