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: crear una voz personalizada
- Crea voces personalizadas para Qwen Audio 3.1 TTS Flash con el modelo
voice-enrollment. Dos modos:audio_urlpara clonación de voz, ovoice_prompt+preview_textpara diseño de voz. Enviar ambos selectores o ninguno devuelve400 - Las voces de ambos modos solo funcionan con
qwen-audio-3.1-tts-flashy para la cuenta que las creó. Las voces del antiguoqwen-voice-designno son compatibles; vuelve a crearlas mediante este endpoint al migrar - El diseño devuelve también audio de muestra (24 kHz WAV fijo); la clonación devuelve solo el nombre de voz
- Procesamiento asíncrono; consulta el resultado con el ID de tarea. Clonación: unos 15–30 segundos. El diseño espera a sintetizar todo el texto de muestra: unos 12 segundos para 30 caracteres y 49 segundos para 200 caracteres
- Cobro por solicitud, mismo precio para clonación y diseño; devolución íntegra si falla. Enlaces de muestra válidos 24 horas; guárdalos pronto
- Clona solo tu propia voz o una voz para la que tengas autorización explícita
Proceso:
- Envía
audio_url(clonación) ovoice_prompt+preview_text(diseño), junto conpreferred_name - Consulta el resultado para obtener
result_data.voice(nombre de voz) - Llama a Qwen Audio 3.1 TTS Flash con el nombre completo en
voice
Resultado de tarea (cuando status es completed):
| Campo | Clonación de voz | Diseño de voz |
|---|---|---|
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} (segmento adicional 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 | No se devuelve | URL de audio de muestra (válida 24 horas), además de sample_rate: 24000 y response_format: "wav" |
Si el audio de muestra no está disponible ocasionalmente, la tarea se completa igualmente (voz creada y cobrada). El resultado contiene en su lugar preview_audio_unavailable: true y preview_audio_warning.
Vigencia de la voz:
- Las voces clonadas o diseñadas caducan por defecto
6 horasdespués de completar su creación. La síntesis no prolonga la vigencia - Tras caducar, el TTS devuelve
404(voice_expired). Crea una nueva voz con este endpoint y úsala para sintetizar
Cupo de voces: La cuenta del proveedor tiene un límite de voces personalizadas de la serie Qwen-Audio-TTS (oficialmente 1000, compartido entre clonación y diseño). Si se agota, la creación falla con devolución íntegra.
Longitud medida en caracteres: Cada carácter chino, inglés o signo de puntuación cuenta como 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
}
}Autorizaciones
Todos los endpoints requieren autenticación con token Bearer
Obtener una clave API:
Visita Gestión de claves API para obtener tu clave
Añade esta cabecera:
Authorization: Bearer YOUR_API_KEY
Cuerpo
- Clonación de voz (audio_url)
- Diseño de voz (voice_prompt)
Crea una voz a partir de la grabación de una persona. audio_url elige clonación; omite los campos de diseño voice_prompt, preview_text, sample_rate y response_format. Un texto de diseño no vacío, una frecuencia distinta de cero o un formato no vacío devuelve 400. sample_rate: 0/null y response_format: ""/null se tratan como omitidos.
Nombre del modelo
voice-enrollment "voice-enrollment"
URL de la grabación que se clonará. Este campo elige clonación de voz y no puede enviarse junto con voice_prompt
Requisitos de la URL:
- HTTP o HTTPS, accesible públicamente sin autenticación
- Direcciones locales o privadas:
400(invalid_media_url) - Máximo
2048caracteres - Protocolos no HTTP(S), como FTP:
400(invalid_media_url) - Solo enlaces, no Base64; una URI de datos Base64 devuelve
400(invalid_parameter)
Requisitos de audio (de lo contrario puede fallar la tarea):
- WAV, MP3 o M4A
- Máximo 60 segundos; muy poco contenido hablado también puede fallar (una grabación de 2 segundos falló en las pruebas)
- Tamaño máximo
10 MB - Frecuencia de muestreo de al menos
16 kHz - Voz humana clara; se rechazan silencio, música y otros audios sin voz
Consejos de grabación:
- 10–20 segundos, con al menos 5 segundos de lectura continua y clara; pausas de máximo 2 segundos
- Mono; en estéreo solo se usa el primer canal
- Sin música, ruido de fondo ni otras voces; habla normalmente, sin cantar
Si el audio no puede descargarse o no cumple los requisitos, la tarea falla y se devuelven todos los créditos
Clona solo tu propia voz o una voz con autorización explícita
2048[^\u0009-\u000D\u0020\u0085\u00A0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]"https://your-cdn.com/samples/my-voice.wav"
Prefijo del nombre de voz
Restricciones:
- 1–10 letras inglesas o dígitos; sin guiones bajos ni otros símbolos
- Las mayúsculas se convierten en minúsculas
- No tiene que ser único
Nombre completo: qwen-audio-3.1-tts-flash-{preferred_name}-{32-character-id} para clonación, qwen-audio-3.1-tts-flash-vd-{preferred_name}-{32-character-id} para diseño
Ejemplo con myvoice: qwen-audio-3.1-tts-flash-myvoice-5996beec833d41f4982158347ba97fae
10^[a-zA-Z0-9]+$"myvoice"
Para clonación, idioma hablado en la grabación, para extraer mejor la voz. Para diseño, preferencia de idioma de la voz; se recomienda el mismo que preview_text
Por defecto zh si se omite
zh, en, ja, ko, de, fr, it, ru, pt, es "zh"
Modelo TTS que utilizará la voz. Actualmente solo se admite un valor, que se usa por defecto; los demás devuelven 400
| Valor | Descripción |
|---|---|
qwen-audio-3.1-tts-flash | Qwen Audio 3.1 TTS Flash, sin streaming (valor predeterminado y único) |
qwen-audio-3.1-tts-flash "qwen-audio-3.1-tts-flash"
URL HTTPS de callback para el resultado de la tarea
Momento:
- Cuando la tarea termina (
completed) o falla (failed) - Después de confirmar la facturación
Seguridad:
- Solo HTTPS
- Se prohíben IP privadas (127.0.0.1, 10.x.x.x, 172.16–31.x.x, 192.168.x.x, etc.)
- URL de máximo
2048caracteres
Entrega:
- Tiempo de espera:
10segundos - Máximo
3reintentos tras un fallo, con demoras de1/2/4segundos - Cuerpo del callback con el mismo formato que la respuesta de consulta de tarea
- Un estado 2xx indica éxito; los demás provocan reintentos
"https://your-domain.com/webhooks/voice-completed"
Respuesta
Tarea de creación de voz aceptada
Marca de tiempo de creación de la tarea
1775123456
ID de tarea
"task-unified-1775123456-abcd1234"
Modelo utilizado realmente
"voice-enrollment"
Tipo específico de objeto de tarea
audio.generation.task Progreso de la tarea en porcentaje (0–100)
0 <= x <= 1000
Estado de la tarea
pending, processing, completed, failed "pending"
Detalles de la tarea de audio
Show child attributes
Show child attributes
Tipo de salida de la tarea
audio "audio"
Información de uso y facturación
Show child attributes
Show child attributes