https://a.storyblok.com/f/270183/1368x665/113a3f5bb8/dynamic-speech-generation.png

Dynamische Spracherzeugung mit Drittanbietern in AI Studio

Zuletzt aktualisiert am September 3, 2024

Lesedauer: 6 Minuten

AI Studio bietet eine große Auswahl an Text-to-Speech (TTS) integrierten Sprachen und Voice-Styles, erweitert durch Sprachsynthese-Markup-Sprache (SSML) zur Erstellung menschenähnlicher Äußerungen. Es gibt viele weitere TTS-Optionen, die Sie stattdessen verwenden können. AI Studio bietet Ihnen die Flexibilität, sich mit jedem Drittanbieter zu verbinden, der über zugängliche REST-API-Endpunkte verfügt. In diesem Blog zeigen wir Ihnen, wie Sie mit AI Studio dynamisch generierte synthetische Deepgram-Stimmen nutzen können.

Ein ansprechendes, menschenähnliches TTS-Erlebnis ist für Voice-Agenten von entscheidender Bedeutung, da es eine natürliche und nachvollziehbare Interaktion fördert und den Benutzern das Gefühl gibt, verstanden und geschätzt zu werden. Dieses Maß an Engagement steigert die allgemeine Kundenzufriedenheit und -treue, da es Frustrationen reduziert und die Kommunikationseffizienz verbessert. Dieser Blogbeitrag behandelt die Verwendung von dynamisch generierten Sprachaudiodateien zur vollständigen Anpassung der Agent <> Mensch Interaktion.

In einem früheren Blogbeitrag wurden statisch generierte Sprach-Audiodateien behandelt.

Überblick über das Projekt

In diesem Blog-Beitrag erfahren Sie, wie Sie Vonage AI Studio zusammen mit einem Sprachsynthese-Anbieter verwenden können, um dynamisch Sprachdateien auf der Grundlage benutzerdefinierter Parameter zu generieren, die in einem AI Studio-Flow verwendet werden. In diesem Blogbeitrag verwenden wir eine Spielzeuganwendung für elektronische Patientenakten (EHR) und demonstrieren einen eingehenden Anruf eines Patienten an eine Arztpraxis. Die Studio-Anwendung ist so aufgebaut, dass sie Informationen über den Benutzer über die Calling Line ID (CLID) oder die Telefonnummer des eingehenden Benutzers erfasst. Der Studio-Agent verwendet einen Webhook, um Informationen über den Patienten zu sammeln, z. B. den Vor- und Nachnamen des Patienten, die Patientenidentifikationsnummer und ob Termine geplant sind oder nicht. Die Begrüßung des Benutzers erfolgt mit dem Deepgram Aura TTS-Modell begrüßt.

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.

Wie man einen Voice Agent erstellt

Schritt 1: Erstellen Sie Ihren Agenten

Vom AI Studio Dashboardwählen Sie Agent erstellen. Da es sich um einen Voice-Anwendungsfall handelt, wählen Sie "Telephony".

ai-studio_agent_typeSelect Agent Type

Schritt 2: Konfigurieren Sie Ihren Agenten

Die Konfiguration des Agenten ist ein notwendiger erster Schritt. Weitere Informationen finden Sie hier. In unserem Fall stellen wir einige grundlegende Agentenkonstrukte bereit, darunter die Lokalisierung, die Zuordnung des Agenten zu einem bestimmten API-Schlüssel oder Unterkonto und die Sprache für den Agenten.

ai_studio_agent_detailsAgent DetailsBitte beachten Sie, dass der Voice/Telefonie-Agent erfordert dass Sie eine Voice auswählen. Dieses Konfigurationskonstrukt ist jedoch nicht relevant, da wir die Stimmen von Drittanbietern (Deepgram) verwenden werden. Ihr Account wird in diesem Fall nicht für die Nutzung von Vonage TTS belastet, solange Sie die hier genannten Ansätze verwenden.

Schritt 3: Wählen Sie Ihre Vorlage

Wählen Sie "Anruferidentifizierung". Wir werden die Rufnummer (CLID) des Anrufers verwenden, um eine individuelle Ansage zu erstellen. Diese Vorlage bietet Ihnen einen guten Ausgangspunkt. Weitere Informationen zu dieser Vorlage finden Sie diesen Artikel lesen.

Choose a TemplateChoose a Template

Schritt 4: Wählen Sie Eingehender Anruf

Wählen Sie den Eingehender Anruf Option. Unser Voice-Agent wird auf eingehende Anrufe reagieren, ist aber nicht auf eingehende Anrufe beschränkt. Wenn Sie z. B. nach Abschluss des Gesprächs mit dem Agenten eine Follow-up-E-Mail senden möchten, können Sie dies im Rahmen der Option Eingehender Anruf Ablaufs. Erfahren Sie mehr über AI Studio Konversationsereignisse.

