Obtención de resultados de la transcripción por lotes

Para obtener los resultados de la transcripción, compruebe primero el estado del trabajo de transcripción. Si el trabajo se ha completado, puede recuperar las transcripciones y el informe de transcripción.

Obtención del estado de la transcripción

Para obtener el estado del trabajo de transcripción, llame a la operación Transcriptions_Get de la API de REST de conversión de voz en texto.

Importante

Los trabajos de transcripción por lotes se programan de la mejor manera posible. En horas punta, puede tardar hasta 30 minutos o más en iniciar el procesamiento de un trabajo de transcripción. La mayor parte del tiempo durante la ejecución, el estado de transcripción será Running. Esto se debe a que al trabajo se le asigna el estado Running en el momento en que se mueve al sistema back-end de transcripción por lotes. Cuando se usa el modelo base, esta asignación se produce casi inmediatamente; ligeramente más lento para los modelos personalizados. Por tanto, la cantidad de tiempo que un trabajo de transcripción pasa en el estado Running no se corresponde con el tiempo de transcripción real, sino que también incluye tiempo de espera en las colas internas.

Realice una solicitud HTTP GET con el URI, tal como se muestra en el ejemplo siguiente. Reemplace YourTranscriptionId por el identificador de la transcripción, YourSubscriptionKey por la clave del recurso de Voz y YourServiceRegion por la región del recurso de Voz.

curl -v -X GET "https://YourServiceRegion.api.cognitive.microsoft.com/speechtotext/v3.1/transcriptions/YourTranscriptionId" -H "Ocp-Apim-Subscription-Key: YourSubscriptionKey"

Debe recibir un cuerpo de respuesta en el formato siguiente:

{
  "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.1/transcriptions/637d9333-6559-47a6-b8de-c7d732c1ddf3",
  "model": {
    "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.1/models/base/aaa321e9-5a4e-4db1-88a2-f251bbe7b555"
  },
  "links": {
    "files": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.1/transcriptions/637d9333-6559-47a6-b8de-c7d732c1ddf3/files"
  },
  "properties": {
    "diarizationEnabled": false,
    "wordLevelTimestampsEnabled": false,
    "displayFormWordLevelTimestampsEnabled": true,
    "channels": [
      0,
      1
    ],
    "punctuationMode": "DictatedAndAutomatic",
    "profanityFilterMode": "Masked",
    "duration": "PT3S",
    "languageIdentification": {
      "candidateLocales": [
        "en-US",
        "de-DE",
        "es-ES"
      ]
    }
  },
  "lastActionDateTime": "2022-09-10T18:39:09Z",
  "status": "Succeeded",
  "createdDateTime": "2022-09-10T18:39:07Z",
  "locale": "en-US",
  "displayName": "My Transcription"
}

La propiedad status indica el estado actual de las transcripciones. Las transcripciones y el informe de transcripción están disponibles cuando el estado de la transcripción sea Succeeded.

Importante

Los trabajos de transcripción por lotes se programan de la mejor manera posible. En horas punta, puede tardar hasta 30 minutos o más en iniciar el procesamiento de un trabajo de transcripción. La mayor parte del tiempo durante la ejecución, el estado de transcripción será Running. Esto se debe a que al trabajo se le asigna el estado Running en el momento en que se mueve al sistema back-end de transcripción por lotes. Cuando se usa el modelo base, esta asignación se produce casi inmediatamente; ligeramente más lento para los modelos personalizados. Por tanto, la cantidad de tiempo que un trabajo de transcripción pasa en el estado Running no se corresponde con el tiempo de transcripción real, sino que también incluye tiempo de espera en las colas internas.

Para obtener el estado del trabajo de transcripción, use el comando spx batch transcription status. Construya los parámetros de solicitud según las instrucciones siguientes:

  • Establezca el parámetro transcription en el identificador de la transcripción que quiera obtener.

