Automatiza la Transcripción de Audio a Texto con AWS
En el acelerado mundo digital actual, la capacidad de convertir archivos de audio y video en texto cambia las reglas del juego para empresas y organizaciones de diversos sectores, desde medios y entretenimiento hasta educación y servicios legales. La implementación de esta capacidad puede mejorar significativamente la productividad, mejorar la accesibilidad y proporcionar información valiosa a partir de fuentes de datos no explotadas anteriormente. Amazon Transcribe ofrece una solución sólida, precisa y escalable para la transcripción automatizada, lo que la convierte en una herramienta esencial para cualquier empresa que busque aprovechar los datos de audio de forma eficaz. En este tutorial, lo guiaremos a través del proceso de uso de Amazon Transcribe con AWS Lambda y DynamoDB para extraer y administrar sin problemas transcripción de audio a texto, independientemente de su familiaridad con AWS.
Los métodos de transcripción en AWS se dividen en dos categorías
- Batch (Lotes): procesa datos de audio de forma asincrónica en lotes o grupos. Inicia la transcripción una vez que los archivos se cargan y envían a un servicio o plataforma. Adecuado para audio pregrabado
- Streaming: procesa datos de audio en tiempo real, enviando datos continuamente al servicio de transcripción. Adecuado para aplicaciones en tiempo real como transmisiones y reuniones virtuales.
Al realizar la transcripción por lotes, la información y los datos multimedia se almacenan en un depósito de Amazon S3; si usted no especifica el depósito, AWS utiliza un depósito seguro administrado por el servicio con un URI temporal de forma predeterminada.
Cuando se utiliza el almacenamiento en S3 predeterminado para Amazon Transcribe, una vez completado un trabajo de transcripción, la información se almacena en el depósito con el URI temporal que contiene la información del texto de la transcripción. Este URI solo dura 15 minutos después de que se completa el trabajo y los elementos del depósito se eliminan automáticamente después de 90 días.
Proceso de Transcripción con Amazon Transcribe y AWS Lambda
Paso 1: extraiga los detalles del trabajo de transcripción
Puede extraer la información del trabajo con una función Lambda, utilizando el cliente con el método GetTranscriptionJob que proporciona información como TranscriptionJobStatus, MediaFormat, etc.
A continuación se muestra un ejemplo de la respuesta:
{
"TranscriptionJob": {
"TranscriptionJobName": "job_name1234567890",
"TranscriptionJobStatus": "COMPLETED",
"LanguageCode": "es-ES",
"MediaSampleRateHertz": 8000,
"MediaFormat": "wav",
"Media": {
"MediaFileUri": "https://s3-us-east-1.amazonaws.com/default_transcriptions/recordings/MyfirstRecording0.wav"
},
"Transcript": {
"TranscriptFileUri": "https://s3.us-east-1.amazonaws.com/aws-transcribe-us-east-1-prod/1234567890/job_name1234567890
/asrOutput.json?X-Amz-Security-Token=EXAMPLETOKEN&X-Amz-Algorithm=AWS4-EXAMPLE-Amz-Date=20240422T143557Z&
X-Amz-SignedHeaders=host&X-Amz-Expires=899&X-Amz-Credential=AWS-EXAMPLE_request&X-Amz-Signature=
dkjshfkjfhksjdhfksjdhfsdjfhskjfdh"
},
"StartTime": "2024-04-19T03:23:56.842Z",
"CreationTime": "2024-04-19T03:23:56.826Z",
"CompletionTime": "2024-04-19T03:24:22.402Z",
"Settings": {
"ChannelIdentification": false,
"ShowAlternatives": false
}
}
}
Depending on the status of the transcription job you may receive different results. When status is “COMPLETED”, it means the job is finished and we can get the URI for the transcription file. If the status is “FAILED”, the response will include details on why the transcription job failed.
Paso 2: extraer el URI del archivo de transcripción
The transcription file URI is a URL that points to the location where the transcription file is stored after a transcription job is completed.
transcript_file_uri = response['TranscriptionJob']['Transcript']['TranscriptFileUri']
This file contains the result of the transcription process in JSON format. Depending on the settings, the content may vary.
If access is denied when entering the URL of the transcription file, it may be due to a time limit. To get a new temporary URI make a GetTranscriptionJob request again.
Paso 3: obtenga datos de transcripción del archivo JSON
To fetch the JSON file from where it’s stored, you need to make an HTTP GET request to the transcription file URI:
data = http.request('GET', transcript_file_uri)
Una vez realizada la solicitud obtenemos los datos de respuesta. Estos datos normalmente están en formato de bytes, por lo que primero puede decodificarlos en una cadena UTF-8 y luego cargarlos como JSON usando el método “json.loads()”. Después de esto, los datos se convierten en un diccionario de Python que contiene el contenido JSON del archivo de transcripción.
Example of decoding and loading json file:
http = urllib3.PoolManager()
data = http.request('GET', transcript_file_uri)
data = json.loads(data.data.decode('utf-8'))
Paso 4: extraiga la transcripción de texto del archivo JSON
Finalmente, extraemos el texto de la transcripción de los datos JSON cargados. A continuación se muestra un ejemplo de la estructura de la transcripción:
{ "jobName": "my-first-transcription-job", "accountId": "111122223333", "results": { "transcripts": [ { "transcript":
"Welcome to Amazon Transcribe." } ], "items": [ { "start_time": "0.64", Output 120 Amazon Transcribe Developer Guide
"end_time": "1.09", "alternatives": [ { "confidence": "1.0", "content": "Welcome" } ], "type": "pronunciation" },
{ "start_time": "1.09", "end_time": "1.21", "alternatives": [ { "confidence": "1.0", "content": "to" } ], "type":
"pronunciation" }, { "start_time": "1.21", "end_time": "1.74", "alternatives": [ { "confidence":
"1.0", "content":"Amazon" } ], "type": "pronunciation" }, { "start_time": "1.74", "end_time": "2.56", "alternatives":
[ { "confidence": "1.0", "content":"Transcribe" } ], "type": "pronunciation" }, { "alternatives": [ Output 121 Amazon
Transcribe Developer Guide { "confidence": "0.0", "content": "." } ], "type": "punctuation" } ] }, "status": "COMPLETED"}
En base a esta estructura, podemos extraer el texto de la siguiente manera:
text = data['results']['transcripts'][0]['transcript']
Text output (string):
“Welcome to Amazon Transcribe.”
Conclusión
Amazon Transcribe es una poderosa herramienta que ofrece más que una simple transcripción básica; abre la puerta a funciones avanzadas como transcripción en tiempo real, vocabulario personalizado e identificación de idioma. Este tutorial solo ha arañado la superficie de lo que Amazon Transcribe puede hacer. Al incorporar este servicio a su flujo de trabajo, puede desbloquear nuevos niveles de eficiencia y análisis de datos para su negocio. Para explorar completamente el potencial de Amazon Transcribe y descubrir formas adicionales en las que puede beneficiar a su organización, le recomendamos que profundice en sus amplias capacidades. Si está buscando acelerar el proceso de implementación y administrar estas soluciones de manera efectiva, nuestro equipo está aquí para ayudarlo a crear y personalizar estas soluciones para que se ajusten a sus necesidades específicas. Comuníquese con nosotros para obtener orientación y apoyo de expertos.
Comuníquese con nosotros para obtener orientación y apoyo de expertos.
Author