Die Spracherkennung von Sprachdateien erfolgt über Google-Dienste.
· Python3.5 64-Bit von Anaconda ・ Win10 -Die Audiodatei ist WAV. Ich muss es nur separat mit Sox konvertieren.
SpeechRecognition https://github.com/Uberi/speech_recognition Es ist ein Paket, das die Verwendung verschiedener Cloud-Dienste zur Spracherkennung vereinfacht. Hohe Funktionalität. pyaudio Es scheint notwendig zu sein, dass die Spracherkennung funktioniert. google-api-python-client Dieses Paket wird verwendet, wenn die Beispielquelle für die Spracherkennung umgeleitet wird. Installieren Sie es daher. pydub Wird verwendet, um Audiodateien in stillen Abschnitten zu trennen. pip install pydub ist. FFMPEG Ich bin nicht sicher, warum ich es installieren muss, http://chachay.hatenablog.com/entry/2016/10/03/215841 Ich mache wie geschrieben.
CA, http://qiita.com/lethe2211/items/7c9b1b82c7eda40dafa9 Ich denke das ist richtig. Es ist problematisch, dass es nicht herauskommt, wenn Sie nicht ML beitreten.
Wenn die Audiodatei zu lang ist, weiß ich nicht, was die Ursache ist (Stand: 11. Januar 2017), aber ich erhalte eine Fehlermeldung. In meiner Umgebung wird das Ergebnis einer Audiodatei von ungefähr 10 Sekunden zurückgegeben, aber wenn es 20 Sekunden erreicht, tritt ein Fehler auf.
Wenn Sie das Spracherkennungsbeispiel verwenden, Versuchen Sie, die Zeit mit einer Dauer wie "audio = r.record (Quelle, Dauer = 10") anzupassen, und überprüfen Sie das Ergebnis. Wenn es lang ist, tritt ein Fehler auf, oder?
im Grunde genommen http://chachay.hatenablog.com/entry/2016/10/03/215841 Es ist wie folgt.
Wenn Sie versuchen, Sprache mit der Google Speech API v2 zu erkennen, tritt bei einer großen Datei ein Fehler auf (obwohl die Ursache unbekannt ist). Daher wird versucht, die Datei zur Erkennung in stille Teile zu unterteilen.
Ich benutze verschiedene Bibliotheken und führe Datenkonvertierungen zwischen ihnen über WAV-Dateien durch. Ich denke, es gibt viel Abfall, aber ich werde die Quelle veröffentlichen.
Importieren, ich denke, es gibt etwas Nutzloses, also lassen Sie es bitte entsprechend weg.
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/