Skip to content

What happens at home stays at home.

Onkith transcribes speech and masks private content on the device itself. Only the masked result leaves the device.

A live example of private spans being masked before the text leaves the device.
On device
The backup numbers are +966 50 000 0001, +966 50 000 0002.
Masked output
The backup numbers are [TELEPHONENUM_1], [TELEPHONENUM_2].

Understanding happens somewhere else

Every mainstream voice assistant sends your audio to a server in order to understand it. The understanding happens somewhere else, which means the audio has to go somewhere else too.

How it works

  1. 01

    Listen.

    Voice activity detection runs on the device. Nothing is held until speech starts.

  2. 02

    Transcribe.

    Speech becomes text on the device. The audio does not move.

  3. 03

    Gate.

    A classifier reads the text token by token and identifies private content. Private spans are masked before the text leaves the device.

    On device+966 50 000 0001
    Masked output[TELEPHONENUM_1]

Measured

Word error rate, LibriSpeech test-clean.
Whisper Tiny int86.78%
Moonshine Tiny4.51%
Moonshine Base3.29%

On-device latency, Raspberry Pi 5.

Prove it yourself

Say something private out loud. The demo sends the clip only to this project's masking service, then shows the same masked text produced by the device deployment.

Open the demo