La reconnaissance vocale des fichiers vocaux est effectuée à l'aide des services Google.
· Python3.5 64bits par Anaconda ・ Win10 -Le fichier audio est WAV. J'ai juste besoin de le convertir avec sox séparément.
SpeechRecognition https://github.com/Uberi/speech_recognition C'est un package qui facilite l'utilisation de divers services cloud de reconnaissance vocale. Haute fonctionnalité. pyaudio Il semble nécessaire que la reconnaissance vocale fonctionne. google-api-python-client Ce package est utilisé lors du détournement de l'exemple de source de reconnaissance vocale, donc installez-le. pydub Utilisé pour séparer les fichiers audio dans des sections silencieuses. pip install pydub est. FFMPEG Je ne sais pas pourquoi je dois l'installer, http://chachay.hatenablog.com/entry/2016/10/03/215841 Je fais comme écrit.
approximativement, http://qiita.com/lethe2211/items/7c9b1b82c7eda40dafa9 Je pense que c'est vrai. Il est gênant qu'il ne sorte que si vous rejoignez ML.
Si le fichier audio est trop long, je ne sais pas quelle en est la cause (au 11 janvier 2017), mais j'obtiens une erreur. Dans mon environnement, le résultat d'un fichier audio d'environ 10 secondes est renvoyé, mais lorsqu'il atteint 20 secondes, une erreur se produit.
Lors de l'utilisation de l'exemple de reconnaissance vocale, Essayez d'ajuster le temps avec une durée comme ʻaudio = r.record (source, durée = 10`) et vérifiez le résultat. S'il est long, vous obtiendrez une erreur, non?
fondamentalement, http://chachay.hatenablog.com/entry/2016/10/03/215841 C'est comme suit.
Lorsque vous essayez de reconnaître la voix avec l'API Google Speech v2, si le fichier est volumineux, une erreur se produit (bien que la cause soit inconnue), il s'agit donc d'une tentative de diviser le fichier en parties silencieuses pour la reconnaissance.
J'utilise différentes bibliothèques et j'effectue la conversion de données entre elles via des fichiers wav, donc je pense qu'il y a beaucoup de gaspillage, mais je posterai la source.
Importez, je pense qu'il y a quelque chose d'inutile, alors veuillez l'omettre le cas échéant.
import speech_recognition as sr
from os import path
from googleapiclient import discovery
import httplib2
import base64, json
import urllib
import os
from pydub import AudioSegment
from pydub.silence import split_on_silence
if __name__ == '__main__':
r = sr.Recognizer()
audio_data = []
sound = AudioSegment.from_file('./filename.wav', format='wav')
chunks = split_on_silence(sound, min_silence_len=1500, silence_thresh=-30, keep_silence=500)
for chunk in chunks:
chunk.export('./temp.wav', format='wav')
AUDIO_FILE = path.join(path.dirname(path.realpath(__file__)), "temp.wav")
with sr.AudioFile(AUDIO_FILE) as source:
audio = r.record(source)
audio_data.append(audio)
for audio in audio_data:
try:
print("Google Speech Recognition thinks you said " + r.recognize_google(audio,key='your API key', language='ja'))
except sr.UnknownValueError:
print("Google Speech Recognition could not understand audio")
except sr.RequestError as e:
print("Could not request results from Google Speech Recognition service; {0}".format(e))
http://chachay.hatenablog.com/entry/2016/10/03/215841 https://pypi.python.org/pypi/SpeechRecognition/
Recommended Posts