Work

Serving an AI model in production

VibeCheck

Freelance · 2024 - 2025

An audio-analysis SaaS: the app compares two tracks and computes their similarity score. Designed, built and shipped solo.

VibeCheck compares two tracks and computes their similarity score, handy for checking a cover. I designed and built it end to end, from signal processing through to billing.

SaaSIA / MLStripe

01The constraint

Audio models are heavy and hungry. Served naively, they blow up response times and the server bill. It had to stay fast, secure and economically viable.

02The trade-off

Serve the model on a server I run, with automatic file cleanup, rather than on usage-billed infrastructure. More deployment work, but a bill that doesn't track the number of analyses.

03What I shipped

A full self-service SaaS: Next.js front-end, a FastAPI back-end running TensorFlow, Stripe subscription, encrypted files, automatic cleanup, all deployed on a VPS with NGINX.

04Under the hood

The score doesn't come out of a black box: here is the pipeline the API runs on every analysis.

01

Spectrogram

Windowing + short-time Fourier transform

X(m,ω)=∑nx[n]w[n−m]e−jωn

02

Source separation

Learned spectral masking (TensorFlow)

Mi(t,f)=|Si|2∑j|Sj|2,S^i=Mi⊙X

03

Comparison

Cosine similarity between embeddings

cos⁡θ=⟨u,v⟩‖u‖·‖v‖

04

Final score

Weighted sum (melody, harmony, timbre, rhythm)

S=100·∑k=1Kwk·cos⁡θk

05Key points

  • Track comparison & similarity score
  • Instrument & vocal separation
  • Analysis history
  • Stripe subscription · encrypted files

Result : A complete SaaS running online: signal processing, a model served in production, subscription billing. The whole chain works, from uploaded file to returned score.

01 / 03

Taking a whole business digital

DreamLocation