https://d226lax1qjow5r.cloudfront.net/blog/blogposts/action-flows-that-you-can-do-with-the-voice-api/action-flows_python_voiceapis.jpg

Voice APIでできるアクションフロー

最終更新日 March 27, 2023

所要時間:3 分

クラウド上で高品質なプログラマブル・ボイス・アプリケーションを構築できます。 Vonage Voice APIとPythonを使って、クラウド上で高品質のプログラム可能な音声アプリケーションを構築できます。例えば、Call Control Objectsで発信および着信コールを管理し、コールを録音および保存し、電話会議を作成し、多くの言語で音声合成メッセージを送信することができます。 多くの言語音声やアクセントのバリエーションも豊富です。

NCCO - Call Control Objects (NCCO) で、Voice APIコールのフローを記述します。NCCOはJSON配列で表されます。コントロール・オブジェクトは、通話中に必要な指示を含む、通話に不可欠な部分です。例えば、どのような順序で、どのように通話の会話を進行させるかなどです。

この記事では NCCOビルダーの使い方について、Python のコード・スニペットを例に説明します。

NCCOビルダー、Python SDK

ビルダーを使って有効なNCCOアクションを構築する。 ピダンティックモデルとしてSDKでモデル化され、NCCOに組み込まれます。Pydanticモデル 記述された関連する NCCO アクションの必須パラメータとオプションパラメータを指定します。ビルダーがサポートするNCCOアクションは以下の通りです:

NCCO action Sample of NCCO Python object
Record record = Ncco.Record(eventUrl=['https://example.com'])
Conversation conversation = Ncco.Conversation(name='Audio demo')
Connect connect = Ncco.Connect(endpoint={'type':'phone','number':'123456789'})
Talk talk = Ncco.Talk(text='Press 1 for maybe and 2 for not sure followed by the hash key', language='en-GB')
Stream stream = Ncco.Stream(streamUrl='https://nexmo-community.github.io/ncco-examples/assets/voice_api_audio_streaming.mp3')
Input input = Ncco.Input(type=['dtmf', 'speech'], dtfm={'maxDigits':'1'})
Notify notify = Ncco.Notify(payload={"foo": "bar"}, eventUrl='https://example.com/webhooks/event')

あなたのアプリケーションでNCCOビルダーを使いたいですか?まず、Vonage SDKをインストールする必要があります。

pip install vonage

Vonageパッケージのインポート

import vonage
from vonage import Ncco

NCCOへの組み込み

メソッド Ncco.build_nccoは、アクションからNCCOを作成できます。これは、各アクションを表す辞書のリストとして返され、Voice API を呼び出す際に使用できます。

必須パラメーターとオプションパラメーターのリストは NCCOリファレンスページ

2人のユーザーをつなぐNCCOを作ってみよう。

次のコードは、必要なアクション、トークとコネクトを構築するものである。

talk = Ncco.Talk(text='Please wait while we connect you.')
connect = Ncco.Connect(endpoint={'type':'phone','number':'123456789'}, from_ = '12345678', timeout='20')

Connectアクションは、それぞれの有効なエンドポイントタイプ(電話、アプリケーション、WebSocket、SIP、VBC)がPydanticモデルとして指定されているので、これらを検証することができます。 Ncco.Connectオブジェクトに直接渡すことも可能です。

でNCCOを作成しよう。 build_nccoメソッドと2つのアクション

ncco = Ncco.build_ncco(talk, connect)

以下のJSONが作成される。

[
   {
      "action": "talk",
      "text": "Please wait while we connect you."
   },
   {
      "action": "connect",
      "endpoint" :[
         {
            "type": "phone",
            "number": "123456789"
         }
      ],
      "from": "12345678",
      "timeout":20
   }
]

NCCOオブジェクトを使用する場合、それを検証することができます。 ここで.

NCCO ビルダーを使用している場合、ターミナルにエラーメッセージが表示されることがあります。 次の文字列は、必要なアクションオプションのいずれかが有効でない場合にターミナルに表示されるエラーメッセージです。

string does not match regex "^[1-9]\d{6,14}$" (type=value_error.str.regex; pattern=^[1-9]\d{6,14}$)

まとめ

新しいNCCOビルダーはアクションの作成を簡素化し、自動化することができます。公式ドキュメントとこのチュートリアルのアプリケーション例に基づき、あなたのアプリケーションにNCCOビルダーを使用することができます。 サインイン/サインアップ無料サインイン/サインアップして、Call Control Objectsの新しいプログラム作成を使用してVoiceアプリケーションを作成してください。

シェア:

https://a.storyblok.com/f/270183/400x409/b965ab37c0/oleksii-borysenko.png
Oleksii Borysenkoヴォネージの卒業生

Vonageのデベロッパー・アドボケイト、作家、ストーリーテラー。AI/ML、ユニファイド・コミュニケーション、教育技術、クラウド技術、オープンソースに関心を持つ。