
Teilen Sie:
Steve ist ein selbsternannter Mathlet und König des Scharfsinns. Außerdem ist er ein Liebhaber von Windhunden, kniffligen Puzzles und europäischen Brettspielen. Wenn er nicht gerade mit Nicht-Mathematikern über Mathe und mit Nicht-Javaleuten über Java spricht, kann man ihn beim Kaffeetrinken und beim Hacken von Code antreffen.
Text-zu-Sprache-Telefonate mit Java führen
Lesedauer: 5 Minuten
Einführung
In einem früheren Tutorial haben wir Ihnen gezeigt, wie man Telefonanrufe mit Java entgegennehmen und antworten mit Text-zu-Sprache. Sie können nicht nur Anrufe entgegennehmen, sondern auch ausgehende Anrufe tätigen.
In diesem Tutorial werden Sie eine Anwendung erstellen, die ausgehende Text-zu-Sprache-Telefonanrufe unter Verwendung von Java und der Vonage Voice API.
Voraussetzungen
Vonage API-Konto
Um dieses Tutorial durchzuführen, benötigen Sie ein Vonage API-Konto. Wenn Sie noch keines haben, können Sie sich noch heute anmelden und mit einem kostenlosen Guthaben beginnen. Sobald Sie ein Konto haben, finden Sie Ihren API-Schlüssel und Ihr API-Geheimnis oben auf dem Vonage-API-Dashboard.
In diesem Lernprogramm wird auch eine virtuelle Telefonnummer verwendet. Um eine zu erwerben, gehen Sie zu Rufnummern > Rufnummern kaufen und suchen Sie nach einer Nummer, die Ihren Anforderungen entspricht.
Sie werden Folgendes verwenden Gradle verwenden, um Ihre Abhängigkeiten zu verwalten und Ihre Anwendung auszuführen. Außerdem müssen Sie sicherstellen, dass Sie eine Kopie des JDK installiert haben. Ich werde in diesem Tutorial JDK 11, die aktuelle LTS-Version, verwenden.
Schließlich benötigen Sie die Vonage CLI installiert sein. Damit konfigurieren Sie Ihren Vonage Account so, dass er auf Ihre neue Anwendung verweist.
Text-zu-Sprache-Telefonate mit Java führen
In dieser Anleitung werden Sie durch die folgenden Schritte geführt:
Melden Sie sich für einen Vonage Account an, erhalten Sie eine Telefonnummer und erstellen Sie eine Applikation.
Verwendung von Gradle zur Initialisierung einer neuen Java-Anwendung.
Verwendung der Vonage Java Client Library, um einen Telefonanruf zu initiieren und Text-to-Speech auszuführen.
Konfigurieren Sie Ihren Vonage Account
Wenn Sie noch keine Anwendung haben, können Sie mit der Vonage CLI eine erstellen. Sie müssen den Namen der Anwendung sowie eine Antwort- und Ereignis-URL definieren, die von der Voice API standardmäßig verwendet wird:
Die Vonage Voice API stellt eine Anfrage an Ihre Antwort-URL, wenn eine mit Ihrer Anwendung verknüpfte Telefonnummer einen Anruf erhält.
Die Vonage Voice API wird bei verschiedenen Statusänderungen Anfragen an Ihre Ereignis-URL stellen.
Weitere Informationen über Applications finden Sie in unserem Vonage Concepts Leitfaden.
Verwenden Sie den folgenden Befehl, um eine Anwendung über die Vonage CLI zu erstellen:
Dieser Befehl erstellt auch eine Datei namens private.key die Sie für die Authentifizierung bei der Vonage Voice API benötigen, um Anrufe zu tätigen. Diese Datei wird in dem Verzeichnis gespeichert, in dem Sie den Befehl ausführen. Notieren Sie sich auch die zurückgegebene Application ID, da Sie diese später noch benötigen werden.

