Я пытаюсь использовать speech_recognition 3.1.2 с использованием Python 3.4, но у меня все время возникают проблемы.Python Speech_Recognition Плохие результаты
Первоначально при попытке использовать только пример WAV распознаватель я получаю TypeError: «ул» не поддерживает интерфейс буфера, так что я прочешу источник и сделал следующие изменения:
def read(self, size = -1):
buffer = self.wav_reader.readframes(self.wav_reader.getnframes() if size == -1 else size)
if type(buffer) is str:
buffer = buffer.encode(encoding="utf-8", errors="strict")
print(buffer)
if self.wav_reader.getnchannels() != 1: # stereo audio
try:
buffer = audioop.tomono(buffer, self.wav_reader.getsampwidth(), 1, 1) # convert stereo audio data to mono
except Exception as e:
print(e)
return buffer
от:
def read(self, size = -1):
buffer = self.wav_reader.readframes(self.wav_reader.getnframes() if size == -1 else size)
if self.wav_reader.getnchannels() != 1: # stereo audio
buffer = audioop.tomono(buffer, self.wav_reader.getsampwidth(), 1, 1) # convert stereo audio data to mono
return buffer
Хотя это не ошибка, качество транскрипции ужасно. Я могу с высокой точностью запустить python -m speech_recognition, поэтому я не уверен, что происходит. Я поднял энергетический порог до 4000, чтобы убедиться, что это не проблема окружающего шума. Я даже использовал 2 различных службы распознавания (IBM и Google Recognition). Кроме того, по какой-то причине последние 2 буферы пустые строки, которые я тогда преобразовать байт объекты
b''
b''
Любой совет будет удивительным!
там могут быть массивные различия между питона 2 и 3 с точки зрения того, как обрабатываются строки, вы можете посмотреть на: http://python3porting.com/ problems.html. Поэтому не уверен, что изменение супер тривиально. – toine
@toine Это то, что я изначально думал, но похоже, что они все пишут в Python 3, который был странным, учитывая ошибки, которые у меня есть. –