Qwen3-TTS eventos do cliente
Eventos de cliente são mensagens JSON enviadas por meio de uma conexão WebSocket para controlar o Qwen3-TTS Sessão de API em tempo real – defina configurações de voz, transmita texto para síntese e conclusão de sinal.
Para obter a visão geral completa da API, consulte TTS de streaming em tempo real.
Ponto final
Conecte-se ao terminal WebSocket:
wss://maas.qwencloudapi.com/api-ws/v1/realtime?model={model}
Substituir {model} com o ID do seu modelo, como qwen3-tts-flash-realtime.
Resumo do evento
| Evento do cliente | Resposta do servidor | Descrição |
|---|---|---|
session.update |
session.updated |
Defina voz, formato de áudio, modo de interação e outros parâmetros de sessão |
input_text_buffer.append |
-- | Anexar texto ao buffer de síntese |
input_text_buffer.commit |
input_text_buffer.committed |
Confirme o texto armazenado em buffer para acionar a síntese |
input_text_buffer.clear |
input_text_buffer.cleared |
Descarte todo o texto armazenado em buffer |
session.finish |
-- | Encerre a sessão; o servidor libera o áudio restante e fecha a conexão |
sessão.atualização
Configura a sessão. Envie como a primeira mensagem após o estabelecimento da conexão WebSocket. Se omitido, todos os parâmetros usarão padrões. O servidor confirma com um session.updated evento.
Corpo da solicitação
{
"event_id": "event_123",
"type": "session.update",
"session": {
"voice": "Cherry",
"mode": "server_commit",
"language_type": "Chinese",
"response_format": "pcm",
"sample_rate": 24000,
"instructions": "",
"optimize_instructions": false
}
}
Parâmetros
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
event_id |
corda | Sim | Identificador de evento exclusivo gerado pelo cliente (UUID recomendado). Deve ser exclusivo na sessão WebSocket. |
type |
corda | Sim | Definir como session.update. |
session |
objeto | Não | Configuração da sessão. Consulte as subseções a seguir. |
A voz para síntese de fala. Para amostras de voz, consulte [Vozes do sistema](/developer-guides/speech/realtime-streaming#supported-voices).
- **Vozes do sistema:** Disponível apenas para o Qwen3-TTS-Flash-Realtime série de modelos.
- **Vozes personalizadas:**
- Vozes personalizadas criadas através de clonagem de voz ou design de voz.
O modo de interação que controla quando o texto em buffer é sintetizado.
| Valor | Comportamento |
|---|---|
server_commit |
O servidor decide quando sintetizar, equilibrando latência e qualidade. Recomendado para a maioria dos usos. |
commit |
Acione a síntese manualmente enviando input_text_buffer.commit. Latência mais baixa, mas você deve gerenciar a integridade da frase. |
O idioma do áudio sintetizado.
- `Auto` -- Para texto desconhecido ou em idiomas mistos. O modelo corresponde automaticamente à pronúncia por segmento, mas a precisão não é garantida.
- Para textos em um único idioma, a especificação do idioma melhora significativamente a qualidade. Valores suportados:
| Valor | Valor | Valor |
|---|---|---|
Chinese |
English |
German |
Italian |
Portuguese |
Spanish |
Japanese |
Korean |
French |
Russian |
O formato de saída de áudio.
| Valor | Notas |
|---|---|
pcm |
Padrão. Somente formato suportado por Qwen3-TTS-Flash-Realtime série. |
wav |
|
mp3 |
|
opus |
Suporta taxa de bits configurável através do bit_rate parâmetro. |
A taxa de amostragem da saída de áudio, em Hz.
Valores suportados: `8000`, `16000`, `24000`, `48000`.
O Qwen3-TTS-Flash-Realtime série suporta apenas 24000.
A velocidade de reprodução. Valores abaixo de 1,0 tornam o áudio mais lento; valores acima de 1,0 aceleram. Faixa: 0,5--2,0.
Não suportado pelo Qwen3-TTS-Flash-Realtime série.
O volume do áudio. Faixa: 0--100.
Não suportado pelo Qwen3-TTS-Flash-Realtime série.
O tom do áudio sintetizado. Faixa: 0,5--2,0.
Não suportado pelo Qwen3-TTS-Flash-Realtime série.
Áudio [taxa de bits](https://opus-codec.org/) em kbps. Valores mais altos produzem arquivos de melhor qualidade, mas maiores. Só se aplica quando `response_format` é `opus`. Faixa: 6--510.
Não suportado pelo Qwen3-TTS-Flash-Realtime série.
Controla o estilo e a expressividade da fala sintetizada. Para obter detalhes, consulte [TTS de streaming em tempo real](/developer-guides/speech/realtime-streaming). Comprimento máximo: 1600 tokens.
Idiomas suportados: apenas chinês e inglês.
O controle de instrução migrou para CosyVoice modelos. Consulte Controle de instruções.
Quando `true`, reescreve `instructions` para melhorar a naturalidade e expressividade. Ative para casos de uso que exigem controle vocal refinado.
Não tem efeito se `instructions` está vazio.
O controle de instrução migrou para CosyVoice modelos. Consulte Controle de instruções.
entrada_text_buffer.append
Anexe texto ao buffer de síntese.
- Em
server_commitmodo, o texto é anexado ao buffer do lado do servidor. - Em
commitmodo, o texto é anexado ao buffer do lado do cliente.
Corpo da solicitação
{
"event_id": "event_B4o9RHSTWobB5OQdEHLTo",
"type": "input_text_buffer.append",
"text": "Hello, I am Qwen."
}
Parâmetros
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
event_id |
corda | Sim | Identificador de evento exclusivo gerado pelo cliente (UUID recomendado). Deve ser exclusivo na sessão WebSocket. |
type |
corda | Sim | Definir como input_text_buffer.append. |
text |
corda | Sim | O texto a ser sintetizado. |
entrada_text_buffer.commit
Confirma o texto armazenado em buffer e cria um item de mensagem do usuário. O servidor responde com um input_text_buffer.committed evento.
Retorna um erro se o buffer estiver vazio.
O comportamento difere de acordo com o modo:
server_commitmode: Todo o texto em buffer é sintetizado imediatamente. O servidor interrompe o cache e processa tudo de uma vez.commitmode: Cria item de mensagem do usuário a partir de texto armazenado em buffer.
A confirmação do buffer aciona apenas a síntese - ele não gera uma resposta do modelo.
Corpo da solicitação
{
"event_id": "event_B4o9RHSTWobB5OQdEHLTo",
"type": "input_text_buffer.commit"
}
Parâmetros
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
event_id |
corda | Sim | Identificador de evento exclusivo gerado pelo cliente (UUID recomendado). Deve ser exclusivo na sessão WebSocket. |
type |
corda | Sim | Definir como input_text_buffer.commit. |
entrada_text_buffer.clear
Limpa o texto do buffer. O servidor responde com um input_text_buffer.cleared evento.
Corpo da solicitação
{
"event_id": "event_2728",
"type": "input_text_buffer.clear"
}
Parâmetros
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
event_id |
corda | Sim | Identificador de evento exclusivo gerado pelo cliente (UUID recomendado). Deve ser exclusivo na sessão WebSocket. |
type |
corda | Sim | Definir como input_text_buffer.clear. |
sessão.terminar
Sinais de que nenhum outro texto será enviado. O servidor retorna o áudio restante e fecha a conexão.
Corpo da solicitação
{
"event_id": "event_2239",
"type": "session.finish"
}
Parâmetros
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
event_id |
corda | Sim | Identificador de evento exclusivo gerado pelo cliente (UUID recomendado). Deve ser exclusivo na sessão WebSocket. |
type |
corda | Sim | Definir como session.finish. |