For the complete documentation index, see llms.txt. Markdown versions of documentation pages are available by appending .md to the page URL.
기본 탐색 메뉴
Theme

맞춤 음성

설명이나 사용 동의를 받은 녹음으로 맞춤 음성을 만드세요.

에이전트나 애플리케이션에 사용할 맞춤 음성을 만들 수 있습니다. 다음 두 가지 방법 중 하나를 선택하세요.

기존 GPT-Live 음성을 선택하려면 음성 옵션을 참조하세요.

설명으로 음성 만들기

프롬프트 기반 음성 생성 기능은 텍스트 설명을 바탕으로 음성을 만들어 저장합니다. 이 워크플로우에는 참조 녹음이나 동의 녹음이 필요하지 않습니다.

프롬프트 기반 음성 생성 기능은 모든 API 고객에게 정식으로 제공됩니다. 프롬프트로 만든 음성은 GPT-Live에서 사용할 수 있습니다. Text to Speech API, Realtime API, Chat Completions API에서는 이러한 음성을 지원하지 않습니다.

책임 있는 사용

  • 음성을 책임 있게 사용하세요. 다른 사람을 사칭하거나 OpenAI의 사용 정책을 위반하지 마세요.
  • 성인의 목소리를 사용하세요. 아동의 목소리는 허용되지 않습니다.
  • AI가 생성한 음성임을 밝히세요. 청취자에게 이 사실을 알리고, 출처 메타데이터와 워터마크 등 합성 음성임을 나타내는 모든 표시를 보존하세요.
  • 목소리의 고유성은 보장되지 않습니다. 다른 사용자가 비슷한 목소리나 출력물을 생성할 수 있습니다. 출력물에 대한 소유권에는 OpenAI와 체결한 계약이 계속 적용됩니다.
  • 서비스 약관 적용 대상에는 고객과 고객의 최종 사용자가 프롬프트 기반 음성 생성 기능을 사용하는 경우가 모두 포함됩니다.

음성 생성 및 저장

API 또는 음성 Playground에서 음성을 만드세요. 프롬프트로 음성을 만드는 것은 무료입니다. 이 음성으로 GPT-Live에서 발화를 생성하면 일반 세션 요금이 부과됩니다.

/v1/audio/voices에 JSON 요청을 보낼 때 type을 prompt로 설정하세요.

curl --fail-with-body https://api.openai.com/v1/audio/voices \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "type": "prompt",
    "name": "Support assistant",
    "prompt": "A calm, reassuring adult voice for a customer support assistant. Speak with an American English accent, a mid-range pitch, a smooth, warm tone, and a steady, conversational pace.",
    "model": "auto"
  }' \
  -o voice.json

script_hint는 음성을 생성할 때 참고할 예시 대본으로, 선택 사항입니다. 생략하면 서비스가 음성 설명을 바탕으로 대본을 생성합니다. 직접 제공하려면 원하는 말투를 잘 보여 주는 대사를 2,000자 이내로 작성하세요. 비어 있거나 너무 짧은 대본은 거부됩니다.

요청이 성공할 때마다 새 음성이 생성되어 저장됩니다. 응답에는 음성 ID, Unix 시간(초)으로 표시된 생성 시각, 음성을 설명한 원본 프롬프트 등의 메타데이터가 포함됩니다. 오디오나 미리 듣기는 포함되지 않습니다.

{
  "object": "audio.voice",
  "id": "voice_123",
  "name": "Support assistant",
  "created_at": 0,
  "type": "prompt",
  "prompt": "A calm, reassuring adult voice for a customer support assistant. Speak with an American English accent, a mid-range pitch, a smooth, warm tone, and a steady, conversational pace."
}

반환된 id를 저장하고 원본 음성 프롬프트도 보관하세요. 다른 세션에서 같은 목소리를 사용하려면 저장한 음성을 재사용하세요. 조직당 프롬프트로 만들 수 있는 음성은 최대 100개입니다. 애플리케이션이 고객을 위해 음성을 만들 때도 이 한도가 적용됩니다.

목소리 설명하기