Este es un ejemplo de comando de la CLI de Voz para obtener el estado de la transcripción:

spx batch transcription status --api-version v3.1 --transcription YourTranscriptionId

Debe recibir un cuerpo de respuesta en el formato siguiente:

{
  "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.1/transcriptions/637d9333-6559-47a6-b8de-c7d732c1ddf3",
  "model": {
    "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.1/models/base/aaa321e9-5a4e-4db1-88a2-f251bbe7b555"
  },
  "links": {
    "files": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.1/transcriptions/637d9333-6559-47a6-b8de-c7d732c1ddf3/files"
  },
  "properties": {
    "diarizationEnabled": false,
    "wordLevelTimestampsEnabled": false,
    "displayFormWordLevelTimestampsEnabled": true,
    "channels": [
      0,
      1
    ],
    "punctuationMode": "DictatedAndAutomatic",
    "profanityFilterMode": "Masked",
    "duration": "PT3S"
  },
  "lastActionDateTime": "2022-09-10T18:39:09Z",
  "status": "Succeeded",
  "createdDateTime": "2022-09-10T18:39:07Z",
  "locale": "en-US",
  "displayName": "My Transcription"
}

La propiedad status indica el estado actual de las transcripciones. Las transcripciones y el informe de transcripción están disponibles cuando el estado de la transcripción sea Succeeded.

Para obtener ayuda sobre la CLI de Voz con las transcripciones, ejecute el siguiente comando:

spx help batch transcription

Obtención de los resultados de la transcripción

La operación Transcriptions_ListFiles devuelve una lista de archivos de resultados para una transcripción. Se proporciona un archivo de informe de transcripción para cada trabajo de transcripción por lotes enviado. Además, se proporciona un archivo de transcripción (el resultado final) para cada archivo de audio transcrito correctamente.

Haga una solicitud HTTP GET con el URI de "files" del cuerpo de respuesta anterior. Reemplace YourTranscriptionId por el identificador de la transcripción, YourSubscriptionKey por la clave del recurso de Voz y YourServiceRegion por la región del recurso de Voz.

curl -v -X GET "https://YourServiceRegion.api.cognitive.microsoft.com/speechtotext/v3.1/transcriptions/YourTranscriptionId/files" -H "Ocp-Apim-Subscription-Key: YourSubscriptionKey"

Debe recibir un cuerpo de respuesta en el formato siguiente:

{
  "values": [
    {
      "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.1/transcriptions/637d9333-6559-47a6-b8de-c7d732c1ddf3/files/2dd180a1-434e-4368-a1ac-37350700284f",
      "name": "contenturl_0.json",
      "kind": "Transcription",
      "properties": {
        "size": 3407
      },
      "createdDateTime": "2022-09-10T18:39:09Z",
      "links": {
        "contentUrl": "https://spsvcprodeus.blob.core.windows.net/bestor-c6e3ae79-1b48-41bf-92ff-940bea3e5c2d/TranscriptionData/637d9333-6559-47a6-b8de-c7d732c1ddf3_0_0.json?sv=2021-08-06&st=2022-09-10T18%3A36%3A01Z&se=2022-09-11T06%3A41%3A01Z&sr=b&sp=rl&sig=AobsqO9DH9CIOuGC5ifFH3QpkQay6PjHiWn5G87FcIg%3D"
      }
    },
    {
      "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.1/transcriptions/637d9333-6559-47a6-b8de-c7d732c1ddf3/files/c027c6a9-2436-4303-b64b-e98e3c9fc2e3",
      "name": "contenturl_1.json",
      "kind": "Transcription",
      "properties": {
        "size": 8233
      },
      "createdDateTime": "2022-09-10T18:39:09Z",
      "links": {
        "contentUrl": "https://spsvcprodeus.blob.core.windows.net/bestor-c6e3ae79-1b48-41bf-92ff-940bea3e5c2d/TranscriptionData/637d9333-6559-47a6-b8de-c7d732c1ddf3_1_0.json?sv=2021-08-06&st=2022-09-10T18%3A36%3A01Z&se=2022-09-11T06%3A41%3A01Z&sr=b&sp=rl&sig=wO3VxbhLK4PhT3rwLpJXBYHYQi5EQqyl%2Fp1lgjNvfh0%3D"
      }
    },
    {
      "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.1/transcriptions/637d9333-6559-47a6-b8de-c7d732c1ddf3/files/faea9a41-c95c-4d91-96ff-e39225def642",
      "name": "report.json",
      "kind": "TranscriptionReport",
      "properties": {
        "size": 279
      },
      "createdDateTime": "2022-09-10T18:39:09Z",
      "links": {
        "contentUrl": "https://spsvcprodeus.blob.core.windows.net/bestor-c6e3ae79-1b48-41bf-92ff-940bea3e5c2d/TranscriptionData/637d9333-6559-47a6-b8de-c7d732c1ddf3_report.json?sv=2021-08-06&st=2022-09-10T18%3A36%3A01Z&se=2022-09-11T06%3A41%3A01Z&sr=b&sp=rl&sig=gk1k%2Ft5qa1TpmM45tPommx%2F2%2Bc%2FUUfsYTX5FoSa1u%2FY%3D"
      }
    }
  ]
}

