https://a.storyblok.com/f/270183/20120/780c2cd82c/blog_voice-transcription-pipeline_1200x600.png

PHPによるVonageの音声トランスクリプション・パイプライン

最終更新日 May 4, 2021

所要時間:3 分

この投稿では、Voice transcription pipelineを作成します。目的は Amazon Transcribeを使用して会話全体をチャンネルに処理し、その結果を RDSMySQL データベースインスタンスに挿入することです。これを達成するには、2つの AWS Lambda関数 HTTPアプリケーションMP3ファイルを取得してAmazon Transcribeに送信するためのHTTPアプリケーションと コールバック関数を呼び出して、結果を MySQL データベースに保存します。

前提条件

セットアップ方法

クローン nexmo-community/voice-channels-aws-transcribe-phpのリポジトリを GitHub からクローンし、新しく作成したディレクトリに移動してください。

Composerを使って依存関係をインストールする

この例では、Composerを使って依存関係をインストールし、オートローダーをセットアップする必要がある。

Composerがグローバルにインストールされていると仮定すると がグローバルにインストールされていると仮定してを実行する:

composer install

AWSセットアップ

以下を作成する必要があります。 AWS認証情報を作成する必要があります。 Serverless.

また、新しい 新しいAWS S3バケットを作成し、後で使用するためにURLをメモしておく。

アプリをVonageにリンク

コマンドラインインターフェイスを使用したVonageアプリケーションの作成

以下の手順に従ってCLIをインストールしてください。 をインストールします。.これを使用して、新しいVonage Voiceアプリケーションを作成します。 answer_urlevent_urlを設定します:

vonage apps:create aws-transcribe --voice_answer_url=https://<your_hostname>/webhooks/answer --voice_event_url=https://<your_hostname>/webhooks/event

注:このコマンドでは <your_hostname>をプレースホルダとして使うことになる。後で、AWS Lambdaにデプロイすることで提供されるURLがわかったら、URLのこれらの部分を Vonage APIダッシュボードの設定を変更する必要があります。

重要:アプリケーションIDと秘密鍵が返されます。アプリケーションIDは vonage apps:linkコマンドと .envファイルでも必要になる。という名前のファイルが private.keyと同じ場所/レベルに作成されます。 server.jsデフォルトでは

新しいバーチャル番号の取得

すでに番号をお持ちでない場合は、Vonageから番号を取得してください。これはCLIを使用して、次のコマンドを実行することによっても実現できます:

vonage numbers:search US

そして、走ることで戻ってくる利用可能なNumbersの一つを購入する:

vonage numbers:buy <number>

仮想番号をアプリケーションにリンクする

最後に、新しい番号を作成したアプリケーションにリンクさせる:

vonage apps:link YOUR_APPLICATION_ID --number=<number>

更新環境

提供された .env.distファイルを .envに変更し、必要に応じて値を更新してください:

APP_ID=voice-aws-transcribe-php LANG_CODE=en-US SAMPLE_RATE=8000 AWS_VERSION=latest AWS_S3_ARN= AWS_S3_BUCKET_NAME='' AWS_S3_RECORDING_FOLDER_NAME='' VONAGE_APPLICATION_PRIVATE_KEY_PATH='./private.key' VONAGE_APPLICATION_ID=

<>で示されたプレースホルダはすべて更新する必要があります。

サーバーレス・プラグイン

インストールする serverless-dotenv-pluginを以下のコマンドでインストールする:

npm i -D serverless-dotenv-plugin

ラムダへのデプロイ

以上のアップデートが成功したら、次は Serverlessを使ってアプリを AWS Lambda.

serverless deploy

注意必ず Vonage APIダッシュボードにアクセスし answerおよび eventURL を更新してください。

テープ起こしをデータベースに移行する

テープ起こしだけが必要であれば、すべて完了です。しかし、転記結果のデータベースへの移行を自動化するには、別の関数を導入する必要があります。この をクローンしてください。レポを別の場所にクローンし、READMEにある指示に従って稼働させてください。この手順は、上記の最初の関数で行ったことと同じです。

トリガーを作成する

つ目の関数を追加した後 クラウドウォッチにナビゲートできます。 AWSコンソールに移動し イベントそして Get Startedを選択し、新しいイベントルールを作成します。

ルールを次のように設定する:

  • イベントパターン

  • サービス別のイベントにマッチするイベントパターンを構築する

  • サービス名 = トランスクライブ

  • イベントタイプ = 転写ジョブの状態変更

  • 特定のステータス = COMPLETED

  • ターゲットとして、上記で作成したラムダ関数#2を選択する。

  • 下にスクロールして 詳細設定.

  • ルールに意味のある名前と説明を付け、有効にする。

  • クリック ルールの作成をクリックして完成させる。

これでテストの準備は整った。

使用方法

配備が完了すると、どの電話からでもバーチャル番号に電話をかけることができるようになります。接続された旨のメッセージが聞こえ、その後、受信者の番号に電話がかかります。

電話を切った後、MP3ファイルがVonageから取得され、AWS S3にアップロードされます。その後、トランスクリプションのジョブが開始されます。このジョブはログイン後、AWS Consoleウェブサイトでモニターすることができます。

書き起こしが完了すると、CloudWatchはLambda関数をトリガーして書き起こしを解析し、データベースに挿入する。

次のステップ

何か質問があったり、問題が発生した場合は、以下までご連絡ください。 までご連絡ください。に連絡するか Vonage開発者コミュニティSlack チームにお問い合わせください。頑張ってください。

シェア:

https://a.storyblok.com/f/270183/384x384/b3c7ffaf85/adamculp.png
Adam Culpヴォネージの卒業生

アダムは開発者兼コンサルタントで、ウルトラランニング、ブログ、そして指導と支援への飽くなき欲求を持ちながら、他の人々が素晴らしいことを成し遂げるためにテクノロジーを手なずけるのを助けることを楽しんでいる。