Transcripción de audio multicanal - Amazon Transcribe

Transcripción de audio multicanal

Si tiene un archivo o una secuencia de audio con varios canales, puede usar la identificación de canales para transcribir la voz de cada uno de esos canales. Amazon Transcribe Medical transcribe el discurso de cada canal por separado. Combina las transcripciones independientes de cada canal en una única salida de transcripción.

Utilice la identificación de canales para identificar los distintos canales del audio y transcriba la voz de cada uno de esos canales. Habilite esto en situaciones como la de una persona que llama o un agente. Úselo para distinguir a la persona que llama de un agente en las grabaciones o secuencias de los centros de contacto que realizan la supervisión de la seguridad de los medicamentos.

Puede habilitar la identificación de canales tanto para el procesamiento por lotes como para la transmisión en tiempo real. La siguiente lista describe cómo habilitarla para cada método.

Transcripción de archivos de audio multicanal

Al transcribir un archivo de audio, Amazon Transcribe Medical devuelve una lista de elementos para cada canal. Un elemento es una palabra o un signo de puntuación transcritos. Cada palabra tiene una hora de inicio y una hora de finalización. Si una persona de un canal habla por encima de otra persona de otro canal, las horas de inicio y finalización de los elementos de cada canal se superponen mientras unas personas hablan por encima de las otras.

De forma predeterminada, puede transcribir archivos de audio con dos canales. Puede solicitar un aumento de cuota si necesita transcribir archivos que tengan más de dos canales. Para obtener más información acerca de cómo solicitar un aumento de cuota, consulte cuotas de Servicio de AWS.

Para transcribir audio multicanal en un trabajo de transcripción por lotes, utilice Consola de administración de AWS o la API de StartMedicalTranscriptionJob.

Para utilizar Consola de administración de AWS para habilitar los canales de identificación en su trabajo de transcripción por lotes, active la identificación de audio y, a continuación, la identificación de canales. La identificación de canales es un subconjunto de la identificación de audio en Consola de administración de AWS.

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

  2. En el panel de navegación, en Amazon Transcribe Medical, elija Trabajos de transcripción.

  3. Seleccione Crear trabajo.

  4. En la página Especificar detalles del trabajo, proporcione información sobre su trabajo de transcripción.

  5. Elija Siguiente.

  6. Habilite Identificación por audio.

  7. En Tipo de identificación de audio, seleccione Identificación de canal.

  8. Seleccione Crear.

Para transcribir un archivo de audio multicanal (API)
  • Para la API de StartMedicalTranscriptionJob, especifique lo siguiente.

    1. Para TranscriptionJobName, especifique un nombre único en su Cuenta de AWS.

    2. Para LanguageCode, especifique el código de idioma que corresponda al idioma hablado en el archivo de audio. El valor válido es en-US.

    3. Para el parámetro MediaFileUri del objeto Media, especifique el nombre del archivo multimedia que desea transcribir.

    4. Para el objeto Settings, establezca ChannelIdentification en true.

A continuación, se muestra un ejemplo de solicitud que utiliza AWS SDK para Python (Boto3).

from __future__ import print_function import time import boto3 transcribe = boto3.client('transcribe', 'us-west-2') job_name = "my-first-transcription-job" job_name = "my-first-med-transcription-job" job_uri = "s3://amzn-s3-demo-bucket/my-input-files/my-media-file.flac" transcribe.start_medical_transcription_job( MedicalTranscriptionJobName = job_name, Media = { 'MediaFileUri': job_uri }, OutputBucketName = 'amzn-s3-demo-bucket', OutputKey = 'output-files/', LanguageCode = 'en-US', Specialty = 'PRIMARYCARE', Type = 'CONVERSATION', Settings = { 'ChannelIdentification': True } ) while True: status = transcribe.get_transcription_job(MedicalTranscriptionJobName = job_name) if status['MedicalTranscriptionJob']['TranscriptionJobStatus'] in ['COMPLETED', 'FAILED']: break print("Not ready yet...") time.sleep(5) print(status)
Para transcribir audio multicanal en un trabajo de transcripción por lotes (AWS CLI)
  • Ejecute el siguiente código.

    aws transcribe start-medical-transcription-job \ --region us-west-2 \ --cli-input-json file://example-start-command.json

    El siguiente es el código de example-start-command.json.

    { "MedicalTranscriptionJobName": "my-first-med-transcription-job", "Media": { "MediaFileUri": "s3://amzn-s3-demo-bucket/my-input-files/my-audio-file.flac" }, "OutputBucketName": "amzn-s3-demo-bucket", "OutputKey": "my-output-files/", "LanguageCode": "en-US", "Specialty": "PRIMARYCARE", "Type": "CONVERSATION", "Settings":{ "ChannelIdentification": true } }

