Skip to main content
Speech synthesis

Voice Design

O Voice Design permite criar vozes personalizadas apenas com descrições em linguagem natural, sem necessidade de amostras de áudio.

Visão geral

O Voice Design é ideal para prototipagem rápida, produção de conteúdo criativo e dublagem de personagens de jogos. O Alibaba Cloud Model Studio oferece o Voice Design por meio das seguintes famílias de modelos:
  • CosyVoice: Suporta síntese de fala em tempo real . Disponível na região de Pequim (séries v3.5 e v3).
  • Qwen-TTS: Oferece suporte à síntese de fala em tempo real e não em tempo real, com limite maior de caracteres para descrição de voz (2.048 caracteres). Disponível nas regiões de Pequim e Singapura.
Se você já possui amostras de áudio, consulte Clonagem de voz. Para orientações sobre como escolher um modelo, veja Síntese de fala.

Pré-requisitos

Início rápido

O fluxo de trabalho do Voice Design consiste em três etapas: descrever, criar e usar.
  1. Escreva uma descrição de voz: Descreva as características desejadas da voz em linguagem natural. Para orientações detalhadas, consulte Escrever descrições de voz.
  2. Crie uma voz: Chame a API do Voice Design. O sistema gera uma voz com base na sua descrição e retorna um clipe de áudio de pré-visualização. Ouça a pré-visualização antes de usar a voz em produção.
  3. Sintetize a fala com a voz criada: Chame a API de síntese de fala com o ID da voz para gerar o áudio.

Voice Design com CosyVoice

O exemplo a seguir demonstra como criar uma voz CosyVoice a partir de uma descrição textual e usá-la para síntese de fala.
O Voice Design com CosyVoice está disponível apenas na região de Pequim (séries v3.5 e v3).
Etapa 1: Criar uma voz a partir de uma descrição Chame a API com dois parâmetros: voice_prompt para a descrição da voz e preview_text para o texto lido no áudio de pré-visualização.
curl -X POST 'https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1/services/audio/tts/customization' \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
    "model": "voice-enrollment",
    "input": {
        "action": "create_voice",
        "target_model": "cosyvoice-v3.5-plus",
        "voice_prompt": "A composed middle-aged male announcer with a deep, rich and magnetic voice, a steady speaking speed and clear articulation, is suitable for news broadcasting or documentary commentary.",
        "preview_text": "Dear listeners, hello everyone. Welcome to the evening news.",
        "prefix": "announcer"
    },
    "parameters": {
        "sample_rate": 24000,
        "response_format": "wav"
    }
}'
curl -X POST 'https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1/services/audio/tts/customization' \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
    "model": "voice-enrollment",
    "input": {
        "action": "create_voice",
        "target_model": "cosyvoice-v3.5-plus",
        "voice_prompt": "A composed middle-aged male announcer with a deep, rich and magnetic voice, a steady speaking speed and clear articulation, is suitable for news broadcasting or documentary commentary.",
        "preview_text": "Dear listeners, hello everyone. Welcome to the evening news.",
        "prefix": "announcer"
    },
    "parameters": {
        "sample_rate": 24000,
        "response_format": "wav"
    }
}'
Etapa 2: Sintetizar fala com a voz projetada Na solicitação a seguir, use o valor de voice_id retornado na etapa anterior.
# coding=utf-8

import dashscope
from dashscope.audio.tts_v2 import *
import os

# The API keys for the Singapore and Beijing regions are different. Get an API key: https://www.alibabacloud.com/help/en/model-studio/get-api-key
# If you have not configured the environment variable, replace the following line with your Model Studio API key: dashscope.api_key = "sk-xxx"
dashscope.api_key = os.environ.get('DASHSCOPE_API_KEY')

# The following configuration is for the China (Beijing) region. Replace "{WorkspaceId}" with your actual workspace ID.
dashscope.base_websocket_api_url='wss://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api-ws/v1/inference'

# Use the same model for voice design and speech synthesis
model = "cosyvoice-v3.5-plus"
# Replace the voice parameter with the custom voice generated by voice design
voice = "voice_id"

# Instantiate SpeechSynthesizer, passing the model, voice, and other request parameters in the constructor
synthesizer = SpeechSynthesizer(model=model, voice=voice)
# Send text for synthesis and get binary audio
audio = synthesizer.call("What is the weather like today?")
# Establishing the WebSocket connection is required when sending text for the first time, so the first-package latency includes the connection setup time
print('[Metric] requestId: {}, first-package latency: {} ms'.format(
    synthesizer.get_last_request_id(),
    synthesizer.get_first_package_delay()))

# Save the audio to a local file
with open('output.mp3', 'wb') as f:
    f.write(audio)

Voice Design com Qwen-TTS

Os exemplos abaixo mostram como criar uma voz e aplicá-la na síntese de fala.
Ouça o áudio de pré-visualização antes de usar a voz para síntese. Isso confirma o resultado e evita custos desnecessários com a API.
  • Python
  • cURL
