Spracherkennung mit Transkription mit der Cloud Speech‑to‑Text API

Die Cloud Speech API unterstützt Audiodateien in über 80 Sprachen und ermöglicht es, Sprachaufnahmen in Text zu transkribieren.

In diesem Lab zeichnen wir eine Audiodatei auf und senden sie zum Transkribieren an die Cloud Speech API.

Lerninhalte

  • Speech API-Anfrage erstellen und die API mit "curl" aufrufen
  • Die Speech API mit Audiodateien in verschiedenen Sprachen aufrufen

Voraussetzungen

  • Google Cloud Platform-Projekt
  • Ein Browser, z. B. Chrome oder Firefox

Wie werden Sie diese Anleitung verwenden?

Nur lesen Lesen und Übungen durchführen

Wie würden Sie Ihre Erfahrung mit der Google Cloud Platform bewerten?

Anfänger Mittelstufe Fortgeschritten

Einrichtung der Umgebung im eigenen Tempo

Wenn Sie noch kein Google-Konto (Gmail oder Google Apps) haben, müssen Sie eins erstellen. Melden Sie sich in der Google Cloud Platform Console (console.cloud.google.com) an und erstellen Sie ein neues Projekt:

Screenshot vom 10.02.2016, 12:45:26.png

Notieren Sie sich die Projekt-ID, also den projektübergreifend nur einmal vorkommenden Namen eines Google Cloud-Projekts. Der oben angegebene Name ist bereits vergeben und kann leider nicht mehr verwendet werden. Sie wird in diesem Codelab später als PROJECT_ID bezeichnet.

Als Nächstes müssen Sie die Abrechnung in der Cloud Console aktivieren, um Google Cloud-Ressourcen verwenden zu können.

Dieses Codelab sollte Sie nicht mehr als ein paar Dollar kosten, aber es könnte mehr sein, wenn Sie sich für mehr Ressourcen entscheiden oder wenn Sie sie laufen lassen (siehe Abschnitt „Bereinigen“ am Ende dieses Dokuments).

Neuen Nutzern der Google Cloud Platform steht eine kostenlose Testversion mit einem Guthaben von 300$ zur Verfügung.

Klicken Sie auf das Menüsymbol oben links auf dem Bildschirm.

Wählen Sie im Drop-down-Menü das APIs & Services -Dashboard aus.

Klicken Sie auf APIs und Dienste aktivieren.

Geben Sie dann in das Suchfeld „Sprache“ ein. Klicken Sie auf Google Cloud Speech API:

Aktivieren Sie in diesem Fall die Cloud Speech API mit einem Klick auf Enable (Aktivieren):

Es dauert einige Sekunden, bis die Funktion aktiviert ist. So sieht es aus, wenn die Funktion aktiviert ist:

Google Cloud Shell ist eine Befehlszeilenumgebung, die in der Cloud ausgeführt wird. Auf dieser Debian-basierten virtuellen Maschine sind alle erforderlichen Entwicklungstools (gcloud, bq, git usw.) installiert und sie stellt ein Basisverzeichnis mit 5 GB nichtflüchtigem Speicher zur Verfügung. Wir verwenden Cloud Shell, um unsere Anfrage an die Speech API zu erstellen.

Klicken Sie zum Starten von Cloud Shell rechts oben in der Kopfzeile auf das Symbol „Google Cloud Shell aktivieren“ Screen Shot 2015-06-08 at 5.30.32 PM.png.

Im unteren Bereich der Konsole wird ein neuer Frame für die Cloud Shell-Sitzung geöffnet, in dem eine Befehlszeilen-Eingabeaufforderung angezeigt wird. Warten Sie, bis die Eingabeaufforderung „user@project:~$“ angezeigt wird.

Da Sie mit curl eine Anfrage an die Speech API senden möchten, müssen Sie zuvor einen API-Schlüssel generieren, um ihn in der Anfrage-URL zu übergeben. Rufen Sie zum Erstellen eines API-Schlüssels in Ihrem Projektdashboard den Bereich APIs & Dienste > Anmeldedaten auf:

Klicken Sie dann auf Anmeldedaten erstellen:

Wählen Sie im Drop-down-Menü API key (API-Schlüssel) aus:

Kopieren Sie als Nächstes den gerade generierten Schlüssel und wählen Sie Schließen aus (nicht den Schlüssel einschränken).

Speichern Sie nun den API-Schlüssel in einer Umgebungsvariablen. So brauchen Sie den Wert des API-Schlüssels nicht in jede Anfrage einzufügen. Das können Sie in Cloud Shell tun. Ersetzen Sie <your_api_key> durch den gerade kopierten Schlüssel.

export API_KEY=<YOUR_API_KEY>

