I build realtime voice agents — and the instruments to watch how they think.
Day job: AI engineering at a Spanish bank, where we're building what I believe is the first voice agent that holds real conversations with real customers. Nights: an open research factory about how machines talk — endpointing, turn-taking, latency floors, conversation grammars — shipped as tools you can open in a browser tab.
PhD in AI (a past life: industrial defect detection with deep learning). Based in Gijón, Spain 🇪🇸.
No signup, no backend — every one runs 100% in your browser. My rule: if you can't watch a voice agent's decision, you can't debug it.
| Instrument | What you see |
|---|---|
| Voice Agents Playground | Silero VAD doing endpointing live on your mic — tune threshold & hangover, watch the segments |
| Word Timing Explorer | Whisper word-level timestamps; click a word to seek, watch playback highlight |
| Latency Gap Simulator | Where the milliseconds go in a voice turn: waterfall from endpointing to TTS |
| Voice Metrics Dashboard | Paste a transcript → KPIs: gaps p95, interruptions, containment |
| Jev Mini Bench | The tiny decision-model wave in your pocket — feel the 1200 ms vs 12 ms gap |
| Kokoro Tab | 82M-param TTS in your tab, with a time-to-first-audio meter |
| ASR Arena | moonshine vs whisper transcribing your mic side by side — latency and WER duel |
| Real or Kokoro? | Ear-training game: which read was the expressive one? |
- event-driven-voice-orchestrator — S2S-duplex turn-taking structure for cascaded voice agents (~600 lines, zero deps), plus a conformance kit that drives any voice framework through the same latency/barge-in cells. LiveKit Agents 1.8.8 passes 4/4 invariants; LangGraph is next (I expect it to fail them, and that's the interesting result).
- trace2grammar — turns observability traces (OTel GenAI, LangSmith, tau-bench) into conversation grammars and coverage atlases: which regions of conversational behavior your tests never touch.
- Upstream: livekit/agents#7735 (Silero VAD
threshold-pair fix, all CI green) · transformers.js#1796
(
getAvailableDevices()).
- The Latency Floor of Cascade Voice Agents — formal bounds + design levers (alphaXiv, 2026)
- Real-Time and Multimodal Guardrails for LLMs — systematic literature review (alphaXiv, 2026)
- Defect Detection in Complex Geometries (Springer) · Trustworthiness Score for Echo State Networks (ESANN 2024) · Synthetic 3D Surface Defects for Industrial Inspection (preprint)
| Project | What it is |
|---|---|
| yolo_adversarial_fullstack | Full-stack adversarial attacks on object detection |
| yolo_active_learning | Active-learning loops for dataset annotation |
| yolo-minimal-inference | Stripped-down, fast YOLO inference (ONNX) |
| yolo-trainer-template | Boilerplate for training custom YOLO models |
| camera_tracking_rpi | Real-time tracking on a Raspberry Pi |
The whole thing is wired to The Learning Curve (Substack), where I write up what these instruments teach.
