[PYTHON] Jusqu'à ce que vous puissiez utiliser l'API Google Speech

Récemment, j'ai enquêté parce que je voulais créer un programme qui utilise la reconnaissance vocale, et quand j'ai entendu des rumeurs de diverses personnes selon lesquelles il était "précis", j'ai eu l'idée d'utiliser l'API Google Speech. Quand j'ai essayé de le déplacer, il y avait des endroits auxquels j'étais accro, alors prenez-en note.

Que puis-je faire?

L'API Google Speech est une API permettant d'utiliser la technologie de reconnaissance vocale de Google.

Cette API prend un fichier vocal en entrée et génère une phrase naturelle plausible correspondant à la voix avec certitude. Il semble que la version 2 soit en cours d'exécution.

Inscription utilisateur API

L'inscription sur la Google Developer Console est requise pour utiliser l'API Google Speech.

Google Developer Console

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

Dans ce domaine, l'interface semble être très différente selon que vous avez déjà utilisé ou non l'API Google. J'espère que vous ne pouvez prendre votre procédure qu'à titre de référence.

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

Cliquez sur "Utiliser l'API Google".

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

Créez un projet en saisissant un nom de projet et un ID de projet appropriés. Cliquez sur le nom du projet créé pour accéder au tableau de bord.

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

