Cree voces personalizadas a partir de descripciones en lenguaje natural, escuche la vista previa y úselas para la síntesis de voz.
Visión general
El diseño de voz es adecuado para crear prototipos rápidamente, producir contenido creativo y dar voz a personajes de videojuegos.
NotaNo se necesita una muestra de audio para crear la voz. Para reproducir una voz de una muestra de audio existente, use Clonación de voz.
Preparación
-
Obtenga una API key y configúrela en la variable de entorno
DASHSCOPE_API_KEY. -
Obtenga el ID de su espacio de trabajo y sustituya
YOUR_WORKSPACE_IDen el ejemplo por ese valor. Para ver las instrucciones, consulte Regiones, alcance de despliegue del servicio y endpoints. -
Instale DashScope SDK y
requests:pip install -U dashscope requests
Comenzar a usar
Qwen-Audio-TTS y CosyVoice comparten el mismo flujo de creación de voz, vista previa y síntesis básica. El siguiente ejemplo utiliza qwen-audio-3.1-tts-flash.
- Cree una voz: Configure la descripción de voz
voice_prompt, el texto de vista previapreview_texty el modelo de destinotarget_modelpara obtener un ID de voz. - Guarde el audio de vista previa: Decodifique el valor
preview_audio.datadevuelto y guárdelo como un archivo WAV para escucharlo. - Sintetice voz: Use el
voice_iddevuelto comovoicey sintetice con el modelo vinculado.
import base64
import os
import dashscope
import requests
from dashscope.audio.tts_v2 import AudioFormat, SpeechSynthesizer
api_key = os.environ["DASHSCOPE_API_KEY"]
workspace_id = "YOUR_WORKSPACE_ID"
target_model = "qwen-audio-3.1-tts-flash"
# Create a voice and save the returned preview audio.
response = requests.post(
f"https://{workspace_id}.cn-beijing.maas.aliyuncs.com/api/v1/services/audio/tts/customization",
headers={"Authorization": f"Bearer {api_key}"},
json={
"model": "voice-enrollment",
"input": {
"action": "create_voice",
"target_model": target_model,
"voice_prompt": "A calm middle-aged male announcer with a deep, resonant voice, steady speaking pace, and clear articulation, suited for news broadcasts or documentaries.",
"preview_text": "Good evening, everyone. Welcome to the evening news.",
"prefix": "announcer",
"language_hints": ["en"],
},
"parameters": {"sample_rate": 24000, "response_format": "wav"},
},
timeout=120,
)
response.raise_for_status()
output = response.json()["output"]
voice_id = output["voice_id"]
print(f"voice_id: {voice_id}")
with open("preview.wav", "wb") as f:
f.write(base64.b64decode(output["preview_audio"]["data"]))
# Synthesize speech with the same target model and the returned voice ID.
dashscope.api_key = api_key
dashscope.base_websocket_api_url = (
f"wss://{workspace_id}.cn-beijing.maas.aliyuncs.com/api-ws/v1/inference"
)
synthesizer = SpeechSynthesizer(
model=target_model,
voice=voice_id,
format=AudioFormat.WAV_24000HZ_MONO_16BIT,
)
audio = synthesizer.call("The weather is clear today, perfect for a walk outside. Have a wonderful day.")
with open("output.wav", "wb") as f:
f.write(audio)
El ejemplo guarda el audio de vista previa en preview.wav y el audio sintetizado en output.wav. Guarde el ID de voz que se imprime para las siguientes llamadas de síntesis de voz.
Para ver ejemplos de solicitudes HTTP, parámetros opcionales y campos de respuesta, consulte la Referencia de API de diseño de voz. Para los parámetros de síntesis, consulte Eventos del cliente de Qwen-Audio-TTS.
Guía para redactar descripciones de voz
La descripción de voz (voice_prompt) especifica las cualidades deseadas. Las descripciones claras y específicas ayudan a generar voces adecuadas para sus necesidades.
Pautas de descripción
- Sea específico: Use cualidades como "grave", "nítida" o "habla rápida". Evite valoraciones vagas como "bonita" o "normal".
- Combine dimensiones: Describa género, edad, tono, velocidad y emoción. "Voz femenina" por sí sola ofrece pocos detalles para obtener una voz distintiva.
- Sea objetivo: Describa cualidades perceptibles, como "tono agudo y enérgico", en lugar de preferencias subjetivas como "mi voz favorita".
- Sea original: Describa las cualidades de la voz sin solicitar la imitación de una persona específica, como una celebridad o un actor. El modelo no admite la imitación dirigida y estas solicitudes pueden plantear problemas de derechos de autor.
- Sea conciso: Reduzca los sinónimos repetidos y los modificadores innecesarios.
Combine las siguientes dimensiones en una descripción de voz:
| Dimensión | Ejemplos |
|---|---|
Género | Masculino, femenino, neutro |
Edad | Niño (5-12), adolescente (13-18), adulto joven (19-35), de mediana edad (36-55), adulto mayor (55+) |
Tono | Alto, medio, bajo, ligeramente alto, ligeramente bajo |
Velocidad | Rápido, medio, lento, ligeramente rápido, ligeramente lento |
Emoción | Alegre, tranquila, suave, seria, animada, serena, relajante |
Características | Resonante, nítido, ronco, suave, dulce, profundo, potente |
Caso de uso | Noticieros, publicidad, audiolibros, personajes de animación, asistentes de voz, narración de documentales |
Ejemplos de descripción
- Estilo de locución estándar: articulación clara y precisa con dicción perfecta
- Voz femenina joven y animada, de ritmo rápido con una entonación ascendente notable, adecuada para presentaciones de productos de moda
- Voz masculina de mediana edad, tranquila y pausada, profunda y resonante, adecuada para noticieros o narración de documentales
- Voz femenina suave y reflexiva, de unos 30 años, tono uniforme, adecuada para la lectura de audiolibros
- Voz infantil tierna, aproximadamente una niña de 8 años, habla ligeramente infantil, adecuada para doblaje de personajes de animación
NotaLa misma descripción puede generar voces diferentes. Escuche el audio de vista previa después de la creación. Para comparar resultados, genere varias voces y elija la más adecuada.
Administración de voces
- Listar voces: Vea las voces personalizadas existentes.
- Consultar detalles de una voz: Vea el modelo vinculado, el estado de la voz y otra información.
- Eliminar una voz: Elimine las voces que ya no necesite para liberar cuota.
Para ver las interfaces y los parámetros, consulte la Referencia de API de diseño de voz.
Modelos compatibles
China (Pekín)
Use una API key de esta región para llamar a los siguientes modelos:
-
Qwen-Audio-TTS: qwen-audio-3.1-tts-plus, qwen-audio-3.1-tts-flash, qwen-audio-3.0-tts-plus, qwen-audio-3.0-tts-flash
-
CosyVoice: cosyvoice-v3.5-plus, cosyvoice-v3.5-flash, cosyvoice-v3-plus, cosyvoice-v3-flash
NotaEl diseño de voz de CosyVoice utiliza el modelo FunAudioGen-VD.
Cuotas y límites
-
Número de voces: Cada cuenta de Alibaba Cloud Model Studio puede tener hasta 1,000 voces personalizadas. La clonación de voz y el diseño de voz comparten esta cuota a nivel de cuenta entre todos los modelos.
NotaAl alcanzar el límite, las nuevas solicitudes de creación mediante clonación o diseño de voz fallan. Elimine las voces que ya no necesite para liberar cuota antes de crear nuevas voces.
-
Descripción de voz:
voice_promptsolo admite chino e inglés, con una longitud máxima de 500 caracteres. -
Texto de vista previa:
preview_textsolo admite chino e inglés y debe tener entre 15 y 200 caracteres. -
Vinculación al modelo: Al crear la voz, se vincula a un modelo de síntesis de voz mediante
target_model. Use el mismo modelo para las síntesis posteriores.
La voz generada puede sintetizar habla en varios idiomas. Los idiomas compatibles dependen del modelo de síntesis de voz de destino.
Facturación
La creación de voces es gratuita.
La síntesis de voz con una voz diseñada se factura según el modelo de síntesis de voz de destino. Para conocer los precios, consulte Precios de modelos.