def __init_alsa(self): try: self._device = PCM() except ALSAAudioError as e: logger.error('ERROR: Error al inicializar dispositivo ALSA: %s' % str(e)) return else: for mixer in MIXER_PRIO: try: self._mixers[mixer] = Mixer(mixer) except ALSAAudioError as e: err = 'Warning: Error al inicializar mixer ALSA: %s' logger.warning(err % str(e)) else: if self._default_mixer is None: self._default_mixer = mixer
import numpy from numpy.fft import fft, ifft from numpy.random import random_sample from alsaaudio import PCM, PCM_NONBLOCK, PCM_FORMAT_FLOAT_LE pcm = PCM() #mode=PCM_NONBLOCK) pcm.setrate(44100) pcm.setformat(PCM_FORMAT_FLOAT_LE) pcm.setchannels(1) pcm.setperiodsize(4096) def sine_wave(x, freq=100): sample = numpy.arange(x * 4096, (x + 1) * 4096, dtype=numpy.float32) sample *= numpy.pi * 2 / 44100 sample *= freq return numpy.sin(sample) for x in xrange(1000): sample = sine_wave(x, 100) pcm.write(sample.tostring())
def build_playback_device(self): self.playback_device = PCM(mode=PCM_NONBLOCK) self.playback_device.setrate(48000) self.playback_device.setperiodsize(960) self.playback_device.setchannels(1)
def build_capture_device(self): self.capture_device = PCM(PCM_CAPTURE, PCM_NONBLOCK) self.capture_device.setrate(48000) self.capture_device.setperiodsize(960) self.capture_device.setchannels(1)
def capturarAudio(self): self.captura = PCM(PCM_CAPTURE) self.captura.setchannels(1) # default 2 self.captura.setrate(44100) # default 44100 self.captura.setformat(PCM_FORMAT_S16_LE) # default PCM_FORMAT_S16_LE self.captura.setperiodsize(1024) # default 32