Mit benutzerdefinierten Stimmen kannst du eine unverwechselbare Stimme für deinen Agenten oder deine Anwendung erstellen. Du kannst diese Stimmen für die Audioausgabe mit der Text to Speech API, der Realtime API oder der Chat Completions API mit Audioausgabe verwenden.
Um eine benutzerdefinierte Stimme zu erstellen, stellst du eine kurze Audioaufnahme als Referenz bereit. Das Modell versucht, die Stimme darin nachzubilden.
Custom voices are limited to eligible customers. Contact our sales team to learn more. Once enabled for your organization, you’ll have access to the Voices tab under Audio.
Eine Stimme erstellen
Derzeit müssen Stimmen über eine API-Anfrage erstellt werden. Alle verfügbaren API-Operationen findest du in der API-Referenz.
Zum Erstellen einer Stimme sind zwei separate Audioaufnahmen erforderlich:
- Einwilligungsaufnahme: In dieser Aufnahme erklärt die sprechende Person ihr Einverständnis damit, dass ihre Stimme nachgebildet wird. Sie muss dazu einen der unten aufgeführten Einwilligungstexte vorlesen.
- Referenzaufnahme: Die eigentliche Audioaufnahme, an der sich das Modell orientieren soll. Die Stimme muss mit der Stimme in der Einwilligungsaufnahme übereinstimmen.
Tipps zum Erstellen einer hochwertigen Stimme
Die Qualität deiner benutzerdefinierten Stimme hängt stark von der Qualität der bereitgestellten Referenzaufnahme ab. Eine bessere Aufnahmequalität kann einen großen Unterschied machen.
- Nimm in einem ruhigen Raum mit möglichst wenig Hall auf.
- Verwende ein professionelles XLR-Mikrofon.
- Halte einen gleichbleibenden Abstand von etwa 7–8 Zoll zum Mikrofon ein und platziere einen Popschutz zwischen dir und dem Mikrofon.
- Das Modell übernimmt genau das, was du ihm vorgibst: Tonfall, Sprechrhythmus, Energie, Pausen und Sprechgewohnheiten. Nimm deshalb genau die Stimme auf, die du haben möchtest. Behalte Energie, Stil und Akzent während der gesamten Aufnahme bei.
- Kleine Unterschiede in der Referenzaufnahme können die Qualität der generierten Stimme beeinflussen. Probiere mehrere Aufnahmen aus, um die am besten geeignete zu finden.
Anforderungen und Einschränkungen
- Pro Organisation können höchstens 20 Stimmen erstellt werden.
- Die Referenzaufnahmen dürfen höchstens 30 Sekunden lang sein.
- Die Referenzaufnahmen müssen in einem der folgenden Formate vorliegen:
mpeg,wav,ogg,aac,flac,webmodermp4.
Weitere Nutzungsbedingungen findest du in der Zusatzvereinbarung für Text-to-Speech.
Eine Einwilligung zur Stimmennutzung erstellen
Die Einwilligungsaufnahme darf ausschließlich einen der folgenden Texte enthalten. Jede Abweichung vom vorgegebenen Wortlaut führt zu einem Fehler.
| Sprache | Wortlaut |
|---|---|
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使用此声音创建语音合成模型 |
Lade die Aufnahme anschließend über die API hoch. Bei einem erfolgreichen Upload erhältst du die ID der Einwilligungsaufnahme, auf die du später verweist. Du kannst dieselbe Einwilligung für mehrere Versuche zur Stimmenerstellung verwenden, wenn die Aufnahmen von derselben Person stammen.
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"Eine Stimme erstellen
Als Nächstes erstellst du die eigentliche Stimme, indem du die ID der Einwilligungsaufnahme angibst und die Referenzaufnahme bereitstellst.
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"Nach erfolgreicher Erstellung wird die Stimme auf dem Tab „Audio“ aufgeführt.
Eine Stimme für die Sprachgenerierung verwenden
Die Sprachgenerierung funktioniert wie gewohnt. Gib die ID der Stimme im Parameter voice an, wenn du Sprache generierst oder eine Realtime-Sitzung startest.
Beispiel: Text in Sprache umwandeln
curl https://api.openai.com/v1/audio/speech \
-X POST \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-4o-mini-tts",
"voice": {
"id": "voice_123abc"
},
"input": "Maple est le meilleur golden retriever du monde entier.",
"language": "fr",
"format": "wav"
}' \
--output sample.wavBeispiel für die Realtime API
Ersetze für Ruby voice_123 durch die ID deiner benutzerdefinierten Stimme, bevor du das Beispiel ausführst.
const sessionConfig = JSON.stringify({
session: {
type: "realtime",
model: "gpt-realtime-2",
audio: {
output: {
voice: { id: "voice_123abc" },
},
},
},
});Eine benutzerdefinierte Stimme mit GPT-Live verwenden
Verwende einen auf ein Projekt beschränkten API-Schlüssel, der sowohl für GPT-Live als auch für das
Erstellen benutzerdefinierter Stimmen zugelassen ist. Zum Lesen der Einwilligungstexte und zur Nutzung einer benutzerdefinierten Stimme benötigst du
api.voices.read. Zum Erstellen von Einwilligungen und Stimmen benötigst du api.voices.write sowie
Zugriff auf die API für benutzerdefinierte Stimmen. Verwende für jede Anfrage dasselbe Projekt und bewahre den API-Schlüssel
auf einem vertrauenswürdigen Server auf.
Die Aufnahmen vorbereiten
Rufe vor der Aufnahme die Liste der aktuell unterstützten Einwilligungstexte ab:
curl https://api.openai.com/v1/audio/consent_phrases \
-H "Authorization: Bearer $OPENAI_API_KEY"
Die Einwilligungsaufnahme und die Referenzaufnahme müssen von derselben Person stammen. Die Referenzaufnahme muss mindestens fünf Sekunden tatsächliche Sprache und mindestens 15 transkribierte Text-Token enthalten; Stille zählt nicht mit. Verwende eine 10–30 Sekunden lange Aufnahme mit mehreren vollständigen Sätzen. Jeder Upload ist auf 10 MiB begrenzt. Der Dienst extrahiert das Referenztranskript. Lade keine Transkript-Token hoch, konfiguriere keinen Decoder und füge keine benutzerdefinierten Anfrage-Header hinzu.
Browser-Aufnahmetools kennzeichnen Audiodaten möglicherweise als audio/webm;codecs=opus, was der Upload-Endpunkt
ablehnt. Verwende beim Vorbereiten eines Uploads den unterstützten Basis-MIME-Typ
audio/webm und behalte die ursprünglichen Audiobytes unverändert bei. Verwende die oben gezeigten Anfragen zum Erstellen der Einwilligung und der Stimme
und speichere anschließend die zurückgegebene Stimm-ID.
Stimme beim Erstellen der Sitzung auswählen
Übergib eine benutzerdefinierte Stimme als Objekt { "id": "voice_123" }, nicht als Zeichenfolge
"voice_123". Stimmen mit Namen wie "marin" werden als Zeichenfolgen angegeben.
gpt-live-1 unterstützt benutzerdefinierte Stimmen mit englischen Akzenten. Um einen Akzent zu verwenden,
gib ihn zusätzlich in session.instructions an, zum Beispiel "Speak British English" oder "Speak
Irish English." Das folgende Beispiel verwendet britisches Englisch. Passe die Anweisung
an den gewünschten Akzent deiner benutzerdefinierten Stimme an.
Füge der initialen Sitzung die folgende Konfiguration hinzu:
{
"model": "gpt-live-1",
"instructions": "You are a helpful voice assistant. Speak British English.",
"audio": { "output": { "voice": { "id": "voice_123" } } }
}
Bei WebRTC trägt der vertrauenswürdige Sitzungsbroker
diese Konfiguration in das JSON-Feld session neben transport ein.
Der Live-Endpunkt erfordert JSON, keine Multipart-Daten oder reines SDP. Lies die ID der erstellten Sitzung
aus session.id und die SDP-Antwort aus transport.sdp. Authentifiziere
Anfragen an einen gehosteten Broker mit den Anmeldedaten der Anwendung. Mache den OpenAI-API-Schlüssel
niemals im Browser zugänglich.
Bei WebSockets übergibst du die Konfiguration
im ersten session.start-Ereignis. Stelle die Verbindung ohne Abfrageparameter her und warte
auf session.started, bevor du Audio streamst. Sende Audiodaten mit
session.input_audio.append. Empfange nach dem Senden von session.close weiterhin Daten, bis
session.closed die endgültigen Nutzungsdaten liefert.
Fehler beim Zugriff und im Lebenszyklus behandeln
- Die Ausgabestimme kann nach dem Start der Live-Sitzung nicht mehr geändert werden. Starte eine neue Sitzung, um eine andere Stimme zu verwenden.
- Eine gelöschte oder widerrufene Stimme, eine Einwilligung aus einem anderen Projekt oder fehlender Zugriff auf benutzerdefinierte Stimmen können zu einem
404-Fehler führen. - Fehlerhafte Audiodaten, Aufnahmen einer anderen Person oder Schlüssel ohne Projektbindung werden abgelehnt.
Prüfe die Berechtigungen deines Projekts, die Mindestanforderungen an Aufnahmen und die Upload-Limits, bevor du eine Stimme erstellst. Die Anforderungen für das Sitzungs-Setup findest du unter Erste Schritte mit GPT-Live.