Todos os produtos
Search
Central de documentação

Alibaba Cloud Model Studio:Síntese de fala não em tempo real

Última atualização: Oct 29, 2026

Converta um texto completo em fala por HTTP. Conheça os recursos dos modelos, faça a primeira chamada e melhore a qualidade da síntese.

Recursos

A síntese de fala não em tempo real recebe o texto completo em uma única solicitação HTTP e oferece saída sem streaming ou com streaming por SSE. A saída sem streaming retorna uma URL de áudio válida por 24 horas. Baixe e salve o áudio antes da expiração; depois disso, você pode repetir a síntese. A saída com streaming retorna os dados de áudio em fragmentos.

  • Idiomas e dialetos: selecione um modelo e uma voz para o idioma de destino ou especifique um dialeto por instrução. Consulte Dialetos.
  • Expressividade: ajuste a interpretação com instruções em linguagem natural ou insira tags de emoção e sons não verbais. Consulte Controle por instruções e Tags de emoção e sons não verbais.
  • Vozes personalizadas: crie uma voz a partir de uma amostra de áudio com a clonagem de voz ou de uma descrição com o design de voz.
  • Controle detalhado e fórmulas: use SSML e LaTeX para controlar pausas e pronúncia ou converter fórmulas em fala.

Observação

  • Os recursos disponíveis variam conforme o modelo e a voz. Verifique o escopo na documentação de cada recurso.
  • Para enviar texto de forma incremental, use a síntese de fala em tempo real.

Primeiros passos

Qwen-Audio-TTS (Recomendado)

Os exemplos a seguir usam qwen-audio-3.1-tts-flash e a voz do sistema longanhuan_v3.1 na região Singapura para demonstrar a saída sem streaming e com streaming.

Saída sem streaming

import os
import requests

response = requests.post(
    'https://YOUR_WORKSPACE_ID.ap-southeast-1.maas.aliyuncs.com/api/v1/services/audio/tts/SpeechSynthesizer',
    headers={"Authorization": f"Bearer {os.environ['DASHSCOPE_API_KEY']}"},
    json={
        "model": "qwen-audio-3.1-tts-flash",
        "input": {
            "text": "Hello, welcome to Alibaba Cloud Model Studio.",
            "voice": "longanhuan_v3.1",
            "format": "wav",
            "sample_rate": 24000
        }
    },
    timeout=60,
)
response.raise_for_status()
audio_url = response.json()["output"]["audio"]["url"]
audio_response = requests.get(audio_url, timeout=60)
audio_response.raise_for_status()
with open("output.wav", "wb") as f:
    f.write(audio_response.content)

O áudio é salvo em output.wav no diretório atual.

Saída com streaming

Este exemplo imprime os eventos SSE recebidos linha por linha. O campo output.audio.data contém um fragmento de áudio codificado em Base64.

import os
import requests

response = requests.post(
    'https://YOUR_WORKSPACE_ID.ap-southeast-1.maas.aliyuncs.com/api/v1/services/audio/tts/SpeechSynthesizer',
    headers={"Authorization": f"Bearer {os.environ['DASHSCOPE_API_KEY']}", "X-DashScope-SSE": "enable"},
    json={
        "model": "qwen-audio-3.1-tts-flash",
        "input": {
            "text": "Hello, welcome to Alibaba Cloud Model Studio.",
            "voice": "longanhuan_v3.1",
            "format": "wav",
            "sample_rate": 24000
        }
    },
    stream=True,
    timeout=60,
)
response.raise_for_status()
for line in response.iter_lines():
    print(line.decode("utf-8"))
response.close()

CosyVoice

Os exemplos a seguir usam cosyvoice-v3-flash e a voz do sistema longanyang em Pequim para demonstrar a saída sem streaming e com streaming.

Saída sem streaming

import os
import requests

response = requests.post(
    'https://YOUR_WORKSPACE_ID.cn-beijing.maas.aliyuncs.com/api/v1/services/audio/tts/SpeechSynthesizer',
    headers={"Authorization": f"Bearer {os.environ['DASHSCOPE_API_KEY']}"},
    json={
        "model": "cosyvoice-v3-flash",
        "input": {
            "text": "Hello, welcome to Alibaba Cloud Model Studio.",
            "voice": "longanyang",
            "format": "wav",
            "sample_rate": 24000
        }
    },
    timeout=60,
)
response.raise_for_status()
audio_url = response.json()["output"]["audio"]["url"]
audio_response = requests.get(audio_url, timeout=60)
audio_response.raise_for_status()
with open("output.wav", "wb") as f:
    f.write(audio_response.content)