Sie können Ihre Anfrage an die Speech API in einer request.json-Datei erstellen. Sie können diese Datei mit einem beliebigen Befehlszeileneditor (z. B. nano, vim oder emacs) oder mit dem in Cloud Shell integrierten Web-Editor erstellen und bearbeiten:

Erstellen Sie die Datei in Ihrem Basisverzeichnis, damit Sie einfach darauf verweisen können, und fügen Sie Ihrer request.json-Datei Folgendes hinzu :

request.json

{
  "config": {
      "encoding":"FLAC",
      "languageCode": "en-US"
  },
  "audio": {
      "uri":"gs://cloud-samples-tests/speech/brooklyn.flac"
  }
}

Der Anfragetext enthält ein config- und ein audio-Objekt. In config geben wir an, wie die Speech API die Anfrage verarbeiten soll. Beim Senden der Datei an die API gibt der Parameter encoding Aufschluss darüber, welchen Audiocodierungstyp Sie für die Audiodatei verwenden, die Sie an die API senden. FLAC ist der Codierungstyp für RAW-Dateien (siehe Dokumentation für den Codierungstyp). Es gibt weitere Parameter, die Sie Ihrem config-Objekt hinzufügen können, aber encoding ist das einzige erforderliche Objekt. Als languageCode wird standardmäßig Englisch verwendet, wenn Sie in der Anfrage nichts anderes festlegen.

Im audio-Objekt können Sie der API entweder den URI der Audiodatei in Cloud Storage oder den Base64-codierten Audioinhalt als String übergeben. Hier verwenden wir Cloud Storage-URLs. Im nächsten Schritt rufen wir die Speech API auf.

Mit dem folgenden curl-Befehl können Sie nun den Anfragetext zusammen mit der zuvor gespeicherten Umgebungsvariablen mit dem API-Schlüssel an die Speech API übergeben. Platzieren Sie dabei alle Elemente in der gleichen Befehlszeile:

curl -s -X POST -H "Content-Type: application/json" --data-binary @request.json "https://speech.googleapis.com/v1/speech:recognize?key=${API_KEY}"

Die von diesem curl-Befehl zurückgegebene Antwort sollte in etwa so aussehen:

{
  "results": [
    {
      "alternatives": [
        {
          "transcript": "how old is the Brooklyn Bridge",
          "confidence": 0.98267895
        }
      ]
    }
  ]
}

Der Wert transcript liefert die Texttranskription Ihrer Audiodatei durch die Speech API. Der Wert confidence gibt an, wie sicher es ist, dass das Audiomaterial korrekt transkribiert wurde.

Ihnen ist vermutlich aufgefallen, dass wir in der obigen Anfrage die Methode recognize aufgerufen haben. Die Speech API unterstützt sowohl synchrone als auch asynchrone Sprache-zu-Text-Transkriptionen. In diesem Beispiel haben wir eine vollständige Audiodatei an die API gesendet. Mithilfe der Methode longrunningrecognize können Sie jedoch auch im Streamingmodus Sprache-zu-Text-Transkription durchführen, also während der Nutzer noch spricht.

Arbeiten Sie mehrsprachig? Die Speech API unterstützt Sprache-zu-Text-Transkriptionen in über 100 Sprachen. Sie können den Parameter languageCode in request.json ändern. Eine Liste der unterstützten Sprachen finden Sie hier.

Testen wir das Ganze mit einer französischen Audiodatei (hier können Sie sich einen Ausschnitt anhören). Ändern Sie Ihre „request.json“ in Folgendes:

request.json

 {
  "config": {
      "encoding":"FLAC",
      "languageCode": "fr"
  },
  "audio": {
      "uri":"gs://speech-language-samples/fr-sample.flac"
  }
}

Sie sollten die folgende Antwort sehen:

{
  "results": [
    {
      "alternatives": [
        {
          "transcript": "maître corbeau sur un arbre perché tenait en son bec un fromage",
          "confidence": 0.9710122
        }
      ]
    }
  ]
}

Das ist ein Satz aus einer beliebten französischen Fabel von La Fontaine. Wenn Sie Audiodateien in einer anderen Sprache haben, können Sie sie Cloud Storage hinzufügen und den languageCode-Parameter in Ihrer Anfrage entsprechend ändern.

Sie haben gelernt, wie Sie Sprache-zu-Text-Transkriptionen mit der Speech API durchführen. In diesem Beispiel haben Sie den Google Cloud Storage-URI einer Audiodatei an die API übergeben. Alternativ dazu können Sie den Audioinhalt als String mit Base64-Codierung übergeben.

Behandelte Themen

  • Google Cloud Storage-URI einer Audiodatei an die Speech API übergeben
  • Speech API-Anfrage erstellen und die API mit "curl" aufrufen
  • Die Speech API mit Audiodateien in verschiedenen Sprachen aufrufen

Nächste Schritte