import os
import requests
import dashscope

# ======= Constants =======
DEFAULT_TARGET_MODEL = "qwen3-tts-vd-2026-01-26"  # Use the same model for voice design and speech synthesis
DEFAULT_PREFERRED_NAME = "custom_voice"

# Voice description: describe the desired voice characteristics in natural language
VOICE_PROMPT = "A young and lively female voice with a fast speaking rate and a noticeably rising intonation, suitable for introducing fashion products."

def create_voice_by_design(voice_prompt: str,
                           target_model: str = DEFAULT_TARGET_MODEL,
                           preferred_name: str = DEFAULT_PREFERRED_NAME) -> str:
    """
    Create a custom voice by voice description and return the voice parameter.
    """
    # The API keys for the Singapore and Beijing regions are different. Get an API key: https://www.alibabacloud.com/help/en/model-studio/get-api-key
    # If you have not configured the environment variable, replace the following line with your Model Studio API key: api_key = "sk-xxx"
    api_key = os.getenv("DASHSCOPE_API_KEY")

    # Singapore region
    url = "https://dashscope-intl.aliyuncs.com/api/v1/services/audio/tts/customization"
    payload = {
        "model": "qwen-voice-design",
        "input": {
            "action": "create",
            "target_model": target_model,
            "preferred_name": preferred_name,
            "voice_prompt": voice_prompt,
            "preview_text": "Hello everyone, welcome to our live stream! The product we are recommending today is truly amazing."
        },
        "parameters": {
            "sample_rate": 24000,
            "response_format": "wav"
        }
    }
    headers = {
        "Authorization": f"Bearer {api_key}",
        "Content-Type": "application/json"
    }

    resp = requests.post(url, json=payload, headers=headers)
    if resp.status_code != 200:
        raise RuntimeError(f"Failed to create voice: {resp.status_code}, {resp.text}")

    result = resp.json()
    preview_audio = result.get("output", {}).get("preview_audio")
    if preview_audio:
        import base64
        audio_data = base64.b64decode(preview_audio["data"])
        with open("preview_audio.wav", "wb") as f:
            f.write(audio_data)
        print(f"Preview audio saved to preview_audio.wav ({len(audio_data)} bytes)")

    try:
        return result["output"]["voice"]
    except (KeyError, ValueError) as e:
        raise RuntimeError(f"Failed to parse voice response: {e}")

if __name__ == '__main__':
    # Singapore region
    dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'

    voice_id = create_voice_by_design(VOICE_PROMPT)
    print(f"Created voice ID: {voice_id}")

    text = "Hello everyone, welcome to our live stream! The product we are recommending today is truly amazing."
    response = dashscope.MultiModalConversation.call(
        model=DEFAULT_TARGET_MODEL,
        # The API keys for the Singapore and Beijing regions are different. Get an API key: https://www.alibabacloud.com/help/en/model-studio/get-api-key
        # If you have not configured the environment variable, replace the following line with your Model Studio API key: api_key = "sk-xxx"
        api_key=os.getenv("DASHSCOPE_API_KEY"),
        text=text,
        voice=voice_id,
        stream=False
    )
    print(response)

Escrever descrições de voz

A descrição da voz (voice_prompt) determina a qualidade da voz gerada. Quanto mais específica e detalhada for a descrição, mais próximo o resultado estará das suas expectativas.

Requisitos e limitações

  • Limite de comprimento: O tamanho máximo de voice_prompt varia conforme o modelo: até 500 caracteres para CosyVoice e até 2.048 caracteres para Qwen-TTS.
  • Idiomas suportados: As descrições de voz aceitam apenas chinês e inglês.

Princípios fundamentais

  1. Seja específico, não vago: Use termos que descrevam qualidades vocais, como "grave", "nítida" ou "rápida". Evite palavras subjetivas ou ambíguas como "bonita" ou "normal".
  2. Aborde múltiplas dimensões: Uma boa descrição abrange diversos aspectos (como gênero, idade e emoção). Descrever apenas "voz feminina" é genérico demais para produzir um resultado distinto.
  3. Mantenha a objetividade: Concentre-se nas características físicas e perceptivas da voz. Por exemplo, prefira "aguda com tom enérgico" em vez de "minha voz favorita".
  4. Priorize a originalidade: Descreva as qualidades da voz em vez de solicitar a imitação de pessoas específicas (como celebridades ou atores). O modelo não suporta imitações, e tais solicitações podem levantar questões de direitos autorais.
  5. Seja conciso: Evite repetir sinônimos ou adicionar modificadores sem significado. Garanta que cada palavra tenha um propósito claro.

Dimensões da descrição

Combine as dimensões a seguir para descrever uma voz. Quanto mais dimensões você incluir, mais preciso será o resultado.

Dimensão

Exemplos

Gênero

Masculino, feminino, neutro

Idade

Criança (5-12), adolescente (13-18), jovem adulto (19-35), meia-idade (36-55), idoso (55+)

Tom

Agudo, médio, grave, levemente agudo, levemente grave

Velocidade

Rápida, média, lenta, levemente rápida, levemente lenta

Emoção

Alegre, calma, gentil, séria, animada, serena, suave

Características

Ressonante, nítida, rouca, aveludada, doce, profunda, poderosa

Caso de uso

Telejornal, publicidade, audiolivro, personagem de animação, assistente de voz, narração de documentário

Exemplos

  • Estilo padrão de locução: articulação clara e precisa, com dicção perfeita
  • Voz feminina jovem e animada, ritmo acelerado com entonação ascendente marcante, adequada para apresentações de produtos de moda
  • Voz masculina de meia-idade, calma e pausada, profunda e ressonante, ideal para leitura de notícias ou narração de documentários
  • Voz feminina gentil e ponderada, cerca de 30 anos, tom uniforme, apropriada para narração de audiolivros
  • Voz infantil fofa, menina de aproximadamente 8 anos, fala levemente infantilizada, perfeita para dublagem de personagens de animação

Gerencie vozes personalizadas

O Voice Design permite listar vozes, visualizar detalhes e excluir vozes. Para endpoints da API e detalhes dos parâmetros, consulte a Referência da API.

Cota e faturamento

Cota de vozes e limpeza automática

Limite total de vozes: Cada conta do Alibaba Cloud Model Studio tem limite separado de 1.000 vozes personalizadas para CosyVoice e 1.000 para Qwen-TTS. As duas cotas são contabilizadas independentemente. Limpeza automática: Se uma voz não for usada em nenhuma solicitação de síntese de fala durante um ano, o sistema a exclui automaticamente.

Regras de faturamento

  • CosyVoice: A criação de vozes é gratuita.
  • Qwen-TTS: Cada criação de voz custa USD 0,2. Criações malsucedidas não são cobradas. Cota gratuita (apenas na região de Singapura):
    • Você recebe 10 criações gratuitas de voz nos primeiros 90 dias após ativar o Alibaba Cloud Model Studio.
    • Criações com falha não consomem a cota gratuita.
    • Excluir uma voz não restaura a cota gratuita.
    • Após o esgotamento da cota gratuita ou o término do período de 90 dias, a criação de vozes é cobrada a USD 0,2 por voz.

Modelos e regiões suportados

  • China (Beijing)
  • Singapore
Para chamar os modelos a seguir, selecione uma chave de API da região de Pequim:
  • CosyVoice: cosyvoice-v3.5-plus, cosyvoice-v3.5-flash, cosyvoice-v3-plus, cosyvoice-v3-flash
  • Qwen-TTS:
    • Qwen3-TTS-VD-Realtime: qwen3-tts-vd-realtime-2026-01-15 (snapshot mais recente), qwen3-tts-vd-realtime-2025-12-16 (snapshot)
    • Qwen3-TTS-VD: qwen3-tts-vd-2026-01-26 (snapshot mais recente)
  • Singapore
  • China (Beijing)
Para chamar os modelos a seguir, selecione uma chave de API da região de Singapura:
  • Qwen-TTS:
    • Qwen3-TTS-VD-Realtime: qwen3-tts-vd-realtime-2026-01-15 (snapshot mais recente), qwen3-tts-vd-realtime-2025-12-16 (snapshot)
    • Qwen3-TTS-VD: qwen3-tts-vd-2026-01-26 (snapshot mais recente)
  • O Voice Design com CosyVoice usa o modelo FunAudioGen-VD.
  • O mesmo texto de descrição (prompt) pode gerar vozes ligeiramente diferentes a cada execução. Gere múltiplas vozes e selecione a melhor opção.

Referência da API

Referência da API do Voice Design

Perguntas frequentes

A mesma descrição de voz sempre produz a mesma voz?

Não necessariamente. O Voice Design envolve aleatoriedade, portanto a mesma descrição pode gerar vozes ligeiramente diferentes a cada vez. Gere várias opções, ouça-as e escolha a melhor.

Quais idiomas são suportados nas descrições de voz?

Atualmente, as descrições de voz (voice_prompt) aceitam apenas chinês e inglês. No entanto, a voz gerada pode sintetizar fala em vários idiomas.

Qual é a diferença entre Voice Design e Clonagem de Voz?

O Voice Design cria uma voz do zero usando descrições textuais, sem exigir amostras de áudio. É adequado para desenvolver identidades vocais totalmente novas. Já a Clonagem de Voz replica uma voz com base em amostras de áudio reais, sendo indicada para reproduzir a voz de uma pessoa específica. Para mais detalhes, consulte Clonagem de voz.
Plano de Tokens
Playground de Modelos
Inferência do Modelo
Avaliação
Compressão de Modelos
Estatísticas e Monitoramento
Suporte