Sound according the frecuency range
Sub-bass (20-70 Hz)
Bass (70-150 Hz)
Mid-range frequencies (150-1200 Hz)
Upper mid-range frequencies (1200-5000 Hz)
High frequencies (5000-20000 Hz)
Los diferentes instrumentos musicales y las voces se caracterizan por poseer un rango de frecuencias.
Basic example of frequency filtering
We read a sound file and remove low frequencies ("bass"), mid frequencies (such as the voice), or high frequencies ("treble").
import matplotlib.pyplot as plt #paquete para graficar
import numpy as np #paquete de operaciones matemáticas
from scipy.io import wavfile #paquete para cargar archivos wav
from scipy.fftpack import dct, idct #paquete para dct y idct
# leemos el archivo wav
frec, x = wavfile.read('audio.wav')
# calculamos la DCT
Xantes = X
# normalizo la escala
L = len(X)
T=np.linspace(1,1/frec,L)
f= frec/2*np.linspace(0,1,L)
# graficamos las frecuencias
X[0:7000]=0 #quitamos las frecuencias bajas
#X[7000:144000]=0 #quitamos las frecuencias altas
#X[7000:70000]=0 #quitamos las frecuencias medias
# antitransformamos
xx= idct(X, norm="ortho")
xx= xx.astype(np.int16)
# guardamos el nuevo sonido
wavfile.write("Naudio.wav", frec, xx)
# espectrograma
plt.title('Quitamos las frecuencias bajas')
#plt.title('Quitamos las frecuencias altas')
#plt.title('Quitamos las frecuencias medias')
#plt.plot(f,X)
plt.specgram(xx)
plt.show()
Let us see some outputs: