소개
발표를 준비할 때, 어떻게 시작하시나요?
저는 주제를 정하고 어느정도의 스토리를 만든 후 그에 맞게 PPT를 만들어 발표를 준비했었습니다.
그러다보면 항상 PPT를 수정해야하는 경우가 많았습니다.
스토리라인이 맘에 들지 않을 때도 있었고, 발표 연습을 하다보면 뭔가 어색하거나 논리적으로 맞지 않는 경우도 많더라구요.
그래서 이번에는 주제를 정하고 스토리를 짠 후 대본을 만들어 먼저 "들어보는 것"이 어떨까라는 생각에서 이번 시도를 해보게 되었습니다.
AI 도구를 활용하면 음성 파일을 직접 생성하는 것도 어렵지 않기 때문에, 발표 대본을 작성하고 바로 TTS로 들어보며 어색한 부분을 고쳐가며 PPT와 대본을 완성해가는 워크플로우를 만들어봤습니다 😊
진행 방법
🎤 1. Gemini 2.5 Flash Preview TTS 로 발표 대본 만들기
Google의 Gemini와 대화하듯 발표 주제를 정하고 대본 초안 생성
이후 결과물을 바탕으로 수정 보완 반복하여 1차 대본 완성
🔊 2. AI Studio의 TTS로 음성 파일 생성
Google AI Studio 접속 https://aistudio.google.com/generate-speech?hl=ko
다양한 voice 중에서 적절한 톤 선택 → 대본 입력 후 미리 듣기 & 다운로드 가능
발표 스타일에 따라 더 진중하거나 밝은 목소리를 선택
⚙️ 3. n8n으로 자동화
발표 대본을 입력하면 AI Studio API를 통해 음성 파일을 생성하는 n8n 워크플로우 구성
gemini TTS을 이용하려면 google AI studio API가 필요합니다.
TTS_body_maker 코드에서 voiceName: "본인이 원하는 음성 선택하면 됨"
return { json_body: { model: "gemini-2.5-flash-preview-tts", contents: [ { parts: [ { text: $json.text } ] } ], generationConfig: { responseModalities: ["AUDIO"], speechConfig: { voiceConfig: { prebuiltVoiceConfig: { voiceName: "Sadaltager" // 공식적으로 한국어 예시로 제공되는 목소리 } } } } } };TTS URL
https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash-preview-tts:generateContentTTS _file 코드
// Base64 인코딩된 PCM 데이터를 받아 WAV 포맷으로 변환하고 binary로만 반환 const base64 = $json.candidates[0].content.parts[0].inlineData.data; const pcm = Buffer.from(base64, 'base64'); // WAV 헤더 설정 const sampleRate = 24000; // <-- 이 값을 24000으로 변경해 보세요. const channels = 1; const bitDepth = 16; const byteRate = sampleRate * channels * bitDepth / 8; // sampleRate에 따라 자동 계산됩니다. const blockAlign = channels * bitDepth / 8; const dataSize = pcm.length; const riffSize = 36 + dataSize; // 아래 코드는 수정할 필요 없습니다. const header = Buffer.alloc(44); header.write('RIFF', 0); header.writeUInt32LE(riffSize, 4); header.write('WAVE', 8); header.write('fmt ', 12); header.writeUInt32LE(16, 16); // Subchunk1Size header.writeUInt16LE(1, 20); // AudioFormat (PCM) header.writeUInt16LE(channels, 22); header.writeUInt32LE(sampleRate, 24); header.writeUInt32LE(byteRate, 28); header.writeUInt16LE(blockAlign, 32); header.writeUInt16LE(bitDepth, 34); header.write('data', 36); header.writeUInt32LE(dataSize, 40); // WAV 파일 완성 const wavBuffer = Buffer.concat([header, pcm]); return [{ json: {}, binary: { data: { data: wavBuffer.toString('base64'), mimeType: 'audio/wav', fileName: 'tts.wav' } } }];나만의 발표 TTS 생성기 완성 🎉
결과와 배운 점
Gemini TTS 음성
ElevenLabs
눈으로 볼 땐 괜찮아 보였던 문장도, 소리로 들으면 어색한 흐름이 확연히 드러남
Gemini의 대본 생성은 빠르고 유용하며, TTS 음질도 훌륭함
개인적으로는 무료 기준에서 Eleven Labs보다 더 자연스럽게 느껴졌음 하지만 본인 음성을 만들려면 Eleven Labs 사용해야함
자동화까지 해두니, 다음엔 훨씬 간편하게 반복 사용 가능하나 굳이 자동화를 할 필요는 없는 것 같습니다. 그냥 AI studio에서 그냥 하면 휠씬 편함 바로 대본 수정도 가능하고 ^^
음성 생성 속도는 eleven labs가 휠씬 빠름
도움 받은 글 (옵션)
Google AI Studio: https://aistudio.google.com/generate-speech?hl=ko