[PYTHON] Bis Sie die Google Speech API verwenden können

Kürzlich habe ich nachgeforscht, weil ich ein Programm erstellen wollte, das Spracherkennung verwendet, und als ich Gerüchte von verschiedenen Leuten hörte, dass es "genau" sei, kam mir die Idee, die Google Speech API zu verwenden. Als ich versuchte, es zu bewegen, gab es einige Orte, an denen ich süchtig war, also notieren Sie es sich.

Was kann ich tun?

Die Google Speech API ist eine API zur Verwendung der Spracherkennungstechnologie von Google.

Diese API verwendet eine Sprachdatei als Eingabe und gibt mit Sicherheit einen plausiblen natürlichen Satz aus, der der Stimme entspricht. Es scheint, dass Version 2 derzeit ausgeführt wird.

API-Benutzerregistrierung

Für die Verwendung der Google Speech API ist eine Registrierung in der Google Developer Console erforderlich.

Google Developer Console

Google Developer Console https://console.developers.google.com/project

In diesem Bereich scheint sich die Benutzeroberfläche stark zu unterscheiden, je nachdem, ob Sie zuvor die Google-API verwendet haben oder nicht. Ich hoffe, Sie können Ihr Verfahren nur als Referenz verwenden.

スクリーンショット 2016-02-09 21.48.07.png

Klicken Sie auf "Google API verwenden".

スクリーンショット 2016-02-09 21.49.28.png

Erstellen Sie ein Projekt, indem Sie einen geeigneten Projektnamen und eine Projekt-ID eingeben. Klicken Sie auf den erstellten Projektnamen, um zum Dashboard zu wechseln.

スクリーンショット 2016-02-09 21.51.00.png

Ich dachte, dass die Sprach-API in der Registerkarte "Google API" enthalten ist und suchte danach, konnte sie aber nicht finden (ich war hier verrückt danach).

Treten Sie der Chrome-Dev-Gruppe bei

http://eyepodtouch.net/?p=81

Gemäß diesem Artikel müssen Sie der Chrome-Dev-Gruppe beitreten, um die Sprach-API aus Japan zu aktivieren.

https://groups.google.com/a/chromium.org/forum/?fromgroups#!forum/chromium-dev

スクリーンショット 2016-02-09 21.52.14.png

Klicken Sie auf "Der zu postenden Gruppe beitreten", um Mitglied zu werden (beachten Sie, dass Sie eine Benachrichtigung über Melis on Mead erhalten?).

API-Aktivierung und Schlüsselerfassung

スクリーンショット 2016-02-09 21.54.13.png

スクリーンショット 2016-02-09 21.54.26.png

Wenn Sie der Gruppe beitreten können, können Sie die Google Speech-API durchsuchen. Klicken Sie daher auf "API aktivieren", um sie zu aktivieren (da das zweite Bild bereits aktiviert wurde, lautet die Schaltfläche "API". Ist behindert).

スクリーンショット 2016-02-09 21.56.01.png

Auf der Registerkarte "Anmeldeinformationen"

スクリーンショット 2016-02-09 21.58.30.png

Wählen Sie "Neue Anmeldeinformationen" -> "API-Schlüssel" -> "Serverschlüssel".

スクリーンショット 2016-02-09 21.57.45.png

Geben Sie einen geeigneten Serverschlüsselnamen ein und klicken Sie auf "Erstellen", um den Schlüssel (die Zeichenfolge) für die API abzurufen. Notieren Sie sich diesen Wert.

スクリーンショット 2016-02-09 22.09.11.png

Jetzt können Sie die API verwenden.

Versuchen Sie es mit der API

Die Umwelt ist OS: Mac OS X 10.11 Mike: Eingebautes Mikrofon für Macbook Air Mid 2013

Folgen Sie vorerst dem Anwendungsbeispiel

Versuchen Sie hier einmal, die API gemäß dem Verwendungsbeispiel in einem bestimmten Github-Repository zu verwenden (es ist ein wenig beängstigend, weil dort "Reverse Engineering" steht). https://github.com/gillesdemey/google-speech-v2 Diese Seite enthält auch API-Spezifikationen, auf die Sie verweisen können.

$ cd
$ mkdir src/
$ cd src/
$ git clone https://github.com/gillesdemey/google-speech-v2.git
$ cd google-speech-v2/

$ curl -X POST \
--data-binary @'audio/hello (16bit PCM).wav' \
--header 'Content-Type: audio/l16; rate=16000;' \
'https://www.google.com/speech-api/v2/recognize?output=json&lang=en-us&key=<your api key>'
# {"result":[]}
# {"result":[{"alternative":[{"transcript":"hello Google","confidence":0.98762906},{"transcript":"hello Google Now"},{"transcript":"hello Google I"}],"final":true}],"result_index":0}