En el cuerpo de respuesta se devuelven la ubicación de cada transcripción y los archivos de informe de las transcripciones con más detalles. La propiedad contentUrl contiene la dirección URL del archivo de transcripción ("kind": "Transcription") o del informe de la transcripción ("kind": "TranscriptionReport").

Si no especificó un contenedor en la propiedad destinationContainerUrl de la solicitud de transcripción, los resultados se almacenan en un contenedor administrado por Microsoft. Cuando se elimina el trabajo de transcripción, también se eliminan los datos del resultado de la transcripción.

El comando spx batch transcription list devuelve una lista de archivos de resultados correspondientes a una transcripción. Se proporciona un archivo de informe de transcripción para cada trabajo de transcripción por lotes enviado. Además, se proporciona un archivo de transcripción (el resultado final) para cada archivo de audio transcrito correctamente.

  • Establezca la marca files obligatoria.
  • Establezca el parámetro transcription obligatorio en el identificador de la transcripción para la que quiere obtener los registros.

Este es un ejemplo de comando de la CLI de Voz que obtiene una lista de archivos de resultados para una transcripción:

spx batch transcription list --api-version v3.1 --files --transcription YourTranscriptionId

Debe recibir un cuerpo de respuesta en el formato siguiente:

{
  "values": [
    {
      "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.1/transcriptions/637d9333-6559-47a6-b8de-c7d732c1ddf3/files/2dd180a1-434e-4368-a1ac-37350700284f",
      "name": "contenturl_0.json",
      "kind": "Transcription",
      "properties": {
        "size": 3407
      },
      "createdDateTime": "2022-09-10T18:39:09Z",
      "links": {
        "contentUrl": "https://spsvcprodeus.blob.core.windows.net/bestor-c6e3ae79-1b48-41bf-92ff-940bea3e5c2d/TranscriptionData/637d9333-6559-47a6-b8de-c7d732c1ddf3_0_0.json?sv=2021-08-06&st=2022-09-10T18%3A36%3A01Z&se=2022-09-11T06%3A41%3A01Z&sr=b&sp=rl&sig=AobsqO9DH9CIOuGC5ifFH3QpkQay6PjHiWn5G87FcIg%3D"
      }
    },
    {
      "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.1/transcriptions/637d9333-6559-47a6-b8de-c7d732c1ddf3/files/c027c6a9-2436-4303-b64b-e98e3c9fc2e3",
      "name": "contenturl_1.json",
      "kind": "Transcription",
      "properties": {
        "size": 8233
      },
      "createdDateTime": "2022-09-10T18:39:09Z",
      "links": {
        "contentUrl": "https://spsvcprodeus.blob.core.windows.net/bestor-c6e3ae79-1b48-41bf-92ff-940bea3e5c2d/TranscriptionData/637d9333-6559-47a6-b8de-c7d732c1ddf3_1_0.json?sv=2021-08-06&st=2022-09-10T18%3A36%3A01Z&se=2022-09-11T06%3A41%3A01Z&sr=b&sp=rl&sig=wO3VxbhLK4PhT3rwLpJXBYHYQi5EQqyl%2Fp1lgjNvfh0%3D"
      }
    },
    {
      "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.1/transcriptions/637d9333-6559-47a6-b8de-c7d732c1ddf3/files/faea9a41-c95c-4d91-96ff-e39225def642",
      "name": "report.json",
      "kind": "TranscriptionReport",
      "properties": {
        "size": 279
      },
      "createdDateTime": "2022-09-10T18:39:09Z",
      "links": {
        "contentUrl": "https://spsvcprodeus.blob.core.windows.net/bestor-c6e3ae79-1b48-41bf-92ff-940bea3e5c2d/TranscriptionData/637d9333-6559-47a6-b8de-c7d732c1ddf3_report.json?sv=2021-08-06&st=2022-09-10T18%3A36%3A01Z&se=2022-09-11T06%3A41%3A01Z&sr=b&sp=rl&sig=gk1k%2Ft5qa1TpmM45tPommx%2F2%2Bc%2FUUfsYTX5FoSa1u%2FY%3D"
      }
    }
  ]
}

