gemini-31-flash-tts의 오디오 태그, 씬 디렉션, 캐릭터 프로파일 기능을 조합하면 기존 TTS와는 차원이 다른 음성 앱을 만들 수 있다. 이 튜토리얼에서는 세 가지 실용적인 앱을 파이썬으로 구현하며 핵심 기능을 직접 익힌다.
시작 전 준비
Google AI Studio에서 Gemini API 키를 발급한다. Vertex AI 사용자는 Enterprise 채널을 통해 미리보기 접근이 가능하다.
pip install google-genaiGemini 3.1 Flash TTS의 주요 기능 요약:
| 기능 | 설명 |
|---|---|
| 오디오 태그(Audio Tags) | [흥분된 목소리로], [속삭이듯] 같은 자연어 무대 지시 |
| 씬 디렉션(Scene Directions) | 스크립트 전체의 환경·서사 컨텍스트 설정 |
| 캐릭터 프로파일 | 캐릭터별 속도·톤·억양·감정 프로파일 지정 |
| 인라인 피벗 태그 | 한 대화 중간에 감정을 즉시 전환 |
| SynthID | Google DeepMind의 보이지 않는 음성 워터마크 자동 삽입 |
앱 1: 감성 오디오북 내레이터
오디오 태그를 활용해 같은 텍스트를 감정이 실린 내레이션으로 읽는 앱이다.
import google.genai as genai
import wave, struct
client = genai.Client(api_key="YOUR_API_KEY")
script = """
[조용하고 신비로운 목소리로] 오래된 도서관의 먼지 쌓인 책장 뒤에서,
[갑자기 흥분된 목소리로] 그는 마침내 그것을 발견했다!
[속삭이듯, 경외감을 담아] 100년 동안 아무도 열지 않은 봉인된 편지를.
"""
response = client.models.generate_content(
model="gemini-3.1-flash-tts",
contents=script,
config={"response_modalities": ["AUDIO"]}
)
# 오디오 데이터를 WAV 파일로 저장
audio_data = response.candidates[0].content.parts[0].inline_data.data
with wave.open("audiobook.wav", "w") as wf:
wf.setnchannels(1)
wf.setsampwidth(2)
wf.setframerate(24000)
wf.writeframes(audio_data)활용 케이스: 전자책 플랫폼, 어린이 교육 앱, 언어 학습 콘텐츠
앱 2: 멀티 캐릭터 팟캐스트 생성기
씬 디렉션과 캐릭터 프로파일을 조합해 두 명 이상의 캐릭터가 서로 다른 목소리로 대화하는 팟캐스트를 생성한다.
podcast_script = """
[씬 디렉션: AI 기술 팟캐스트. 진행자는 전문적이고 차분한 어조. 게스트는 열정적이고 빠른 말투.]
진행자: [명확하고 차분하게] 오늘은 에이전트 AI의 미래에 대해 이야기해 보겠습니다.
게스트: [신나게, 빠르게] 정말 흥미로운 주제죠! 지금 우리가 목격하고 있는 건 혁명입니다!
진행자: [살짝 웃으며] 구체적으로 어떤 부분이 가장 인상적이셨나요?
게스트: [잠시 멈추고, 진지하게] 바로 멀티 에이전트 협업 능력입니다.
"""
response = client.models.generate_content(
model="gemini-3.1-flash-tts",
contents=podcast_script,
config={
"response_modalities": ["AUDIO"],
"speech_config": {
"multi_speaker_voice_config": {
"speaker_voice_configs": [
{"speaker": "진행자", "voice_config": {"prebuilt_voice_config": {"voice_name": "Kore"}}},
{"speaker": "게스트", "voice_config": {"prebuilt_voice_config": {"voice_name": "Puck"}}}
]
}
}
}
)활용 케이스: AI 팟캐스트 자동 생성, 교육용 대화 콘텐츠, 게임 NPC 대화
앱 3: 영화 예고편 보이스오버 (Google AI Studio)
코드 없이 Google AI Studio 웹 인터페이스에서 영화 예고편 스타일의 목소리를 디자인한다.
- 모델 설정: AI Studio에서
gemini-3.1-flash-tts선택 - 씬 설정: “긴장감 있는 SF 영화 예고편. 깊고 극적인 목소리.”
- 캐릭터 프로파일 완성: – 속도: 느림 (0.8x) – 톤: 낮고 권위적 – 감정 범위: 신중함 → 긴박함
- 스크립트 작성:
[깊고 신중하게] 2047년.
[점점 빠르게, 긴장감 있게] 인류는 선택의 기로에 섰습니다.
[최대한 극적으로] 이번 여름... 모든 것이 바뀐다.- 설정 내보내기: 완성된 설정을 Gemini API 코드로 즉시 내보내 재사용 가능
경쟁 모델과의 비교
| 모델 | 자연스러움 | 감정 제어 | 다국어 | 멀티 스피커 |
|---|---|---|---|---|
| Gemini 3.1 Flash TTS | ★★★★★ | ★★★★★ (프롬프트 기반) | ✅ | ✅ |
| ElevenLabs | ★★★★☆ | ★★★★☆ (사전 설정) | 제한적 | 유료 플랜 |
| OpenAI TTS | ★★★★☆ | ★★★☆☆ | ✅ | ❌ |
| omnivoice | ★★★★☆ | ★★★☆☆ | ★★★★★ (600+) | ✅ |
관련 문서
- gemini-31-flash-tts — Gemini 3.1 Flash TTS 토픽 페이지
- gemini — Google Gemini 모델 생태계 전반
- omnivoice — 600개 이상 언어를 지원하는 오픈소스 TTS 모델