Choose Inbound CallChoose Inbound Call

Voilà, Sie sind bereit, Ihren Voice-Agenten mit den individuellen Stimmen von Deepgram zu erstellen. Los geht's!

Integration von dynamisch erzeugten Text-to-Speech-Audiodateien in AI Studio

Es ist wichtig zu verstehen, dass in einem Telefonie-Agenten zwei Knoten für benutzerdefinierte TTS verwendet werden können. Sie können mehr über die Sprechen Knoten und dem Eingabe sammeln Knoten lesen. Wir werden uns auf den Eingabe sammeln Knoten.

Mit diesem Ansatz können Konversationsdesigner Sprachaudiodateien mit dem API-Endpunkt eines beliebigen Anbieters erstellen und die zurückgegebene Datei in einer Eingabe sammeln Knoten verwenden.

In diesem Anwendungsfall könnte es für Sie wichtig sein, eine vollständig angepasste UX bereitzustellen. Das bedeutet, dass Sie möglicherweise Attribute über den Benutzer, die während des Anrufs gesammelt wurden, als Teil des generierten TTS-Streams verwenden möchten. In meinen Workflows für bestehende Patienten möchte ich beispielsweise jeden Benutzer persönlich mit seinem Vornamen begrüßen und mit ihm kommunizieren, und ich möchte, dass der Agent einige dieser Attribute als Teil meiner Workflows vorliest. Solche Beispiele sind:

  • Hallo, F_NAME. Es ist schön, Sie heute wieder bei uns zu haben. Ich habe Ihren Termin derzeit festgelegt für APPT_DATUM, um APPT_ZEIT. Brauchen Sie dabei Hilfe?

  • Gute Nachrichten, F_NAMEIch habe Ihren Termin auf den folgenden Tag verschoben NEU_APPT_DATUM unter NEW_APPT_TIME. Möchten Sie, dass ich Ihnen eine SMS zur Bestätigung schicke?

  • Gut, ich habe Ihre Handynummer als PATIENT_MOBILE. Ist das noch richtig? Wenn ja, schicke ich Ihnen jetzt und am Tag vor dem Termin eine SMS zur Erinnerung. Wenn nicht, lassen Sie mich einfach wissen, dass wir Ihre Kontaktdaten ändern müssen, und ich werde Ihnen dabei helfen.

Lassen Sie uns in diesen Ansatz eintauchen. Es ist etwas komplexer, dynamische Sprachdateien auf der Grundlage der in verschiedenen Parametern gespeicherten Benutzerinformationen zu erstellen. Alle endpunktgesteuerten TTS-Anbieter bieten keinen Cloud-Speicher an, sondern übergeben die zurückgegebene binäre Audiodatei entweder direkt in der Antwort oder über einen Webhook-Ereignismelder. Dies ist insbesondere bei Deepgram der Fall, wo Sie wählen können, ob Sie Ihre Audiodaten über einen Webhook oder als Teil einer 200er-Antwort auf Ihren API-Aufruf erhalten möchten. Sie werden also einen kleinen ephemeren Backend-Speicherdienst einrichten, der die eingehende Route und die Verarbeitung der dazwischenliegenden Sprachdateien abwickeln wird. Je nach Ihrem Ansatz (ein Routing-Handler oder ein Webhook-Server) können Sie die Vonage Cloud Runtime Asset Anbieter von Vonage Cloud Runtime oder einen anderen Blob- bzw. unstrukturierten Speicherbereich (AWS S3 usw.) verwenden. Die Idee dabei ist, die Speicherung und Nutzung von Dateien temporär zu machen, so dass diese Dateien nach ihrer Verwendung bereinigt werden, was die Sicherheits- und Datenschutzkontrollen in Ihrer Anwendung verbessert. Lassen Sie uns nun die Lösung erkunden.

