
Teilen Sie:
Ingenieur für Kundenlösungen bei Vonage. Mit seinem Hintergrund in den Bereichen Produktmanagement, Netzwerk- und Systembetrieb, Kundensupport, Qualitätssicherung und Teamleiter für Softwareentwicklung ist Tony in der Telekommunikationsbranche tätig, früher in Frankreich und jetzt in den USA. Er unterstützt weltweit große und kleinere Unternehmen bei der Entwicklung von Lösungen mit programmierbaren Voice-, Messaging-, Video- und Multi-Faktor-Authentifizierungsdiensten.
Voice-Aktivierung eines reinen Text-Chatbots
Lesedauer: 10 Minuten
Übersicht
Hier erfahren Sie, wie Sie Ihren bestehenden reinen Text-Chatbot mit Voice-Interaktion erweitern können.
Diese Anwendung nutzt die Vonage Voice API für die Spracherkennung und Text-to-Speech-Funktionen, damit Ihr Chatbot die gesprochenen Anfragen der Anrufer hören und die Antworten wiedergeben kann.
Für die Sprachaktivierung Ihres Chatbots werden über vierzig Sprachumgebungen unterstützt.
Die erste Voice API-Anwendung stellt eine Verbindung zum einfachen Chatbot-Anwendungsdienst her, der Anfragen/Antworten simuliert und nur dazu dient, zu veranschaulichen, wie ein echter Chatbot sprachaktiviert werden kann. Die zweite Voice API-Beispielanwendung verfügt über dieselben grundlegenden Sprachfähigkeiten wie die erste; Sie werden diese Anwendung aktualisieren, um sie in Ihren echten Chatbot für Anfragen/Antworten zu integrieren, wobei Sie die erste als Referenz verwenden.
Beide Voice API Applications unterstützen eingehende oder ausgehende Sprachanrufe von/zu Benutzern, je nach Bedarf für Ihren Chatbot-Anwendungsfall.
In diesem Tutorial werden wir auf das Voice API Applications GitHub-Repository und das einfachen Chatbot-Simulator GitHub-Repository.
Voraussetzungen
Sie benötigen:
Node.js,
Ngrok,
ein Vonage API-Konto,
Optional Heroku für eine gehostete Bereitstellung.
Jedes vorausgesetzte Element wird wie folgt eingerichtet.
Node.js-Installation
Installieren Sie nvm (Node Version Manager); wenn Sie ein Windows-Betriebssystem verwenden, beachten Sie bitte diese wichtigen Hinweise
Installieren Sie Node.js Version 16 mit dem Befehl:
nvm install 16Verwenden Sie Node.js Version 16 mit dem Befehl:
nvm use 16Wir haben die Applications mit Node.js Version 16.15.1 getestet
Ngrok-Installation
Um schnell mit dem Testen zu beginnen, können Sie die Voice API-Anwendung und die einfache Chatbot-Simulator-Anwendung auf Ihrem lokalen Computer ausführen. Sie müssen jedoch vom Internet aus zugänglich sein, um die Vonage Voice API zu nutzen, z. B. um Webhook-Anrufe für Ereignisse wie eingehende Sprachanrufe, angenommene Anrufe oder Spracherkennungstranskripte zu empfangen. Sie erreichen diese Fähigkeit, indem Sie den Internet-Tunneldienst ngrok installieren.
Jede Anwendung benötigt einen eigenen ngrok-Tunnel.
So richten Sie ngrok ein:
Vergewissern Sie sich, dass Sie die neueste Version von ngrok verwenden und nicht eine bereits installierte Version von ngrok,
Registrieren Sie sich für ein kostenloses ngrok Account,
Verifizieren Sie Ihre E-Mail-Adresse anhand der von ngrok gesendeten E-Mail,
Abrufen von Ihr Authoken,
Führen Sie den Befehl
ngrok config add-authtoken<your-authtoken>Beide Tunnel einrichten
ausführen.
ngrok config editFür einen freien ngrok Account fügen Sie die folgenden Zeilen in die ngrok Konfigurationsdatei ein (unter der authoken Zeile):
tunnels:
six:
proto: http
addr: 6000
eight:
proto: http
addr: 8000Für ein bezahlten ngrok Accountkönnen Sie ngrok-Hostnamen festlegen, die sich bei jedem neuen Start von ngrok nicht ändern; fügen Sie die folgenden Zeilen in die ngrok-Konfigurationsdatei ein (unter der authoken-Zeile) - setzen Sie die Hostnamen (sie müssen eindeutig sein) auf die tatsächlich gewünschten Werte:
tunnels: six: proto: http addr: 6000 hostname: youmustsetanamehere6.ngrok.io eight: proto: http addr: 8000 hostname: youmustsetanamehere8.ngrok.ioKopieren
Hinweis: Die Voice API-Anwendung läuft auf dem lokalen Port 8000 und die einfache Chatbot-Anwendung läuft auf dem lokalen Port 6000.
Beide ngrok-Tunnel starten
ausführen.
ngrok start six eightSie werden Zeilen sehen wie... Web-Schnittstelle http://127.0.0.1:4040 Weiterleitung https://xxxxxxx.ngrok.io -> http://localhost:6000 Weiterleitung https://yyyyyyy.ngrok.io -> http://localhost:8000
Notieren Sie sich xxxxxxx.ngrok.io (ohne das führende https://), das mit dem lokalen Port 6000 verbunden ist, da es als
BOT_SERVERin den nächsten Schritten unten,Notieren Sie sich https://yyyyyyy.ngrok.io (mit dem vorangestellten https://), die mit dem lokalen Port 8000 verbunden ist, da sie in den nächsten Schritten benötigt wird.
Vonage API-Konto
Melden Sie sich bei Ihrem oder melden Sie sich für ein Vonage API-Konto an.
Weiter zu Ihre Applicationsauf eine bestehende Anwendung zugreifen oder + Erstellen Sie eine neue Anwendung.
Unter dem Abschnitt Fähigkeiten (klicken Sie auf [Bearbeiten], wenn Sie diesen Abschnitt nicht sehen):
Voice einschalten
Lassen Sie unter Antwort-URL HTTP GET stehen, und geben Sie
https://<host>:<port>/answer(ersetzen Sie<host>und<port>durch den öffentlichen Hostnamen und ggf. den öffentlichen Port des Servers, auf dem die Voice API Beispielanwendung läuft), z. B. https://yyyyyyyy.ngrok.io/answer oder https://myappname.herokuapp.com/answer (siehe nächste Abschnitte) oder https://myserver2.mycompany.com:40000/answer (Bereitstellung auf Ihren eigenen Servern)Wählen Sie unter Ereignis-URL die Option HTTP POST (anstelle von HTTP GET), und geben Sie
https://<host>:<port>/event(ersetzen Sie<host>und<port>durch den öffentlichen Hostnamen und ggf. den öffentlichen Port des Servers, auf dem die Voice API Beispielanwendung läuft), z. B. https://yyyyyyyy.ngrok.io/eventoder https://myappname.herokuapp.com/event siehe nächste Abschnitte(siehe nächste Abschnitte) oder https://myserver2.mycompany.com:40000/event (Bereitstellung auf Ihren eigenen Servern)Klicken Sie auf [Öffentlichen und privaten Schlüssel generieren], wenn Sie noch keinen Schlüssel erstellt haben oder einen neuen benötigen, und speichern Sie ihn als
.private.keyDatei (beachten Sie den führenden Punkt im Dateinamen) in dem Ordner, der die Voice API-Anwendung enthalten wird. WICHTIG: Vergessen Sie nicht, auf [Änderungen speichern] am unteren Rand des Bildschirms zu klicken, wenn Sie einen neuen Schlüsselsatz erstellt haben.Verknüpfen Sie eine Telefonnummer mit dieser Anwendung, wenn noch keine mit der Anwendung verknüpft wurde.
Bitte notieren Sie sich Ihre Bewerbungs-ID und die damit verknüpfte Telefonnummer (da diese im nächsten Abschnitt benötigt werden).
Für die nächsten Schritte benötigen Sie:
Ihr Vonage API-Schlüssel (als
API_KEY)Ihr Vonage API-Geheimnisist kein Signaturgeheimnis (wie
API_SECRET)Ihre Anwendungs-ID (als
APP_ID),Die mit Ihrer Anwendung verknüpfte Telefonnummer (als
SERVICE_NUMBER), wird Ihr Telefon diese Nummer anrufen,Der öffentliche Hostname und Port des Simple Text-Only Chatbot-Servers (wie
BOT_SERVER), hat das Argument kein http:// oder https:// Präfix, kein nachgestelltes / und keinen Unterpfad, z.B. xxxxxxx.ngrok.io oder mysimplebotname.herokuapp.com oder myserver1.mycompany.com:32000
Heroku-Einrichtung
Nachdem Sie lokal getestet haben, können Sie zu einem späteren Zeitpunkt optional auf von Heroku gehosteten Umgebungen bereitstellen.
So richten Sie Heroku ein,
Installieren Sie git.
Registrieren Sie sich für ein Heroku Account.
Installieren Sie die Heroku-Befehlszeile und melden Sie sich bei Ihrem Heroku Account an.
Um die Applications bereitzustellen, folgen Sie den Anweisungen im Abschnitt Deploy to Heroku.
Entwicklung
Schauen wir uns an, wie die Applications funktionieren.
Erste Phase
In der ersten Phase werden wir die Referenzanwendung voice-on-text-bot-app-with-simple-bot.js aus dem Voice Enabling Text Bot Application Repositoryin Verbindung mit der einfachen Chatbot-Anwendung very-simple-bot.js aus dem Voice-Enabling Text Bot Simple Chatbot Repository.
Lokale Bereitstellung auf Ihrem Computer für beide Applications
Voice enabling text-only chatbot. Local deployment for tests
Laden Sie den Referenzanwendungscode aus dem Repository in einen lokalen Ordner und wechseln Sie dann zu diesem Ordner.
Kopieren Sie die env.example Datei in eine neue Datei mit dem Namen .env (mit einem führenden Punkt): cp env.example .env
Bearbeiten Sie die .env-Datei und legen Sie die fünf Parameterwerte fest (siehe vorherige Abschnitte):
API_KEY=
API_SECRET=
APP_ID=
BOT_SERVER=
SERVICE_NUMBER=Installieren Sie die Abhängigkeiten einmal:
npm install
Vergewissern Sie sich, dass ngrok mit beiden Tunneln wie in den vorherigen Abschnitten beschrieben gestartet wurde.
Starten Sie die Anwendung:
node voice-on-text-bot-app-with-simple-bot.js
Laden Sie den Code der einfachen Chatbot-Anwendung aus dem Repository in einen lokalen Ordner und wechseln Sie dann zu diesem Ordner.
Starten Sie die Anwendung:
node very-simple-bot.js
Um über Sprachanrufe mit dem sehr einfachen Bot zu interagieren, rufen Sie die mit Ihrer Anwendung verknüpfte Telefonnummer an, die als SERVICE_NUMBER.
Bereitstellung auf Heroku
Optional können Sie beide Applications in einer von Heroku gehosteten Umgebung bereitstellen.
Stellen Sie zunächst sicher, dass Ihre Applications bei lokaler Bereitstellung auf Ihrem Computer wie erwartet funktionieren und dass Sie Heroku in den Voraussetzungen eingerichtet haben.
Wechseln Sie zu dem Ordner, in dem Sie die Voice API-Anwendung gespeichert haben,
Wenn Sie noch kein lokales Git-Repository haben, erstellen Sie eines:
git init
git add .
git commit -am "initial"
Beginnen Sie mit der Erstellung dieser Anwendung auf Heroku von der Kommandozeile aus unter Verwendung der Heroku CLI: Hinweis: Ersetzen Sie im folgenden Befehl "myappname" durch einen eindeutigen Namen für die gesamte Heroku-Plattform.
heroku create myappname
oder heroku create myappname --team <xxxxx> (wenn Ihr Heroku Account Teams verwendet)
Klicken Sie auf Ihrem Heroku-Dashboard, wo Ihre Anwendungsseite angezeigt wird, auf die Schaltfläche Einstellungen, fügen Sie die folgenden Config Vars hinzu und setzen Sie sie mit den entsprechenden Werten:
API_KEY
API_SECRET
APP_ID
BOT_SERVER (see further below)
SERVICE_NUMBER
PRIVATE_KEY_FILE with the value ./.private.keyStellen Sie nun die Anwendung bereit:
git push heroku master
Klicken Sie in Ihrem Heroku-Dashboard, wo Ihre Anwendungsseite angezeigt wird, auf die Schaltfläche Open App. Dieser Hostname ist derjenige, der unter Ihrer entsprechenden Anwendung verwendet werden soll Vonage Voice API-Anwendung Capabilities (klicken Sie auf die entsprechende Anwendung und dann auf [Bearbeiten]).
Die entsprechenden Links wären zum Beispiel (ersetzen Sie myappname durch den aktuellen Wert):
https://myappname.herokuapp.com/answer
https://myappname.herokuapp.com/event
Weitere Einzelheiten finden Sie im obigen Abschnitt Vonage API Account.
Wechseln Sie zu dem Ordner, in dem Sie die sehr einfache Chatbot-Anwendung haben,
Wenn Sie noch kein lokales Git-Repository haben, erstellen Sie eines:
gehen Sie zu diesem einfachen Bot-Anwendungsordner
git init
git add .
git commit -am "initial"
Erstellen Sie diese Anwendung auf Heroku von der Kommandozeile aus mit der Heroku CLI:
Hinweis: Ersetzen Sie im folgenden Befehl "mysimplebotname" durch einen eindeutigen Namen für die gesamte Heroku-Plattform.
heroku create mysimplebotname
oder heroku create mysimplebotname --team <xxxxx> (wenn Ihr Heroku Account Teams verwendet)
Einsatz der Anwendung
git push heroku master
In diesem Fall wird beim Einrichten der Voice API-Anwendung der Parameter BOT_SERVER für die andere Heroku-Bereitstellung mysimplebotname.herokuapp.com sein (ersetzen Sie mysimplebotname durch den tatsächlichen Wert, ohne https:// und ohne /)
Um über Sprachanrufe mit dem sehr einfachen Bot zu interagieren, rufen Sie die mit Ihrer Anwendung verknüpfte Telefonnummer an, die als SERVICE_NUMMER aufgeführt ist.
Wie die Applications funktionieren
Die Anwendung voice-on-text-bot-app-with-simple-bot.js:
Verwendet Vonage Voice API mit dem Node.js Server SDK '@vonage/server-sdk',
Voreingestellte Werte für die:
ASR (Automatic Speech Recognition) und TTS (Text-to-Speech) Sprachcode, als "languageCode",
Erste Begrüßung, als 'greetingText',
und andere Parameter wie kommentiert.
Verwaltet Webhook-Routen:
'/makecall'
Wenn Sie ausgehende Anrufe einleiten möchten
Aktualisieren Sie die Nummer im callInfo-Objekt. Es muss sich um die vollständige internationale Nummer (E.164-Format) handeln, mit Landesvorwahl, ohne führendes '+', ohne internationales Vorwahlzeichen wie '011' oder '00', ohne Bindestriche '-' oder Leerzeichen
Es wird die Route '/placecall' aufgerufen
Um den ausgehenden Anruf zu initiieren, geben Sie in einem Webbrowser die Webadresse:
<this-application-host-name>/placecall, z. B. xxxxxxx.ngrok.io/makecall
'/platzaufruf'
Hier erfolgt die eigentliche Anforderung einer Voice-API für ausgehende Anrufe.
'/Antwort'
Diese Webhook-Route wird von der Vonage Voice API-Plattform bei einem eingehenden Sprachanruf oder bei der Beantwortung eines ausgehenden Sprachanrufs aufgerufen,
Der (Voice API-)Rufabschnitt wird durch seinen UUID-Wert identifiziert,
Die Anwendung gibt ein NCCO wo:
Dem anderen Teilnehmer wird eine Ansage vorgespielt mit "Aktion": "sprechen",
Es startet einen ASR-Zyklus (Automatic Speech Recognition) mit "Aktion": "input",
Die Voice API-Plattform ruft die Webhook-URL auf, die im Parameter eventUrl (route /asr) angegebene Webhook-URL auf, unabhängig davon, ob Sprache erkannt wurde oder nicht.
'/Ereignis
Diese Webhook-Route wird von der Voice API-Plattform von Vonage bei verschiedenen Zuständen der Sprachverbindung mit einem bestimmten UUID-Wert aufgerufen,
In dieser Anwendung gibt es keine Aktionen als Antwort auf diese Webhook-Route, außer der Rückgabe des HTTP-Codes 200 (ok).
'/asr'
Diese Webhook-Route wird von der Vonage Voice API-Plattform bei ASR-Ergebnissen (Automatic Speech Recognition) aufgerufen, unabhängig davon, ob ein Transkript erfolgreich zurückgegeben wurde oder nicht, z. B. wenn Geräusche anstelle von gesprochenen Wörtern aufgetreten sind oder ein Timeout eingetreten ist, wenn kein Ton erkannt wurde (die Timeout-Dauer entspricht dem Parameter
startTimeoutWert)Er beginnt einen neuen ASR-Zyklus, indem er ein NCCO mit "Aktion": "Eingabe"
'/botreply'
Diese Webhook-Route wird vom einfachen Chatbot aufgerufen, um eine Textantwort auf eine Textanfrage zurückzugeben,
Dann initiiert er eine TTS (Text-to-Speech), um die Chatbot-Antwort abzuspielen.
Stellen Sie in dieser Anwendung die ASR-Sprache (Automatische Spracherkennung) Code und TTS-Sprachcode (Text-To-Speech) Code (Parameter languageCode) ein, die der Sprache Ihres Text-Chatbots entsprechen. Über 40 Sprachumgebungen sind mit der Vonage Voice API für ASR und TTS verfügbar.
Die beiden letzten Codezeilen ermöglichen es dieser Node.js-Anwendung, auf dem lokalen Port 8000 für eine lokale Bereitstellung oder auf einem anderen lokalen Port für eine gehostete Bereitstellung zu lauschen (bei einer Heroku-Bereitstellung automatisch eingestellt).
Die Anwendung very-simple-bot.js:
Simuliert einen reinen Text-Chatbot. Sein einziger Zweck ist es, zu zeigen, wie ein tatsächlicher Nur-Text-Chatbot mit der Anwendung, die Vonage Voice API verwendet, sprachaktiviert werden würde,
Dieses Beispiel eines sehr einfachen Chatbots unterstützt die Sprachen Englisch und Französisch als Beispiele
Die einzigen unterstützten Anfragen sind in den jeweiligen Wörterbüchern botKbEn und botKbFr aufgeführt,
Dieser sehr einfache Chatbot verarbeitet zu Testzwecken keine natürliche Sprache. Sie müssen genau eine der erwarteten unterstützten Anfragen stellen. Andernfalls wird die Antwort die Standardantwort für unbekannte Anfragen sein,
Es verarbeitet den Webhook '/bot', um Anfragen zu empfangen; es ruft die Webhook-URL zurück, die in der eingehenden Anfrage aufgeführt ist, um die entsprechende Textantwort zu liefern,
Die beiden letzten Codezeilen ermöglichen es dieser Node.js-Anwendung, bei einer lokalen Bereitstellung auf dem lokalen Port 6000 oder bei einer gehosteten Bereitstellung auf einem anderen lokalen Port zu lauschen (bei einer Heroku-Bereitstellung automatisch eingestellt).
Zweite Phase
Voice Enabling text-only chatbot. Hosted/ Production deployment.
In der zweiten Phase werden Sie den Quellcode voice-on-text-bot-app-generic.js aktualisieren (wo angegeben), um mit Ihrem tatsächlichen Chatbot für Textanfragen/-antworten zu interagieren, und voice-on-text-bot-app-with-simple-bot.js als Referenz verwenden, sowohl aus dem Anwendungs-Repository.
Sie benötigen keinen Code aus dem Repository des einfachen Bot-Simulators.
Sie interagieren per Voice mit Ihrem Chatbot, indem Sie die Telefonnummer anrufen, die mit Ihrer Anwendung verknüpft ist, d. h. die Nummer, die als SERVICE_NUMBER.
Schlussfolgerung
In diesem Tutorial haben Sie gelernt, dass Sie mit der Voice API von Vonage jeden Nur-Text-Chatbot sprachfähig machen können, und dass viele Sprachen unterstützt werden.
Sie beginnen zunächst mit einer lokalen Bereitstellung auf Ihrem Computer mit der Voice API-Anwendung und dem einfachen Text-Chatbot, um zu veranschaulichen, wie Sie einen Text-Chatbot sprachaktivieren können.
Sie können optional in von Heroku gehosteten Umgebungen bereitstellen.
Anschließend aktualisieren Sie die andere Voice API-Anwendung, um nur den spezifischen Code für die Integration mit Ihrem Text-Chatbot für Textanfragen/-antworten hinzuzufügen, da die gesamte notwendige Interaktion mit der Vonage Voice API, einschließlich der Verarbeitung eingehender/ausgehender Sprachanrufe, der automatischen Spracherkennung und der Text-to-Speech-Funktion, bereits in dieser Quellcodedatei implementiert ist.
Wie hat Ihnen dieses Tutorial gefallen? Haben Sie Fragen oder Feedback zur Aktivierung eines Nur-Text-Chatbots durch Voice? Schließen Sie sich uns auf dem Vonage-Entwickler-Slack. Und folgen Sie uns auf Twitter um über die neuesten Vonage Developer-Updates auf dem Laufenden zu bleiben
Teilen Sie:
Ingenieur für Kundenlösungen bei Vonage. Mit seinem Hintergrund in den Bereichen Produktmanagement, Netzwerk- und Systembetrieb, Kundensupport, Qualitätssicherung und Teamleiter für Softwareentwicklung ist Tony in der Telekommunikationsbranche tätig, früher in Frankreich und jetzt in den USA. Er unterstützt weltweit große und kleinere Unternehmen bei der Entwicklung von Lösungen mit programmierbaren Voice-, Messaging-, Video- und Multi-Faktor-Authentifizierungsdiensten.