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.2/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.2/transcriptions/637d9333-6559-47a6-b8de-c7d732c1ddf3",
"model": {
"self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/models/base/aaa321e9-5a4e-4db1-88a2-f251bbe7b555"
},
"links": {
"files": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/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": "2024-05-10T18:39:09Z",
"status": "Succeeded",
"createdDateTime": "2024-05-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.2 --transcription YourTranscriptionId
Debe recibir un cuerpo de respuesta en el formato siguiente:
{
"self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/transcriptions/637d9333-6559-47a6-b8de-c7d732c1ddf3",
"model": {
"self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/models/base/aaa321e9-5a4e-4db1-88a2-f251bbe7b555"
},
"links": {
"files": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/transcriptions/637d9333-6559-47a6-b8de-c7d732c1ddf3/files"
},
"properties": {
"diarizationEnabled": false,
"wordLevelTimestampsEnabled": false,
"displayFormWordLevelTimestampsEnabled": true,
"channels": [
0,
1
],
"punctuationMode": "DictatedAndAutomatic",
"profanityFilterMode": "Masked",
"duration": "PT3S"
},
"lastActionDateTime": "2024-05-10T18:39:09Z",
"status": "Succeeded",
"createdDateTime": "2024-05-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.2/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.2/transcriptions/637d9333-6559-47a6-b8de-c7d732c1ddf3/files/2dd180a1-434e-4368-a1ac-37350700284f",
"name": "contenturl_0.json",
"kind": "Transcription",
"properties": {
"size": 3407
},
"createdDateTime": "2024-05-10T18:39:09Z",
"links": {
"contentUrl": "YourTranscriptionUrl"
}
},
{
"self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/transcriptions/637d9333-6559-47a6-b8de-c7d732c1ddf3/files/c027c6a9-2436-4303-b64b-e98e3c9fc2e3",
"name": "contenturl_1.json",
"kind": "Transcription",
"properties": {
"size": 8233
},
"createdDateTime": "2024-05-10T18:39:09Z",
"links": {
"contentUrl": "YourTranscriptionUrl"
}
},
{
"self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/transcriptions/637d9333-6559-47a6-b8de-c7d732c1ddf3/files/faea9a41-c95c-4d91-96ff-e39225def642",
"name": "report.json",
"kind": "TranscriptionReport",
"properties": {
"size": 279
},
"createdDateTime": "2024-05-10T18:39:09Z",
"links": {
"contentUrl": "YourTranscriptionReportUrl"
}
}
]
}
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.2 --files --transcription YourTranscriptionId
Debe recibir un cuerpo de respuesta en el formato siguiente:
{
"values": [
{
"self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/transcriptions/637d9333-6559-47a6-b8de-c7d732c1ddf3/files/2dd180a1-434e-4368-a1ac-37350700284f",
"name": "contenturl_0.json",
"kind": "Transcription",
"properties": {
"size": 3407
},
"createdDateTime": "2024-05-10T18:39:09Z",
"links": {
"contentUrl": "YourTranscriptionUrl"
}
},
{
"self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/transcriptions/637d9333-6559-47a6-b8de-c7d732c1ddf3/files/c027c6a9-2436-4303-b64b-e98e3c9fc2e3",
"name": "contenturl_1.json",
"kind": "Transcription",
"properties": {
"size": 8233
},
"createdDateTime": "2024-05-10T18:39:09Z",
"links": {
"contentUrl": "YourTranscriptionUrl"
}
},
{
"self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/transcriptions/637d9333-6559-47a6-b8de-c7d732c1ddf3/files/faea9a41-c95c-4d91-96ff-e39225def642",
"name": "report.json",
"kind": "TranscriptionReport",
"properties": {
"size": 279
},
"createdDateTime": "2024-05-10T18:39:09Z",
"links": {
"contentUrl": "YourTranscriptionReportUrl"
}
}
]
}
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 y versiones posteriores 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 y versiones posteriores 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. |