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

Vonage Video APIとAWS Transcribeを使ってアプリで音声をモデレートする

最終更新日 March 10, 2022

所要時間:1 分

これは、Video Moderationに関する私のブログ記事シリーズの第2部です。第一弾はVideo Moderationに焦点を当てたものです。 こちら.

特に教育やイベントスペースでは、参加者の音声に能動的なモデレーションを追加することで、他者からの不適切なコンテンツをブロックすることが可能になり、非常に便利です。

このチュートリアルで作成するアプリケーションは、Vonage Video APIを使用して作成されたビデオストリームにオーディオモデレーションを追加します。

このブログ記事では、Vonage Video APIを使用してVideo Moderationアプリケーションを実装します。 VonageビデオAPIAWS Transcribe.このアプリケーションは、Camera によって公開された各パブリッシャーのセッションの音声を調整します。アプリケーションが不適切な言葉を検出した場合、問題のあるパブリッシャーからの音声をミュートし、すべての参加者に通知を送信します。

前提条件

  1. Video APIアカウント。まだアカウントをお持ちでない場合は ビデオダッシュボード.

  2. AWSアカウント: https://aws.amazon.com

プロジェクト・アーキテクチャ

アプリケーションのバックエンドは、AWS Lambda、AWS API Gateway、AWS DynamoDB、AWS TranscribeサービスなどのAWS Serverlessコンポーネントを使用して実装されている。

バックエンド側は、主にビデオルームの認証情報を処理するためのものです。音声モデレーションはクライアントサイドで実装されます。

クライアント側

クライアント側のアプリケーションはReactのシングル・ページ・アプリケーションです。プロジェクトのエントリー・ポイントは src/client/index.jsファイルです。インデックスファイルは、ルートとコンポーネントの定義を含むAppファイルをインポートします。

ページ

ルートはApp.jsファイルで定義されている。コードでは react-router-domモジュールを使います。主なルートは2つあります:

  • 待合室:ユーザーは、このページでマイクとカメラの設定を行い、通話前テストを行うことができます。その後、ビデオ通話に参加できます。

  • Videoルーム:ユーザーはセッションに接続し、ストリームを公開し、ルーム内の各ストリームを購読することができます。

Video Room ページで注目すべき点は、カスタムフック: useTranscribe (hooks/useTranscribe)である。useTranscribe フックは、AWS Transcribe サービスへの WebSocket 接続を開き、エンコードされた音声ストリームを送信します。音声ストリームは Vonage Video API の Publisher オブジェクトから取得され、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);

AWS Transcribe サービスはオーディオストリームを受信し、テキストに書き起こす。AWS Transcribe サービスでは、不要な単語をフィルタリングするためにカスタム語彙を追加することが可能だ。

この例では、いくつかの冒涜的な単語を含む語彙を作成した。いずれかの単語が検出されると、サービスは `***` 文字を追加する。クライアント側では、文字起こしに `***' 文字が含まれる場合、useTranscribe フックがストリームのローカル音声をミュートする。また、ユーザーに警告メッセージを表示し、ルームに接続しているすべてのユーザーに通知を送信します。

結論

この投稿は、Vonage Video APIにコンテンツモデレーションAPIであるAWS Transcribeを統合する方法を示しています。

不適切なコンテンツに対してアプリケーションがどのように反応するかは、ユースケースに応じて完全にカスタマイズ可能です。パブリッシャーのオーディオ/ビデオをミュートしたり、ユーザーを強制的に切断してセッションへの再参加を禁止したりすることもできます。

リソース

Videoモデレーションに関する連載記事の第1回目は AWS RekognitionでVideo Moderationアプリケーションを構築する方法.

Vonage Video APIを使用してコンテンツを管理する方法の詳細については、以下をご覧ください。 "Ban the Trolls!Video API にモデレーションを追加する" をご覧ください。.

GitHub リポジトリは こちら.

私たちのコミュニティに参加してください。 ツイッターそして Slackチャンネル.

読んでくれてありがとう!

シェア:

https://a.storyblok.com/f/270183/400x266/5bd495df3c/enrico-portolan.png
Enrico Portolanゲスト執筆者

エンリコはVonageの元チームメンバーです。ソリューション・エンジニアとして、技術的な専門知識で営業チームをサポートした。 クラウド、スタートアップ、新技術に情熱を注ぐ。イタリアのWebRTCスタートアップの共同設立者。仕事以外では、旅行とできるだけ多くの奇妙な食べ物を味わうのが好き。