
Compartilhar:
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.
Moderação de áudio em um aplicativo com a Video API da Vonage e o AWS Transcribe
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
Um account da Video API da Vonage. Se você ainda não tiver um, pode criar um account no Painel de Controle de Video.
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:
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.