En el cuerpo de respuesta se devuelven la ubicación de cada transcripción y los archivos de informe de las transcripciones con más detalles. La propiedad contentUrl contiene la dirección URL del archivo de transcripción ("kind": "Transcription") o del informe de la transcripción ("kind": "TranscriptionReport").

De manera predeterminada, los resultados se almacenan en un contenedor administrado por Microsoft. Cuando se elimina el trabajo de transcripción, también se eliminan los datos del resultado de la transcripción.

Archivo de informe de la transcripción

Se proporciona un archivo de informe de la transcripción para cada trabajo de transcripción por lotes enviado.

El contenido de cada archivo de resultados de transcripción tiene el formato JSON, como se muestra en este ejemplo.

{
  "successfulTranscriptionsCount": 2,
  "failedTranscriptionsCount": 0,
  "details": [
    {
      "source": "https://crbn.us/hello.wav",
      "status": "Succeeded"
    },
    {
      "source": "https://crbn.us/whatstheweatherlike.wav",
      "status": "Succeeded"
    }
  ]
}

Archivo de resultados de transcripción

Se proporciona un archivo de resultados de transcripción para cada archivo de audio transcrito correctamente.

El contenido de cada archivo de resultados de transcripción tiene el formato JSON, como se muestra en este ejemplo.

