Skip to main content

Eventos del lado del servidor de reconocimiento de voz en tiempo real de Fun-ASR-Realtime

El servicio de reconocimiento de voz en tiempo real de Fun-ASR-Realtime 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.
usageobjectCuando payload.output.sentence.sentence_end es false (la oración actual no ha terminado), usage es null.Cuando payload.output.sentence.sentence_end es true (la oración actual ha terminado), usage.duration es la duración facturada de la tarea actual.

Propiedades

durationintegerLa duración facturada de la tarea, en segundos.
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": []
      }
    },
    "usage": null
  }
}
Resultado final:
{
  "header": {
    "task_id": "2bf83b9a-baeb-4fda-8d9a-xxxxxxxxxxxx",
    "event": "result-generated",
    "attributes": {}
  },
  "payload": {
    "output": {
      "sentence": {
        "begin_time": 170,
        "end_time": 920,
        "text": "OK, got it.",
        "heartbeat": false,
        "sentence_end": true,
        "sentence_id": 1,
        "words": [
          {
            "begin_time": 170,
            "end_time": 295,
            "text": "OK",
            "punctuation": ","
          },
          {
            "begin_time": 295,
            "end_time": 503,
            "text": "got",
            "punctuation": ""
          },
          {
            "begin_time": 503,
            "end_time": 711,
            "text": "it",
            "punctuation": ""
          },
          {
            "begin_time": 711,
            "end_time": 920,
            "text": "",
            "punctuation": "."
          }
        ]
      }
    },
    "usage": {
      "duration": 3
    }
  }
}

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.
payloadobjectPuede ignorar este campo. Este valor suele ser {}.
{
    "header": {
        "task_id": "2bf83b9a-baeb-4fda-8d9a-xxxxxxxxxxxx",
        "event": "task-finished",
        "attributes": {}
    },
    "payload": {
        "output": {},
        "usage": null
    }
}

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