Gradle zum Einrichten eines neuen Java-Projekts verwenden
Sie werden Gradle verwenden, um Ihre Abhängigkeiten zu verwalten und um Ihre Java-Anwendung zu erstellen und auszuführen.
Der Befehl gradle init --type=java-application werden alle benötigten Ordner sowie eine Beispielklasse erstellt, in der Sie Ihren Code schreiben werden.
Erstellen Sie in der Befehlszeile ein neues Java-Projekt mit dem folgenden Befehl und akzeptieren Sie die Standardwerte bei den interaktiven Eingabeaufforderungen:
Gradle erstellt die App Klasse im Ordner src/main/java/make/tts/call Ordner. Innerhalb dieser Klasse befindet sich ein getGreeting und main Methode. Sie werden die getGreeting Methode nicht benötigen, also können Sie sie entfernen.
Ihre App Klasse sollte wie folgt aussehen:
/*
* 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
}
} Hinzufügen der Abhängigkeiten
Sie werden die Vonage Java Library verwenden, um mit der Vonage Voice API zu kommunizieren. Fügen Sie das Folgende in den dependencies Block in Ihrer build.gradle Datei hinzu:
// Nexmo Java Client
implementation 'com.nexmo:client:4.2.0' Initialisieren des Nexmo-Clients
Die Vonage Java Library enthält eine NexmoClient Klasse, die Ihnen den Zugriff auf die verschiedenen Vonage APIs ermöglicht. Sie verwenden Ihre Application ID und den Pfad zu Ihrer private.key Datei aus einem früheren Schritt. Die NexmoClient verwendet diese Informationen, um sich bei der Voice API von Vonage zu authentifizieren.
Fügen Sie Folgendes zur main Methode der App Klasse hinzu, wobei alle Importe aufgelöst werden:
NexmoClient nexmoClient = NexmoClient.builder()
.applicationId(APPLICATION_ID)
.privateKeyPath(PRIVATE_KEY_PATH)
.build();
VoiceClient voiceClient = nexmoClient.getVoiceClient();Die Website NexmoClient wirft eine Exception aus, wenn die private Schlüsseldatei nicht geladen werden kann. Der Einfachheit halber sollten Sie die Signatur Ihrer main Methodensignatur so, dass sie alle Ausnahmen auslöst. Ihre main Methode sollte nun wie folgt aussehen:
public static void main(String[] args) throws Exception {
NexmoClient nexmoClient = NexmoClient.builder()`
.applicationId(APPLICATION_ID)
.privateKeyPath(PRIVATE_KEY_PATH)
.build();
VoiceClient voiceClient = nexmoClient.getVoiceClient();
} Bauen Sie das Nexmo Call Control Objekt
Die Vonage Voice API wird gesteuert über Nexmo Anrufsteuerungsobjekt (NCCO). Ein NCCO ist ein JSON-Array, das eine Reihe von Aktionen enthält, die die Voice API ausführen wird.
Der folgende NCCO weist die Vonage Voice API an, mit dem Empfänger zu sprechen, wenn dieser den Anruf entgegennimmt:
[
{
"action": "talk",
"text": "This is a text-to-speech call from Vonage"
}
]Die Vonage Java Client Library bietet Klassen, die es Ihnen ermöglichen, ein NCCO zu erstellen. Sie werden die Klassen Ncco und TalkAction um den NCCO zu erstellen.
Fügen Sie Folgendes in die main Methode hinzu, wobei alle Importe aufgelöst werden:
TalkAction intro = TalkAction.builder("This is a text-to-speech call from Vonage").build();
Ncco ncco = new Ncco(intro); Telefonieren Sie
Die VoiceClient enthält eine Methode namens createCall die eine com.nexmo.client.voice.Call. Das Call Objekt wird verwendet, um die Nummer, von der aus Sie anrufen, den Empfänger, den Sie anrufen möchten, und den NCCO zur Steuerung des Anrufs zu definieren.
Erstellen Sie ein neues Call Objekt in der main Methode und rufen Sie die createCall Methode mit dem erstellten Objekt auf, wobei alle Importe aufgelöst werden:
Call call = new Call(TO_NUMBER, NEXMO_NUMBER, ncco);
voiceClient.createCall(call); Testen Sie Ihre Anwendung
Starten Sie Ihre Anwendung mit dem gradle run Befehl innerhalb Ihres make-tts-call Verzeichnis. Sie sollten einen Anruf von Ihrer Vonage-Nummer erhalten.

Sobald Sie den Anruf entgegennehmen, wird die Vonage Voice API die Nachricht "Dies ist ein Text-to-Speech-Anruf von Vonage" ausgeben.
Schlussfolgerung
Mit ein paar Zeilen Code haben Sie eine Anwendung erstellt, die einen Empfänger anrufen und eine Nachricht sprechen kann.
Sehen Sie sich unsere Dokumentation auf Vonage Entwickler wo Sie mehr erfahren können über Anruffluss oder Nexmo Anrufkontroll-Objekte. Siehe unsere Nexmo Code-Schnipsel für Java für vollständige Code-Beispiele zu diesem Lernprogramm und mehr.
Teilen Sie:
Steve ist ein selbsternannter Mathlet und König des Scharfsinns. Außerdem ist er ein Liebhaber von Windhunden, kniffligen Puzzles und europäischen Brettspielen. Wenn er nicht gerade mit Nicht-Mathematikern über Mathe und mit Nicht-Javaleuten über Java spricht, kann man ihn beim Kaffeetrinken und beim Hacken von Code antreffen.
