Reading input sound signal using Python Reading input sound signal using Python python python

Reading input sound signal using Python


Have you tried pyaudio?To install:

python -m pip install pyaudio

Recording example, from the official website:

PyAudio example: Record a few seconds of audio and save it to a WAVE file.

import pyaudioimport waveCHUNK = 1024FORMAT = pyaudio.paInt16CHANNELS = 2RATE = 44100RECORD_SECONDS = 5WAVE_OUTPUT_FILENAME = "output.wav"p = pyaudio.PyAudio()stream = p.open(format=FORMAT,                channels=CHANNELS,                rate=RATE,                input=True,                frames_per_buffer=CHUNK)print("* recording")frames = []for i in range(0, int(RATE / CHUNK * RECORD_SECONDS)):    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()

This example works on my laptop with Python 2.7.11 (and 3.5.1) in Windows 8.1, pyaudio 0.2.9.


Are you planning to get audio from microphone in pieces or streaming?Either case , sounddevice may be employed.

You can install the python module using
pip install sounddevice --user

Please refer to official site for API details.

sounddevice will record audio from your laptop microphone (standard audio input) and play on speaker or headphones (standard audio output). You can use the sound object for further processing.

import sounddevice as sdimport numpy as npimport scipy.io.wavfile as wavfs=44100duration = 5  # secondsmyrecording = sd.rec(duration * fs, samplerate=fs, channels=2,dtype='float64')print "Recording Audio"sd.wait()print "Audio recording complete , Play Audio"sd.play(myrecording, fs)sd.wait()print "Play Audio Complete"

Here is the Output : Python 2.7.9 (default, Dec 10 2014, 12:24:55) [MSC v.1500 32 bit (Intel)] on win32 Type "copyright", "credits" or "license()" for more information. ================================ RESTART ===================

Recording Audio
Audio recording complete , Play Audio
Play Audio Complete


I would consider using pysox, the python bindings for libsox.

You can get pysox package from PyPI.