https://d226lax1qjow5r.cloudfront.net/blog/blogposts/speech-to-text-with-nexmo-and-azure-speech-dr/Speech-To-Text-with-Nexmo-and-Microsoft-Azure.png

Sprache-zu-Text mit Nexmo und Microsoft Azure

Zuletzt aktualisiert am April 19, 2021

Lesedauer: 6 Minuten

Wenn Sie jemals etwas gebraucht haben, das Ihnen hilft, eingehende Anrufe zu empfangen und automatisch in Echtzeit zu transkribieren, dann haben Sie Glück, denn das können Sie mit unserem neu aktualisierten Nexmo-to-Azure Speech Service Anschluss.

Wir haben vor kurzem den Code und die Bereitstellungsoptionen für diesen Konnektor aktualisiert, so dass es jetzt noch einfacher ist, ihn bereitzustellen, zu ändern oder zu erweitern, wenn dies einem Problem entspricht, das Sie zu lösen versuchen.

Wenn Sie das schon überzeugt hat und Sie unbedingt loslegen wollen, können Sie weitere Details in unserer nexmo-Gemeinschaft Github-Repository.

Wie die App mit dem Azure-Sprachdienst funktioniert

Die Azure-Plattform von Microsoft bietet eine Vielzahl von Kognitive Dienste über eine API, die es Ihnen ermöglicht, mit Sprache, Vision, Sprache und mehr zu arbeiten. Diese App verwendet die Sprache-zu-Text-API um Audio zu erkennen, das in Echtzeit über einen Websocket von einem Telefonanruf, der durch ein Nexmo-Anrufsteuerungsobjekt.

Einfach ausgedrückt, Sie buchstäblich die API aufrufen und mit ihr sprechen. Azure Speech führt die Audioerkennung durch, und die Sätze werden an die Konsole zurückgegeben.

Nexmo  Azure Speech Service

Eigene Instanz betreiben

Diese App fällt unter unser Nexmo-Erweiterungsprogramm Programm, in dessen Rahmen wir nützliche und wiederverwendbare Applications erstellen, um Ihnen den Einstieg in die Nutzung von Nexmo mit anderen großartigen Service Providern wie Microsoft Azure, Google Cloud und Amazon Webdienste.

Wir haben es Ihnen leicht gemacht, Ihre eigene Instanz dieser Anwendung mit nur einem Klick bereitzustellen und sofort zu nutzen.

Ein-Klick-Bereitstellungsoptionen

Sie haben die Möglichkeit, die App über die Schaltflächen oben in der Readme-Datei im GitHub-Repository auf Heroku oder Azure bereitzustellen.

Wenn Sie die Anwendung jedoch einsetzen möchten und eine sichere (unzerstörbare!) Möglichkeit haben möchten, mit dem Code direkt von Ihrem Browser aus zu arbeiten, versuchen Sie Remixing der Anwendung auf Glitch zu remixen und sofort mit der Erweiterung der Codebasis zu beginnen.

Bereitstellen/Ausführen mit Docker

Diese Anwendung kann auch mit Docker ausgeführt oder bereitgestellt werden. Der schnellste Weg, dies zu tun, ist das Repository zu klonen und vom Stammverzeichnis aus Docker Compose zu verwenden, um die Dinge durch Ausführen in Gang zu setzen:

docker-compose up

Unabhängig davon, welche Bereitstellungsoption Sie wählen, erhalten Sie eine neue hostname Sie müssen also Ihre virtuelle Nexmo-Nummer mit dieser verknüpfen, um die Einrichtung abzuschließen.

Verknüpfung der App mit Nexmo

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.

Verwendung des Dashboards

  1. Erstellen einer Voice-Anwendung

  2. Fügen Sie die Ereignis-URL hinzu - https://<your_new_hostname>/ncco

  3. Fügen Sie die Antwort-URL hinzu - https://<your_new_hostname>/event

  4. Klicken Sie auf Create Application

  5. Klicken Sie auf Numbers und verknüpfen Sie die kürzlich erstellte virtuelle Nummer.

  6. Kopieren Sie die virtuelle Nummer zur Verwendung im nächsten Schritt.