원하는 목소리의 특징을 일상적인 표현으로 설명하세요. 예를 들면 다음과 같습니다.

고객 지원 어시스턴트에 어울리는 차분하고 안심이 되는 성인의 목소리입니다.
미국 영어 억양으로, 중간 음역에서 부드럽고 따뜻한 목소리로 말하세요.
일상적인 대화를 나누듯 일정한 속도로 말하세요.

다음 표는 설명할 수 있는 특징과 표현 예시를 보여 줍니다. 각 특징은 별도의 API 매개변수로 설정하지 않고 프롬프트에 직접 작성합니다.

특징 설명할 내용 표현 예시
억양 지역별 발음과 억양의 강도 미국 영어 억양이 강하게 드러남
나이 목소리에서 느껴지는 나이 30대 성인
성별 인상 목소리에서 느껴지는 성별 특성 여성스러움
음높이 목소리가 얼마나 낮거나 높게 들리는지 중간 음역
음색 목소리 고유의 소리 빛깔 부드럽고 풍부함
질감 목소리가 거친지, 쉰 소리가 나는지, 맑은지 매끄러움
음량 목소리를 낼 때 들이는 힘 적당히 힘을 주어 말함
말하기 속도 얼마나 빠르게 말하는지 보통 속도
개성 목소리의 개성이 얼마나 뚜렷해야 하는지 개성이 적당히 드러남

원하는 특징 자체를 설명하세요. 특정 인물, 유명 인사 또는 가상 캐릭터의 목소리를 흉내 내도록 요청하지 마세요. 아동의 목소리는 허용되지 않으므로 성인의 목소리를 설명하세요.

음성 설명 예시

다음 설명을 바탕으로 프롬프트를 작성하고 애플리케이션에서 결과를 들어 보세요.

차분한 어시스턴트

중간 음역에 부드럽고 풍부한 음색을 지닌 따뜻한 성인의 목소리입니다.
목소리에 적당히 힘을 싣고, 듣는 사람이 안심할 수 있도록 여유 있게 말하세요.

활기찬 안내자

음높이가 약간 높고 음색에서 질감이 살짝 느껴지는 밝고 또렷한 성인의 목소리입니다.
대화를 나누듯 활기차게 말하세요. 속도는 경쾌하되 듣는 사람이 쉽게 따라갈 수 있어야 합니다.

응답 길이, 말 끊김 처리, 작업을 위임할 시점과 같은 대화 규칙은 GPT-Live 세션 지침에 작성하세요.

GPT-Live에서 음성 들어 보기

Playground에서 음성을 들어 보면 GPT-Live 세션이 실행되며 일반 세션 요금이 부과됩니다.

session.audio.output.voice.id를 반환된 음성 ID로 설정하세요. 원하는 목소리가 잘 구현되도록 session.instructions에 애플리케이션의 대화 지침과 함께 원본 음성 설명을 포함하세요.

voice_123을 음성 생성 요청에서 반환된 ID로 바꾸세요.

{
  "model": "gpt-live-1",
  "instructions": "You are a helpful voice assistant. A calm, reassuring adult voice for a customer support assistant. Speak with an American English accent, a mid-range pitch, a smooth, warm tone, and a steady, conversational pace.",
  "audio": { "output": { "voice": { "id": "voice_123" } } }
}

WebRTC를 사용할 때는 JSON의 session 필드에 transport와 함께 이 설정을 넣으세요. WebSockets를 사용할 때는 첫 번째 session.start 이벤트에 넣으세요. 연결 가이드에 따라 오디오를 전송하고 목소리를 들어 보세요. 음성은 세션을 시작할 때 선택합니다. 다른 음성을 들어 보려면 새 세션을 시작하세요.

녹음으로 음성을 만드는 경우를 포함해 /v1/audio/voices를 통한 음성 생성은 데이터 비보관과 호환되지 않습니다. 조직이나 프로젝트에서 데이터 비보관을 활성화하면 GPT-Live에서 생성하는 발화에는 데이터 비보관을 적용할 수 있습니다. 데이터 비보관을 사용하면 세션 녹음 저장, 녹음 다운로드, 세션 포크 기능을 사용할 수 없습니다. 세션 저장 및 보관 요건은 데이터 제어를 참조하세요.

