Skip to main content
ZombieMutex

30 results · ↑ ↓ navigate · Enter open · Esc close

Speech & audio ML engineering

Project 05 / 05 · Experimental methodology

Implemented and tested

Audio ML Training, Evaluation & Ablations

I trained a small audio-activity classifier with NumPy, built clean and noisy held-out sets, and ran controlled feature and augmentation ablations using repeatable seeds and explicit precision/recall/F1 results.

A model that scores well on easy samples can fall apart after a little background noise. Before changing the architecture, I want to know which input, training choice or data condition actually changed the result.

What I implemented

  • Implemented acoustic feature extraction using RMS, zero crossing rate, spectral centroid and spectral flatness.
  • Trained a logistic speech-activity classifier with standardized inputs, gradient descent and regularization.
  • Ran RMS-only, multi-feature and noise-augmented experiments on fixed synthetic holdouts, recording confusion counts, precision, recall and F1.

Data and execution path

  1. 01

    Deterministic voiced/noise frame generation

  2. 02

    Held-out clean and noisy splits

  3. 03

    Feature extraction and train-set normalization

  4. 04

    CPU gradient-descent classifier training

  5. 05

    Controlled feature/augmentation ablations

  6. 06

    Reproducible metrics and error analysis

Experiment and results

In the seeded synthetic noisy holdout, the clean-trained multi-feature model scored F1 0.361, while the noise-augmented model scored F1 0.867; the RMS-only baseline scored F1 0.689. These are outcomes on generated waveforms only, not general speech benchmarks. The large drop before augmentation is precisely why controlled evaluation is useful.

These results are from the specified local dataset or offline rendering pipeline. I keep them separate from real speech-corpus and live-call metrics because the populations and failure modes differ.

System-level constraints

  • Dataset licensing, consent, speaker-disjoint splits and class balance determine what a classifier score can legitimately support.
  • Corpus manifests, preprocessing, seeds, model checkpoints and evaluation artifacts need stable identities for reproducible comparisons.
  • Architecture comparisons need controlled ablations and uncertainty estimates; synthetic F1 does not substitute for live speech-quality measurements.
  • Distributed GPU training introduces sharding, synchronization, mixed precision and checkpoint recovery; the local single-device baseline says nothing about their throughput or correctness.

What the measurements establish

This trains a real small classifier, not a foundation ASR/TTS model, self-supervised encoder, or multi-GPU system. The synthetic dataset does not establish performance on accents, languages, devices or real speech recordings.

I like a good hypothesis. I like it even more when the next experiment proves it wrong before anything reaches production.