使用pygsr进行语音识别时出错

时间:2014-02-12 14:25:09

标签: python macos python-2.7 speech-recognition

我正在尝试获得语音识别,以便为我正在进行的项目寻找工作。在那一刻,我只专注于使语音识别工作,我正在使用pygsr来做到这一点。我在here earlier找到了关于pygsr的帖子,但我现在正在努力让它发挥作用。这是我正在使用的代码:

from pygsr import Pygsr

speech = Pygsr()
speech.record(3)
phrase, complete_response =speech.speech_to_text('en_US')
print phrase

花了一段时间用OS X安装库之后,我终于得到了实际的工作。它检测到了库并且似乎工作但是我会得到这个错误:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<string>", line 4, in <module>
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/pygsr/__init__.py", line 33, in record
    data = stream.read(self.chunk)
  File "/Library/Python/2.7/site-packages/pyaudio.py", line 605, in read
    return pa.read_stream(self._stream, num_frames)
IOError: [Errno Input overflowed] -9981

我不知道这是因为我做错了什么,还是我不能在OS X上使用pygsr。如果没有办法让它工作,有没有人对语音识别库有任何建议对于使用Python 2.7的OS X?

1 个答案:

答案 0 :(得分:1)

你可以测试它是否正常运行pyaudio运行这个脚本:

import pyaudio
import wave

CHUNK = 1024
FORMAT = pyaudio.paInt16
CHANNELS = 2
RATE = 44100
RECORD_SECONDS = 5
WAVE_OUTPUT_FILENAME = "output.wav"

p = pyaudio.PyAudio()

stream = p.open(format=FORMAT,
            channels=CHANNELS,
            rate=RATE,
            input=True,
            frames_per_buffer=CHUNK)

print("* recording")

frames = []

for i in range(0, int(RATE / CHUNK * RECORD_SECONDS)):
    data = stream.read(CHUNK)
    frames.append(data)

print("* done recording")

stream.stop_stream()
stream.close()
p.terminate()

wf = wave.open(WAVE_OUTPUT_FILENAME, 'wb')
wf.setnchannels(CHANNELS)
wf.setsampwidth(p.get_sample_size(FORMAT))
wf.setframerate(RATE)
wf.writeframes(b''.join(frames))
wf.close()

我收到很多关于pygsr macOS无法正常工作的报告,但我无法修复它,因为我无法在mac上测试它。