2011-12-19 95 views
10

道歉爲新手問題,但我試圖在我的Mac上運行下面的代碼(PyAudio文檔的一個例子) OS 10.7.2):Geting IOError:[Errno輸入溢出] -9981當設置PyAudio Stream輸入和輸出爲True

import pyaudio 
import sys 

chunk = 1024 
FORMAT = pyaudio.paInt16 
CHANNELS = 1 
RATE = 44100 
RECORD_SECONDS = 5 

p = pyaudio.PyAudio() 

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

print "* recording" 
for i in range(0, 44100/chunk * RECORD_SECONDS): 
    data = stream.read(chunk) 
    stream.write(data, chunk) 
print "* done" 

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

是我給的錯誤是:

Traceback (most recent call last): 
    File "PyAudioExample.py", line 24, in <module> 
data = stream.read(chunk) 
    File "/Library/Python/2.7/site-packages/pyaudio.py", line 564, in read 
return pa.read_stream(self._stream, num_frames) 
IOError: [Errno Input overflowed] -9981 

我做了在谷歌這個錯誤的搜索,發現無論是製作一塊大或變小可以幫助。我試過這個,並沒有什麼區別。我也嘗試添加以下代碼,以趕上過載例外:

try: 
    data = stream.read(chunk) 
except IOError as ex: 
    if ex[1] != pyaudio.paInputOverflowed: 
     raise 
    data = '\x00' * chunk 

這避免了錯誤,但不是我的輸出輸入音頻,聽到一串響亮的點擊的。

爲了排除故障,我註釋了output = True行,程序運行正常,但沒有輸出任何內容。我註釋掉了input = True,並在Wave文件中讀取,而流可以輸出音頻。我試圖創建2個流,一個用於輸入,另一個用於輸出,而且這也不起作用。

還有什麼我可以做,以避免這個錯誤?

在此先感謝。

+1

見 http://stackoverflow.com/questions/33837097/pyaudio-recorder-script-ioerror-errno-input-overflowed-9981/34021599#34021599 – am70 2015-12-03 08:15:59

回答

1

我碰上時,我手動安裝pyaudio(從源代碼構建portaudio)相同的情況下, 一個不那麼完美的解決方法是下載pyaudio爲Apple Mac OS X (Universal) 安裝它,這將只安裝Python的2.6和以前的版本。如果你用/usr/bin/python2.6運行你的代碼,那麼你就完成了。 但是如果你真的想要2.7,將已安裝的模塊(pyaudio.py,_portaudio.so)複製到2.7文件夾/Library/Python/2.7/site-packages/。

我不知道爲什麼它不起作用從源頭建立模塊。

0

在portaudio中存在一個錯誤,直到最近在OS X中引起了許多虛假溢出錯誤(請參閱http://music.columbia.edu/pipermail/portaudio/2012-June/014167.html)。

我已確認2012-08-06的portaudio每日快照修復了該錯誤。

+0

我有最新portaudio(版本19.20111121_4)與py27一起-pyaudio 0.2.7_0,我仍然得到這個錯誤,不管我怎麼改變塊大小。我使用的Mac OS X 1.7.5與Python 2.7,你可以分享更多的信息,你如何得到portaudio每日快照工作,如果你的ID? – samkhan13 2013-09-21 19:26:03

+0

這是一個很長的距離,但我也很想知道...... – lollercoaster 2013-11-06 16:35:26