# Lisper

> Gemma 4 audio speech-practice app for low-pressure lisp feedback, with public model artifacts and a browser-ready ONNX/WebGPU path.

- Role: AI speech-practice app
- Status: Hackathon submission with demo, model artifacts, and writeup
- Stack: Gemma 4 audio, LoRA, Hugging Face Spaces, ONNX, WebGPU
- Page: https://thomasjvu.com/projects/lisper
- Markdown: https://thomasjvu.com/projects/lisper.md

## Links

- [Demo](https://huggingface.co/spaces/thomasjvu/lisper-zerogpu)
- [GitHub](https://github.com/thomasjvu/lisper)
- [Kaggle](https://www.kaggle.com/competitions/gemma-4-good-hackathon/writeups/lisper-ai-speech-therapy-for-lisps)
- [Writeup](/writing/lisper-ai-speech-therapy-for-lisps)

## Metrics

- Held-out eval: 2,000 rows — Final v18 hybrid evaluation set from the hackathon path.
- Hard errors: 0 — No hard errors on the final held-out evaluation path.
- Browser target: q4f16 — ONNX/WebGPU package for keyless local browser inference.

## Writeup

## Overview

Lisper is a lisp-focused speech-practice app for the Kaggle Gemma 4 Good Hackathon. Record a phrase, get concise feedback on likely /s/ and /z/ patterns, try again.

## Problem

Speech apps usually treat lisps as a tiny slice of a huge category. Daily practice needs a narrow loop, not a clinic simulator.

## What I built

A LoRA adapter, merged model, browser-ready ONNX/WebGPU package for keyless local inference, a public demo, and a writeup. The browser path is the point: no hosted API key required to practice.

## Hard parts

Tone. Useful feedback without pretending to replace a speech-language pathologist. Repetition has to feel low-pressure or people stop.

## Result

Held-out eval: 2,000 rows, 0 hard errors on the final v18 path. Demo: [Hugging Face Space](https://huggingface.co/spaces/thomasjvu/lisper-zerogpu). Writeup: [Lisper](/writing/lisper-ai-speech-therapy-for-lisps).
