curl --request POST \
--url https://api.evolink.ai/v1/audios/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"model": "voice-enrollment",
"audio_url": "https://your-cdn.com/samples/my-voice.wav",
"preferred_name": "myvoice"
}
'{
"created": 1775123456,
"id": "task-unified-1775123456-abcd1234",
"model": "voice-enrollment",
"object": "audio.generation.task",
"progress": 0,
"status": "pending",
"task_info": {
"can_cancel": false,
"estimated_time": 60,
"audio_type": "voice_clone"
},
"type": "audio",
"usage": {
"credits_reserved": 0.001
}
}Voice Enrollment: Benutzerdefinierte Stimme erstellen
- Benutzerdefinierte Stimmen für Qwen Audio 3.1 TTS Flash mit dem Modell
voice-enrollmenterstellen. Zwei Modi:audio_urlfür Stimmenklonen,voice_prompt+preview_textfür Stimmendesign. Beide Modusfelder oder keines anzugeben ergibt400 - Stimmen beider Modi funktionieren nur mit
qwen-audio-3.1-tts-flashund nur für das erstellende Konto. Stimmen des alten Modellsqwen-voice-designsind nicht kompatibel; bei der Migration über diesen Endpunkt neu erstellen - Stimmendesign liefert zusätzlich ein Vorschauaudio (fest 24 kHz WAV); Stimmenklonen nur den Stimmennamen
- Asynchrone Verarbeitung; mit der Aufgaben-ID das Ergebnis abfragen. Klonen etwa 15–30 Sekunden; beim Design wird der gesamte Vorschautext synthetisiert, etwa 12 Sekunden bei 30 Zeichen und 49 Sekunden bei 200 Zeichen
- Abrechnung pro Anfrage, gleicher Preis für Klonen und Design; vollständige Erstattung bei Fehlschlag. Vorschau-Audiolinks sind 24 Stunden gültig; zeitnah speichern
- Nur die eigene Stimme oder eine Stimme mit ausdrücklicher Erlaubnis klonen
Ablauf:
audio_url(Klonen) odervoice_prompt+preview_text(Design) sowiepreferred_nameübergeben- Das Aufgabenergebnis abfragen und
result_data.voice(Stimmenname) auslesen - Qwen Audio 3.1 TTS Flash mit dem vollständigen Namen als
voiceaufrufen
Aufgabenergebnis (bei status: completed):
| Feld | Stimmenklonen | Stimmendesign |
|---|---|---|
result_data.voice | qwen-audio-3.1-tts-flash-{preferred_name}-{32-character-id} | qwen-audio-3.1-tts-flash-vd-{preferred_name}-{32-character-id} (zusätzliches Segment vd-) |
result_data.voice_type | voice_clone | voice_design |
result_data.target_model | qwen-audio-3.1-tts-flash | qwen-audio-3.1-tts-flash |
results / result_data.preview_audio_url | Nicht zurückgegeben | Vorschau-Audio-URL (24 Stunden gültig), außerdem sample_rate: 24000 und response_format: "wav" |
Ist das Vorschauaudio beim Design gelegentlich nicht verfügbar, wird die Aufgabe dennoch abgeschlossen (Stimme erstellt und berechnet). Das Ergebnis enthält stattdessen preview_audio_unavailable: true und preview_audio_warning.
Gültigkeit der Stimme:
- Geklonte und entworfene Stimmen laufen standardmäßig
6 Stundennach Abschluss der Erstellung ab. Syntheseaufrufe verlängern die Gültigkeit nicht - Nach Ablauf ergibt die Synthese
404(voice_expired). Über diesen Endpunkt eine neue Stimme erstellen und diese verwenden
Stimmenkontingent: Das Upstream-Konto hat ein Limit für benutzerdefinierte Stimmen der Qwen-Audio-TTS-Serie (offiziell 1000, gemeinsam für Klonen und Design). Ist es ausgeschöpft, schlägt die Erstellung mit vollständiger Erstattung fehl.
Textlänge nach Zeichen: Chinesische und englische Zeichen sowie Satzzeichen zählen jeweils als 1.
curl --request POST \
--url https://api.evolink.ai/v1/audios/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"model": "voice-enrollment",
"audio_url": "https://your-cdn.com/samples/my-voice.wav",
"preferred_name": "myvoice"
}
'{
"created": 1775123456,
"id": "task-unified-1775123456-abcd1234",
"model": "voice-enrollment",
"object": "audio.generation.task",
"progress": 0,
"status": "pending",
"task_info": {
"can_cancel": false,
"estimated_time": 60,
"audio_type": "voice_clone"
},
"type": "audio",
"usage": {
"credits_reserved": 0.001
}
}Autorisierungen
Alle Endpunkte erfordern Bearer-Token-Authentifizierung
API-Key erhalten:
Den API-Key auf der Seite API-Key-Verwaltung abrufen
Diesen Anfrageheader hinzufügen:
Authorization: Bearer YOUR_API_KEY
Body
- Stimmenklonen (audio_url)
- Stimmendesign (voice_prompt)
Eine Stimme aus einer Aufnahme einer Person erstellen. audio_url wählt Stimmenklonen; die Designfelder voice_prompt, preview_text, sample_rate und response_format weglassen. Nicht leerer Designtext, eine Abtastrate ungleich null oder ein nicht leeres Format ergeben 400; sample_rate: 0/null und response_format: ""/null gelten als nicht angegeben.
Modellname
voice-enrollment "voice-enrollment"
URL der zu klonenden Aufnahme. Dieses Feld wählt Stimmenklonen und darf nicht zusammen mit voice_prompt angegeben werden
URL-Vorgaben:
- HTTP oder HTTPS, öffentlich ohne Authentifizierung erreichbar
- Lokale oder private Adressen ergeben
400(invalid_media_url) - Höchstens
2048Zeichen - Nicht-HTTP(S)-Protokolle wie FTP ergeben
400(invalid_media_url) - Nur URLs, kein Base64; eine Base64-Daten-URI ergibt
400(invalid_parameter)
Audioanforderungen (andernfalls kann die Aufgabe fehlschlagen):
- WAV, MP3 oder M4A
- Höchstens 60 Sekunden; zu wenig Sprache kann ebenfalls fehlschlagen (eine 2-Sekunden-Aufnahme schlug im Test fehl)
- Dateigröße höchstens
10 MB - Abtastrate mindestens
16 kHz - Klare menschliche Sprache; Stille, Musik und andere Nicht-Sprach-Audios werden abgelehnt
Empfohlene Aufnahme:
- 10–20 Sekunden, davon mindestens 5 Sekunden ununterbrochenes, klares Vorlesen; Pausen höchstens 2 Sekunden
- Mono; bei Stereo wird nur der erste Kanal verwendet
- Keine Hintergrundmusik, Geräusche oder anderen Stimmen; normal sprechen, nicht singen
Bei nicht herunterladbaren oder ungeeigneten Audios schlägt die Aufgabe fehl, mit vollständiger Erstattung
Nur die eigene Stimme oder eine Stimme mit ausdrücklicher Erlaubnis klonen
2048[^\u0009-\u000D\u0020\u0085\u00A0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]"https://your-cdn.com/samples/my-voice.wav"
Präfix des Stimmennamens
Vorgaben:
- 1–10 englische Buchstaben oder Ziffern; keine Unterstriche oder anderen Symbole
- Großbuchstaben werden in Kleinbuchstaben umgewandelt
- Muss nicht eindeutig sein
Vollständiger Name: beim Klonen qwen-audio-3.1-tts-flash-{preferred_name}-{32-character-id}, beim Design qwen-audio-3.1-tts-flash-vd-{preferred_name}-{32-character-id}
Beispiel für myvoice: qwen-audio-3.1-tts-flash-myvoice-5996beec833d41f4982158347ba97fae
10^[a-zA-Z0-9]+$"myvoice"
Beim Klonen die Sprache der Aufnahme, zur genaueren Extraktion der Stimme. Beim Design die bevorzugte Sprache der Stimme; sie sollte mit preview_text übereinstimmen
Ohne Angabe gilt zh
zh, en, ja, ko, de, fr, it, ru, pt, es "zh"
TTS-Modell, das die Stimme verwendet. Derzeit nur ein Wert, der ohne Angabe automatisch gilt; andere Werte ergeben 400
| Wert | Beschreibung |
|---|---|
qwen-audio-3.1-tts-flash | Qwen Audio 3.1 TTS Flash, nicht streamend (Standard und einziger Wert) |
qwen-audio-3.1-tts-flash "qwen-audio-3.1-tts-flash"
HTTPS-Callback-URL für das Aufgabenergebnis
Zeitpunkt:
- Bei Abschluss (
completed) oder Fehlschlag (failed) - Versand nach Bestätigung der Abrechnung
Sicherheitsvorgaben:
- Nur HTTPS
- Keine privaten IP-Adressen (127.0.0.1, 10.x.x.x, 172.16–31.x.x, 192.168.x.x usw.)
- URL mit höchstens
2048Zeichen
Zustellung:
- Timeout:
10Sekunden - Bei Fehlschlag höchstens
3Wiederholungen nach1/2/4Sekunden - Callback-Inhalt im gleichen Format wie die Aufgabenabfrage
- 2xx gilt als Erfolg; andere Statuscodes lösen Wiederholungen aus
"https://your-domain.com/webhooks/voice-completed"
Antwort
Aufgabe zur Stimmenerstellung angenommen
Zeitstempel der Aufgabenerstellung
1775123456
Aufgaben-ID
"task-unified-1775123456-abcd1234"
Tatsächlich verwendetes Modell
"voice-enrollment"
Konkreter Typ des Aufgabenobjekts
audio.generation.task Aufgabenfortschritt in Prozent (0–100)
0 <= x <= 1000
Aufgabenstatus
pending, processing, completed, failed "pending"
Details der Audioaufgabe
Show child attributes
Show child attributes
Ausgabetyp der Aufgabe
audio "audio"
Verbrauchs- und Abrechnungsinformationen
Show child attributes
Show child attributes