Transcripción de audio multicanal - Amazon Transcribe

Transcripción de audio multicanal

Si el audio tiene dos canales, puede utilizar la identificación de canales para transcribir la voz de cada canal por separado. Actualmente Amazon Transcribe no admite audio con más de dos canales.

En su transcripción, a los canales se les asignan las etiquetas ch_0 ych_1.

Además de las secciones de transcripciones estándar (transcripts y items), las solicitudes con la partición de las voces habilitada incluyen una sección channel_labels. Esta sección contiene cada enunciado o signo de puntuación, agrupado por canal, y su etiqueta de canal asociada, las marcas de tiempo y la puntuación de confianza.

"channel_labels": { "channels": [ { "channel_label": "ch_0", "items": [ { "channel_label": "ch_0", "start_time": "4.86", "end_time": "5.01", "alternatives": [ { "confidence": "1.0", "content": "I've" } ], "type": "pronunciation" }, ... "channel_label": "ch_1", "items": [ { "channel_label": "ch_1", "start_time": "8.5", "end_time": "8.89", "alternatives": [ { "confidence": "1.0", "content": "Sorry" } ], "type": "pronunciation" }, ... "number_of_channels": 2 },

Si una persona de un canal habla por encima de otra persona de otro canal, las marcas de cada canal se superponen mientras unas personas hablan por encima de las otras.

Para ver un ejemplo completo de la transcripción con la identificación del canal, consulte. Ejemplo de resultados de identificación de canal (lote)

Uso de la identificación de canales en una transcripción por lotes

Para identificar canales en una transcripción por lotes, puede utilizar Consola de administración de AWS, AWS CLI o los SDK de AWS; consulte los ejemplos siguientes:

  1. Inicie sesión en Consola de administración de AWS.

  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.

    Página “Especificar los detalles del trabajo” de la consola Amazon Transcribe. En el panel “Configuración del trabajo”, puede especificar un nombre para su trabajo de transcripción, seleccionar un tipo de modelo y especificar la configuración de idioma.
  3. Rellene 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.

    En el panel Ajustes de audio, seleccione Identificación del canal (en el encabezado “Tipo de identificación de audio”).

    Página “Configurar trabajo” de la consola Amazon Transcribe. En el panel “Ajustes de audio”, puede activar la identificación de canales.
  4. Seleccione Crear trabajo para ejecutar su trabajo de transcripción.

En este ejemplo, se usa el comando start-transcription-job. Para obtener más información, consulte StartTranscriptionJob.

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 \ --settings ChannelIdentification=true

Este es otro ejemplo en el que se utiliza el comando start-transcription-job y un cuerpo de la solicitud que permite identificar el canal con ese trabajo.

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

El archivo my-first-transcription-job.json contiene el siguiente cuerpo de la 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", "Settings": { "ChannelIdentification": true } }

En este ejemplo, se utiliza AWS SDK para Python (Boto3) para identificar los canales mediante el método start_transcription_job. Para obtener más información, consulte StartTranscriptionJob.

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', Settings = { 'ChannelIdentification':True } ) 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)

Uso de la identificación de canales en una transcripción por lotes

Para identificar canales en una transcripción por lotes, puede utilizar HTTP/2 o WebSockets; consulte los ejemplos siguientes:

En este ejemplo, se crea una solicitud HTTP/2 que divide las voces del resultado de la transcripción. Para obtener más información sobre el uso del streaming HTTP/2 con Amazon Transcribe, consulte Configuración de una secuencia HTTP/2. Para obtener más información sobre los parámetros y encabezados específicos de Amazon Transcribe, consulte StartStreamTranscription.

POST /stream-transcription HTTP/2 host: transcribestreaming.us-west-2.amazonaws.com X-Amz-Target: com.amazonaws.transcribe.Transcribe.StartStreamTranscription Content-Type: application/vnd.amazon.eventstream X-Amz-Content-Sha256: string X-Amz-Date: 20220208T235959Z Authorization: AWS4-HMAC-SHA256 Credential=access-key/20220208/us-west-2/transcribe/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date;x-amz-target;x-amz-security-token, Signature=string x-amzn-transcribe-language-code: en-US x-amzn-transcribe-media-encoding: flac x-amzn-transcribe-sample-rate: 16000 x-amzn-channel-identification: TRUE transfer-encoding: chunked

Las definiciones de los parámetros se encuentran en Referencia de la API; los parámetros comunes a todas las operaciones de la API de AWS se enumeran en la sección Parámetros comunes.

En este ejemplo, se crea una URL prefirmada que separa los canales del resultado de la transcripción. Se han añadido saltos de línea para facilitar la lectura. Para obtener más información acerca de cómo usar las secuencias de WebSocket con Amazon Transcribe, consulte Configurar una transmisión en WebSocket. Para obtener más información sobre parámetros, consulte StartStreamTranscription.

GET wss://transcribestreaming.us-west-2.amazonaws.com:8443/stream-transcription-websocket? &X-Amz-Algorithm=AWS4-HMAC-SHA256 &X-Amz-Credential=AKIAIOSFODNN7EXAMPLE%2F20220208%2Fus-west-2%2Ftranscribe%2Faws4_request &X-Amz-Date=20220208T235959Z &X-Amz-Expires=300 &X-Amz-Security-Token=security-token &X-Amz-Signature=string &X-Amz-SignedHeaders=content-type%3Bhost%3Bx-amz-date &language-code=en-US &specialty=PRIMARYCARE &type=DICTATION &media-encoding=flac &sample-rate=16000 &channel-identification=TRUE

Las definiciones de los parámetros se encuentran en Referencia de la API; los parámetros comunes a todas las operaciones de la API de AWS se enumeran en la sección Parámetros comunes.