OpenAI 음성 합성 (Text to Speech) API 사용하기

OpenAI API에 음성 합성 (Text to Speech, TTS) 기능이 새로 추가되었습니다. 기존에는 음성과 관련하여 음성 인식 (Speech to Text) 기능만 있었는데 API가 점점 다양해지고 있습니다.

TTS 모델

사용할 수 있는 모델은 다음과 같습니다.

ModelDescriptionPricing
tts-1속도가 빠름 (실시간용)$0.015 / 1K characters
tts-1-hd고품질$0.030 / 1K characters
Audio models

TTS 목소리

사용할 수 있는 목소리는 6 종류 입니다. OpenAI 사이트에 가보면 영어로 말하는 음성을 들어볼 수 있습니다. 한국말 하는 음성을 들어볼까요?

Alloy

Echo

Fable

Onyx

Nova

Shimmer

약간 어색한 부분도 있긴 하지만, 무료 TTS에 비하면 확실히 좋네요.

TTS API

코드를 봅시다.

import os
from openai import OpenAI

client = OpenAI(api_key=os.environ['OPENAI_API_KEY'])

response = client.audio.speech.create(
  model = "tts-1",
  voice = "alloy",
  input = text,
  speed = 1,
  response_format = 'mp3'
)

response.stream_to_file(mp3_file_path)

response_format은 mp3가 기본이고, opus, aac, flac 형식도 지원합니다. speed는 1이 기본이고 0.25 ~ 4.0 범위의 값을 사용할 수 있습니다.

혹시 실시간 음성 출력이 필요할 경우 OpenAI 사이트의 도움말(streaming real time audio)을 참고하면 되겠습니다.

댓글 남기기