Versuchen Sie, die von Ihnen selbst aufgenommene Tonquelle zu laden

Für WAV-Dateien, wie auf der obigen Seite gezeigt

#In einer Umgebung, in der Homebrew verwendet werden kann
$ brew install sox
$ rec --encoding signed-integer --bits 16 --channels 1 --rate 16000 test.wav
rec WARN formats: can't set sample rate 16000; using 44100
rec WARN formats: can't set 1 channels; using 2
#↑ Obwohl es eine solche Beschreibung gibt, hat die tatsächlich erstellte Datei eine Abtastfrequenz von 16,000Hz, 1 Kanal ...

Input File     : 'default' (coreaudio)
Channels       : 2
Sample Rate    : 44100
Precision      : 32-bit
Sample Encoding: 32-bit Signed Integer PCM

In:0.00% 00:00:11.15 [00:00:00.00] Out:177k  [      |      ]        Clip:0
#Aufnahme mit dem eingebauten Mikrofon. Strg+Beenden Sie mit C.

Durch

SoX http://sox.sourceforge.net/ Es scheint, dass Sie mit aufnehmen können. (Selbst wenn Sie dies nicht verwenden, ist es natürlich in Ordnung, wenn Sie eine 16-Bit-PCM-Soundquelle vorbereiten können.)

Hier habe ich versucht, die Stimme von "Hallo" aufzunehmen, um es zu versuchen.

Art Wert
Dateiname test.wav
Format WAVE
Anzahl der Bits 16
Modulationsmethode PCM
Anzahl der Kanäle 2

Für diesen test.wav

$ curl -X POST \
--data-binary @'test.wav' \
--header 'Content-Type: audio/l16; rate=16000;' \
'https://www.google.com/speech-api/v2/recognize?output=json&lang=ja-JP&key=<your api key>'
{"result":[]}
{"result":[{"alternative":[{"transcript":"Hallo","confidence":0.95324326},{"transcript":"Hallo"},{"transcript":"Hallo"},{"transcript":"Hallo"}],"final":true}],"result_index":0}

Auf diese Weise wurde die Zeichenkette erhalten, die der richtig aufgezeichneten Stimme entspricht.

Der MIME-Typ und die Abtastfrequenz der Schallquelle müssen im Anforderungsheader beschrieben werden. Beachten Sie auch, dass der Parameter lang geringfügig von 'en-js'to'ja-JP' geändert wird, um Japanisch zu unterstützen.

Versuchen Sie, ein Skript zu schreiben

Ab hier ist es ein kompletter Bonus. Wenn es HTTP unterstützt, können Sie eine Anfrage auch über ein Skript senden.

