
シェア:
スティーブは自称数学者で、悪口の王様。グレイハウンド、曲がりくねったパズル、ヨーロッパのボードゲームをこよなく愛する。 非数学系の人には数学を、非Java系の人にはJavaの話をしていないときは、コーヒーを飲みながらコードをハックしている。
Javaで音声合成電話をかける
所要時間:2 分
はじめに
以前のチュートリアルでは、以下の方法を紹介しました。 Javaで電話を受けるを使って応答する方法を紹介しました。 音声合成.電話を受けるだけでなく、電話を発信することもできます。
このチュートリアルでは、Javaを使用して音声合成電話を発信するアプリケーションを作成します。 Vonage Voice API を利用したアプリケーションを作成します。.
前提条件
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.
使用するのは Gradleを使うことになるでしょう。さらに、JDKのコピーがインストールされていることを確認する必要があります。このチュートリアルでは、現在のLTSであるJDK 11を使用します。
最後に Vonage CLIをインストールする必要があります。このCLIを使ってVonageアカウントを新しいアプリケーションに設定します。
Javaで音声合成電話をかける
このチュートリアルでは、以下の手順を説明します:
Vonageアカウントにサインアップして電話番号を取得し、アプリケーションを作成する。
Gradleを使って新しいJavaアプリケーションを初期化する。
Vonage Javaクライアント・ライブラリを使って電話をかけ、音声合成を実行する。
Vonageアカウントの設定
アプリケーションをお持ちでない場合は、Vonage CLIを使用して作成できます。アプリケーションの名前と、Voice APIがデフォルトで使用する応答とイベントのURLを定義する必要があります:
Vonage Voice APIは、あなたのアプリケーションにリンクされた電話番号に電話がかかってくると、あなたの応答URLにリクエストを行います。
Vonage Voice APIは、様々なステータスの変更が発生すると、イベントURLにリクエストを行います。
アプリケーションの詳細については、以下をご覧ください。 コンセプトガイド.
Vonage CLI を使用してアプリケーションを作成するには、次のコマンドを使用します:
このコマンドは private.keyというファイルも作成されます。このファイルはVonage Voice APIで認証するために必要です。このファイルはコマンドを実行したディレクトリに保存されます。返されたアプリケーションIDもメモしておいてください。

Gradleを使って新しいJavaプロジェクトをセットアップする
依存関係を管理し、Javaアプリケーションを作成して実行するためにGradleを使用します。
この gradle init --type=java-applicationコマンドを実行すると、必要なすべてのフォルダと、コードを記述するサンプル・クラスが作成されます。
コマンド・ラインから、以下のコマンドで新しいJavaプロジェクトを作成し、対話式プロンプトでデフォルト値を受け入れる:
Gradleは Appクラスを src/main/java/make/tts/callフォルダに作成します。このクラスの内部には getGreetingと mainメソッドがあります。この getGreetingメソッドは必要ないので、自由に削除してください。
あなたの Appクラスはこのようになるはずだ:
/*
* This Java source file was generated by the Gradle 'init' task.
*/
package make.tts.call;
public class App {
public static void main(String[] args) {
// Future Code Goes Here
}
} 依存関係の追加
Vonage Java Libraryを使ってVonage Voice APIと通信します。以下を dependenciesブロックに以下を追加します。 build.gradleファイルのブロックに以下を追加します:
// Nexmo Java Client
implementation 'com.nexmo:client:4.2.0' Nexmoクライアントの初期化
Vonage Javaライブラリには NexmoClientクラスが含まれています。アプリケーションIDと、前のステップで作成した private.keyファイルへのパスを使用します。このクラスは NexmoClientはこの情報を使って Vonage Voice API を認証します。
の mainクラスの Appクラスのメソッドに以下を追加する:
NexmoClient nexmoClient = NexmoClient.builder()
.applicationId(APPLICATION_ID)
.privateKeyPath(PRIVATE_KEY_PATH)
.build();
VoiceClient voiceClient = nexmoClient.getVoiceClient();は NexmoClientは Exceptionをスローする。便宜上 mainメソッドのシグネチャを修正してください。あなたの mainメソッドは次のようになります:
public static void main(String[] args) throws Exception {
NexmoClient nexmoClient = NexmoClient.builder()`
.applicationId(APPLICATION_ID)
.privateKeyPath(PRIVATE_KEY_PATH)
.build();
VoiceClient voiceClient = nexmoClient.getVoiceClient();
} Nexmoコール・コントロール・オブジェクトの構築
Vonage Voice API の制御には以下を使用します。 Nexmoコールコントロールオブジェクト (NCCO).NCCOは、Voice APIが実行する一連のアクションを含むJSON配列です。
以下のNCCOは、Vonage Voice APIに、相手が電話に出たときに話しかけるように指示します:
[
{
"action": "talk",
"text": "This is a text-to-speech call from Vonage"
}
]Vonage Javaクライアント・ライブラリには、NCCOを構築するためのクラスが用意されています。このクラスでは Nccoクラスと TalkActionクラスを使用して NCCO を構築します。
メソッドに以下を追加する。 mainメソッドに以下を追加する:
TalkAction intro = TalkAction.builder("This is a text-to-speech call from Vonage").build();
Ncco ncco = new Ncco(intro); 電話をかける
には VoiceClientというメソッドがあります。 createCallというメソッドがあり com.nexmo.client.voice.Call..NCCOオブジェクトは、どの番号から電話をかけるか、電話をかけたい相手先、電話を制御するNCCOを定義するために使われる。 Callオブジェクトは、どの番号から電話をかけるか、電話をかけたい相手、そして電話を制御するNCCOを定義するために使われる。
新しい Callオブジェクトを mainメソッドで新しいオブジェクトを作成し createCallメソッドを呼び出す:
Call call = new Call(TO_NUMBER, NEXMO_NUMBER, ncco);
voiceClient.createCall(call); アプリケーションのテスト
アプリケーションを gradle runアプリケーションを make-tts-callディレクトリ内にあるコマンドでアプリケーションを起動します。Vonage番号から電話がかかってくるはずです。

この呼び出しに応答すると、Vonage Voice APIが "This is text-to-speech call from Vonage" というメッセージを話します。
結論
数行のコードで、あなたは受信者を呼び出してメッセージを話すことができるアプリケーションを作成した。
のドキュメントをご覧ください。 Vonageデベロッパーで コールフローまたは Nexmoコールコントロールオブジェクト.当社の Java用Nexmoコード・スニペットを参照してください。 このチュートリアルをご覧ください。
