OpenAI TTS(Text-to-Speech)를 활용하여 음성 파일을 생성하는 방법을 소개합니다. OpenAI 플레이그라운드에서 간편하게 TTS 기능을 활용하는 방법과, Google Colab에서 OpenAI API를 사용하여 음성 파일(mp3, wav, ogg)을 자동 생성하는 Python 코드 예제를 제공합니다.

OpenAI TTS API 를 사용하여 Google Colab 환경에서 텍스트를 음성으로 변환해주는 예제를 만들어봅니다.
1. TTS playground 직접 이용
물론 아래와 같은 절차를 거칠 필요없이 아래와 같이 오픈AI 플랫폼 플레이그라운드에서 TTS 기능을 바로 이용할 수도 있습니다.

하단의 옵션을 보면, 프리셋이 9개 준비되어 있고, 음질 선택, 배속 선택, 다운로드되는 파일 유형 선택이 가능하다.
<프리셋 선택>

<음질 선택>

<배속 선택>

<파일 형식 선택>

옵션을 선택 후 Generate 를 누르면 다음과 같이 음성이 생성되고 있음을 볼 수 있다.

음성 생성이 완료되면 다운로드 버튼을 통해 해당 파일을 다운로드할 수 있다.
2. Google Colab 이용
로컬 등에서 관련 라이브러리 설치없이 간편하게 이용할 수 있도록 Google Colab 환경에서 구현해봅니다. 먼저 예제 실행에 앞서 api 키부터 https://platform.openai.com/api-keys 에서 발급받습니다.



참고로 api 사용량은 다음 링크에서 확인할 수 있다.
https://platform.openai.com/usage/activity
구글드라이브에 py 파일을 저장해두고 colab 환경에서 사용할 예정이므로, 구글드라이브 특정 폴더에 다음과 같이 Google Colaboratory 파일을 만든다.

먼저 발급받은 키를 변수로 불러올 수 있도록 저장하자. 발급받은 api key 등록하고 사용하는 방법은 다음 포스팅을 참조한다.
Google Colab에서 OpenAI API Key 안전하게 저장하고 사용하는 방법
이제 코드를 작성할 차례이다. 아래에서 보듯이 모델명, 음성, 스피드, 파일 확장자 등을 변수로 주고, 이를 반영하여 파일명을 작성하도록 하였고, 파일이 생성되면 다운로드가능하도록 했다.
import os
import openai
from google.colab import userdata
from google.colab import files
from datetime import datetime
# OpenAI API Key 설정 (Google Colab 비밀 저장소에서 불러오기)
os.environ["OPENAI_API_KEY"] = userdata.get('OPENAI_API_KEY')
openai.api_key = os.environ["OPENAI_API_KEY"]
# 사용 모델 및 음성 지정
model_name = "tts-1-hd"
voice_name = "ash" # 지원 음성: alloy, ash, coral, echo, fable, onyx, nova, sage, shimmer
speed = 1.2 # 배속 설정 (0.5 ~ 2.0 범위)
# 파일 확장자 선택 (mp3, wav, ogg 등)
file_extension = "mp3" # 변경 가능: "wav", "ogg"
# 현재 날짜 및 시간 가져오기 (YYYYMMDD_HHMMSS 형식)
current_time = datetime.now().strftime("%Y%m%d_%H%M%S")
# 파일명 지정: 모델명-음성명-생성일시.mp3
file_name = f"{model_name}-{voice_name}-speed{speed}-{current_time}.{file_extension}"
file_path = f"/content/{file_name}" # Colab의 기본 경로에 저장
# OpenAI TTS API 호출
response = openai.audio.speech.create(
model=model_name,
voice=voice_name,
speed=speed, # 배속 적용
input="이번 거래일은 특별한 경제 지표 발표가 없었음에도 불구하고 기업 뉴스와 지정학적 요인들이 시장에 영향을 미쳤음. 특히, 인텔은 TSMC 및 브로드컴과의 인수합병 소식으로 주가가 약 9% 급등하여 하이라이트를 이끌었음. 이러한 움직임은 반도체 산업의 향후 전망에 긍정적인 요인으로 작용할 것으로 보임. 한편, 미국과 러시아 간의 우크라이나 종전 협상이 진행됨에 따라 전반적인 지정학적 긴장감이 시소 상태를 유지하고 있으며, 이는 방위 관련 주식들에 매수세를 유도함. 주요 경제지표는 발표되지 않았지만, 시장은 금리 동결 및 향후 인플레이션 경로에 대해 연방준비제도의 다음날 공개될 의사록에 주목하고 있음. 미국 주요 지수는 지지선 위에서 묵묵히 거래를 유지하며 상승세를 이어갈 힘을 다지는 중. 또한, 유럽 주요 증시도 미국 경제에 긍정적인 영향을 받으며 대체로 상승세를 기록, 글로벌 시장에 안정적 분위기를 더하고 있음."
)
# 음성 파일 저장
with open(file_path, "wb") as file:
file.write(response.content)
print(f"음성 파일이 생성되었습니다: {file_path}")
# 다운로드 링크 생성
from google.colab import files
files.download(file_path)
아래와 같이 음성파일이 생성되었다.

'프로그래밍 Programming' 카테고리의 다른 글
Google Cloud TTS API로 텍스트를 음성으로 변환하고, 생성된 음성 파일 다운로드하기 (0) | 2025.02.22 |
---|---|
Google Colab에서 OpenAI API Key 안전하게 저장하고 사용하는 방법 (0) | 2025.02.20 |
Xcode 프로젝트 완벽 삭제 가이드 – 깨끗하게 정리하는 방법 (1) | 2024.12.27 |
프로시저 시작 지점GetSystemTimePreciseAsFileTime을(를) DLL KERNEL32.에서 찾을 수 없습니다 (0) | 2024.11.08 |
Xcode와 Flutter 설치 가이드: macOS에서 iOS 앱 개발 준비하기 (3) | 2024.11.08 |