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

Moderateres Audio in einer App mit der Vonage Video API und AWS Transcribe

Zuletzt aktualisiert am March 10, 2022

Lesedauer: 2 Minuten

Dies ist der zweite Teil meiner Serie von Blogbeiträgen über Video-Moderation. Der erste Teil befasst sich mit der Moderation von Videos; einen Blick darauf können Sie hier.

Vor allem in Bildungs- und Veranstaltungsräumen kann eine aktive Moderation der Audios der Teilnehmer sehr nützlich sein, da sie es ermöglicht, unangemessene Inhalte von anderen zu blockieren.

Die Anwendung, die wir mit diesem Tutorial erstellen, wird die Audiomoderation für die mit der Vonage Video API erstellten Videostreams hinzufügen.

In diesem Blog-Beitrag implementieren wir eine Video-Moderationsanwendung unter Verwendung der Vonage Video API und AWS Transcribe. Die Anwendung wird das von Camera veröffentlichte Audio für jeden der Publisher in der Sitzung moderieren. Wenn die Anwendung unangemessene Wörter erkennt, schaltet sie das Audio des betreffenden Herausgebers stumm und sendet eine Benachrichtigung an alle Teilnehmer.

Voraussetzungen

  1. Ein Vonage Video API-Konto. Wenn Sie noch kein Konto haben, können Sie ein Konto auf der Seite Video-Dashboard.

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

Projekt Architektur

Das Anwendungs-Backend wird mit AWS Serverless-Komponenten wie AWS Lambda, AWS API Gateway, AWS DynamoDB und AWS Transcribe Service implementiert.

Die Backend-Seite ist hauptsächlich für die Verwaltung der Anmeldedaten für den Videoraum zuständig. Die Audiomoderation ist auf der Client-Seite implementiert.

Klientenseite

Die clientseitige Anwendung ist eine React Single Page Application. Der Einstiegspunkt des Projekts ist die src/client/index.js Datei. Die Indexdatei importiert die App-Datei, die die Routes und die Komponentendefinition enthält.

Seiten

Die Routen werden in der Datei App.js definiert. Der Code verwendet das react-router-dom Modul, um die Routen zu deklarieren. Es gibt zwei Hauptrouten:

  • Warteraum: Auf dieser Seite kann der Benutzer seine Mikrofon- und Kameraeinstellungen vornehmen und einen Test vor dem Anruf durchführen. Dann kann er dem Videoanruf beitreten.

  • Video-Raum: Der Nutzer kann sich mit der Sitzung verbinden, seinen Stream veröffentlichen und jeden Stream im Raum abonnieren.

Das Wichtigste auf der Seite Video Room ist der benutzerdefinierte Haken: useTranscribe (hooks/useTranscribe). Der useTranscribe-Hook öffnet eine WebSocket-Verbindung zum AWS Transcribe-Service und sendet einen kodierten Audio-Stream. Der Audiostream wird aus dem Publisher-Objekt der Vonage Video API entnommen und mit PCM kodiert.

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);

Der AWS Transcribe-Service empfängt den Audiostrom und transkribiert ihn in Text. Beim AWS Transcribe-Service ist es möglich, benutzerdefinierte Vokabulare hinzuzufügen, um unerwünschte Wörter zu filtern.

Für dieses Beispiel habe ich ein Vokabular mit mehreren Schimpfwörtern erstellt. Wenn ein Wort erkannt wird, fügt der Dienst das Zeichen `***` hinzu. Wenn die Transkription das Zeichen "***" enthält, schaltet der useTranscribe-Hook auf der Client-Seite das lokale Audio des Streams stumm. Außerdem wird dem Benutzer eine Warnmeldung angezeigt und eine Benachrichtigung an alle mit dem Raum verbundenen Benutzer gesendet.

Schlussfolgerung

In diesem Beitrag wird gezeigt, wie eine API zur Inhaltsmoderation, AWS Transcribe, in die Vonage Video API integriert wird.

Die Art und Weise, wie die Anwendung auf unangemessene Inhalte reagiert, ist je nach Anwendungsfall vollständig anpassbar - sie kann das Audio/Video des Herausgebers stumm schalten oder den Benutzer sogar zwangsweise trennen und ihm die erneute Teilnahme an der Sitzung untersagen.

Ressourcen

Der erste Artikel der Serie von Beiträgen über Video-Moderation ist Erstellen einer Video-Moderations-Applikation mit AWS Rekognition.

Weitere Informationen darüber, wie Sie Inhalte mit Vonage Video API moderieren können, finden Sie unter "Verbietet die Trolle! Hinzufügen von Moderation zur Video API".

Das GitHub-Repositorium finden Sie hier.

Werden Sie Teil unserer Community, indem Sie uns auf Twitter folgen und unserem Slack-Kanal beitreten.

Vielen Dank fürs Lesen!

Teilen Sie:

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

Enrico ist ein ehemaliges Mitglied des Vonage-Teams. Er arbeitete als Solutions Engineer und unterstützte das Vertriebsteam mit seinem technischen Fachwissen. Er begeistert sich für die Cloud, Startups und neue Technologien. Er ist der Mitbegründer eines WebRTC-Startups in Italien. Außerhalb der Arbeit reist er gerne und probiert so viele verrückte Gerichte wie möglich.