Skip to content

Hark

Live captions that run on your device and learn your voice from your corrections.

Role
Designer & engineer
Timeline
Jan 2024
Hark captioning a real Arabic-accented speaker live in the browser: Greyson was asleep when he re entered the cabin, with a waveform and a confirm button. Sample: L2-ARCTIC speaker SKA.
Hark captioning a real Arabic-accented speaker live in the browser: Greyson was asleep when he re entered the cabin, with a waveform and a confirm button. Sample: L2-ARCTIC speaker SKA.

The problem

Small on-device speech models make far more mistakes on accented English than on the voices they were trained on, and they keep getting the same names and terms wrong. Sending audio to a server fixes accuracy at the cost of privacy.

People need captions that improve for their own voice without their audio leaving the device.

What I did

I built Hark: live captions that run entirely in the browser. I wrote the speech engine myself, in Python and again in JavaScript, from the audio features to the search over a streaming model, and tested the two against each other piece by piece.

When you correct a caption, Hark learns the rare words you say that it keeps missing and listens harder for them next time, from plain counts stored in your browser.

I tested it on eight accented speakers held out from all tuning.

Hark results: misses on corrected names fell from 18 to 13, overall errors 16.4% before and 16.3% after 200 fixes, and words wrong for each held-out speaker.

The outcome

Misses on the names speakers had corrected fell from 18 of 22 to 13 of 22, while overall accuracy never got worse: 16.4% of words wrong before, 16.3% after 200 fixes.

My first version made captions worse overall, so I kept that run, fixed the cause and reported both. The evidence is honest but thin, and the write-up says so.

Four Hark screens: tap to caption, a misheard name (Greyson), the same sentence after two fixes (Gregson), and the results.

Next project

4th

Live NBA scores with each team’s chance to win, play by play, and the calls the refs got wrong.