
シェア:
元Vonage開発者教育ディレクター。クリエイティブ・デベロッパー、プロダクト・マネージャー、ハック・デイ・オーガナイザーの経歴を持つマーティンは、放送局や大手レコード会社での勤務を経て、2012年よりテクノロジー・アドボケイトとして活動している。世界中の開発者を教育し、力を与えている。
NexmoとMicrosoft Azureによる音声テキスト化
所要時間:3 分
インバウンドの電話を受信し、リアルタイムで自動的に書き起こすのに役立つものが必要だと感じたことがあれば、それは幸運なことです。 Nexmo-to-Azureスピーチサービスコネクター.
最近、このコネクターのコードとデプロイメント・オプションを更新したので、解決しようとしている問題にマッチする場合、デプロイ、修正、拡張がさらに簡単になりました。
もし、あなたがすでにネクスモを気に入り、早く始めたいと思っているのであれば、次のページで詳細をご覧ください。 ネクスモ・コミュニティGithubレポジトリをご覧ください。
Azureのスピーチ・サービスとアプリの連携方法
マイクロソフトのAzureプラットフォームは、次のような素晴らしいセットを提供している。 コグニティブ・サービスを提供している。このアプリは 音声テキストAPIを介してリアルタイムでストリーミングされる音声を認識する。 ウェブソケットを介してリアルタイムにストリーミングされる音声を認識します。 Nexmo通話コントロールオブジェクト.
簡単に言えば、あなたは 文字通りAPIを呼び出して話しかける。Azure Speechが音声認識を行い、コンソールにフレーズが返される。

独自のインスタンスを実行する
このアプリは Nexmo Extendこのプログラムは、便利で再利用可能なアプリケーションを作成し、Nexmoを次のような他の優れたサービスプロバイダーと組み合わせて使用できるようにするものです。 Microsoft Azure, Googleクラウドそして アマゾン ウェブ サービス.
デプロイも簡単で、ワンクリックですぐにこのアプリケーションのインスタンスを使用することができます。
ワンクリック・デプロイ・オプション
GitHubリポジトリのReadmeの上部にあるボタンを使って、アプリをHerokuまたはAzureにデプロイするオプションがある。
しかし、もしあなたがこのアプリをデプロイし、ブラウザから直接コードを扱う安全な(壊れにくい!)方法を持ちたいのであれば、以下を試してみてほしい。 Glitchでアプリをリミックスするでアプリをリミックスして、コードベースの拡張をすぐに始めてください。
Dockerによるデプロイと実行
このアプリはDockerで実行またはデプロイすることもできる。一番手っ取り早い方法は、リポジトリをクローンし、ルートディレクトリからDocker Composeを使って実行することです:
docker-compose upどのデプロイメントオプションを選択しても、アプリが実行されている新しい hostnameNexmoのバーチャル番号をリンクしてセットアップを完了します。
アプリとNexmoの連携
ダッシュボードの使用
イベントのURLを追加
https://<your_new_hostname>/ncco回答URLを追加
https://<your_new_hostname>/eventクリック
Create Applicationをクリックし
Numbersをクリックし、最近作成したバーチャル番号をリンクする。次のステップで使用する仮想番号をコピーする。
コマンドラインインターフェイスの使用
CLIは以下の手順でインストールできます。 をインストールすることができます。.次に、新しいNexmoアプリケーションを作成します。 answer_urlと event_urlを設定します。
アプリケーションIDが返されます。それをメモしておいてください。
新しいバーチャル番号を借りる
すでに番号をお持ちでない場合は、番号を借りる必要があります。CLIを使ってこれを実現できる:
仮想番号をアプリケーションにリンクする
最後に、新しい番号を作成したアプリケーションにリンクさせる:
試してみる
さて、アプリを起動した状態で、どこにデプロイしたにせよ、アプリに割り当てた番号に電話をかけ、話し始めてください。短いポーズの後、あなたが話したことがリアルタイムでコンソールに書き出されます。
この延長方法
次の論理的なステップは、Azure Speech Serviceが返すフレーズを、それを消費して受信したものに対応する別のサービスにプッシュし始めることだろう。
これを行うには on_return_message関数を修正することで実現できる:
if data['RecognitionStatus'] == "Success":
# Extend From here to handle your transcription messages
print(data["DisplayText"])Requestsライブラリ(これはすでに依存関係にあるので、再度インストールする必要はない)を使えば、次のことができる。 POSTフレーズをJSONオブジェクトとして別のAPIに送り、そこで消費され、その後処理される。この機能を追加するには if文の末尾を on_return_messageを次のように変更する:
if data['RecognitionStatus'] == "Success":
# Extend From here to handle your transcription messages
print(data["DisplayText"])
url = "http://<another_api>/<endpoint>"
headers = {'Content-Type': 'application/json'}
resp = requests.post(url, headers=headers, data=json.dumps({'phrase': data["DisplayText"]}))
if resp.status_code == 200:
print(resp.content)
else:
print(resp.status_code)
print(resp.content)
Azure Speech Service から新しいフレーズが返されるたびに {"phrase":"Words returned by the app."}オブジェクトが送信されます。
次にどうするかはあなた次第だ!
このアプリケーションを拡張する場合、またはこのアプリケーションの動作について質問がある場合は、次のチャンネルにアクセスしてください。 NexmoコミュニティSlackチャンネル私たちが喜んでお手伝いし、どんな提案にも耳を傾けます。