https://a.storyblok.com/f/270183/41804/b97c571846/aws-audio-moderation_videoapi.png

Moderação de áudio em um aplicativo com a Video API da Vonage e o AWS Transcribe

Publicado em March 10, 2022

Tempo de leitura: 2 minutos

Esta é a segunda parte da minha série de posts sobre moderação de vídeos. A primeira parte trata especificamente da moderação de vídeos; você pode conferir aqui.

Especialmente em ambientes educacionais e de eventos, implementar uma moderação ativa do áudio dos participantes pode ser muito útil, pois permite bloquear conteúdos inadequados veiculados por outras pessoas.

O aplicativo que vamos desenvolver neste tutorial irá adicionar moderação de áudio às transmissões de vídeo criadas com a Video API da Vonage.

Nesta postagem do blog, vamos implementar um aplicativo de moderação de vídeo usando a Video API da Vonage e AWS Transcribe. O aplicativo moderará o áudio transmitido pela câmera de cada um dos participantes na sessão. Se o aplicativo detectar palavras inadequadas, ele silenciará o áudio do participante em questão e enviará uma notificação a todos os participantes.

Pré-requisitos

  1. Um account da Video API da Vonage. Se você ainda não tiver um, pode criar um account no Painel de Controle de Video.

  2. Um account na AWS: https://aws.amazon.com

Arquitetura do projeto

O back-end do aplicativo é implementado utilizando componentes serverless da AWS, como o AWS Lambda, o AWS API Gateway, o AWS DynamoDB e o serviço AWS Transcribe.

A parte de back-end serve principalmente para o gerenciamento das credenciais das salas de Video. A moderação de áudio é implementada no lado do cliente.

Lado do cliente

O aplicativo do lado do cliente é um aplicativo de página única (SPA) em React. O ponto de entrada do projeto é o src/client/index.js arquivo. O arquivo index importa o arquivo App, que contém as definições de rotas e componentes.

Páginas

As rotas são definidas no arquivo App.js. O código utiliza o react-router-dom módulo para declarar as rotas. Existem duas rotas principais:

  • Sala de espera: Nesta página, o usuário pode definir as configurações do microfone e da câmera e realizar um teste antes da chamada. Em seguida, ele pode entrar na videochamada.

  • Sala de Video: O usuário pode se conectar à sessão, publicar sua transmissão e se inscrever em cada transmissão dentro da sala.

O ponto principal a ser observado na página “Video Room” é o hook personalizado: useTranscribe (hooks/useTranscribe). O hook useTranscribe abre uma conexão WebSocket com o serviço AWS Transcribe e envia um fluxo de áudio codificado. O fluxo de áudio é obtido do objeto Publisher da Video API da Vonage e codificado usando 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);

O serviço AWS Transcribe recebe o fluxo de áudio e o transcreve para texto. No serviço AWS Transcribe, é possível adicionar vocabulários personalizados para filtrar palavras indesejadas.

Para este exemplo, criei um vocabulário com várias palavras de baixo calão. Se alguma dessas palavras for detectada, o serviço inserirá o caractere `***`. No lado do cliente, se a transcrição contiver o caractere `***`, o hook `useTranscribe` silenciará o áudio local da transmissão. Ele também exibirá uma mensagem de aviso ao usuário e enviará uma notificação a todos os usuários conectados à sala.

Conclusão

Esta publicação mostra como integrar uma API de moderação de conteúdo, o AWS Transcribe, à Video API da Vonage.

A forma como o aplicativo reage a conteúdos inadequados é totalmente personalizável de acordo com o seu caso de uso — ele pode silenciar o áudio/Video do apresentador ou até mesmo desconectar o usuário à força e impedi-lo de participar da sessão novamente.

Recursos

O primeiro artigo da série de publicações sobre moderação de vídeos é Como criar um aplicativo de moderação de vídeo com o AWS Rekognition.

Para saber mais sobre como moderar conteúdo usando a Video API da Vonage, confira “Banir os trolls! Adicionando moderação à Video API”.

O repositório do GitHub pode ser encontrado aqui.

Não deixe de participar da nossa comunidade nos seguir no Twitter e entrando no nosso canal do Slack.

Obrigado pela leitura!

Compartilhar:

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

Enrico é um ex-funcionário da Vonage. Ele trabalhou como engenheiro de soluções, auxiliando a equipe de vendas com seus conhecimentos técnicos. Ele é apaixonado pela nuvem, por startups e por novas tecnologias. É cofundador de uma startup de WebRTC na Itália. No tempo livre, gosta de viajar e experimentar o máximo possível de comidas exóticas.