2015-03-15 2 views
0

J'ai recherché et essayé tous les correctifs de base pour cela mais je ne peux pas faire fonctionner ce script d'enregistrement basique. J'ai essayé de changer la taille de morceau une fréquence d'échantillon sans chance.Débordement d'entrée avec PyAudio

#!/usr/bin/python 
import pyaudio, wave, time, sys 
from datetime import datetime 

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

current_time = str(datetime.now()) #"Date/Time for File Name" 
current_time = "_".join(current_time.split()).replace(":","-") 
current_time = current_time[:-7] 
WAVE_OUTPUT_FILENAME = 'Audio_'+current_time+'.wav' 

p = pyaudio.PyAudio() 

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

print("* recording") 

frames = [] 
for i in range(0, int(RATE/CHUNK * RECORD_SECONDS)): 
    print i 
    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() 

Lorsque vous exécutez le code que je reçois l'erreur suivante:

./record 
ALSA lib pcm_dmix.c:1022:(snd_pcm_dmix_open) unable to open slave 
ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.rear 
ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.center_lfe 
ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.side 
bt_audio_service_open: connect() failed: Connection refused (111) 
bt_audio_service_open: connect() failed: Connection refused (111) 
bt_audio_service_open: connect() failed: Connection refused (111) 
bt_audio_service_open: connect() failed: Connection refused (111) 
ALSA lib pcm_dmix.c:1022:(snd_pcm_dmix_open) unable to open slave 
Cannot connect to server socket err = No such file or directory 
Cannot connect to server request channel 
jack server is not running or cannot be started 
* recording 
0 
1 
Traceback (most recent call last): 
    File "./record", line 25, in <module> 
    data = stream.read(CHUNK) 
    File "/usr/lib/python2.7/dist-packages/pyaudio.py", line 605, in read 
    return pa.read_stream(self._stream, num_frames) 
IOError: [Errno Input overflowed] -9981 

Répondre

0

J'ai ajouté un cas pour passer le IOError et cela a fonctionné!

for i in range(0, int(RATE/CHUNK * RECORD_SECONDS)): 
    print i 
    try: 
     data = stream.read(CHUNK) 
    except IOError: 
     pass 
    frames.append(data) 
+0

Consultez mon commentaire et le lien sur cette question SO pour plus d'informations: http://stackoverflow.com/questions/29235666 – Meta