Spracherkennung 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 nehmen wir eine Audiodatei auf und senden sie 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, wie Chrome oder Firefox

Wie werden Sie diese Anleitung verwenden?

Nur Lesen Gelesen und die Übungen abschließen

Wie würdest du deine Erfahrung mit der Google Cloud Platform bewerten?

Fortgeschritten Fortgeschritten Profi

Umgebung im eigenen Tempo einrichten

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

Screenshot von 2016-02-10 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. In diesem Codelab wird sie später als PROJECT_ID bezeichnet.

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

Das Durchlaufen dieses Codelabs sollte nicht mehr als ein paar Dollar kosten. Es kann aber auch sein, dass Sie mehr Ressourcen brauchen oder sie weiterlaufen möchten (siehe Abschnitt „Bereinigen“ am Ende dieses Dokuments).

Neuen Google Cloud Platform-Nutzern steht ein kostenloser Testzeitraum im Wert von 300$ zur Verfügung.

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

Wählen Sie im Drop-down-Menü das Dashboard APIs und Dienste aus.

Klicken Sie auf APIs und Dienste aktivieren.

Suchen Sie dann im Suchfeld nach „Sprache“. Klicken Sie auf Google Cloud Speech API:

Klicken Sie auf Aktivieren, um die Cloud Speech API zu aktivieren:

Warten Sie einige Sekunden, bis sie aktiviert wird. Folgendes wird angezeigt, sobald es aktiviert ist:

Google Cloud Shell ist eine Befehlszeilenumgebung, die in der Cloud ausgeführt wird. Diese Debian-basierte virtuelle Maschine ist mit allen Entwicklertools ausgestattet, die Sie benötigen (gcloud, bq, git und andere). Sie enthält ein Basisverzeichnis mit 5 GB Speicherplatz. Wir verwenden Cloud Shell, um unsere Anfrage an die Speech API zu erstellen.

Wenn Sie Cloud Shell verwenden möchten, klicken Sie rechts oben in der Kopfzeile auf das Symbol „Google Cloud Shell aktivieren“ Screenshot 2015-06-08 um 17.30.32 Uhr.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 Aufforderung "user@project:~$" angezeigt wird

Da wir curl verwenden, um eine Anfrage an die Speech API zu senden, müssen Sie einen API-Schlüssel generieren, mit dem unsere Anfrage-URL übergeben wird. Rufen Sie in Ihrem Projekt-Dashboard den Abschnitt APIs & Dienste; Anmeldedaten auf, um einen API-Schlüssel zu erstellen:

Klicken Sie dann auf Create credentials (Anmeldedaten erstellen):

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

Kopieren Sie dann den gerade generierten Schlüssel und wählen Sie Schließen aus.

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. Dies ist in Cloud Shell möglich. Ersetzen Sie dabei <your_api_key> durch den soeben kopierten Schlüssel.

export API_KEY=<YOUR_API_KEY>

Sie können Ihre Anfrage an die Speech API in einer request.json-Datei erstellen. Zum Erstellen und Bearbeiten dieser Datei können Sie einen Ihrer bevorzugten Befehlszeileneditoren (Nano, Vim, Emacs) oder den integrierten Webeditor in Cloud Shell verwenden:

Erstellen Sie die Datei im Stammverzeichnis, damit Sie sie leicht wiederfinden und Folgendes in die Datei request.json einfügen können :

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 teilen wir der Speech API mit, wie die Anfrage verarbeitet wird. Über den Parameter encoding wird der API mitgeteilt, welche Art von Audiocodierung Sie für die Audiodatei verwenden, die Sie an die API senden. FLAC ist der Codierungstyp für RAW-Dateien .Weitere Informationen finden Sie in der Dokumentation zum Codierungstyp. Es gibt zwar weitere Parameter, die du deinem config-Objekt hinzufügen kannst, aber encoding ist der einzige erforderliche Parameter. languageCode wird standardmäßig auf Englisch festgelegt, wenn Sie die Anfrage nicht eingeben.

Im audio-Objekt kannst du die API entweder den URI unserer Audiodatei in Cloud Storage oder das base64-codierte Audio als String übergeben. Hier wurden Cloud Storage-URLs verwendet. Im nächsten Schritt rufen Sie die Speech API auf.

Sie können den Text der Anfrage und die zuvor gespeicherte Umgebungsvariable API-Schlüssel jetzt mit dem folgenden curl-Befehl an die Speech API übergeben (alle in einer 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 gibt die Speech API-Texttranskription Ihrer Audiodatei zurück und der Wert confidence gibt an, wie sicher die API ist, dass sie Ihre Audiodaten transkribiert hat.

Sie werden feststellen, dass wir in unserer Anfrage oben 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 gesendet. Sie können aber auch die longrunningrecognize-Methode verwenden, um Sprache-zu-Text-Transkription anzubieten, während der Nutzer noch spricht.

Arbeiten Sie mehrsprachig? Die Speech API unterstützt Sprache-zu-Text-Transkriptionen in über 100 Sprachen. Du kannst den Parameter languageCode in request.json ändern. Hier finden Sie eine Liste der unterstützten Sprachen.

Versuchen Sie es mit einer französischen Audiodatei. Hier können Sie sie anhören. Ändern Sie den Befehl „request.json“ so:

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 Kindergeschichte. Falls Sie Audiodateien in einer anderen Sprache haben, können Sie sie zu Cloud Storage hinzufügen und den Parameter languageCode in Ihrer Anfrage ändern.

Sie haben gelernt, wie Sie Sprache-zu-Text-Transkriptionen mit der Speech API durchführen. In diesem Beispiel haben Sie die Google Cloud Storage-URI Ihrer 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

Weitere Informationen