Este tópico descreve os eventos enviados pelo servidor ao cliente durante uma sessão WebSocket com a API Qwen-ASR-Realtime.
Guia do usuário: Para obter uma visão geral do modelo, recursos e código de exemplo completo, consulte Reconhecimento de fala em tempo real - Qwen.
error
Enviado quando o servidor detecta um erro no cliente ou no próprio servidor.
Parâmetro | Tipo | Descrição |
|---|
type | string | Tipo do evento. Fixo como error. | event_id | string | ID do evento. | error.type | string | Tipo do erro. | error.code | string | Código do erro. | error.message | string | Mensagem de erro específica. Para soluções, consulte Códigos de erro. | error.param | string | Parâmetro relacionado ao erro. | error.event_id | string | ID do evento relacionado ao erro. |
| {
"event_id": "event_B2uoU7VOt1AAITsPRPH9n",
"type": "error",
"error": {
"type": "invalid_request_error",
"code": "invalid_value",
"message": "Invalid value: 'whisper-1xx'. Supported values are: 'whisper-1'.",
"param": "session.input_audio_transcription.model",
"event_id": "event_123"
}
}
|
session.created
Primeiro evento enviado após conexão bem-sucedida. Contém as configurações padrão da sessão.
Parâmetro | Tipo | Descrição |
|---|
type | string | Tipo do evento. Fixo como session.created. | event_id | string | ID do evento. | session.id | string | ID da sessão WebSocket atual. | session.object | string | Fixo como realtime.session. | session.model | string | Nome do modelo. | session.modalities | array[string] | Modalidade de saída do modelo. Fixo como ["text"]. | session.input_audio_format | string | Formato do áudio de entrada. | session.input_audio_transcription | object | Configuração de reconhecimento de fala. Consulte input_audio_transcription no evento session.update do cliente para mais detalhes. | session.turn_detection | object | Configuração de Detecção de Atividade de Voz (VAD). | session.turn_detection.type | string | Fixo como server_vad. | session.turn_detection.threshold | float | Limiar de detecção do VAD. | session.turn_detection.silence_duration_ms | integer | Limiar de detecção de pausa entre frases do VAD, em milissegundos (ms). |
| {
"event_id": "event_1234",
"type": "session.created",
"session": {
"id": "sess_001",
"object": "realtime.session",
"model": "qwen3-asr-flash-realtime",
"modalities": ["text"],
"input_audio_format": "pcm16",
"input_audio_transcription": null,
"turn_detection": {
"type": "server_vad",
"threshold": 0,5,
"silence_duration_ms": 200
}
}
}
|
session.updated
Enviado após processamento bem-sucedido do evento session.update do cliente. Em caso de falha, um evento de erro é enviado em seu lugar.
Parâmetro | Tipo | Descrição |
|---|
type | string | Tipo do evento. O valor é session.updated. |
Para descrições dos demais parâmetros, consulte session.created. | {
"event_id": "event_1234",
"type": "session.updated",
"session": {
"id": "sess_001",
"object": "realtime.session",
"model": "gpt-4o-realtime-preview-2024-12-17",
"modalities": ["text"],
"input_audio_format": "pcm16",
"input_audio_transcription": null,
"turn_detection": {
"type": "server_vad",
"threshold": 0,5,
"silence_duration_ms": 200
}
}
}
|
Enviado no modo VAD quando a fala começa no buffer de áudio.
Pode ocorrer sempre que áudio é adicionado ao buffer, desde que o início da fala ainda não tenha sido detectado.
Parâmetro | Tipo | Descrição |
|---|
type | string | Tipo do evento. Fixo como input_audio_buffer.speech_started. | event_id | string | ID do evento. | audio_start_ms | integer | Milissegundos decorridos desde o início da gravação de áudio no buffer até a primeira detecção de fala na sessão. | item_id | string | ID do item de mensagem do usuário a ser criado. |
| {
"event_id": "event_B1lV7FPbgTv9qGxPI1tH4",
"type": "input_audio_buffer.speech_started",
"audio_start_ms": 64,
"item_id": "item_B1lV7jWLscp4mMV8hSs8c"
}
|
Enviado no modo VAD quando a fala termina no buffer de áudio.
Após este evento, o servidor envia imediatamente um evento conversation.item.created contendo o item de mensagem do usuário criado a partir do buffer de áudio.
Parâmetro | Tipo | Descrição |
|---|
type | string | Tipo do evento. Fixo como input_audio_buffer.speech_stopped. | event_id | string | ID do evento. | audio_end_ms | integer | Milissegundos decorridos desde o início da sessão até o término da fala. | item_id | string | ID do item de mensagem do usuário criado ao término da fala. |
| {
"event_id": "event_B3GGEYh2orwNIdhUagZPz",
"type": "input_audio_buffer.speech_stopped",
"audio_end_ms": 28128,
"item_id": "item_B3GGE8ry4yqbqJGzrVhEM"
}
|
Parâmetro | Tipo | Descrição |
|---|
type | string | Tipo do evento. Fixo como input_audio_buffer.committed. | event_id | string | ID do evento. | previous_item_id | string | ID do item de conversa anterior. | item_id | string | ID do item de conversa do usuário a ser criado. |
| {
"event_id": "event_1121",
"type": "input_audio_buffer.committed",
"previous_item_id": "msg_001",
"item_id": "msg_002"
}
|
conversation.item.created
Enviado quando um novo item de conversa é criado.
Parâmetro | Tipo | Descrição |
|---|
type | string | Tipo do evento. Fixo como conversation.item.created. | event_id | string | ID do evento. | previous_item_id | string | ID do item de conversa anterior. | item | object | Item a ser adicionado à conversa. | item.id | string | ID exclusivo do item de conversa. | item.object | string | Fixo como realtime.item. | item.type | string | Fixo como message. | item.status | string | Status do item de conversa. | item.role | string | Função do remetente da mensagem. | item.content | array[object] | Conteúdo da mensagem. | item.content.type | string | Fixo como input_audio. | item.content.transcript | string | Fixo como null. O resultado completo do reconhecimento é fornecido no evento conversation.item.input_audio_transcription.completed. |
| {
"type": "conversation.item.created",
"event_id": "event_B3GGKbCfBZTpqFHZ0P8vg",
"previous_item_id": "item_B3GGE8ry4yqbqJGzrVhEM",
"item": {
"id": "item_B3GGEPlolCqdMiVbYIf5L",
"object": "realtime.item",
"type": "message",
"status": "completed",
"role": "user",
"content": [
{
"type": "input_audio",
"transcript": null
}
]
}
}
|
conversation.item.input_audio_transcription.text
Enviado frequentemente com resultados de reconhecimento em tempo real.
Parâmetro | Tipo | Descrição |
|---|
type | string | Tipo do evento. Fixo como conversation.item.input_audio_transcription.text. | event_id | string | ID do evento. | item_id | string | ID do item de conversa associado. | content_index | integer | Índice da parte de conteúdo que contém o áudio. | language | string | Idioma do áudio reconhecido. Corresponde ao parâmetro de solicitação language, se especificado. Valores possíveis: | emotion | string | Emoção detectada no áudio. As seguintes emoções são suportadas: surprised
neutral
happy
sad
disgusted
angry
fearful
| text | string | Prefixo de texto confirmado: parte da frase atual que o modelo verificou e não alterará. | stash | string | Sufixo de texto pré-reconhecido após a parte confirmada. Rascunho temporário que o modelo ainda processa e pode corrigir. |
| {
"event_id": "event_R7Pfu8QVBfP5HmpcbEFSd",
"type": "conversation.item.input_audio_transcription.text",
"item_id": "item_MpJQPNQzqVRc9aC9zMwSj",
"content_index": 0,
"language": "en",
"emotion": "neutral",
"text": "",
"stash": "Beijing's"
}
Para obter a visualização completa da frase, concatene: text + stash. Clique em para ver um exemplo Por exemplo, suponha que um usuário diga: "The weather is nice today, sunny and bright." A tabela a seguir mostra o fluxo de eventos que você pode receber e explica como interpretá-lo: Timestamp | Progresso da fala do usuário | Resposta da API (text e stash) | Exibição na UI (text + stash) |
|---|
T1 | "The..." | text: "" stash: "The" | The | T2 | "...weather is..." | Text: "" stash: "The weather is" | The weather is | T3 | "...nice today" | text: "The" stash: "weather is nice today" | The weather is nice today (Nota: "The" foi confirmado e movido para o campo text.) | T4 | (Pausa curta) | text: "The weather is nice today," stash: "" | The weather is nice today, (A primeira oração está totalmente confirmada.) | T5 | "...sunny and..." | text: "The weather is nice today," stash: "sunny and" | The weather is nice today, sunny and | T6 | "...bright." | text: "The weather is nice today," stash: "sunny and bright." | The weather is nice today, sunny and bright. | T7 | (O usuário para de falar) | - | Use o conteúdo da transcrição do evento conversation.item.input_audio_transcription.completed como resultado final. |
|
Envia o resultado final do reconhecimento, marcando o fim de um item de conversa.
Parâmetro | Tipo | Descrição |
|---|
type | string | Tipo do evento. Fixo como conversation.item.input_audio_transcription.completed. | event_id | string | ID do evento. | item_id | string | ID do item de conversa associado. | content_index | integer | Índice da parte de conteúdo que contém o áudio. | language | string | Idioma do áudio reconhecido. Corresponde ao parâmetro de solicitação language, se especificado. Valores possíveis: | emotion | string | Emoção detectada no áudio. As seguintes emoções são suportadas: surprised
neutral
happy
sad
disgusted
angry
fearful
| transcript | string | Resultado da transcrição. |
| {
"event_id": "event_B3GGEjPT2sLzjBM74W6kB",
"type": "conversation.item.input_audio_transcription.completed",
"item_id": "item_B3GGC53jGOuIFcjZkmEQ9",
"content_index": 0,
"language": "en",
"emotion": "neutral",
"transcript": "What's the weather like today?"
}
|
Enviado quando o reconhecimento de áudio de entrada falha. É tratado separadamente de outros eventos error para identificar o item específico com falha.
Parâmetro | Tipo | Descrição |
|---|
type | string | Tipo do evento. Fixo como conversation.item.input_audio_transcription.failed. | item_id | string | ID do item de conversa associado. | content_index | integer | Índice da parte de conteúdo que contém o áudio. | error.code | string | Código do erro. | error.message | string | Mensagem de erro. | error.param | string | Parâmetro relacionado ao erro. |
| {
"type": "conversation.item.input_audio_transcription.failed",
"item_id": "<item_id>",
"content_index": 0,
"error": {
"code": "<code>",
"message": "<message>",
"param": "<param>"
}
}
|
session.finished
Sessão finalizada; todo o reconhecimento de áudio foi concluído.
Enviado após o cliente enviar o evento session.finish. O cliente pode se desconectar após receber este evento.
Parâmetro | Tipo | Descrição |
|---|
type | string | Tipo do evento. O valor é session.finished. | event_id | string | ID do evento. |
| {
"event_id": "event_2239",
"type": "session.finished"
}
|