Google Cloud AI API로 5분 만에 AI 캠페인 만들기
Source: Dev.to
한 달 정도 전, AI와 함께하는 빌드 시즌에 남아프리카 공화국 요하네스버그의 Google Developer Groups가 내가 진심으로 사랑하게 된 콘셉트의 빌드‑톤을 주최했습니다.
전체 콘셉트는 주방 실험실처럼 구성됐으며, 지역 소규모 비즈니스에 초점을 맞추었습니다. 남아프리카에서는 중소기업이 시장을 장악하고 있기 때문에, 포스트를 처음 읽고 보았을 때 바로 공감할 수 있었습니다.
코드를 실제 비즈니스 도구로 바꾸는 아이디어와, 함께 아이디어를 “요리”할 수 있는 빌드‑톤이 너무 좋았습니다.
다양한 재료. 다양한 맛. 다양한 도구. 엄청난 임팩트!
빌드‑톤 전에 튜토리얼을 공유하고 싶었지만, 인생과 타이밍이 달랐습니다. 그래서 노트북에 프로젝트를 두고 있지 않고, AI 기반 마케팅 워크플로를 실험하면서 누구나 따라 할 수 있는 글로 만들기로 했습니다.
하지만 기술적인 얘기로 들어가기 전에, 왜 Google Cloud AI 도구를 사용해 다국어 마케팅 파이프라인을 구축했는지 설명드리겠습니다.
여기에는 더 큰 비전이 있습니다. 단순히 자동 광고를 만드는 것이 아니라, 기업가가 자신이 파는 제품을 설명하고, 타깃 고객을 정의한 뒤, 몇 번의 클릭만으로 실제 라디오와 같은 가장 큰 광고 플랫폼에서 바로 사용할 수 있는 동적이고 다국어 마케팅 자산을 즉시 받아볼 수 있는 시스템을 만드는 것이 목표입니다.
이 프로젝트는 단지 입맛을 돋우는 전채 요리이며, 빌더들을 위한 기본선이자 출발점입니다.
AI가 남아프리카의 여러 언어로 스니커즈를 마케팅할 수 있다면, 작은 사업체가 립스틱, 스킨케어, 보석, 가구, 수공예품 등을 같은 방식으로 홍보하는 데 무엇이 방해가 될까요?
Colab Notebook Link: https://colab.research.google.com/gist/DeliaRudy/7e989ab921036166acdc43289022941a/business_story_telling.ipynb
실험실은 간단한 워크플로에 초점을 맞춥니다:
- 사용자가 자신의 제품 또는 캠페인 아이디어를 설명합니다.
- Gemini가 마케팅 메시지를 다듬습니다.
- Google Text‑to‑Speech가 이를 오디오로 변환합니다.
- 번역 도구가 캠페인을 여러 언어로 현지화합니다.
- 추가 모델이 다국어 지원을 더욱 확장합니다.
별도의 캠페인을 일일이 만들 필요 없이, 시스템이 하나의 아이디어에서 전체 다국어 경험을 생성하도록 돕습니다.
솔직히 말해, 여기서부터가 저에게 가장 흥미로운 부분이었습니다.
많은 중소기업이 겪는 가장 큰 문제는 일관된 마케팅 콘텐츠를 반복해서 만드는 것입니다.
창의성이 부족해서가 아니라, 콘텐츠 제작에 시간, 자원, 보이스오버, 편집, 현지화, 전략 등이 필요하기 때문이죠. AI는 이러한 워크플로를 크게 바꾸면서도 비용을 크게 늘리지 않습니다.
모든 캠페인은 아이디어에서 시작됩니다. 우리는 간단한 사용자 입력(예: “기술 용어를 활용한 펀을 곁들인 테크 걸들을 위한 타키스 광고”)을 받아 Vertex AI의 Gemini에 전달해 창의 파트너 역할을 시킵니다.
gemini‑2.5‑flash를 사용해 이 원시 아이디어를 15초 라디오 스크립트 형태의 전문적인 문구로 구조화합니다.
import vertexai
from vertexai.generative_models import GenerativeModel
# Initialize Vertex AI (assume PROJECT_ID and LOCATION are set)
vertexai.init(project=PROJECT_ID, location=LOCATION)
model = GenerativeModel("gemini-2.5-flash")
라디오 광고에서는 언어가 매우 중요합니다. 사람들은 자신에게 익숙한 언어를 들을 때 더 깊게 연결됩니다. 이번 실험에서는 영어, 아프리칸스어, isiZulu, isiXhosa에 초점을 맞췄습니다.
대량 텍스트에는 표준 Cloud Translation API를, 혹은 LLM인 Gemini를 사용할 수 있습니다. 노트북에서는 이를 옵션 A와 B로 구분했습니다. 제 의견으로는 Gemini를 사용하면 광고의 “분위기와 에너지”를 보존하면서 더 맥락에 맞는 창의적인 번역을 얻을 수 있습니다.
# @title Translation using the Cloud Translation API - Option A
from google.cloud import translate_v2 as translate
translate_client = translate.Client()
languages = {
'af': 'Afrikaans',
'zu': 'Zulu',
'xh': 'Xhosa'
}
llm_translations = {}
for lang_code, lang_name in languages.items():
prompt = f"Translate the following marketing script into {lang_name}. Keep the tone professional yet catchy for a South African audience: {english_script}"
response = model.generate_content(prompt)
llm_translations[lang_code] = response.text
print(f"--- {lang_name} (Gemini) ---")
print(response.text)
# @title Translation using Gemini (Vertex AI) - Option B
llm_translations = {}
for lang_code, lang_name in languages.items():
prompt = f"Translate the following marketing script into {lang_name}. Keep the tone professional yet catchy for a South African audience: '{english_script}' output should be just plain text"
response = model.generate_content(prompt)
llm_translations[lang_code] = response.text
print(f"--- {lang_name} (Gemini) ---")
print(response.text)
print()
이제 요리를 완성할 차례입니다. Google Cloud Text‑to‑Speech API를 사용해 생성된 스크립트를 고품질의 자연스러운 오디오 파일로 변환합니다.
아프리칸스어 버전을 생성하는 방법은 다음과 같습니다. 언어 코드와 음성 이름을 바꾸어 번역된 스크립트를 반복 처리하도록 함수를 감싸면 됩니다(예: 아프리칸스어는 af-ZA-Standard-A).
from google.cloud import texttospeech
def synthesize_text(text, language_code, voice_name, output_filename):
client = texttospeech.TextToSpeechClient()
synthesis_input = texttospeech.SynthesisInput(text=text)
# Select the voice parameters
voice = texttospeech.VoiceSelectionParams(
language_code=language_code,
name=voice_name
)
audio_config = texttospeech.AudioConfig(
audio_encoding=texttospeech.AudioEncoding.MP3
)
# Generate the audio
response = client.synthesize_speech(
input=synthesis_input, voice=voice, audio_config=audio_config
)
with open(output_filename, "wb") as out:
out.write(response.audio_content)
print(f"Audio content written to file '{output_filename}'")
# @title Synthesizing Afrikaans Audio
# Using the standard Cloud TTS API for Afrikaans
synthesize_text(llm_translations['af'], "af-ZA", "af-ZA-Standard-A", "ad_afrikaans.mp3")
실험을 진행하면서 흥미로운 아키텍처 문제에 부딪혔습니다. 표준 TTS API는 계속 확장되고 있지만, 현재 Xhosa(xh-ZA)와 Zulu(zu-ZA)에 대한 네이티브 음성을 제공하지 않습니다. 남아프리카 라디오 광고에서 이 두 언어를 제외한다면, KwaZulu‑Natal이나 동부 케이프 지역에서 효과가 떨어질까요?
여기서 Vertex AI의 Model Garden이 빛을 발합니다. Gemini 모델을 호출하는 것을 넘어, 텍스트‑투‑스피치를 지원하는 오픈 모델을 찾아 활용할 수 있기 때문입니다.
Did you know: SeamlessM4T와 같이 100개 이상의 언어(Zulu와 Xhosa 포함)를 지원하는 오픈소스 모델을 엔드포인트에 배포하고, 해당 언어 요청을 직접 라우팅할 수 있습니다.
현재 파이프라인은 메커니즘을 보여줍니다: 프롬프트 생성, 스크립트 다듬기, 컨텍스트를 고려한 번역, 다국어 보이스오버 생성.
이 글을 공유하는 목적은 인간의 창의성을 대체하려는 것이 아니라, 개발자들이 작은 기업이 온라인에서 일관되게 모습을 드러낼 수 있는 장벽을 얼마나 쉽게 낮출 수 있는지를 보여주기 위함입니다. 혁신은 때때로 거대한 기업 인프라에서 시작되지 않고, 빌드‑톤, 간단한 파이썬 스크립트, 그리고 함께 실험하려는 커뮤니티에서 시작됩니다.
댓글/질문으로 피드백을 남겨 주세요. 이 실험실에 대한 여러분의 생각을 듣고 싶습니다.