Reconhecimento de fala em tempo real (Qwen-ASR-Realtime)
Server events for Qwen-ASR-Realtime
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"
}
Qwen-ASR-Realtime Python SDK - Referência da API
Transmita áudio para o Qwen-ASR-Realtime via WebSocket e receba resultados de transcrição em tempo real pelo DashScope Python SDK.