
Teilen Sie:
Ehemaliger Ausbilder für Entwickler @Vonage. Kommt von einem PHP-Hintergrund, ist aber nicht auf eine Sprache beschränkt. Ein begeisterter Gamer und Raspberry-Pi-Enthusiast. Oft beim Bouldern in Kletterhallen anzutreffen.
Text-to-Speech Voice-Anrufe mit Go
Lesedauer: 4 Minuten
In diesem Tutorial lernen wir, wie man ausgehende Text-to-Speech-Anrufe mit Go und der Voice API. Für dieses Tutorial muss eine Vonage-Anwendung erstellt werden, die über Sprachfunktionen verfügt.
Sie finden den in diesem Tutorial gezeigten Code in der Go-Code-Snippets-Repository.
Voraussetzungen
Eine Rufnummer
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.
Konfigurieren Sie Ihren Vonage Account
Erstellen Sie eine Anwendung unter "Ihre Applications" in der Dashboard. Geben Sie Ihrer neuen Anwendung einen Namen und wählen Sie dann "Öffentlichen und privaten Schlüssel generieren". Dadurch wird die Datei "private.key" für Sie heruntergeladen, die Sie dann neben den Code verschieben sollten, den Sie gerade erstellen.
Schalten Sie unter Funktionen die Option Voice ein.
*Anmerkung: Für dieses Tutorial müssen Sie keine Webhooks einrichten, um die beiden erforderlichen Felder "Ereignis" und "Antwort" zu verarbeiten. Da Sie diese Felder jedoch über ein Formular eingeben müssen, können Sie gerne eine URL wie "http://example.com/event" und "http://example.com/answer" angeben. Wenn Sie diese selbst bearbeiten möchten, müssen Sie zwei Webhooks in Ihrer Anwendung erstellen, um die Anfragen zu empfangen, und Ihre Webhooks dann dem Internet zur Verfügung stellen. Mein Vorschlag hierfür wäre die Verwendung von ngrok, für das wir hier eine ausgezeichnete Anleitung haben: https://developer.vonage.com/en/blog/local-development-nexmo-ngrok-tunnel-dr/.
Auf der Seite, die nun geladen wird, wird Ihre Anmelde-ID angezeigt. Notieren Sie sich diese ID!
Sie haben nun eine virtuelle Vonage-Nummer erworben und eine Vonage-Anwendung erstellt.
Einrichten des Codes
Jetzt ist es an der Zeit, Ihren Code zu schreiben, um diesen Text-to-Speech-Sprachanruf zu erstellen. Erstellen Sie in Ihrem Projektverzeichnis (wo Sie auch Ihre private.key Datei gespeichert haben, erstellen Sie eine neue Datei namens make-an-outbound-call-ncco.go und geben Sie den folgenden Code ein:
Hinweis: Vergewissern Sie sich, dass Sie den
PATH_TO_PRIVATE_KEY_FILEauf den Pfad zu Ihrer privaten Schlüsseldatei (einschließlich des Namens der privaten Schlüsseldatei), IhreAPPLICATION_IDmit der Anwendungs-ID, die Sie zuvor in der Anleitung notiert haben, aktualisieren Sie dieVONAGE_NUMBERauf Ihre kürzlich erworbene virtuelle Vonage-Nummer. Schließlich aktualisieren SieTO_NUMBERmit der Nummer, unter der Sie den Anruf erwarten.
package main
import (
"fmt"
"io/ioutil"
"github.com/vonage/vonage-go-sdk"
"github.com/vonage/vonage-go-sdk/ncco"
)
func main() {
privateKey, _ := ioutil.ReadFile(PATH_TO_PRIVATE_KEY_FILE)
auth, _ := vonage.CreateAuthFromAppPrivateKey(APPLICATION_ID, privateKey)
client := vonage.NewVoiceClient(auth)
from := vonage.CallFrom{Type: "phone", Number: VONAGE_NUMBER}
to := vonage.CallTo{Type: "phone", Number: TO_NUMBER}
MyNcco := ncco.Ncco{}
talk := ncco.TalkAction{Text: "This is a text to speech call from Vonage"}
MyNcco.AddAction(talk)
result, _, _ := client.CreateCall(vonage.CreateCallOpts{From: from, To: to, Ncco: MyNcco})
fmt.Println(result.Uuid + " call ID started")
}Im obigen Code, innerhalb der main() Funktion zunächst den Wert Ihrer privaten Schlüsseldatei ab (die heißen sollte private.key), dann erstellt sie ein Auth-Objekt mit Ihrer Application id und Ihrer private.key. Anschließend erstellen Sie ein neues Voice Client-Objekt, das Objekte für Ihre "from"- und "to"-Telefonnummern mit dem Typ "phone" erzeugt.
Sie erstellen dann ein Ncco Objekt mit dem Inhalt TalkAction von "Dies ist ein Text-to-Speech-Anruf von Vonage", das Sie dann dem MyNcco Objekt hinzufügen. Schließlich wird eine Anrufanfrage an das Objekt voice API die den from, to und Ncco Objekte enthält.
Wenn Sie den Anruf erfolgreich eingeleitet haben, wird die Uuid des Anrufs in Ihrem Terminal ausgegeben.
Zeit zum Testen
Vergewissern Sie sich in Ihrem Terminal-Fenster, dass Sie zu dem Projektverzeichnis navigiert haben, das Ihre make-an-outbound-call-ncco.go Datei enthält, und führen Sie den folgenden Befehl aus, um Ihren Anruf zu tätigen:
Wenn Sie erfolgreich waren, sollten Sie in Ihrem Terminal eine ähnliche Ausgabe wie die folgende sehen:
Prüfen Sie Ihr Telefon auf einen eingehenden Anruf, nehmen Sie ihn an und hören Sie die wunderbaren Worte "Dies ist ein Text-to-Speech-Anruf von Vonage".
Sie haben nun eine Go-Anwendung geschrieben, die die Voice API von Vonage nutzt, um einen ausgehenden Text-to-Speech-Anruf zu tätigen!
Weitere Lektüre
Sie finden den in diesem Tutorial gezeigten Code in der Go-Code-Snippets-Repository.
Im Folgenden finden Sie einige weitere Tutorials, die wir für die Nutzung unserer Dienste mit Go geschrieben haben:
Vergessen Sie nicht, wenn Sie Fragen, Ratschläge oder Ideen haben, die Sie mit der Community teilen möchten, dann können Sie sich gerne in unserem Slack-Arbeitsbereich der Gemeinschaft. Ich würde mich freuen, von allen zu hören, die dieses Tutorial umgesetzt haben und wie ihr Projekt funktioniert.
