Qwen-Audio-TTS/CosyVoice eventos do cliente
Qwen-Audio-TTS/CosyVoice referência de evento do cliente WebSocket de síntese de fala em tempo real
Guia do usuário: Para introdução do modelo e recomendações de seleção, consulte Síntese de fala.
tarefa de execução
Descrição: inicia uma tarefa de síntese de fala e configura o modelo, a voz, a taxa de amostragem e outros parâmetros.
Quando enviar: Imediatamente após a conexão WebSocket ser estabelecida.
Evento de resposta: o servidor retorna um evento de tarefa iniciada. Aguarde este evento antes de enviar comandos subsequentes.
{
"header": {
"action": "run-task",
"task_id": "2bf83b9a-baeb-4fda-8d9a-xxxxxxxxxxxx",
"streaming": "duplex"
},
"payload": {
"task_group": "audio",
"task": "tts",
"function": "SpeechSynthesizer",
"model": "cosyvoice-v3-flash",
"parameters": {
"text_type": "PlainText",
"voice": "longanyang",
"format": "mp3",
"sample_rate": 22050,
"volume": 50,
"rate": 1.0,
"pitch": 1.0,
"enable_ssml": false
},
"input": {}
}
}
Cabeçalho da mensagem.
O tipo de comando. Definir como `run-task`.
Um ID de tarefa gerado pelo cliente no formato UUID. Esse ID correlaciona eventos subsequentes e deve corresponder ao task\_id nos comandos continue-task e finish-task.
Definir como `duplex`.
Solicitar corpo.
O grupo de tarefas. Definir como `audio`.
O tipo de tarefa. Definir como `tts`.
O tipo de função. Definir como `SpeechSynthesizer`.
O nome do modelo.
Definir como um objeto vazio `{}`. Envie o texto para sintetizar através do comando continue-task.
Parâmetros de síntese de fala.
Definir como `PlainText`.
A voz usada para síntese de fala.
- **Vozes do sistema**: Consulte [CosyVoice Lista de vozes](/developer-guides/speech/voice-list/cosyvoice)
- **Vozes clonadas**: vozes personalizadas criadas por meio de clonagem de voz
- **Vozes personalizadas**: vozes personalizadas criadas através do design de voz
O formato de codificação de áudio. Valores válidos: pcm, wav, mp3 (padrão), opus.
A taxa de amostragem de áudio em Hz. Valores válidos: 8.000, 16.000, 22.050 (padrão), 24.000, 44100, 48.000.
O nível de volume. Valor padrão: 50. Valores válidos: \[0, 100].
A velocidade da fala. Valor padrão: 1,0. Valores válidos: \[0,5, 2,0].
O campo. Valor padrão: 1,0. Valores válidos: \[0,5, 2,0].
A taxa de bits de áudio em kbps. Quando o formato de áudio for mp3 ou opus, use `bit_rate` para ajustar a taxa de bits. Valor padrão: 32. Valores válidos: \[6, 510].
Especifica se o SSML deve ser ativado. Valor padrão: falso. Quando definido como verdadeiro, apenas um comando continue-task é permitido.
Especifica se os carimbos de data/hora em nível de palavra devem ser ativados. Valor padrão: falso.
Disponível apenas no modo de saída de streaming. Vozes suportadas: vozes clonadas de qwen-audio-3.0-tts-plus, qwen-audio-3.0-tts-flash, cosyvoice-v3-flashe cosyvoice-v3-pluse vozes do sistema marcadas como suportadas em [Qwen-Audio-TTS lista de vozes](/developer-guides/speech/voice-list/qwen-audio-tts), [CosyVoice Lista de vozes](/developer-guides/speech/voice-list/cosyvoice). Vozes clonadas de outros modelos não suportam esse recurso.
Uma semente aleatória para controlar a variação na saída da síntese. Quando a versão do modelo, o texto, a voz e outros parâmetros permanecem inalterados, o uso da mesma semente produz resultados idênticos. Valor padrão: 0. Valores válidos: \[0, 65535].
Especifica o idioma de destino para síntese de fala para melhorar a qualidade da saída.
- Este parâmetro é um array, mas a versão atual processa apenas o primeiro elemento. Passe um único valor.
- Este parâmetro especifica o idioma alvo para síntese de fala. Não está relacionado ao idioma da amostra de áudio usada na clonagem de voz. Para definir o idioma de origem para uma tarefa de clonagem, consulte a referência da API de clonagem de voz.
Quando a pronúncia de dígitos, a expansão de abreviações, a leitura de símbolos ou a síntese de idiomas minoritários não atenderem às expectativas, use este parâmetro.
Valores válidos: zh (chinês), en (inglês), fr (francês), de (alemão), ja (japonês), ko (coreano), ru (russo), pt (português), th (tailandês), id (indonésio), vi (vietnamita), es (espanhol), it (italiano), ms (malaio), fil (filipino), ar (árabe).
Define uma instrução para controlar dialeto, emoção ou caráter de voz durante a síntese. Para uso detalhado, consulte [Síntese de fala em tempo real](/developer-guides/speech/realtime-streaming#instruction-control).
Especifica se uma marca d'água AIGC deve ser incorporada no áudio gerado. Quando definida como verdadeira, a marca d'água é incorporada em arquivos de áudio de formatos suportados (wav/mp3/opus). Valor padrão: falso. Somente qwen-audio-3.0-tts-plus, qwen-audio-3.0-tts-flash, cosyvoice-v3-flashe cosyvoice-v3-plus suporte a esse recurso.
Define o `ContentPropagator` campo na marca d’água AIGC, identificando o propagador do conteúdo. Só entra em vigor quando `enable_aigc_tag` é `true`. Valor padrão: UID do Alibaba Cloud. Somente qwen-audio-3.0-tts-plus, qwen-audio-3.0-tts-flash, cosyvoice-v3-flashe cosyvoice-v3-plus suporte a esse recurso.
Define o `PropagateID` campo na marca d'água AIGC, identificando exclusivamente uma ação de propagação específica. Só entra em vigor quando `enable_aigc_tag` é `true`. Valor padrão: O ID da solicitação de síntese de fala atual. Somente qwen-audio-3.0-tts-plus, qwen-audio-3.0-tts-flash, cosyvoice-v3-flashe cosyvoice-v3-plus suporte a esse recurso.
Configura correções de pronúncia e substituições de texto aplicadas antes da síntese. qwen-audio-3.0-tts-plus e qwen-audio-3.0-tts-flash não suportam esse recurso.
- `pronunciation`: Pronúncia personalizada. Especifica anotações pinyin para palavras para corrigir pronúncias padrão imprecisas.
- `replace`: Substituição de texto. Substitui palavras especificadas pelo texto de destino antes da síntese.
```json
"hot_fix": {
"pronunciation": [
{"weather": "tian1 qi4"}
],
"replace": [
{"today": "gold day"}
]
}
```
Especifica se a filtragem Markdown deve ser habilitada. Quando ativado, o sistema remove automaticamente os símbolos de marcação Markdown do texto de entrada antes da síntese. Valor padrão: falso. Apenas vozes clonadas de cosyvoice-v3-flash suporte a esse recurso.
continuar-tarefa
Descrição: Envia o texto para sintetizar. O texto pode ser enviado de uma só vez ou em vários segmentos.
Quando enviar: Após receber o evento de tarefa iniciada do servidor.
Limites:
- Máximo de 20.000 caracteres por mensagem
- Máximo de 200.000 caracteres cumulativamente
- O intervalo de envio não deve ultrapassar 23 segundos; caso contrário, a conexão expirará.
{
"header": {
"action": "continue-task",
"task_id": "2bf83b9a-baeb-4fda-8d9a-xxxxxxxxxxxx",
"streaming": "duplex"
},
"payload": {
"input": {
"text": "Before my bed, moonlight shines bright, I suspect it's frost upon the ground."
}
}
}
Cabeçalho da mensagem.
O tipo de comando. Definir como `continue-task`.
O ID da tarefa no formato UUID. Deve corresponder ao task\_id em run-task.
Definir como `duplex`.
Solicitar corpo.
Contém o texto a ser sintetizado.
O texto a ser sintetizado. Máximo de 20.000 caracteres por mensagem e 200.000 caracteres cumulativamente.
tarefa final
Descrição: Notifica o servidor que todo o texto foi enviado e solicita a conclusão da tarefa. Também pode ser usado para cancelar o turno de síntese atual.
Quando enviar: Imediatamente após todo o texto ter sido enviado ou a qualquer momento para interromper o turno de síntese atual.
Evento de resposta: o servidor retorna um evento de tarefa concluída.
{
"header": {
"action": "finish-task",
"task_id": "2bf83b9a-baeb-4fda-8d9a-xxxxxxxxxxxx",
"streaming": "duplex"
},
"payload": {
"input": {}
}
}
{
"header": {
"action": "finish-task",
"task_id": "2bf83b9a-baeb-4fda-8d9a-xxxxxxxxxxxx",
"streaming": "duplex"
},
"payload": {
"input": {
"directive": "cancel"
}
}
}
Cabeçalho da mensagem.
O tipo de comando. Definir como `finish-task`.
O ID da tarefa no formato UUID. Deve corresponder ao task\_id em run-task.
Definir como `duplex`.
Solicitar corpo.
Definir como `{}` para conclusão normal da tarefa. Incluir `directive` para cancelar o turno de síntese atual.
Controla como a tarefa termina. Atualmente apenas `cancel` é suportado. Quando definido para `cancel`, o turno de síntese atual é cancelado e o servidor retorna imediatamente um evento de tarefa concluída sem produzir mais áudio.
Após o cancelamento, você pode iniciar uma nova tarefa de síntese na mesma conexão WebSocket enviando um novo evento run-task sem reconectar.
Este recurso é compatível com Qwen-Audio-TTS modelos. CosyVoice os modelos não suportam esse recurso.