Verwendung der Befehlszeilenschnittstelle

Sie können das CLI wie folgt installieren diese Anweisungen. Erstellen Sie dann eine neue Nexmo-Anwendung, die auch Ihre answer_urlund event_url für die Anwendung, die lokal auf Ihrem Rechner läuft.

nexmo app:create ms-speech-to-text http:///ncco http:///event

Daraufhin wird eine Anwendungs-ID zurückgegeben. Notieren Sie sich diese.

Mieten Sie eine neue virtuelle Nummer

Wenn Sie noch keine Nummer haben, müssen Sie eine mieten. Dies können Sie über die CLI erreichen:

nexmo number:buy

Verknüpfen Sie die virtuelle Nummer mit der Anwendung

Verknüpfen Sie schließlich Ihre neue Nummer mit der Anwendung, die Sie durch Ausführen erstellt haben:

nexmo link:app YOUR_NUMBER YOUR_APPLICATION_ID

Probieren Sie es aus

Rufen Sie nun bei laufender App - wo auch immer Sie sie eingesetzt haben - die Nummer an, die Sie ihr zugewiesen haben, und beginnen Sie zu sprechen. Nach einer kurzen Pause sehen Sie, was Sie sagen, in Echtzeit auf der Konsole angezeigt.

Wie man das ausdehnt

Der nächste logische Schritt wäre, die von Azure Speech Service zurückgegebenen Phrasen an einen anderen Dienst weiterzuleiten, der sie konsumiert und auf der Grundlage der erhaltenen Informationen handelt.

Sie können dies tun, indem Sie die on_return_message Funktion, die derzeit wie folgt endet:

if data['RecognitionStatus'] == "Success":
    # Extend From here to handle your transcription messages
    print(data["DisplayText"])

Mit Hilfe der Requests-Bibliothek (die bereits eine Abhängigkeit ist, so dass sie nicht erneut installiert werden muss), könnten Sie POST die Phrasen als JSON-Objekt an eine andere API weiterleiten, wo sie konsumiert und anschließend verarbeitet werden. Um diese Funktionalität hinzuzufügen, ändern Sie die Endung if Anweisung in on_return_message so etwas wie dies:

if data['RecognitionStatus'] == "Success":
    # Extend From here to handle your transcription messages
    print(data["DisplayText"])

    url = "http://<another_api>/<endpoint>"
    headers = {'Content-Type': 'application/json'}
    
    resp = requests.post(url, headers=headers, data=json.dumps({'phrase': data["DisplayText"]}))

    if resp.status_code == 200:
        print(resp.content)
    else:
        print(resp.status_code)
        print(resp.content)

Jedes Mal, wenn eine neue Phrase vom Azure Speech Service zurückgegeben wird, wird ein {"phrase":"Words returned by the app."} Objekt gesendet werden.

Was Sie dann damit machen, bleibt Ihnen überlassen!

Wenn Sie diese Anwendung erweitern möchten oder Fragen zur Funktionsweise haben, gehen Sie bitte in den Nexmo Community Slack-Kanal wo wir Ihnen gerne bei allen Fragen und Vorschlägen weiterhelfen werden.

Teilen Sie:

https://a.storyblok.com/f/270183/250x250/d0444194cd/martyn.png
Martyn DaviesVonage Ehemalige

Ehemaliger Direktor für Entwicklerschulung bei Vonage. Mit einem Hintergrund als kreativer Entwickler, Produktmanager und Organisator von Hack-Days arbeitet Martyn seit 2012 als Befürworter der Technologie, nachdem er zuvor beim Rundfunk und bei großen Plattenfirmen tätig war. Er bildet Entwickler auf der ganzen Welt aus und unterstützt sie.