음성 조정 및 재사용

한 번에 한 가지 특징만 바꾸세요. 매번 같은 짧은 글을 읽게 하고 몇 차례 대화를 주고받으며 결과를 비교하세요. 애플리케이션에 필요한 억양, 말하기 속도 등의 특징이 잘 드러나는지 들어 보세요. 마음에 드는 음성의 ID를 보관해 재사용하세요.

생성 요청마다 새 음성이 저장됩니다. 저장된 다른 음성을 사용해 보려면 해당 ID로 새 GPT-Live 세션을 시작하세요.

녹음으로 음성 만들기

녹음으로 음성을 만들려면 모델이 목소리를 재현할 때 참조할 짧은 오디오 샘플을 제공하세요.

녹음으로 맞춤 음성을 만드는 기능은 자격 요건을 충족하는 고객에게만 제공됩니다. 자세한 내용은 영업팀에 문의하세요. 조직에서 이 기능이 활성화되면 Audio 아래의 Voices 탭을 사용할 수 있습니다.

녹음 준비 및 업로드

녹음을 바탕으로 음성을 만들려면 API 요청을 보내야 합니다. 지원되는 모든 작업은 API 레퍼런스를 참조하세요.

녹음으로 음성을 만들려면 두 개의 오디오를 별도로 녹음해야 합니다.

  1. 동의 녹음: 성우가 자신의 목소리를 재현하는 데 동의한다는 내용을 녹음합니다. 성우는 아래에 제시된 동의 문구 중 하나를 그대로 읽어야 합니다.
  2. 샘플 녹음: 모델이 목소리를 재현할 때 참조하는 실제 오디오 샘플입니다. 동의 녹음과 동일한 사람의 목소리여야 합니다.

고품질 음성을 만들기 위한 녹음 팁

맞춤 음성의 품질은 제공하는 샘플의 품질에 크게 좌우됩니다. 녹음 품질을 높이면 생성된 목소리도 크게 개선될 수 있습니다.

  • 울림이 적고 조용한 공간에서 녹음하세요.
  • 전문가용 XLR 마이크를 사용하세요.
  • 입과 마이크 사이에 팝 필터를 두고 약 7~8인치 간격을 일정하게 유지하세요.
  • 모델은 목소리의 톤, 말의 리듬, 활기, 쉬어 가는 지점, 말버릇까지 그대로 따라 하므로 원하는 목소리로 녹음하세요. 녹음 내내 활기, 말투, 억양을 일정하게 유지하세요.
  • 오디오 샘플의 작은 차이로도 생성된 음성의 품질이 달라질 수 있습니다. 여러 샘플을 시도해 가장 적합한 것을 찾으세요.

요건 및 제한 사항

  • 조직당 녹음으로 만들 수 있는 음성은 최대 20개입니다.
  • 오디오 샘플 길이는 60초 이하여야 합니다.
  • 오디오 샘플은 mpeg, wav, ogg, aac, flac, webm, mp4 중 하나여야 합니다.

추가 이용약관은 텍스트 음성 변환 부속 계약을 참조하세요.

음성 사용 동의 등록

동의 녹음에는 다음 문구 중 하나만 포함해야 합니다. 문구를 조금이라도 다르게 읽으면 동의 등록에 실패합니다.

