Skip to main content

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

Este tema describe los eventos y campos del servidor de Qwen-Audio-ASR-Message.

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

Resultados de reconocimiento. De forma predeterminada, se devuelve el texto final de la oración (sentence_end=true). Establezca intermediate_result_enabled=true para recibir también texto intermedio (sentence_end=false). El texto intermedio puede revisarse: actualice el texto mostrado por sentence_id en lugar de concatenarlo. Un evento de inicio de oración puede contener sentence_begin=true y texto vacío.
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 hasta este evento.

Propiedades

durationintegerDuración acumulativa de audio en segundos, conservada por compatibilidad.input_tokensintegerNúmero acumulativo de tokens de entrada.output_tokensintegerNúmero acumulativo de tokens de salida.total_tokensintegerNúmero total acumulativo de tokens: la suma de input_tokens y output_tokens.
Resultado de inicio de oración:
{
  "header": {
    "task_id": "2bf83b9a-baeb-4fda-8d9a-xxxxxxxxxxxx",
    "event": "result-generated",
    "attributes": {}
  },
  "payload": {
    "output": {
      "sentence": {
        "sentence_id": 1,
        "begin_time": 0,
        "end_time": null,
        "text": "",
        "channel_id": 0,
        "speaker_id": null,
        "sentence_end": false,
        "sentence_begin": true,
        "words": []
      }
    }
  }
}
Resultado final:
{
  "header": {
    "task_id": "2bf83b9a-baeb-4fda-8d9a-xxxxxxxxxxxx",
    "event": "result-generated",
    "attributes": {}
  },
  "payload": {
    "output": {
      "sentence": {
        "sentence_id": 1,
        "begin_time": 120,
        "end_time": 1700,
        "text": "欢迎使用阿里云。",
        "channel_id": 0,
        "speaker_id": null,
        "sentence_end": true,
        "words": [
          {
            "begin_time": 120,
            "end_time": 520,
            "text": "欢迎",
            "punctuation": "",
            "fixed": false,
            "speaker_id": null
          },
          {
            "begin_time": 520,
            "end_time": 880,
            "text": "使用",
            "punctuation": "",
            "fixed": false,
            "speaker_id": null
          },
          {
            "begin_time": 880,
            "end_time": 1700,
            "text": "阿里云",
            "punctuation": "。",
            "fixed": false,
            "speaker_id": null
          }
        ],
        "stash": {
          "sentence_id": 2,
          "text": "",
          "begin_time": 1700,
          "current_time": 1700,
          "words": []
        }
      }
    },
    "usage": {
      "duration": 2,
      "input_tokens": 84,
      "output_tokens": 4,
      "total_tokens": 88
    }
  }
}

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.
payloadobjectContiene output (un objeto vacío) y usage (el uso acumulativo final para esta tarea). Los campos de usage tienen las mismas definiciones que en result-generated.
{
  "header": {
    "task_id": "2bf83b9a-baeb-4fda-8d9a-xxxxxxxxxxxx",
    "event": "task-finished",
    "attributes": {}
  },
  "payload": {
    "output": {},
    "usage": {
      "duration": 2,
      "input_tokens": 84,
      "output_tokens": 4,
      "total_tokens": 88
    }
  }
}

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": {}
}