[PYTHON] Spracherkennung von WAV-Dateien mit der Google Cloud Speech API Beta

*** Informationen ab August 2016 ***

Eine Testnotiz zur Spracherkennung von WAV-Dateien unter Google Cloud Speech API Beta.

CLOUD SPEECH API

Wie Sie in Google Cloud Speech API Beta sehen können, handelt es sich um eine API zur Spracherkennung.

Es scheint eine handliche Hochleistungs-ASR zu sein.

Dokument

Offizielles Dokument Python-Beispielcode

Verwendung über die CLI (Google Cloud SDK + Curl)

Laut Schnellstart

  1. Erstellen Sie ein Google Cloud Platform-Konto
  2. Erstellen Sie ein Projekt und aktivieren Sie die Sprach-API
  3. Generieren Sie eine Dienstkonto-Schlüsseldatei und laden Sie sie herunter
  4. Installieren Sie das Befehlszeilentool Google Cloud SDK und verwenden Sie die oben genannte Schlüsseldatei für das Dienstkonto, um ein Authentifizierungstoken abzurufen.
  5. Werfen Sie mithilfe des erhaltenen Authentifizierungstokens Sprachdaten wie eine zuvor vorbereitete WAV-Datei an die API, um das Erkennungsergebnis zu erhalten.

Generieren Sie eine Dienstkonto-Schlüsseldatei (json), die den privaten Schlüssel enthält, und verwenden Sie diese, um jedes Mal ein Authentifizierungstoken abzurufen.

Von der Projekterstellung bis zur Erfassung von Schlüsseldateien für Dienstkonten

Wie im Abschnitt Einrichten Ihres Projekts unter Schnellstart beschrieben.