O áudio é salvo em output.wav no diretório atual.

Saída com streaming

Este exemplo imprime os eventos SSE recebidos linha por linha. O campo output.audio.data contém um fragmento de áudio codificado em Base64.

import os
import requests

response = requests.post(
    'https://YOUR_WORKSPACE_ID.cn-beijing.maas.aliyuncs.com/api/v1/services/audio/tts/SpeechSynthesizer',
    headers={"Authorization": f"Bearer {os.environ['DASHSCOPE_API_KEY']}", "X-DashScope-SSE": "enable"},
    json={
        "model": "cosyvoice-v3-flash",
        "input": {
            "text": "Hello, welcome to Alibaba Cloud Model Studio.",
            "voice": "longanyang",
            "format": "wav",
            "sample_rate": 24000
        }
    },
    stream=True,
    timeout=60,
)
response.raise_for_status()
for line in response.iter_lines():
    print(line.decode("utf-8"))
response.close()

Melhorar a qualidade da síntese

Idiomas e pronúncia

Se números, abreviações ou símbolos forem pronunciados incorretamente, use language_hints para definir o idioma de destino ou hot_fix para personalizar a pronúncia e a substituição de texto. Consulte os modelos compatíveis e a configuração em Qwen-Audio-TTS API ou CosyVoice API.

Use SSML para controlar pausas, a leitura de números ou a pronúncia de palavras. Para os modelos, vozes, interfaces e tags compatíveis com Qwen-Audio-TTS e CosyVoice, consulte SSML e LaTeX.

Controle por instruções

Adicione instruction ao objeto input da solicitação para especificar o idioma de síntese e descrever a velocidade, a emoção ou o estilo de fala em linguagem natural.

ObservaçãoPara criar uma nova voz com gênero, idade ou características vocais específicas, ou consultar orientações e exemplos de descrições de voz, veja design de voz.

Qwen-Audio-TTS

As vozes do sistema, clonadas e criadas por design de qwen-audio-3.1-tts-plus, qwen-audio-3.1-tts-flash, qwen-audio-3.0-tts-plus e qwen-audio-3.0-tts-flash aceitam instruções em linguagem natural por meio de instruction nas solicitações de síntese.

Recomendamos especificar o idioma de síntese e o efeito desejado em instruction para melhorar a qualidade da síntese. O idioma especificado na instrução deve corresponder ao idioma do texto a ser sintetizado. Por exemplo, ao sintetizar texto em holandês, defina:

{"instruction": "请用荷兰话说,每个字都慢慢说"}

CosyVoice

ObservaçãoNo CosyVoice, instruction pode ter até 100 caracteres. Caracteres chineses, incluindo simplificados, tradicionais e usados no japonês e no coreano, contam como dois cada. Outros caracteres, incluindo pontuação, letras, números, kana e hangul, contam como um cada.

ModeloVozes aplicáveisRequisitos das instruçõesIdiomas do texto das instruções

cosyvoice-v3.5-plus, cosyvoice-v3.5-flash

Vozes clonadas e criadas por design

Não há vozes do sistema.

Instruções em linguagem natural.

Chinês, inglês, francês, alemão, japonês, coreano, russo, português, tailandês, indonésio e vietnamita.

cosyvoice-v3-plus

Vozes do sistema

Use o formato e o conteúdo fixos da lista de vozes.

Vozes clonadas e criadas por design não oferecem controle por instruções.

Use o idioma indicado na lista de vozes.

cosyvoice-v3-flash

Vozes do sistema

Use o formato e o conteúdo fixos da lista de vozes.

Chinês.

Vozes clonadas e criadas por design

Instruções em linguagem natural.

Chinês, inglês, francês, alemão, japonês, coreano e russo.

Dialetos

A síntese de dialetos gera fala em dialetos chineses, como os de Henan ou Sichuan. A seleção do dialeto depende do modelo e do tipo de voz.

