Speechdft-16-8-mono-5secs.wav 💯 ⏰

import librosa import librosa.display

# ------------------------------------------------- # 3️⃣ Compute the DFT (via FFT) – only the positive frequencies # ------------------------------------------------- N = len(audio_float) # number of samples = 5 s × 16 kHz = 80 000 fft_vals = np.fft.rfft(audio_float) # real‑valued FFT → N/2+1 points fft_mag = np.abs(fft_vals) / N # normalise magnitude

# Compute 13 MFCCs (typical default) mfccs = librosa.feature.mfcc(y=y, sr=sr_lib, n_mfcc=13, n_fft=512, hop_length=256) speechdft-16-8-mono-5secs.wav

# Quick sanity check – plot the waveform plt.figure(figsize=(10, 2)) plt.plot(np.arange(len(audio_float))/sr, audio_float, lw=0.5) plt.title('Waveform (5 s of speech)') plt.xlabel('Time (s)') plt.ylabel('Amplitude') plt.show() a familiar “wiggly” speech trace, with a modest amount of quantisation “step‑noise” that is typical of 8‑bit audio. 3. A First‑Look Discrete Fourier Transform (DFT) The DFT is the workhorse that turns a time‑domain signal into its frequency‑domain representation. Let’s compute a single‑sided magnitude spectrum and visualise it.

S = librosa.feature.melspectrogram(y=y, sr=sr, n_fft=n_fft, hop_length=hop_len, n_mels=n_mels, fmax=sr/2) log_S = librosa.power_to_db(S, ref=np.max) import librosa import librosa

import librosa import librosa.display

# Parameters n_fft = 1024 hop_len = 512 n_mels = 40 fmax=sr/2) log_S = librosa.power_to_db(S

# ------------------------------------------------- # 1️⃣ Load the wav file # ------------------------------------------------- sr, audio_int = wavfile.read('speechdft-16-8-mono-5secs.wav') print(f'Sample rate: sr Hz') print(f'Data type: audio_int.dtype, shape: audio_int.shape')