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

Modérer l'audio dans une application avec l'API Video de Vonage et AWS Transcribe

Publié le March 10, 2022

Temps de lecture : 3 minutes

Voici la deuxième partie de ma série d'articles de blog sur la modération Video. Le premier est consacré à la modération vidéo ; vous pouvez le consulter ici.

Dans les espaces éducatifs et événementiels en particulier, l'ajout d'une modération active sur l'audio des participants peut s'avérer très utile, car il permet de bloquer les contenus inappropriés d'autres personnes.

L'application que nous créons avec ce tutoriel ajoutera une modération audio sur les flux vidéo créés à l'aide de l'API Video de Vonage.

Dans cet article de blog, nous allons mettre en œuvre une application de Video Moderation en utilisant l Video API de Vonage de Vonage et AWS Transcribe. L'application modérera l'audio publié par Camera pour chacun des éditeurs dans la session. Si l'application détecte des mots inappropriés, elle coupera l'audio de l'éditeur incriminé et enverra une notification à tous les participants.

Conditions préalables

  1. Un compte Video API de Vonage. Si vous n'en avez pas encore, vous pouvez créer un Account dans le Tableau de bord Video.

  2. Un Account AWS : https://aws.amazon.com

Architecture du projet

Le backend de l'application est mis en œuvre à l'aide de composants AWS Serverless tels que AWS Lambda, AWS API Gateway, AWS DynamoDB et le service AWS Transcribe.

Le backend sert principalement à gérer les informations d'identification de la salle vidéo. La modération audio est mise en œuvre côté client.

Côté client

L'application côté client est une application à page unique React. Le point d'entrée du projet est le fichier src/client/index.js (fichier d'index). Le fichier d'index importe le fichier App, qui contient la définition des routes et des composants.

Pages

Les routes sont définies dans le fichier App.js. Le code utilise le module react-router-dom pour déclarer les routes. Il existe deux routes principales :

  • Salle d'attente : L'utilisateur peut définir les paramètres de son microphone et de sa caméra et effectuer un test préalable à l'appel sur cette page. Il peut ensuite participer à l'appel vidéo.

  • Video Room : L'utilisateur peut se connecter à la session, publier son flux et s'abonner à chaque flux de la salle.

L'élément clé à noter sur la page Video Room est le crochet personnalisé : useTranscribe (hooks/useTranscribe). Le hook useTranscribe ouvre une connexion WebSocket au service AWS Transcribe et envoie un flux audio encodé. Le flux audio est extrait de l'objet Publisher de l'API Video de Vonage, encodé à l'aide de 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);

Le service AWS Transcribe reçoit le flux audio et le transcrit en texte. Sur le service AWS Transcribe, il est possible d'ajouter des vocabulaires personnalisés pour filtrer les mots indésirables.

Pour cet exemple, j'ai créé un vocabulaire contenant plusieurs mots blasphématoires. Si un mot est détecté, le service ajoutera le caractère `***'. Côté client, si la transcription contient le caractère `***', le hook useTranscribe coupe l'audio local du flux. Il affichera également un message d'avertissement à l'utilisateur et enverra une notification à tous les utilisateurs connectés à la salle.

Conclusion

Ce billet montre comment intégrer une API de modération de contenu, AWS Transcribe, dans l'API Video de Vonage.

La façon dont l'application réagit au contenu inapproprié est entièrement personnalisable en fonction de votre cas d'utilisation - elle peut couper l'audio/vidéo de l'éditeur, ou même déconnecter de force l'utilisateur et lui interdire de rejoindre à nouveau la session.

Ressources

Le premier article de la série de billets sur la modération vidéo est le suivant. Comment construire une application de modération vidéo avec AWS Rekognition..

Pour plus de détails sur la façon dont vous pouvez modérer le contenu à l'aide de Video API de Vonage, jetez un coup d'œil à . "Bannir les trolls ! Ajouter la modération à l'API Video".

Le répertoire GitHub se trouve ici.

N'oubliez pas de rejoindre notre communauté en en nous suivant sur Twitter et en en rejoignant notre canal Slack.

Merci de votre lecture !

Partager:

https://a.storyblok.com/f/270183/400x266/5bd495df3c/enrico-portolan.png
Enrico PortolanAuteur invité

Enrico est un ancien membre de l'équipe Vonage. Il a travaillé en tant qu'ingénieur de solutions, aidant l'équipe de vente avec son expertise technique. Il est passionné par le cloud, les startups et les nouvelles technologies. Il est le cofondateur d'une startup WebRTC en Italie. En dehors du travail, il aime voyager et goûter autant d'aliments bizarres que possible.