Da es sich bei meiner Anwendung um eine elektronische Gesundheitsakte (EHR) handelt, die mehrere Anwendungsfälle wie Terminplanung, Terminverschiebung, Zahlungen und Rezeptanfragen verarbeitet, erstelle ich einen allgemeinen Webhook-Knoten (Deepgram_Node), den ich für alle meine Abläufe verwenden kann. Ich habe einen Webhook-Knoten hinzugefügt, um die Erkennung des Patienten anhand seiner eingehenden Anrufer-ID zu ermöglichen.

  1. Sobald der vorläufige Webhook-Knoten meiner Anwendung den Vornamen des eingehenden Anrufers abgerufen hat, mappe ich dieses JSON-Attribut in einen Studio-Parameter namens $F_NAME. Ich werde diesen gespeicherten Wert in diesem Parameter verwenden, um meine TTS-Anfrage an Deepgram zu ergänzen. Der Deepgram Webhook-Knoten ist wie folgt konfiguriert.Deepgram Node Query ParamsDeepgram Node Query Params

  2. Beachten Sie, dass die JSON-formatierte Body-Konfiguration meinen gewünschten generischen Text enthält, der auf dem Flow-Servicing basiert, sowie die angepasste $F_NAME gespeicherten Parameter. Deepgram Webhook Node JSON BodyDeepgram Webhook Node JSON Body

  3. Die Antwort-Mapping im Webhook-Knoten ist von entscheidender Bedeutung, da ich die empfangene 2xx-Antwort verwenden und diese Attribute anderen Studio-Parametern zur späteren Verwendung zuordnen werde: Deepgram Node Response MappingDeepgram Node Response Mapping

  4. Beachten Sie, dass ich das zurückgegebene URL-Attribut einem neuen Parameter zuordne $SYNTHETISCHE_STIMME. Dieser url Attribut ist die Hosting-URL für die Audiodatei. Je nach Speicheranbieter, den Sie verwenden (S3, etc.), ist es wichtig, dass diese url Parameter eine ähnliche Struktur wie die folgende aufweist: https://storagefile.com/filename.mp3. Der Studio-Parser sucht explizit nach der .mp3-Dateierweiterung im URL-Anhängsel. Dies ist der Parameter, der im nächsten Knoten verwendet wird, um die vollständige synthetisierte Sprachäußerung wiederzugeben. Siehe den Screenshot unten: Using the stored URL in the SYNTHETIC_VOICE parameterUsing the stored URL in the SYNTHETIC_VOICE parameter

  5. Diese Eingabe sammeln Knoten kann nun mit anderen Einstellungen konfiguriert werden, die Sie für geeignet halten, z. B:

    1. Wiederholungsaufforderung (die die gleiche sein kann $SYNTHETISCHE_STIMME Parameter oder ein anderer Parameter sein.

    2. Außerdem können Sie die Eingabe von Anruferantworten (Sprache, DTMF) und die Erkennung von Stille einrichten.

    3. Darüber hinaus können Sie je nach Ihren spezifischen Anforderungen Kontextschlüsselwörter und Entity Ambiguation einrichten, um sicherzustellen, dass Ihr Agent optimal mit Menschen interagiert.

  6. Es ist eine gute Praxis, nachdem man die Eingabe sammeln Knoten eine Klassifizierung Knoten hinzuzufügen, wenn die Antwort Ihres Agenten von der menschlichen Benutzereingabe abhängig ist. Sie können mehr über diesen Knoten erfahren hier. In diesem Knoten erstellen Sie das Wissen und das Training für den Agenten, damit er die Absicht des Benutzers verarbeiten kann.

Schlussfolgerung

Heute integrieren viele TTS-Anbieter LLMs in ihre Sprachsynthese-Pipelines, was eine natürlichere und ausdrucksvollere Sprache ermöglicht. Früher wurde TTS vor allem durch Methoden wie die konkatenative Synthese, bei der vorab aufgezeichnete Sprachschnipsel zusammengefügt wurden, und die parametrische Synthese, bei der statistische Modelle wie Hidden Markov Models (HMMs) verwendet wurden, betrieben. Diese früheren Techniken führten oft zu eher roboterhaften und weniger nuancierten Stimmen.

LLMs verbessern die Sprachsynthese, indem sie große Datenmengen und fortschrittliche neuronale Netzwerkarchitekturen nutzen, um menschenähnliche Sprachmuster zu verstehen und zu erzeugen. Sie analysieren Text nach Kontext, Stimmung und natürlichem Sprachrhythmus und ermöglichen so eine genauere Intonation, Betonung und Emotion in der erzeugten Sprache. Das Ergebnis sind Stimmen, die nicht nur klarer und angenehmer zu hören sind, sondern auch in der Lage sind, subtile Emotionen und eine natürliche Gesprächsdynamik zu vermitteln, was das Nutzererlebnis insgesamt deutlich verbessert.

In diesem Blog-Beitrag haben wir untersucht, wie man Text-to-Speech (TTS)-Anbieter von Drittanbietern in Verbindung mit AI Studio nutzen kann, um das Benutzererlebnis vollständig anzupassen. Wir freuen uns immer über die Beteiligung der Community. Bitte schließen Sie sich uns auf GitHub und der Vonage Community Slack.

Teilen Sie:

https://a.storyblok.com/f/270183/398x436/1c09fedd7d/tim-dentry.jpg
Tim DentryArchitekt für Kundenlösungen im Gesundheitswesen

Tim ist Architekt für Kundenlösungen im Gesundheitswesen und ein leidenschaftlicher KI/ML-Enthusiast, insbesondere im Bereich der natürlichen Sprachverarbeitung/des Verständnisses und der Wissensgraphen. In seiner Freizeit reist er gerne um die Welt, forscht auf dem Gebiet der KI und ist Turniertänzer.