Qwen-Audio-TTS

  • Vozes do sistema: selecione uma voz compatível com o dialeto de destino na lista Qwen-Audio-TTS. Vozes que oferecem o dialeto diretamente não exigem configurações adicionais. Para vozes compatíveis com instruções de dialeto, use o parâmetro de controle por instruções instruction.
  • Vozes clonadas: especifique o dialeto com o parâmetro de controle por instruções instruction.
  • Vozes criadas por design: dialetos não são compatíveis.

Para vozes compatíveis com instruções de dialeto, defina instruction="请讲上海话。" no objeto input da solicitação para sintetizar texto em chinês no dialeto de Xangai.

CosyVoice

  • Vozes do sistema: selecione uma voz que ofereça o dialeto diretamente, como longshange_v3, ou aceite instruções de dialeto, como longanhuan_v3. Siga o formato da lista de vozes.
  • Vozes clonadas: use instruction com um modelo compatível com controle por instruções para especificar o dialeto.
  • Vozes criadas por design: dialetos não são compatíveis.

ObservaçãoAs vozes clonadas de cosyvoice-v3-plus não permitem especificar dialetos por instruções.

No exemplo inicial de CosyVoice, substitua input pelo conteúdo a seguir para gerar o dialeto Henan com longanhuan_v3:

{
  "text": "叫你去买盐,你买回来一袋面,这不是弄啥嘞吗!",
  "voice": "longanhuan_v3",
  "format": "wav",
  "sample_rate": 24000,
  "instruction": "请用河南话表达。"
}

O Qwen3-TTS usa vozes do sistema compatíveis com o dialeto de destino. Consulte a lista de vozes Qwen-TTS.

Tags de emoção e sons não verbais

ObservaçãoAplica-se a qwen-audio-3.1-tts-plus, qwen-audio-3.1-tts-flash, qwen-audio-3.0-tts-plus e qwen-audio-3.0-tts-flash.

As tags de emoção e paralinguísticas controlam a emoção e o estilo da fala e inserem sons, como risadas ou suspiros, em posições específicas. Escreva as tags diretamente no texto a ser sintetizado, text, sem parâmetros adicionais.

Exemplos de uso

Este texto começa com uma interpretação animada, insere uma risada na posição indicada e continua a fala:

[excited]今天的天气真不错![laughing]我们一起出去玩吧!

Este texto muda para uma interpretação animada na segunda frase:

[serious]请注意安全事项。[excited]好了,现在让我们开始吧!

Tags compatíveis

Tags de controle

Uma tag de controle define a emoção ou o estilo do texto seguinte até a próxima tag de controle. Se frases longas forem segmentadas automaticamente, o efeito ficará restrito ao segmento resultante.

TagDescrição

[sad]

Triste

[amazed]

Surpreso

[deep and loud shouting]

Grito grave e forte

[trembling]

Trêmulo

[angry]

Irritado

[excited]

Animado

[sarcastic]

Sarcástico

[curious]

Curioso

[like dracula]

Interpretação de Drácula

[bored]

Entediado

[tired]

Cansado

[scornful]

Desdenhoso

[shouting]

Grito

[asmr]

Voz suave de ASMR

[panicked]

Em pânico

[mischievously]

Travesso

[empathetic]

Empático

[whispers]

Sussurro

[reluctantly]

Relutante

[crying]

Choro

[serious]

Sério

[very slowly]

Muito lento

[very fast]

Muito rápido

Tags de sons não verbais

Uma tag de som não verbal insere um som na posição indicada, sem mudar o estilo emocional do texto ao redor.

TagDescrição

[gasp]

Inspiração de surpresa

[sighing]

Suspiro

[clears throat]

Pigarro

[giggles]

Risadinha

[laughing]

Risada

[cough]

Tosse

[snorts]

Bufada

Modelos compatíveis

Singapura

Use uma chave de API e um endpoint desta região para chamar estes 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
  • Qwen3-TTS: qwen3-tts-flash

China (Pequim)

Use uma chave de API e um endpoint desta região para chamar estes 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, cosyvoice-v2
  • Qwen3-TTS: qwen3-tts-flash

Para vozes do sistema e amostras de áudio, consulte as listas Qwen-Audio-TTS, CosyVoice e Qwen3-TTS. Uma voz clonada ou criada por design deve ser usada com o modelo de destino definido na criação.

Referência da API