OpenAI의 새로운 음성 생성 및 입력 기능을 활용하면 텍스트를 음성으로 변환(TTS)하고, 음성을 텍스트로 변환(STT)할 수 있다. 이를 활용하면 음성 기반 챗봇, 자동 응답 시스템, 음성 데이터 분석 등 다양한 응용이 가능하다.
본 글에서는 OpenAI의 gpt-4o-audio-preview 모델을 사용하여 음성을 생성하고 입력하는 방법을 설명한다!

※ 음성 데이터의 길이와 토큰 수는 아직 명확하지 않지만, 일반적으로 1시간의 대화 = 128k 토큰 정도로 알려져 있다
음성 생성하기 (TTS, Text-To-Speach)
OpenAI의 gpt-4o-audio-preview 모델을 사용하면 텍스트 입력을 기반으로 음성을 생성할 수 있다. Python을 활용하여 음성을 생성하는 코드를 살펴보자.
import openai
import base64
client = openai.OpenAI()
completion = client.chat.completions.create(
model="gpt-4o-audio-preview",
modalities=["text", "audio"],
audio={"voice": "alloy", "format": "mp3"},
messages=[
{'role': 'system', 'content': '당신은 친절한 음성 비서를 담당합니다.'},
{'role': 'user', 'content': '안녕하세요! 오늘 날씨 어때요?'}
],
temperature=0.3,
max_tokens=4096
)
# 생성된 음성 데이터를 저장하기
wav_bytes = base64.b64decode(completion.choices[0].message.audio.data)
with open("speech.mp3", "wb") as f:
f.write(wav_bytes)
생성된 음성을 base64 디코딩하여 speech.mp3 파일로 저장한다
음성 입력하기 (STT, Speach-To-Text)
음성을 텍스트로 변환하는 기능(STT)도 사용할 수 있다. 이를 활용하면 사용자의 음성 명령을 분석하고, 대화형 챗봇을 만들 수 있다.
import base64
# 음성 파일을 base64로 인코딩
with open("speech.mp3", "rb") as audio:
mp3_data = audio.read()
encoded_string = base64.b64encode(mp3_data).decode('utf-8')
completion = client.chat.completions.create(
model="gpt-4o-audio-preview",
modalities=["text"],
messages=[
{'role': 'system', 'content': '당신은 AI 음성 비서입니다.'},
{
"role": "user",
"content": [
{
"type": "input_audio",
"input_audio": {
"data": encoded_string,
"format": "mp3"
}
}
]
}
]
)
print(completion.choices[0].message.content)
speech.mp3 음성 파일을 base64로 변환한다
'인공지능 > 생성형 AI' 카테고리의 다른 글
[생성형 AI] 파인 튜닝 vs LLM 오케스트레이션 (2) | 2025.03.07 |
---|---|
[생성형 AI] OpenAI 이미지 생성 활용(w/DALL·E 3) (1) | 2025.02.17 |
[생성형 AI] LangGraph vs CrewAI 라이브러리 (1) | 2025.02.17 |
[생성형 AI] LangChain이란? (0) | 2025.02.17 |
[생성형 AI] AGI(Artificial General Intelligence): 인공지능의 최종 목표 (1) | 2025.02.17 |