Esempio n. 1
0
class Monitor(threading.Thread):
    '''audio monitor thread'''
    def __init__(self, device, rate, period):
        threading.Thread.__init__(self)
        
        self.pcm = PCM(PCM_PLAYBACK, PCM_NORMAL, device)
        self.pcm.setformat(PCM_FORMAT_S16_LE)
        self.pcm.setchannels(2)
        self.pcm.setrate(rate)
        self.pcm.setperiodsize(period)

        self.queue = Queue.Queue(256)

        self.__stop = False

    def run(self):
        '''run loop'''
        
        while True:
            qsize = self.queue.qsize()
            
            if qsize == 0 and self.__stop:
                break
                        
            try: 
                block = self.queue.get(False)
                self.pcm.write(block)
            except Queue.Empty:        
                time.sleep(0.01)
        
    def stop(self):
        '''set stop flag'''
        self.__stop = True
Esempio n. 2
0
class AudioCapture(object):
    def __init__(self):
        os = system()

        if os == 'Windows':
            self.usuario = environ['USERNAME']
        else:
            self.usuario = environ['USER']

        try:
            self.capturarAudio()
            self.guardarAudio()
        except Exception as e:
            print e

    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

    def guardarAudio(self):
        if not 'audio' in listdir('./'):
            mkdir('audio')

        tiempo = strftime("%d %b %Y_%H:%M:%S", gmtime())
        miAudio = './audio/' + self.usuario + '_' + tiempo + '.wav'

        audio = wave.open(miAudio, 'w')
        audio.setnchannels(1)
        audio.setsampwidth(2)
        audio.setframerate(44100)

        while True:
            try:
                length, data = self.captura.read()
                audio.writeframes(data)
            except KeyboardInterrupt:
                break
Esempio n. 3
0
#!/usr/bin/python2.7
#
# Robot Standard Language
# v0.1
#
# Copyright(C) Joshua Davis
# http://covert.codes
# Open source, do what you want with it.

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(4000)
pcm.setformat(PCM_FORMAT_FLOAT_LE)
pcm.setchannels(1)
pcm.setperiodsize(4096)

def sin_wave(x, freq=100):
  sample = numpy.arange(100*4096, (x+1)*4096, dtype=numpy.float32)
  sample *= numpy.pi * 2 / 44100
  sample *= freq
  return numpy.sin(sample)

for x in xrange(1000):
  sample = sin_wave(x, 100)
  pcm.write(sample.tostring())

Esempio n. 4
0
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())