Subtítulos de video - 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.

Subtítulos de video

Amazon Transcribeadmite salidas WebVTT (*.vtt) y SubRip (*.srt) para utilizarlas como subtítulos de vídeo. Puede seleccionar uno o ambos tipos de archivos al configurar su trabajo de transcripción de vídeo por lotes. Al utilizar la función 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 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 su solicitud de transcripción y el audio no contiene voz, no se creará ningún archivo de subtítulos.

importante

Amazon Transcribeutiliza un índice inicial predeterminado de 0 para la salida de subtítulos, que difiere del valor más utilizado de1. Si necesitas un índice inicial de1, puedes especificarlo en AWS Management Console o en tu solicitud de API mediante el OutputStartIndexparámetro.

El uso de un índice de inicio incorrecto puede provocar errores de compatibilidad con otros servicios, así que asegúrate de comprobar qué índice de inicio necesitas antes de crear los subtítulos. Si no estás seguro de qué valor usar, te recomendamos que lo elijas1. Consulte Subtitlespara obtener más información.

Funciones compatibles con subtítulos:

  • Redacción de contenido: cualquier contenido redactado se refleja como «PII» en los archivos de salida de subtítulos y transcripciones normales. El audio no se altera.

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

  • 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 SubRip formatos; por 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 el resultado de la transcripción.

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

Generación de archivos de subtítulos

Puede crear archivos de subtítulos mediante los SDK AWS Management ConsoleAWS CLI, o los AWSSDK; consulte los siguientes ejemplos:

  1. Inicie sesión en AWS Management Console.

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

  3. Selecciona los formatos que deseas para tus archivos de subtítulos y, a continuación, elige 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ás seguro de qué valor usar, te recomendamos que lo elijas1, ya que esto puede mejorar la compatibilidad con otros servicios.

    Amazon Transcribecaptura de pantalla de la consola: el panel «datos de salida» de la página «especificar detalles del trabajo».
  4. Rellene cualquier otro campo que desee incluir en la página Especificar detalles del trabajo y, a continuación, seleccione Siguiente. Esto le llevará a la página Configurar trabajo: opcional.

  5. Selecciona Crear trabajo para ejecutar tu trabajo de transcripción.

En este ejemplo se utilizan el start-transcription-jobcomando y el Subtitles parámetro. 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://DOC-EXAMPLE-BUCKET/my-input-files/my-media-file.flac \ --output-bucket-name DOC-EXAMPLE-BUCKET \ --output-key my-output-files/ \ --language-code en-US \ --subtitles Formats=vtt,srt,OutputStartIndex=1

Este es otro ejemplo de uso del start-transcription-jobcomando y un cuerpo de 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://DOC-EXAMPLE-BUCKET/my-input-files/my-media-file.flac" }, "OutputBucketName": "DOC-EXAMPLE-BUCKET", "OutputKey": "my-output-files/", "LanguageCode": "en-US", "Subtitles": { "Formats": [ "vtt","srt" ], "OutputStartIndex": 1 } }

En este ejemplo se utiliza el 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 más ejemplos de uso de AWS los SDK, incluidos ejemplos de funciones específicas, escenarios y multiservicios, 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://DOC-EXAMPLE-BUCKET/my-input-files/my-media-file.flac" transcribe.start_transcription_job( TranscriptionJobName = job_name, Media = { 'MediaFileUri': job_uri }, OutputBucketName = 'DOC-EXAMPLE-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)