DSP - mwicat/personal GitHub Wiki

Plot audio in realtime

https://python-sounddevice.readthedocs.io/en/0.3.15/examples.html#plot-microphone-signal-s-in-real-time

Jupyter notebook

sudo pip install notebook
jupyter notebook

Wav amplitude

import soundfile as sf
import matplotlib.pyplot as plt

data, samplerate = sf.read("test.wav")
left = data[:,0]
right = data[:,1]
plt.plot(left)

Generate sine to WAV

import numpy as np

import soundfile as sf

samplerate = 44100
fs = 100
t = np.linspace(0., 1., samplerate)
amplitude = np.iinfo(np.int16).max
data = amplitude * np.sin(2. * np.pi * fs * t)

sf.write('example.wav', data, 44100, 'PCM_24')

Plot RMS volume

import soundfile as sf
import matplotlib.pyplot as plt

%matplotlib inline

def to_db(y):
  y = np.abs(y)
  return 20 * np.log10(y)

def load(input_data):
    data, samplerate = input_data
    left = data[:,0]
    right = data[:,1]

    length_sec = data.shape[0] / samplerate
    time = np.linspace(0., length_sec, data.shape[0])
    rms = window_rms(left, 1024)
    rms = to_db(rms)
    return rms

inp = load(sf.read('doctor.wav'))
outp = load(sf.read('clip_12.wav'))