gabrielwang.ai ← back to the workshop
Edition 020 · interactive demo

Voice in. Audio never out.

Voice notes are how people who don't type actually work — walking to a car, between meetings, in a language they think in. Turning them into something a business can use is easy now. The decision that matters is not which model: it is which class of data is allowed to leave the machine. Text you can read and redact before it goes. Raw audio you cannot — it carries the speaker's identity by construction, plus whatever else was audible in the room. Move each stage across the boundary below and watch what crosses. Edition 001 is what this pipeline produces; this is what it costs.

Honest-AI note. No recording, transcript or person here is real, and no model runs on the page. Both readouts are computed: the exposure panel is derived from where you place each stage, and the run log below is a real state machine — including the failure that matters most, where an imported dependency installs a process-wide timer and takes the whole runner with it. That one cost two rounds of fixing the wrong thing before the actual cause was found.

Fictional pipeline Exposure computed live Runs in your browser No live model call

Where each stage runs

Now break it

Plain-language key (data class, boundary, enrichment, process-wide timer, degrade path)
Data class
What kind of thing is being handled — raw audio, transcript text, structured facts. Classes are ranked by how badly you can un-send them.
Boundary
The line between your machine and everyone else's. Crossing it is a decision about a class of data, not about a vendor.
Enrichment
A stage that makes the output better but is not required for it to exist. If it can block delivery, it was never optional.
Process-wide timer
An alarm installed by any library that affects the entire process. When it fires it can end your program, not just the library's work.
Degrade path
The branch that runs when something fails: produce the plainer output, say what is missing, keep going.