El siguiente código muestra el resultado de la transcripción de un archivo de audio que tiene una conversación en dos canales.

{ "jobName": "job id", "accountId": "111122223333", "results": { "transcripts": [ { "transcript": "When you try ... It seems to ..." } ], "channel_labels": { "channels": [ { "channel_label": "ch_0", "items": [ { "start_time": "12.282", "end_time": "12.592", "alternatives": [ { "confidence": "1.0000", "content": "When" } ], "type": "pronunciation" }, { "start_time": "12.592", "end_time": "12.692", "alternatives": [ { "confidence": "0.8787", "content": "you" } ], "type": "pronunciation" }, { "start_time": "12.702", "end_time": "13.252", "alternatives": [ { "confidence": "0.8318", "content": "try" } ], "type": "pronunciation" }, ... ] }, { "channel_label": "ch_1", "items": [ { "start_time": "12.379", "end_time": "12.589", "alternatives": [ { "confidence": "0.5645", "content": "It" } ], "type": "pronunciation" }, { "start_time": "12.599", "end_time": "12.659", "alternatives": [ { "confidence": "0.2907", "content": "seems" } ], "type": "pronunciation" }, { "start_time": "12.669", "end_time": "13.029", "alternatives": [ { "confidence": "0.2497", "content": "to" } ], "type": "pronunciation" }, ... ] } }

Transcripción de secuencias de audio multicanal

Puede transcribir audio de canales independientes en transmisiones HTTP/2 o WebSocket mediante la API de StartMedicalStreamTranscription.

De forma predeterminada, puede transcribir secuencias de audio con dos canales. Puede solicitar un aumento de cuota si necesita transcribir secuencias que tengan más de dos canales. Para obtener más información acerca de cómo solicitar un aumento de cuota, consulte Service Quotas de AWS.

Transcripción de audio multicanal en una secuencia HTTP/2

Para transcribir audio multicanal en una secuencia HTTP/2, utilice la API StartMedicalStreamTranscription y especifique lo siguiente:

  • LanguageCode: el código de idioma del audio. El valor válido es en-US.

  • MediaEncoding: la codificación del audio. Los valores válidos son ogg-opus, flac y pcm.

  • EnableChannelIdentificationtrue

  • NumberOfChannels: el número de canales en su streaming de audio.

Para obtener más información sobre cómo configurar una secuencia HTTP/2 para transcribir una conversación médica, consulte Configuración de una secuencia HTTP/2.

Transcripción de audio multicanal en una secuencia WebSocket

Para particionar las voces de las secuencias de WebSocket, utilice el siguiente formato para crear un URI prefirmado para iniciar una solicitud de WebSocket. Especifique enable-channel-identification como true y el número de canales de la secuencia en number-of-channels. El URI prefirmado contiene la información necesaria para configurar la comunicación bidireccional entre la aplicación y Amazon Transcribe Medical.

GET wss://transcribestreaming.us-west-2.amazonaws.com:8443/medical-stream-transcription-websocket ?language-code=languageCode &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=Signature Version 4 signature &X-Amz-SignedHeaders=host &media-encoding=flac &sample-rate=16000 &session-id=sessionId &enable-channel-identification=true &number-of-channels=2

Las definiciones de los parámetros se encuentran en la 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.

Para obtener más información acerca de la realización de solicitudes, consulte Configurar una transmisión en WebSocket.

Resultado del streaming multicanal

El resultado de una transcripción en streaming es el mismo para las solicitudes HTTP/2 y WebSocket. El siguiente es un ejemplo de salida.

{ "resultId": "XXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXX", "startTime": 0.11, "endTime": 0.66, "isPartial": false, "alternatives": [ { "transcript": "Left.", "items": [ { "startTime": 0.11, "endTime": 0.45, "type": "pronunciation", "content": "Left", "vocabularyFilterMatch": false }, { "startTime": 0.45, "endTime": 0.45, "type": "punctuation", "content": ".", "vocabularyFilterMatch": false } ] } ], "channelId": "ch_0" }

Para cada segmento de voz, hay una marca channelId que indica a qué canal pertenece la voz.