Je pensais que l'API Speech était incluse dans l'onglet "API Google" et je l'ai recherchée, mais je ne l'ai pas trouvée (j'en étais folle ici).

Rejoignez le groupe Chrome-dev

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

Selon cet article, vous devez rejoindre le groupe Chrome-dev pour activer l'API Speech du Japon.

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

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

Cliquez sur «Rejoindre le groupe pour publier» pour le rejoindre (notez que vous recevrez une notification de Melis on Mead?).

Activation d'API et acquisition de clés

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

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

Si vous pouvez rejoindre le groupe, vous pouvez rechercher l'API Google Speech, donc cliquez sur "Activer l'API" pour l'activer (puisque la deuxième image a déjà été activée, le bouton est "API" Est désactivé).

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

Depuis l'onglet "Identifiants"

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

Sélectionnez "New Credentials" -> "API Key" -> "Server Key".

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

Entrez un nom de clé de serveur approprié et cliquez sur "Créer" pour obtenir la clé (chaîne de caractères) de l'API, alors notez cette valeur.

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

Vous êtes maintenant prêt à utiliser l'API.

Essayez d'utiliser l'API

L'environnement est OS: Mac OS X 10.11 Mike: Microphone intégré Macbook Air Mid 2013

Suivez l'exemple d'utilisation pour le moment

Ici, essayez d'utiliser l'API une fois selon l'exemple d'utilisation dans un certain référentiel Github (c'est un peu effrayant car il dit "Reverse Engineering"). https://github.com/gillesdemey/google-speech-v2 Cette page contient également ce qui semble être des spécifications API, vous pouvez donc vous y référer.

$ 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}

Essayez de charger la source sonore que vous avez enregistrée vous-même

Pour les fichiers WAV, comme indiqué sur la page ci-dessus

#Dans un environnement où l'homebrew peut être utilisé
$ 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
#↑ Bien qu'il existe une telle description, le fichier réellement créé a une fréquence d'échantillonnage de 16,000Hz, 1 canal ...

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
#Enregistrement avec le microphone intégré. Ctrl+Terminer par C

Par

SoX http://sox.sourceforge.net/ Il semble que vous puissiez enregistrer en utilisant. (Bien sûr, même si vous ne l'utilisez pas, vous pouvez préparer une source sonore PCM 16 bits.)

Ici, j'ai essayé d'enregistrer la voix de "Hello" pour essayer.

Type valeur
nom de fichier test.wav
format WAVE
Nombre de bits 16
Méthode de modulation PCM
Nombre de canaux 2

Pour ce 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":"Bonjour","confidence":0.95324326},{"transcript":"Bonjour"},{"transcript":"Bonjour"},{"transcript":"Bonjour"}],"final":true}],"result_index":0}

Ce faisant, la chaîne de caractères correspondant à la voix correctement enregistrée a été obtenue.

Il est nécessaire de décrire le type MIME et la fréquence d'échantillonnage de la source sonore dans l'en-tête de la demande. Notez également que le paramètre lang est subtilement changé de «en-js'to'ja-JP» pour prendre en charge le japonais.

Essayez d'écrire un script

De là, c'est un bonus complet. S'il prend en charge HTTP, vous pouvez également envoyer une requête à partir d'un script.

Pepper Hands-on-Basic B Voice Recognition - Obtenez Pepper pour connaître votre nom à l'aide de l'API Google Speech [Tech-Circle # 7] ↑ J'en ai parlé.

Préparez les données vocales que vous souhaitez reconnaître au format WAV de la même manière que précédemment (test.wav). On suppose que ce fichier est placé dans le même répertoire que le script suivant.

Voici le code Python3. Par exemple, 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()

#Comme la sortie est un JSON multiligne, supprimez ceux qui semblent inutiles
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': 'Bonjour'}, {'transcript': 'Bonjour'}, {'transcript': 'Bonjour'}, {'transcript': 'Bonjour'}]}]}

Autres notes

Impressions que j'ai essayées

Je pense que la précision est toujours élevée. Même si vous dites une longue phrase ou quelque chose qui est un peu difficile à entendre, cela le reprendra. L'inconvénient est que l'exécution prend beaucoup de temps et que la précision varie en fonction du fichier.Il semble donc un peu difficile à utiliser dans une application qui nécessite des performances en temps réel et un certain degré de précision. Je pense que le gars qui utilise le smartphone est plus rapide et plus précis. </ S> Même après avoir déduit cela, j'ai pensé que c'était purement incroyable qu'il puisse être utilisé gratuitement.

En parlant de cupidité, l'article de référence que j'ai essayé il y a environ un an et l'interface d'enregistrement de l'API sont complètement différentes, je ne peux pas l'utiliser à moins que j'entre dans Melis en premier lieu, je ne trouve pas les spécifications officielles, et je pense que diverses choses sont terribles, alors veuillez l'améliorer. n'est-ce pas…

Autres matériaux de référence

On the use of Google’s Speech Recognition API Version 2 | Similar Sounds Comment utiliser l'API Google Speech ver.2 Utilisation de l'API Google Speech de Ruby-Qiita Comment obtenir la clé API pour Google Voice Recognition (Speech API) | Eyepod touch

Recommended Posts

Jusqu'à ce que vous puissiez utiliser l'API Google Speech
Jusqu'à ce que vous utilisiez l'API Kaggle avec Colab
Jusqu'à ce que vous utilisiez Google Colaboratory
Jusqu'à ce que vous puissiez lire le journal des erreurs
Jusqu'à ce que vous puissiez utiliser opencv avec python
Comment utiliser l'API Google Cloud Translation
Pouvez-vous supprimer ce fichier?
Essayez et apprenez iptables, jusqu'à ce que vous puissiez naviguer sur le Web
[Python] Accédez à l'API Google Translation
Utilisez l'API Flickr de Python
Utiliser l'API Google Analytics de Python
Vous pouvez également utiliser virtualenv à partir du plug-in Python d'IntelliJ IDEA
API Google Cloud Speech et Amazon Transcribe
Reconnaissance vocale en streaming avec l'API Google Cloud Speech
Utilisez le désassembleur métabolique sur Google Colaboratory
Notez jusqu'à ce que vous utilisiez emacs avec WSL
Essayez de gratter autant que vous le pouvez le programme d'exemple de démarrage rapide de l'API Google Spreadsheet (v4)
Vous pouvez utiliser Dash sur Jupyter jupyter_dash
Procédure de transcription vocale à l'aide de l'API Google Cloud Speech
Utiliser l'API Google Cloud Vision de Python
Obtenez des vacances avec l'API Google Agenda
Jusqu'à ce que vous puissiez utiliser RTX 2060 sur Windows 10 (installation du pilote NVIDIA, du kit d'outils NVIDIA CUDA, PyTorch)
Jusqu'à ce que vous installiez Caffe et exécutiez l'exemple
Obtenons les informations Wiki en utilisant l'API MediaWiki
J'ai essayé d'utiliser l'API Google Cloud Vision
Jusqu'à ce que l'exemple de changefinder s'exécute sur python
Comment utiliser l'API du guide des programmes NHK
Utilisez l'API Kaggle dans un conteneur Docker
Jusqu'à l'utilisation de PhantomJS avec Python sur Heroku
[GoogleCloudPlatform] Utiliser l'API Google Cloud avec la bibliothèque cliente d'API
J'ai essayé de gratter YouTube, mais je peux utiliser l'API, alors ne le faites pas.
Jusqu'à ce que vous exécutiez l'application Flask sur Google App Engine pour le moment
Utiliser l'API JIRA
Jusqu'à ce que vous puissiez installer Blender et l'exécuter avec python pour le moment
Étude de la relation entre le prétraitement de la voix et la précision de la transcription dans l'API Google Cloud Speech
Utilisons l'API de la fenêtre générale des statistiques gouvernementales (e-Stat)
Jusqu'à ce que vous installiez Gauge et exécutiez l'exemple officiel
Utilisons la version Python du module API Confluence.
Créez une carte thermique de tweet avec l'API Google Maps
Procédure de transcription vocale à l'aide de Python et de l'API Google Cloud Speech
La lecture du compteur analogique peut être effectuée avec l'exemple MNIST.
Reconnaissance vocale des fichiers par l'API Google Speech v2 à l'aide de Python
[Python] Utilisez l'API Face de Microsoft Cognitive Services
Écoutez de la musique en accédant à l'API non officielle de Google Play Music
Le langage de programmation que vous souhaitez pouvoir utiliser
Jusqu'à ce que vous puissiez faire une reconnaissance d'image simple avec Jupyter
Je ne peux pas utiliser la commande darknet dans Google Colaboratory!