Skip to main content

Eventos del lado del servidor de reconocimiento de voz en tiempo real de Qwen-Audio-ASR-Streaming

El servicio de reconocimiento de voz en tiempo real de Qwen-Audio-ASR-Streaming envía eventos del lado del servidor al cliente a través de WebSocket. Este tema describe las estructuras de datos y las descripciones de campos de los cuatro tipos de eventos: task-started, result-generated, task-finished y task-failed.

task-started

La tarea se ha iniciado correctamente. El cliente puede comenzar a enviar datos de audio.
headerobject

Propiedades

task_idstringEl ID de tarea generado por el cliente (en formato UUID).eventstringEl tipo de evento. Este valor siempre es task-started.attributesobjectAtributos adicionales. Este valor suele estar vacío.
payloadobjectEste valor siempre es {}.
{
    "header": {
        "task_id": "2bf83b9a-baeb-4fda-8d9a-xxxxxxxxxxxx",
        "event": "task-started",
        "attributes": {}
    },
    "payload": {}
}

result-generated

El resultado del reconocimiento. Incluye resultados intermedios (sentence_end=false) y resultados finales (sentence_end=true). El primer resultado intermedio para una nueva oración incluye sentence_begin=true.
headerobject

Propiedades

task_idstringEl ID de tarea generado por el cliente (en formato UUID).eventstringEl tipo de evento. Este valor siempre es result-generated.
payloadobject

Propiedades

outputobject

Propiedades

sentenceobject

Propiedades

begin_timeintegerEl tiempo de inicio de la oración, en milisegundos.end_timeintegerEl tiempo de finalización de la oración, en milisegundos.textstringEl texto reconocido.heartbeatbooleanSi este valor es true, el resultado es un paquete de latido y se puede ignorar.sentence_beginbooleanIndica el inicio de una oración.sentence_endbooleanIndica si la oración ha terminado (true = resultado final, false = resultado intermedio).sentence_idintegerEl identificador de secuencia de la oración. En los resultados de reconocimiento normales, sentence_id se incrementa desde 1. Cuando heartbeat es true (es decir, un paquete de latido), sentence_id siempre es 0.wordsarray[object]Información de marcas de tiempo a nivel de palabra.

Propiedades

begin_timeintegerEl tiempo de inicio de la palabra, en milisegundos.end_timeintegerEl tiempo de finalización de la palabra, en milisegundos.textstringEl texto reconocido.punctuationstringEl signo de puntuación.
usageobjectUso acumulativo para la tarea actual.

Propiedades

