https://d226lax1qjow5r.cloudfront.net/blog/blogposts/moderate-audio-in-an-app-with-the-vonage-video-api-and-aws-transcribe/aws-audio-moderation_videoapi.png

Audio moderado en una aplicación con la API de Video de Vonage y AWS Transcribe

Publicado el March 10, 2022

Tiempo de lectura: 3 minutos

Esta es la segunda parte de mi serie de entradas de blog sobre la Moderación de Video. La primera se centra en la moderación de Video; puedes echarle un vistazo aquí.

En los espacios educativos y de eventos en particular, añadir una moderación activa sobre el audio de los participantes puede ser muy útil, ya que permite bloquear contenidos inapropiados de otras personas.

La aplicación que crearemos con este tutorial agregará moderación de audio en las transmisiones de video creadas con la Video API de Vonage.

En esta entrada de blog, implementaremos una aplicación de Moderación de Video utilizando la API de Video de Vonage y AWS Transcribe. La aplicación moderará el audio publicado por Cámara para cada uno de los editores en la sesión. Si la aplicación detecta palabras inapropiadas, silenciará el audio del editor infractor y enviará una notificación a todos los participantes.

Requisitos previos

  1. Una cuenta de Video API de Vonage. Si aún no tienes una, puedes crear una Account en el Panel de Video.

  2. Una Account de AWS: https://aws.amazon.com

Arquitectura de proyectos

El backend de la aplicación se implementa con componentes sin servidor de AWS, como AWS Lambda, AWS API Gateway, AWS DynamoDB y el servicio AWS Transcribe.

El backend se utiliza principalmente para gestionar las credenciales de las salas de Video. La moderación de audio se implementa en el lado del cliente.

Del lado del cliente

La aplicación del lado del cliente es una React Single Page Application. El punto de entrada del proyecto es el archivo src/client/index.js . El archivo index importa el archivo App, que contiene la definición de Rutas y Componentes.

Páginas

Las rutas se definen en el archivo App.js. El código utiliza el módulo react-router-dom para declarar las rutas. Hay dos rutas principales:

  • Sala de espera: El usuario puede configurar sus ajustes de micrófono y cámara y realizar una prueba previa a la llamada en esta página. A continuación, puede unirse a la videollamada.

  • Sala de Video: El usuario puede conectarse a la sesión, publicar su flujo y suscribirse a cada flujo dentro de la sala.

Lo más importante en la página de la sala de Video es el gancho personalizado: useTranscribe (hooks/useTranscribe). El hook useTranscribe abre una conexión WebSocket con el servicio AWS Transcribe y envía un flujo de audio codificado. El flujo de audio se toma del objeto Publisher de la Video API de Vonage, codificado mediante PCM.

const audioSource = currentPublisher.getAudioSource();

const audioMediaStream = new MediaStream();

audioMediaStream.addTrack(audioSource);

micStream.current = new MicrophoneStream({ stream: audioMediaStream });

const encodedAudioStream = await audioStream(micStream.current);



const command = new StartStreamTranscriptionCommand({

      LanguageCode: 'en-US',

      // The encoding used for the input audio. The only valid value is pcm.

      MediaEncoding: 'pcm',

      MediaSampleRateHertz: 44100,

      AudioStream: encodedAudioStream,

      EnablePartialResultsStabilization: true,

      PartialResultsStability: 'high',

      VocabularyFilterName: 'ProfanityModerationList'

    });

    try {

      console.log('encodedAudioStream', encodedAudioStream);

      const response = await transcribeStreamingClient.current.send(command);

El servicio AWS Transcribe recibe la transmisión de audio y la transcribe a texto. En el servicio AWS Transcribe, es posible añadir vocabularios personalizados para filtrar las palabras no deseadas.

Para este ejemplo, he creado un vocabulario con varias palabras soeces. Si se detecta alguna palabra, el servicio añadirá el carácter `***`. En el lado del cliente, si la transcripción contiene el carácter `***`, el gancho useTranscribe silenciará el audio local de la transmisión. También mostrará un mensaje de advertencia al usuario y enviará una notificación a todos los usuarios conectados a la sala.

Conclusión

Esta publicación muestra cómo integrar una API de moderación de contenido, AWS Transcribe, en la Video API de Vonage.

La reacción de la aplicación ante contenidos inapropiados es totalmente personalizable en función del caso de uso: puede silenciar el audio/vídeo del editor, o incluso desconectar forzosamente al usuario y prohibirle volver a entrar en la sesión.

Recursos

El primer artículo de la serie de posts sobre Video Moderation es Cómo crear una aplicación de moderación de video con AWS Rekognition.

Para obtener más detalles sobre cómo puedes moderar contenido usando la API de Video de Vonage, echa un vistazo a "¡Prohibir a los trolls! Cómo agregar moderación a la Video API"..

El repositorio de GitHub puede encontrarse aquí.

Asegúrese de unirse a nuestra comunidad siguiéndonos en Twitter y uniéndose a nuestro canal de Slack.

Gracias por leerme.

Compartir:

https://a.storyblok.com/f/270183/400x266/5bd495df3c/enrico-portolan.png
Enrico PortolanAutor invitado

Enrico es un antiguo miembro del equipo de Vonage. Trabajó como ingeniero de soluciones, ayudando al equipo de ventas con su experiencia técnica. Es un apasionado de la nube, las startups y las nuevas tecnologías. Es cofundador de una startup WebRTC en Italia. Fuera del trabajo, le gusta viajar y probar tantas comidas raras como sea posible.