OpenAI TTS로 한국어 MP3 첫 파일 만들기, 10분 안에 끝내는 순서

OpenAI TTS로 한국어 MP3 첫 파일 만들기, 10분 안에 끝내는 순서

OpenAI TTS로 한국어 MP3 첫 파일 만들기, 10분 안에 끝내는 순서

OpenAI TTS를 처음 붙일 때 헷갈리는 부분부터 끊어 보기

한국어 음성을 빨리 써야 하는데 처음부터 문서가 길게 보이면 손이 멈추기 쉽습니다. 여기서 먼저 나눠서 보면 편한 건 두 가지입니다. ChatGPT Plus와 API 사용은 별개라는 점, 그리고 브라우저 채팅창이 아니라 audio speech endpoint를 호출해야 MP3 파일이 나온다는 점입니다. 이 둘만 분리해도 첫 파일까지 가는 길이 꽤 짧아집니다.

이 글은 기능 소개보다 파일 하나를 만드는 쪽에 맞췄습니다. 블로그 나레이션 초안이든, 쇼츠 샘플이든, 앱 안내 음성이든 처음 필요한 건 재생되는 MP3 하나입니다. voice를 전부 비교하거나 실시간 음성 대화부터 보는 것보다 키 준비, 요청 본문, 저장 파일 순서로 따라가는 편이 훨씬 단순합니다.

시작 전에 알아두면 덜 막히는 기준

지금 많이 참고하는 흐름은 speech endpoint 기준으로 잡으면 됩니다. 기본 포맷은 MP3이고 WAV, Opus, AAC, FLAC, PCM도 고를 수 있습니다. 주력 모델로는 gpt-4o-mini-tts가 자주 언급되고, 내장 음성은 13개입니다. 그중 marin, cedar는 첫 후보로 보기 편한 이름입니다.

한국어 문장을 바로 넣는 건 가능하지만 한 문단을 길게 밀어 넣으면 억양이 한 번에 뭉쳐 들릴 때가 있습니다. 처음에는 긴 원고 전체보다 짧은 문장 몇 개로 시작하는 쪽이 낫습니다. instructions에서 말투를 좁혀 주면 수정 포인트도 훨씬 선명해집니다. 공개 서비스에 붙일 음성이라면 AI로 생성한 음성이라는 표기도 함께 검토해 두는 편이 안전합니다.

Step 1: API 키는 ChatGPT 구독과 따로 보기

OpenAI TTS를 처음 찾는 사람에게 가장 자주 걸리는 부분이 여기입니다. ChatGPT 구독이 있어도 API 호출은 별도 사용량으로 잡힙니다. 팀 계정이면 예산 한도를 먼저 확인하는 편이 좋고, 개인 계정이어도 키 발급 화면과 사용량 화면을 머릿속에서 분리해 두면 덜 헷갈립니다.

$env:OPENAI_API_KEY = "sk-여기에_발급받은_키" $env:OPENAI_API_KEY

터미널에서 키 문자열이 보이면 다음 단계로 넘어가면 됩니다. 빈값이 나오면 키 자체보다 현재 셸 창에 환경 변수가 안 들어간 경우가 더 많습니다. 401 에러는 키 오타나 비활성 키부터, 429는 쿼터나 예산 제한부터 보는 순서가 빠릅니다.

Step 2: 한국어 MP3 한 파일을 먼저 만든다

처음에는 streaming보다 파일 출력이 편합니다. 이유는 간단합니다. 결과가 파일로 남아서 확인이 쉽고, 실패했을 때 어디서 끊겼는지 보기가 좋기 때문입니다. 한국어 TTS도 긴 문단보다 한두 문장으로 끝내는 요청이 관리하기 훨씬 수월합니다.

$headers = @{ Authorization = "Bearer $env:OPENAI_API_KEY"; "Content-Type" = "application/json" } $body = @{ model = "gpt-4o-mini-tts"; voice = "marin"; input = "안녕하세요. OpenAI TTS로 한국어 MP3를 만드는 첫 테스트입니다."; response_format = "mp3" } | ConvertTo-Json Invoke-RestMethod "https://api.openai.com/v1/audio/speech" -Method Post -Headers $headers -Body $body -OutFile "speech.mp3"

정상이라면 현재 폴더에 speech.mp3가 생깁니다. 파일 크기가 0KB가 아니고 재생되면 다음 단계로 가면 됩니다. 파일이 안 생기면 OutFile 경로보다 응답 본문이나 JSON 따옴표를 먼저 보는 편이 빠릅니다. PowerShell에서는 작은 따옴표 하나만 어긋나도 요청은 나갔는데 오디오 파일이 저장되지 않는 경우가 생깁니다.

Step 3: voice보다 먼저 문장 길이를 같이 본다