언어 동의 문구
독일어 (de) Ich bin der Eigentümer dieser Stimme und bin damit einverstanden, dass OpenAI diese Stimme zur Erstellung eines synthetischen Stimmmodells verwendet.
영어 (en) I am the owner of this voice and I consent to OpenAI using this voice to create a synthetic voice model.
스페인어 (es) Soy el propietario de esta voz y doy mi consentimiento para que OpenAI la utilice para crear un modelo de voz sintética.
프랑스어 (fr) Je suis le propriétaire de cette voix et j’autorise OpenAI à utiliser cette voix pour créer un modèle de voix synthétique.
힌디어 (hi) मैं इस आवाज का मालिक हूं और मैं सिंथेटिक आवाज मॉडल बनाने के लिए OpenAI को इस आवाज का उपयोग करने की सहमति देता हूं
인도네시아어 (id) Saya adalah pemilik suara ini dan saya memberikan persetujuan kepada OpenAI untuk menggunakan suara ini guna membuat model suara sintetis.
이탈리아어 (it) Sono il proprietario di questa voce e acconsento che OpenAI la utilizzi per creare un modello di voce sintetica.
일본어 (ja) 私はこの音声の所有者であり、OpenAIがこの音声を使用して音声合成 モデルを作成することを承認します。
한국어 (ko) 나는 이 음성의 소유자이며 OpenAI가 이 음성을 사용하여 음성 합성 모델을 생성할 것을 허용합니다.
네덜란드어 (nl) Ik ben de eigenaar van deze stem en ik geef OpenAI toestemming om deze stem te gebruiken om een synthetisch stemmodel te maken.
폴란드어 (pl) Jestem właścicielem tego głosu i wyrażam zgodę na wykorzystanie go przez OpenAI w celu utworzenia syntetycznego modelu głosu.
포르투갈어 (pt) Eu sou o proprietário desta voz e autorizo o OpenAI a usá-la para criar um modelo de voz sintética.
러시아어 (ru) Я являюсь владельцем этого голоса и даю согласие OpenAI на использование этого голоса для создания модели синтетического голоса.
우크라이나어 (uk) Я є власником цього голосу і даю згоду OpenAI використовувати цей голос для створення синтетичної голосової моделі.
베트남어 (vi) Tôi là chủ sở hữu giọng nói này và tôi đồng ý cho OpenAI sử dụng giọng nói này để tạo mô hình giọng nói tổng hợp.
중국어 (zh) 我是此声音的拥有者并授权OpenAI使用此声音创建语音合成模型

그런 다음 API로 동의 녹음을 업로드하세요. 업로드에 성공하면 이후 음성을 만들 때 참조할 동의 녹음 ID가 반환됩니다. 같은 성우가 여러 차례 음성을 만들 때는 하나의 동의 녹음을 재사용할 수 있습니다.

curl https://api.openai.com/v1/audio/voice_consents \
  -X POST \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -F "name=test_consent" \
  -F "language=en" \
  -F "recording=@$HOME/tmp/voice_consent/consent_recording.wav;type=audio/x-wav"

음성 만들기

동의 녹음 ID와 음성 샘플을 함께 제공해 실제로 사용할 음성을 만드세요.

curl https://api.openai.com/v1/audio/voices \
  -X POST \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -F "name=test_voice" \
  -F "audio_sample=@$HOME/tmp/voice_consent/audio_sample_recording.wav;type=audio/x-wav" \
  -F "consent=cons_123abc"

생성에 성공하면 Audio 탭의 목록에서 음성을 확인할 수 있습니다.

녹음으로 만든 목소리로 발화 생성하기

gpt-realtime-2.1-mini를 Realtime API와 함께 사용하면 맞춤 음성으로 발화를 생성할 수 있습니다. 세션의 첫 오디오 응답 전에 session.audio.output.voice를 음성 ID가 포함된 객체로 설정하세요.

Realtime 세션 구성

Realtime 클라이언트 시크릿을 생성할 때 다음 요청 본문을 사용한 후, WebRTC 연결 가이드에 따라 해당 시크릿으로 연결하세요. voice_123abc를 음성 생성 요청에서 반환된 ID로 바꾸세요.

const sessionConfig = JSON.stringify({
  session: {
    type: "realtime",
    model: "gpt-realtime-2.1-mini",
    instructions: "Read the user's text aloud without adding commentary.",
    output_modalities: ["audio"],
    audio: {
      output: {
        voice: { id: "voice_123abc" },
      },
    },
  },
});

텍스트를 음성으로 변환하려면 읽을 텍스트가 담긴 사용자 메시지를 추가하세요. 그런 다음 response.create를 전송할 때 output_modalities를 ["audio"]로 설정하세요. 세션 지침은 모델에 제공된 텍스트를 소리 내어 읽도록 요청합니다. WebRTC로 오디오 처리하기에 설명된 대로 WebRTC 오디오 트랙을 통해 생성된 오디오를 수신하세요.