input_tokensintegerTokens de entrada acumulativos.
Aplica a qwen-audio-3.1-asr-flash-streaming.
output_tokensintegerTokens de salida acumulativos.
Aplica a qwen-audio-3.1-asr-flash-streaming.
total_tokensintegerTotal de tokens acumulativos, igual a la suma de tokens de entrada y salida.
Aplica a qwen-audio-3.1-asr-flash-streaming.
durationintegerDuración de audio acumulativa, en segundos.
Utilizado para la facturación de qwen-audio-3.0-asr-flash-streaming.
Resultado de inicio de oración:
{
  "header": {
    "task_id": "2bf83b9a-baeb-4fda-8d9a-xxxxxxxxxxxx",
    "event": "result-generated",
    "attributes": {}
  },
  "payload": {
    "output": {
      "sentence": {
        "begin_time": 0,
        "end_time": null,
        "text": "",
        "sentence_begin": true,
        "sentence_end": false,
        "sentence_id": 1,
        "words": []
      }
    }
  }
}
Resultado final:
{
  "header": {
    "task_id": "2bf83b9a-baeb-4fda-8d9a-xxxxxxxxxxxx",
    "event": "result-generated",
    "attributes": {}
  },
  "payload": {
    "output": {
      "sentence": {
        "sentence_id": 1,
        "begin_time": 160,
        "end_time": 1640,
        "text": "欢迎使用阿里云。",
        "channel_id": 0,
        "speaker_id": null,
        "sentence_end": true,
        "words": [
          {
            "begin_time": 160,
            "end_time": 520,
            "text": "欢迎",
            "punctuation": "",
            "fixed": true,
            "speaker_id": null
          },
          {
            "begin_time": 520,
            "end_time": 880,
            "text": "使用",
            "punctuation": "",
            "fixed": true,
            "speaker_id": null
          },
          {
            "begin_time": 880,
            "end_time": 1640,
            "text": "阿里云",
            "punctuation": "。",
            "fixed": true,
            "speaker_id": null
          }
        ],
        "stash": {
          "sentence_id": 2,
          "text": "",
          "begin_time": 1640,
          "current_time": 1640,
          "words": []
        }
      },
      "text": "欢迎使用阿里云。",
      "request_id": "95372ce8e6704bcc8747da94789c15ca",
      "output": {
        "sentence": {
          "sentence_id": 1,
          "begin_time": 160,
          "end_time": 1640,
          "text": "欢迎使用阿里云。",
          "channel_id": 0,
          "speaker_id": null,
          "sentence_end": true,
          "words": [
            {
              "begin_time": 160,
              "end_time": 520,
              "text": "欢迎",
              "punctuation": "",
              "fixed": true,
              "speaker_id": null
            },
            {
              "begin_time": 520,
              "end_time": 880,
              "text": "使用",
              "punctuation": "",
              "fixed": true,
              "speaker_id": null
            },
            {
              "begin_time": 880,
              "end_time": 1640,
              "text": "阿里云",
              "punctuation": "。",
              "fixed": true,
              "speaker_id": null
            }
          ],
          "stash": {
            "sentence_id": 2,
            "text": "",
            "begin_time": 1640,
            "current_time": 1640,
            "words": []
          }
        },
        "text": "欢迎使用阿里云。",
        "request_id": "95372ce8e6704bcc8747da94789c15ca"
      },
      "usage": {
        "duration": 2,
        "input_tokens": 85,
        "output_tokens": 4,
        "total_tokens": 89
      }
    },
    "usage": {
      "duration": 2,
      "input_tokens": 85,
      "output_tokens": 4,
      "total_tokens": 89
    }
  }
}

task-finished

La tarea ha finalizado correctamente. Puede cerrar la conexión o reutilizarla.
headerobject

Propiedades

task_idstringEl ID de tarea generado por el cliente (en formato UUID).eventstringEl tipo de evento. Este valor siempre es task-finished.attributesobjectAtributos adicionales. Este valor suele estar vacío.
payload.usageobjectUso acumulativo al final de la tarea. Los campos tienen los mismos significados que en result-generated.usage.
{
  "header": {
    "task_id": "2bf83b9a-baeb-4fda-8d9a-xxxxxxxxxxxx",
    "event": "task-finished",
    "attributes": {}
  },
  "payload": {
    "output": {},
    "usage": {
      "duration": 9,
      "input_tokens": 365,
      "output_tokens": 12,
      "total_tokens": 377
    }
  }
}

task-failed

La tarea ha fallado. La conexión está cerrada y no se puede reutilizar.
headerobject

Propiedades

task_idstringEl ID de tarea generado por el cliente (en formato UUID).eventstringEl tipo de evento. Este valor siempre es task-failed.error_codestringUna descripción del tipo de error.error_messagestringLa causa específica del error.attributesobjectAtributos adicionales. Este valor suele estar vacío.
payloadobjectEste valor siempre es {}.
{
    "header": {
        "task_id": "2bf83b9a-baeb-4fda-8d9a-xxxxxxxxxxxx",
        "event": "task-failed",
        "error_code": "CLIENT_ERROR",
        "error_message": "request timeout after 23 seconds.",
        "attributes": {}
    },
    "payload": {}
}