{
  "source": "...",
  "timestamp": "2023-07-10T14:28:16Z",
  "durationInTicks": 25800000,
  "duration": "PT2.58S",
  "combinedRecognizedPhrases": [
    {
      "channel": 0,
      "lexical": "hello world",
      "itn": "hello world",
      "maskedITN": "hello world",
      "display": "Hello world."
    }
  ],
  "recognizedPhrases": [
    {
      "recognitionStatus": "Success",
      "channel": 0,
      "offset": "PT0.76S",
      "duration": "PT1.32S",
      "offsetInTicks": 7600000.0,
      "durationInTicks": 13200000.0,
      "nBest": [
        {
          "confidence": 0.5643338,
          "lexical": "hello world",
          "itn": "hello world",
          "maskedITN": "hello world",
          "display": "Hello world.",
          "displayWords": [
            {
              "displayText": "Hello",
              "offset": "PT0.76S",
              "duration": "PT0.76S",
              "offsetInTicks": 7600000.0,
              "durationInTicks": 7600000.0
            },
            {
              "displayText": "world.",
              "offset": "PT1.52S",
              "duration": "PT0.56S",
              "offsetInTicks": 15200000.0,
              "durationInTicks": 5600000.0
            }
          ]
        },
        {
          "confidence": 0.1769063,
          "lexical": "helloworld",
          "itn": "helloworld",
          "maskedITN": "helloworld",
          "display": "helloworld"
        },
        {
          "confidence": 0.49964225,
          "lexical": "hello worlds",
          "itn": "hello worlds",
          "maskedITN": "hello worlds",
          "display": "hello worlds"
        },
        {
          "confidence": 0.4995761,
          "lexical": "hello worm",
          "itn": "hello worm",
          "maskedITN": "hello worm",
          "display": "hello worm"
        },
        {
          "confidence": 0.49418187,
          "lexical": "hello word",
          "itn": "hello word",
          "maskedITN": "hello word",
          "display": "hello word"
        }
      ]
    }
  ]
}

Dependiendo en parte de los parámetros de solicitud establecidos al crear el trabajo de transcripción, el archivo de transcripción puede contener las siguientes propiedades de resultado.

Propiedad Descripción
channel Número de canal de los resultados. En el caso de las secuencias de audio estéreo, los canales izquierdo y derecho se dividen durante la transcripción. Se crea un archivo de resultado JSON para cada archivo de audio de entrada.
combinedRecognizedPhrases Resultados concatenados de todas las frases del canal.
confidence Valor de confianza del reconocimiento.
display El formato mostrado del texto reconocido. Se incluyen el uso de mayúsculas y minúsculas y la puntuación que se agrega.
displayWords Las marcas de tiempo para cada palabra de la transcripción. La propiedad de solicitud displayFormWordLevelTimestampsEnabled debe establecerse en true; de lo contrario, esta propiedad no está presente.

Nota: Esta propiedad solo está disponible con la versión 3.1 de la API de REST de Conversión de voz en texto.
duration Duración del audio. El valor es una duración codificada según la ISO 8601.
durationInTicks La duración del audio en tics (un tic son 100 nanosegundos).
itn El formato de normalización inversa de texto (ITN) del texto reconocido. Se aplican abreviaturas como "Doctor Pérez" a "Dr. Pérez", números de teléfono y otras transformaciones.
lexical Las palabras reales reconocidas.
locale Configuración regional identificada a partir del audio de entrada. La propiedad de solicitud languageIdentification debe establecerse; de lo contrario, esta propiedad no está presente.

Nota: Esta propiedad solo está disponible con la versión 3.1 de la API de REST de Conversión de voz en texto.
maskedITN El formato ITN con enmascaramiento de palabras soeces aplicado.
nBest Lista de posibles transcripciones para la frase actual con confianzas.
offset Desviación del audio de esta frase. El valor es una duración codificada según la ISO 8601.
offsetInTicks El desplazamiento en audio de esta frase en tics (un tic son 100 nanosegundos).
recognitionStatus Estado de reconocimiento. Por ejemplo: "Correcto" o "Error".
recognizedPhrases Lista de resultados de cada frase.
source Dirección URL que se proporcionó como origen del audio de entrada. El origen corresponde a la propiedad de solicitud contentUrls o contentContainerUrl. La propiedad source es la única manera de confirmar la entrada de audio de una transcripción.
speaker Hablante identificado. Las propiedades de solicitud diarization y diarizationEnabled deben establecerse; de lo contrario, esta propiedad no está presente.
timestamp Fecha y hora de creación de la transcripción. El valor es una marca de tiempo codificada según la ISO 8601.
words Lista de resultados con texto léxico para cada palabra de la frase. La propiedad de solicitud wordLevelTimestampsEnabled debe establecerse en true; de lo contrario, esta propiedad no está presente.

Pasos siguientes