Pepper Hands-on-Basic B Spracherkennung - Bringen Sie Pepper dazu, Ihren Namen mithilfe der Google Speech API [Tech-Circle # 7] zu kennen ↑ Ich habe darauf hingewiesen.

Bereiten Sie die Audiodaten, die Sie im WAV-Format erkennen möchten, auf die gleiche Weise wie zuvor vor (test.wav). Es wird davon ausgegangen, dass sich diese Datei im selben Verzeichnis wie das folgende Skript befindet.

Unten ist der Python3-Code. Zum Beispiel test.py.

test.py


import sys
import json
import urllib.parse
import urllib.request

apikey = 'your api key'
endpoint = 'http://www.google.com/speech-api/v2/recognize'
query_string = {'output': 'json', 'lang': 'ja-JP', 'key': apikey}

url = '{0}?{1}'.format(endpoint, urllib.parse.urlencode(query_string))

headers = {'Content-Type': 'audio/l16; rate=16000'}
voice_data = open(sys.argv[1], 'rb').read()

request = urllib.request.Request(url, data=voice_data, headers=headers)
response = urllib.request.urlopen(request).read()

#Da es sich bei der Ausgabe um einen mehrzeiligen JSON handelt, löschen Sie diejenigen, die als unnötig erscheinen
for line in response.decode('utf-8').split():
    if not line:
        continue
    else:
	    res = json.loads(line)
   	    if res['result'] == []:
            continue
        else:
            print(res)
$ python test.py test.wav
{'result_index': 0, 'result': [{'final': True, 'alternative': [{'confidence': 0.95324326, 'transcript': 'Hallo'}, {'transcript': 'Hallo'}, {'transcript': 'Hallo'}, {'transcript': 'Hallo'}]}]}

Weitere Hinweise

Eindrücke habe ich versucht

Ich denke die Genauigkeit ist immer noch hoch. Selbst wenn Sie einen langen Satz oder etwas sagen, das etwas schwer zu hören ist, wird es ihn aufgreifen. Der Nachteil ist, dass die Ausführung sehr lange dauert und die Genauigkeit je nach Datei variiert. Daher scheint die Verwendung in einer App, die Echtzeitleistung und ein gewisses Maß an Genauigkeit erfordert, etwas schwierig zu sein. Ich denke, der Typ, der auf dem Smartphone läuft, ist schneller und genauer. </ S> Selbst nachdem ich das abgezogen hatte, fand ich es einfach erstaunlich, dass es kostenlos verwendet werden konnte.

Apropos Gier, der Referenzartikel, den ich vor ungefähr einem Jahr ausprobiert habe, und die API-Registrierungsoberfläche sind völlig anders. Ich kann ihn nur verwenden, wenn ich Melis zuerst eingebe. Ich kann die offiziellen Spezifikationen nicht finden und finde ihn schrecklich. Bitte verbessern Sie ihn. nicht wahr…

Andere Referenzmaterialien

On the use of Google’s Speech Recognition API Version 2 | Similar Sounds Verwendung der Google Speech API Version 2 Verwenden der Google Speech API von Ruby-Qiita So erhalten Sie den API-Schlüssel für die Google-Spracherkennung (Sprach-API) | Eyepod touch

Recommended Posts

Bis Sie die Google Speech API verwenden können
Bis Sie die Kaggle-API mit Colab verwenden
Bis Sie Google Colaboratory verwenden
Bis Sie das Fehlerprotokoll lesen können
Bis Sie opencv mit Python verwenden können
Verwendung der Google Cloud Translation API
Können Sie diese Datei löschen?
Versuchen Sie, iptables zu lernen, bis Sie im Internet surfen können
[Python] Klicken Sie auf die Google Übersetzungs-API
Verwenden Sie die Flickr-API von Python
Verwenden Sie die Google Analytics-API von Python
Sie können virtualenv auch über das Python-Plug-In von IntelliJ IDEA verwenden
Google Cloud Speech API im Vergleich zu Amazon Transcribe
Streaming-Spracherkennung mit der Google Cloud Speech API
Verwenden Sie den Metabolic Disassembler in Google Colaboratory
Beachten Sie, bis Sie Emacs mit WSL verwenden
Versuchen Sie, so viel wie möglich mit dem Beispielprogramm des Schnellstarts der Google Spreadsheet API (v4) zu kratzen
Sie können Dash für Jupyter jupyter_dash verwenden
Sprachtranskriptionsverfahren mit der Google Cloud Speech API
Verwenden Sie die Google Cloud Vision-API von Python
Holen Sie sich Urlaub mit der Google Kalender-API
Bis Sie RTX 2060 unter Windows 10 verwenden können (NVIDIA DRIVER, NVIDIA CUDA Tool Kit, PyTorch installieren)
Bis Sie Caffe installieren und das Beispiel ausführen
Lassen Sie uns Wiki-Informationen mithilfe der MediaWiki-API abrufen
Ich habe versucht, die Google Cloud Vision-API zu verwenden
Bis das Changefinder-Sample auf Python läuft
Verwendung der NHK-Programmführer-API
Verwenden Sie die Kaggle-API in einem Docker-Container
Bis zur Verwendung von PhantomJS mit Python auf Heroku
[GoogleCloudPlatform] Verwenden Sie die Google Cloud-API mit der API-Clientbibliothek
Ich habe versucht, YouTube zu kratzen, aber ich kann die API verwenden, also tu es nicht.
Bis Sie die Flask-Anwendung vorerst in Google App Engine ausführen
Verwenden Sie die JIRA-API
Bis Sie Blender installieren und vorerst mit Python ausführen können
Untersuchung der Beziehung zwischen Sprachvorverarbeitung und Transkriptionsgenauigkeit in der Google Cloud Speech API
Verwenden wir die API des allgemeinen Fensters für Regierungsstatistiken (e-Stat).
Bis Sie Gauge installieren und das offizielle Beispiel ausführen
Verwenden wir die Python-Version des Confluence-API-Moduls.
Erstellen Sie eine Tweet-Heatmap mit der Google Maps-API
Sprachtranskriptionsverfahren mit Python und Google Cloud Speech API
Das Ablesen des analogen Messgeräts kann am Beispiel MNIST erfolgen.
Sprachdateierkennung durch Google Speech API v2 mit Python
[Python] Verwenden Sie die Face-API von Microsoft Cognitive Services
Spielen Sie Musik, indem Sie auf die inoffizielle API von Google Play Music klicken
Die Programmiersprache, die Sie verwenden möchten
Bis Sie mit Jupyter eine einfache Bilderkennung durchführen können
Ich kann den Darknet-Befehl in Google Colaboratory nicht verwenden!