많이 놓치는 지점이 이 부분입니다. 모델을 바로 바꾸기 전에 목소리와 문장 길이를 먼저 정리하는 편이 효율적입니다. 한국어 음성은 특히 한 문장이 길어질수록 속도와 억양이 한꺼번에 묶여 들릴 수 있어서, 블로그 원문 전체를 한 번에 넣는 방식보다 두세 문장씩 끊어 보내는 방식이 다루기 쉽습니다.

$body = @{ model = "gpt-4o-mini-tts"; voice = "cedar"; input = "오늘 올릴 블로그 요약입니다. 문장을 짧게 읽고, 중간에 숨을 한번 쉬듯 멈춰주세요."; instructions = "Speak in a calm Korean narration style with short pauses between sentences."; response_format = "mp3" } | ConvertTo-Json

이 예시는 목소리만 바꾸는 용도가 아니라 말투까지 같이 좁히는 예시입니다. 쇼츠처럼 박자가 중요한 작업이면 문장 길이와 쉼표 위치가 생각보다 크게 작용합니다. 발음이나 호흡이 어색하면 다른 서비스로 바로 넘어가기보다 input을 짧게 줄이고 instructions를 더 구체적으로 적는 쪽이 먼저입니다.

Step 4: MP3 외 포맷은 작업 방식에 맞춰 고른다

첫 파일은 MP3로 충분한 경우가 많습니다. 다만 편집 프로그램으로 바로 넘길 계획이 있거나, 후반 작업에서 음질을 더 세밀하게 만질 예정이라면 포맷을 따로 볼 필요가 있습니다. 음성 파일을 다시 손볼 예정이면 WAV가 편한 경우가 있고, 빠르게 전달하는 용도라면 Opus가 더 잘 맞는 경우도 있습니다.

$body = @{ model = "gpt-4o-mini-tts"; voice = "marin"; input = "이 파일은 편집기에 바로 넣을 테스트입니다."; response_format = "wav" } | ConvertTo-Json

여기서 중요한 건 포맷 우열보다 사용 장면입니다. 편집 후 업로드할지, 모바일에서 바로 들을지, 내부 검수용인지 먼저 정하면 선택이 쉬워집니다. WAV나 PCM은 후반 작업에 유리할 때가 있고, MP3는 공유와 보관이 간편합니다.

Step 5: 첫날에는 realtime보다 요청형 흐름이 낫다

실시간 음성 대화나 즉답형 앱을 만들 계획이라면 realtime 경로도 결국 보게 됩니다. 그래도 시작부터 그쪽으로 들어가면 확인 포인트가 늘어납니다. 블로그 나레이션, 자동 음성 공지, 짧은 앱 보이스오버처럼 결과 파일이 필요한 작업이라면 request 방식으로 먼저 익숙해지는 편이 좋습니다. 같은 문장을 다시 비교하기도 쉽고, 문제가 생겼을 때 로그를 따라가기도 수월합니다.

처음 잡아둘 기준은 네 가지면 충분합니다. speech.mp3가 실제로 생성되는지, 한국어 문장이 너무 길지 않은지, marin 또는 cedar 같은 voice 후보를 비교할 준비가 됐는지, 공개용이면 AI 음성 표기를 넣을지입니다. 이 정도만 잡혀도 OpenAI TTS는 복잡한 문서 읽기가 아니라 파일 하나 만드는 작업으로 바뀝니다.

막히면 이 순서로 다시 본다

MP3가 안 만들어지면 키 문제, JSON 본문 문제, 예산 제한 순서로 확인하면 됩니다. 한국어 발음이 어색하면 모델 교체보다 문장을 짧게 나누고 instructions를 구체화하는 쪽이 먼저입니다. ChatGPT 구독이 있는데도 호출이 안 되는 상황은 이상한 일이 아니라 API가 별도이기 때문에 생길 수 있습니다.

처음 목표를 너무 크게 잡지 않는 것도 중요합니다. 10분 안에 끝낼 목표는 speech endpoint로 MP3 한 파일을 뽑는 데 두면 됩니다. 그다음에 voice를 바꾸고, 이후에 WAV 같은 포맷을 보는 순서로 가면 훨씬 덜 복잡합니다. 한국어 음성 합성을 붙이는 일도 결국 한 번에 다 하려 할 때 꼬이고, 파일 하나부터 끊어서 보면 의외로 금방 감이 옵니다.

관련 검색어

  • 🔍 OpenAI TTS 사용법
  • 🔍 OpenAI TTS 비교
  • 🔍 AI TTS 사용법
  • 🔍 AI TTS 비교
  • 🔍 한국어 TTS 사용법
  • 🔍 한국어 TTS 비교

댓글 쓰기

다음 이전