Кто-нибудь может помочь решить следующую проблему?
Когда я запускаю свою программу pyaudio на Raspberry (Raspbian-standard-not full, not lite, но я пытался также с тем же результатом-) она вылетает с ошибкой (смотрите ниже)
Микрофон подключен, RPi показывает, что он подключен, но похоже, что pyaudio не может найти микро.
Я установил libportaudio0 / 2 / cpp0, portaudio19-dev, pyaudio иосновные вещи ...
То, что я пробовал до сих пор: - переустановить portaudio через tar.gz - переустановить pyaudio через git clone - прочитать все записи pyaudio и alsa в stackoverflow и использовать их безуспешно - почувствоватьвроде все перепробовал, но ничего не получалось (ожидайте, что с помощью PYO я никогда не пробовал с помощью PYO)
Мой код выглядит так:
import spl_lib as spl
import numpy as np
import pyaudio
import time
from scipy.signal import lfilter
import RPi.GPIO as rg
class Audio(object):
def __init__(self):
self.FORMAT = pyaudio.paInt16
self.CHANNELS = 1
self.RATE = 44100
self.CHUNK = 4096
self.IOPUT = True
self.NUMERATOR, self.DENUMERATOR = spl.a_weighting(self.RATE)
self.pa = pyaudio.PyAudio()
self.stream = self.pa.open(format=self.FORMAT, channels=self.CHANNELS, rate=self.RATE, input=self.IOPUT, output=self.IOPUT, frames_per_buffer=self.CHUNK)
def update(self):
data = self.stream.read(self.CHUNK)
decoded = np.fromstring(data, 'Int16')
filt = lfilter(self.NUMERATOR, self.DENUMERATOR, decoded)
decibel = 20*np.log10(spl.rms_flat(filt))+48
if(decibel>80.0):
print('It is really loud: ' + str(decibel) + ' dBA')
if(decibel>100.5):
print('It is too lod: ' + str(decibel) + ' dBA')
too_loud()
def too_loud(self):
#here will be the RPi.GPIO-stuff
print('It is far too loud')
if __name__ == '__main__':
audio = Audio()
audio.__init__()
while(True):
try:
audio.update()
except:
print('There has occured an error')
time.sleep(10)
print('Lets try again')
print('End')
#end
Выдается следующее сообщение об ошибке:
Traceback (most recent call last):
File "audio.py", line 50, in <module>
audio_app.__init__()
File "audio.py", line 22, in __init__
self.stream = self.pa.open(format=self.FORMAT, channels=self.CHANNELS, rate=self.RATE, input=self.IOPUT, output=self.IOPUT, frames_per_buffer=self.CHUNK)
File "/usr/lib/python2.7/dist-packages/pyaudio.py", line 750, in open
stream = Stream(self, *args, **kwargs)
File "/usr/lib/python2.7/dist-packages/pyaudio.py", line 441, in __init__
self._stream = pa.open(**arguments)
IOError: [Errno -9985] Device unavailable
(PS: Он отлично работает на моей MS-Surface, но Raspberry просто создает проблемы: o Он должен стать небольшим анализатором спектра, который работает с Arduino и взаимодействует черезGPIO-Board.
Spl_lib клонируется из Git-аккаунта SuperShinyEyes
, если вы прочитаете это, большое спасибо за эту библиотеку)