Beim Erstellen eines "neuen Dienstkontos" mit der Erstellung von 6 Dienstkonten gibt es jedoch ein Element namens "Rolle", das nicht in [Dokument] enthalten ist (https://cloud.google.com/speech/docs/common/auth#set_up_a_service_account). Ich bin verwirrt.

Nach der Registrierung des Dienstkontos können Sie die JSON-Datei herunterladen und an einem beliebigen Ort speichern. Stellen Sie es nicht der Öffentlichkeit zur Verfügung, da es einen privaten Schlüssel enthält.

Holen Sie sich ein Authentifizierungstoken mit dem Google Cloud SDK

  1. Installieren Sie Google Cloud SDK, damit Sie den Befehl `` `gcloud``` drücken können.
  2. Beziehen Sie ein Authentifizierungstoken mithilfe der oben erhaltenen Schlüsseldatei für das Dienstkonto
$ gcloud auth print-access-token

Denken Sie an das Authentifizierungstoken, das zurückgegeben wurde

API-Aufruf mit Curl

Erstellen Sie `` `sync-request.json``` gemäß Make a Speech API Request in QuickStart und

sync-request.json


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

In dem Verzeichnis, in dem sich sync-request.json befindet

$ curl -s -k -H "Content-Type: application/json" \
    -H "Authorization:Authentifizierungstoken auf Inhaber erhalten" \
    https://speech.googleapis.com/v1beta1/speech:syncrecognize \
    -d @sync-request.json

Hoffentlich gibt json das Erkennungsergebnis zurück.

So stellen Sie Sprachdaten und Erkennungsinhalte ein

Die Speicherort- und Formateinstellungen der Eingabedatei werden im Anforderungshauptteil mit json angegeben (`sync-request.json``` im obigen Beispiel). Das Beispiel `sync-request.json``` verwendet eine Beispieldatei flac, die sich in Google Cloud Storage befindet, aber zur Hand ist Natürlich ist es auch möglich, die Audiodaten von zu senden, und es unterstützt auch andere Codierungen als flac.

Senden Sie die Audiodatei, die Sie haben

Rest API-Referenz, [syncRecognize](https://cloud.google.com/speech/reference/rest/v1beta1/speech/ (Syncrecognize), geben Sie die Tonquellen- und Erkennungseinstellungen mit `config``` des Anforderungshauptteils an und geben Sie die Audiodaten mit` audio``` an.

Die Spezifikation von Audio ist[RecognitionAudio](https://cloud.google.com/speech/reference/rest/v1beta1/RecognitionAudio)Wie Sie sehen, können Sie Ihre Audiodatei, wenn Sie sie mit uri oder Inhalt senden möchten, mit Base64 in eine Zeichenfolge codieren und als Inhalt senden.



 Das Sample verfügt über eine FLAC-Codierungsmethode und eine Abtastrate von 16000 (16 kHz). Passen Sie es daher an die zu sendenden Audiodaten an.

## Verwenden Sie die Sprach-API mit Python

 Wie in [Tutorial](https://cloud.google.com/speech/docs/rest-tutorial) gezeigt, können Sie die Sprach-API von Python anstelle des Befehls `` `glcoud``` + curl (Node.js) aufrufen. Es gibt auch eine Probe)
 Für dieses Verfahren ist kein Google Cloud SDK erforderlich, sondern die [Google API-Clientbibliothek](https://developers.google.com/api-client-library/python/start/installation). Ich dachte, ich brauche keine Bibliothek, weil ich Curl verwenden könnte, aber [API Discovery Service](https://developers.google.com/discovery/) und die Google API Client Client Library werden verwendet, um Authentifizierungstoken abzurufen. Wenn Sie diese nicht benötigen, können Sie sie ohne Bibliothek verwenden, indem Sie den oben genannten Locken folgen.

### Dienstkonto-Schlüsseldatei abrufen

 Entspricht Schritt 1-3 der obigen CLI.

### Standardeinstellungen für Anwendungsanmeldeinformationen

 Die Vorgehensweise ist in [Beispielcode](https://github.com/GoogleCloudPlatform/python-docs-samples/blob/master/speech/api/speech_rest.py) dargestellt, dies ist jedoch der Dienstkontoschlüssel zum Abrufen des Authentifizierungstokens. Die Datei muss im Voraus auf die Umgebungsvariable `` `GOOGLE_APPLICATION_CREDENTIALS``` gesetzt werden:

 `` `$ export GOOGLE_APPLICATION_CREDENTIALS = Dateipfad des Dienstkontos`` ``

 Wenn die Methode GoogleCredentials.get_application_default (). Create_scoped () als [Application Default Credential](https://cloud.google.com/speech/docs/common/auth#authenticating_with_application_default_credentials) bezeichnet wird und das Authentifizierungstoken abgerufen wird. Das Ding.

### API-Aufruf

 Gemäß [Beispielcode](https://github.com/GoogleCloudPlatform/python-docs-samples/blob/master/speech/api/speech_rest.py):


#### **`$ python speech_rest.py Audiodatei.wav`**

Das Erkennungsergebnis wird mit angezeigt.

Hinweis

Dieses Beispiel ist ein Prozess für eine Eingabedatei. Wenn Sie also mehrere Dateien erkennen möchten, ist es besser, API Discover und Token-Erfassung nicht zu wiederholen.

Da das Authentifizierungstoken mit einer angemessenen Häufigkeit aktualisiert zu werden scheint, ist auch eine sorgfältige Token-erneute Erfassung erforderlich. Was kehrt der 401 während des Tests plötzlich zurück (Erfahrung 15-30 Minuten?)? Als ich darüber nachdachte, wurde das Token aktualisiert.

Benutzerfreundlichkeit

Es tut mir leid, dass es nicht quantitativ ist:

Recommended Posts

Spracherkennung von WAV-Dateien mit der Google Cloud Speech API Beta
Streaming-Spracherkennung mit der Google Cloud Speech API
Transkribieren Sie WAV-Dateien mit der Cloud Speech API
Automatische Sprachtranskription mit Google Cloud Speech API
Streamen Sie die Spracherkennung mithilfe der gRPC-API von Google Cloud Speech mit Python3 auf dem Mac!
Google Cloud Speech API im Vergleich zu Amazon Transcribe
Vergleich der Genauigkeit der Cloud-Spracherkennung von 4 großen Unternehmen
Nutzung von Google Cloud Storage (GCS) durch "GAE / Py"
Sprachtranskriptionsverfahren mit Python und Google Cloud Speech API
Sprachdateierkennung durch Google Speech API v2 mit Python
Untersuchung der Beziehung zwischen Sprachvorverarbeitung und Transkriptionsgenauigkeit in der Google Cloud Speech API
Laden Sie Dateien mit Django-Speicher in Google Cloud Storages hoch und löschen Sie sie
Ich habe versucht, die Docomo-Spracherkennungs-API und die Google Speech-API in Java zu verwenden
Einführung der Google Map API mit Schienen
Google Cloud Vision API-Beispiel für Python
Englische Spracherkennung mit Python [Rede zu Text]
Erklären von JavaScript der Google Maps Geocoding API
Versuchen Sie, Python mit Google Cloud-Funktionen zu verwenden
Gesichtserkennung von Anime-Charakteren mit Keras
Verwenden Sie die Google Cloud Vision-API von Python
[GCP] Betreiben Sie Google Cloud Storage mit Python
Transkription von Bildern mit der Vision API von GCP
Holen Sie sich Urlaub mit der Google Kalender-API
Serverlose Gesichtserkennungs-API mit Python
Erstellen Sie eine API für das Switchbot-Thermo-Hygrometer mit Node-RED
Führen Sie die API des Cloud Pak für Datenanalyseprojekts Job mit Umgebungsvariablen aus