https://d226lax1qjow5r.cloudfront.net/blog/blogposts/voice-transcription-pipeline-in-php-with-vonage-dr/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 データベースに保存します。

前提条件

Vonage API Account

To complete this tutorial, you will need a Vonage API account. If you don’t have one already, you can sign up today and start building with free credit. Once you have an account, you can find your API Key and API Secret at the top of the Vonage API Dashboard.

This tutorial also uses a virtual phone number. To purchase one, go to Numbers > Buy Numbers and search for one that meets your needs.

セットアップ方法

クローン 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ヴォネージの卒業生

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