Creación de subtítulos de vídeo - Amazon Transcribe

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Creación de subtítulos de vídeo

Amazon Transcribe admite salidas WebVTT (*.vtt) SubRip y (*.srt) para su uso como subtítulos de vídeo. Puede seleccionar uno o ambos tipos de archivo al configurar su trabajo de transcripción de vídeo por lotes. Al utilizar la característica de subtítulos, se generan los archivos de subtítulos seleccionados y un archivo de transcripción normal (que contiene información adicional). Los archivos de subtítulos y de transcripción se envían al mismo destino.

Los subtítulos se muestran al mismo tiempo que se pronuncia el texto y permanecen visibles hasta que se produce una pausa natural o el orador termina de hablar. Tenga en cuenta que si habilita los subtítulos en la solicitud de transcripción y el audio no contiene voz, no se creará un archivo de subtítulos.

importante

Amazon Transcribe utiliza un índice de inicio predeterminado de 0 para la salida de subtítulos, que difiere del valor más utilizado de. 1 Si necesita un índice de inicio de1, puede especificarlo en la solicitud de API AWS Management Console o en ella mediante el OutputStartIndexparámetro.

El uso de un índice de inicio incorrecto puede provocar errores de compatibilidad con otros servicios, por lo que debe asegurarse de comprobar qué índice de inicio necesita antes de crear los subtítulos. Si no está seguro de qué valor usar, le recomendamos que elija 1. Para obtener más información, consulte Subtitles.

Características compatibles con los subtítulos:

  • Redacción de contenido: cualquier contenido redactado se refleja como “PII“ tanto en los archivos de subtítulos como en los de los resultados de las transcripciones normales. El audio no se modifica.

  • Filtros de vocabulario: los archivos de subtítulos se generan a partir del archivo de transcripción, por lo que cualquier palabra que se filtre en el resultado de transcripción estándar también se filtrará en los subtítulos. El contenido filtrado se muestra como un espacio en blanco o *** en los archivos de transcripciones y subtítulos. El audio no se modifica.

  • Diarización de los altavoces: si hay varios altavoces en un segmento de subtítulos determinado, se utilizan guiones para distinguir a cada altavoz. Esto se aplica tanto a WebVTT como a los formatos; por SubRip ejemplo:

    • -- Texto pronunciado por la persona 1

    • -- Texto pronunciado por la persona 2

Los archivos de subtítulos se almacenan en la misma Amazon S3 ubicación que la salida de la transcripción.

Para ver un tutorial en vídeo sobre la creación de subtítulos, consulte:

Generación de archivos de subtítulos

Puede crear archivos de subtítulos con AWS Management ConsoleAWS CLI, o AWS SDKs; consulte los siguientes ejemplos:

  1. Inicie sesión en la AWS Management Console.

  2. En el panel de navegación, elija Trabajos de transcripción y, a continuación, seleccione Crear trabajo (arriba a la derecha). Se abrirá la página Especificar los detalles del trabajo. Las opciones de subtítulos se encuentran en el panel Datos de salida.

  3. Seleccione los formatos que desee para los archivos de subtítulos y, a continuación, elija un valor para el índice inicial. Tenga en cuenta que el Amazon Transcribe valor predeterminado es0, pero 1 se usa más ampliamente. Si no está seguro de qué valor usar, le recomendamos que elija 1, ya que esto puede mejorar la compatibilidad con otros servicios.

    Amazon Transcribe captura de pantalla de la consola: el panel de «datos de salida» de la página «especificar los detalles del trabajo».
  4. Rellene todos los campos que desee incluir en la página Especificar los detalles del trabajo y, a continuación, seleccione Siguiente. Esto lo llevará a la página Configurar trabajo: opcional.

  5. Seleccione Crear trabajo para ejecutar su trabajo de transcripción.

En este ejemplo se utilizan el comando y el parámetro start-transcription-job. Subtitles Para obtener más información, consulte StartTranscriptionJob y Subtitles.

aws transcribe start-transcription-job \ --region us-west-2 \ --transcription-job-name my-first-transcription-job \ --media MediaFileUri=s3://amzn-s3-demo-bucket/my-input-files/my-media-file.flac \ --output-bucket-name amzn-s3-demo-bucket \ --output-key my-output-files/ \ --language-code en-US \ --subtitles Formats=vtt,srt,OutputStartIndex=1

A continuación, se muestra otro ejemplo en el que se utiliza el start-transcription-jobcomando y el cuerpo de una solicitud que añade subtítulos a ese trabajo.

aws transcribe start-transcription-job \ --region us-west-2 \ --cli-input-json file://my-first-subtitle-job.json

El archivo my-first-subtitle-job.json contiene el siguiente cuerpo de solicitud.

{ "TranscriptionJobName": "my-first-transcription-job", "Media": { "MediaFileUri": "s3://amzn-s3-demo-bucket/my-input-files/my-media-file.flac" }, "OutputBucketName": "amzn-s3-demo-bucket", "OutputKey": "my-output-files/", "LanguageCode": "en-US", "Subtitles": { "Formats": [ "vtt","srt" ], "OutputStartIndex": 1 } }

En este ejemplo, se utiliza AWS SDK for Python (Boto3) para añadir subtítulos mediante el Subtitles argumento del método start_transcription_job. Para obtener más información, consulte StartTranscriptionJob y Subtitles.

Para ver ejemplos adicionales que utilizan el escenario y varios AWS SDKs servicios, incluidos ejemplos de funciones específicas, de escenarios y de varios servicios, consulte el capítulo. Ejemplos de código para Amazon Transcribe usando AWS SDKs

from __future__ import print_function import time import boto3 transcribe = boto3.client('transcribe', 'us-west-2') job_name = "my-first-transcription-job" job_uri = "s3://amzn-s3-demo-bucket/my-input-files/my-media-file.flac" transcribe.start_transcription_job( TranscriptionJobName = job_name, Media = { 'MediaFileUri': job_uri }, OutputBucketName = 'amzn-s3-demo-bucket', OutputKey = 'my-output-files/', LanguageCode = 'en-US', Subtitles = { 'Formats': [ 'vtt','srt' ], 'OutputStartIndex': 1 } ) while True: status = transcribe.get_transcription_job(TranscriptionJobName = job_name) if status['TranscriptionJob']['TranscriptionJobStatus'] in ['COMPLETED', 'FAILED']: break print("Not ready yet...") time.sleep(5) print(status)