GPT-Live에서 녹음으로 만든 음성 사용하기

GPT-Live와 맞춤 음성 생성에 모두 사용하도록 승인된 프로젝트 범위 API 키를 사용하세요. 동의 문구를 조회하고 맞춤 음성을 사용하려면 api.voices.read 권한이 필요합니다. 동의를 등록하고 음성을 만들려면 api.voices.write 권한과 맞춤 음성 API 접근 권한이 필요합니다. 모든 요청에 동일한 프로젝트를 사용하고 API 키는 신뢰할 수 있는 서버에 보관하세요.

녹음 준비

녹음하기 전에 현재 지원되는 동의 문구 목록을 조회하세요.

curl https://api.openai.com/v1/audio/consent_phrases \
  -H "Authorization: Bearer $OPENAI_API_KEY"

동의 녹음과 참조 샘플은 같은 사람의 목소리여야 합니다. 샘플에는 실제 발화가 5초 이상 포함되어야 하며, 이를 텍스트로 옮겼을 때 토큰이 15개 이상이어야 합니다. 무음 구간은 발화 시간에 포함되지 않습니다. 완전한 문장 여러 개를 담은 10~60초 길이의 녹음을 사용하세요. 업로드 한도는 건당 10 MiB입니다. 서비스는 녹음에서 참조용 텍스트를 추출합니다.

브라우저 녹음 도구는 오디오 유형을 audio/webm;codecs=opus로 표시할 수 있지만 업로드 엔드포인트는 이 유형을 거부합니다. 업로드 요청을 구성할 때는 원본 오디오 바이트를 그대로 유지하고 지원되는 기본 MIME 유형인 audio/webm을 사용하세요. 위의 요청 예시에 따라 동의를 등록하고 음성을 만든 다음 반환된 음성 ID를 저장하세요.

세션 생성 시 음성 선택

맞춤 음성은 { "id": "voice_123" }와 같은 객체로 전달하세요. "marin"처럼 이름이 지정된 음성은 문자열로 전달합니다.

gpt-live-1은 다양한 영어 억양의 맞춤 음성을 지원합니다. 특정 억양을 사용하려면 session.instructions에도 “영국식 영어로 말하세요” 또는 “아일랜드식 영어로 말하세요”와 같이 지정하세요. 아래 예시는 영국식 영어를 사용합니다. 맞춤 음성에 원하는 억양에 맞게 지침을 바꾸세요.

세션을 시작할 때 다음 설정을 포함하세요.

{
  "model": "gpt-live-1",
  "instructions": "You are a helpful voice assistant. Speak British English.",
  "audio": { "output": { "voice": { "id": "voice_123" } } }
}

WebRTC를 사용할 때는 애플리케이션 서버에서 JSON의 session 필드에 transport와 함께 이 설정을 넣으세요. 애플리케이션 자격 증명으로 서버에 들어오는 요청을 인증하고 OpenAI API 키는 서버에 보관하세요.

WebSockets를 사용할 때는 첫 번째 session.start 이벤트에 설정을 넣으세요. 연결 가이드에 따라 오디오를 스트리밍하고 세션을 종료하세요.

접근 권한 및 음성 수명 주기 관련 오류 처리

  • 세션을 생성할 때 음성을 선택하세요. 다른 음성을 사용하려면 새 세션을 시작하세요.
  • 음성이 삭제되었거나 사용 승인이 철회된 경우, 다른 프로젝트의 동의 녹음을 참조하는 경우 또는 맞춤 음성 접근 권한이 없는 경우 404가 반환될 수 있습니다.
  • 오디오 형식이 잘못되었거나, 두 녹음의 화자가 다르거나, 프로젝트 범위의 키를 사용하지 않으면 요청이 거부됩니다.

음성을 만들기 전에 프로젝트 권한, 녹음의 최소 요건, 업로드 한도를 확인하세요. 세션 설정 요건은 GPT-Live 시작하기를 참조하세요.