On-Device ML / AudioCase Study

Voice Keyword Guard

Hear the word. Alert or mute it — entirely on device.

Voice Keyword Guard is a Flutter app that runs continuous keyword spotting with TensorFlow Lite. Users can get an alert when a word is spoken, mute matched words in live audio (including call mode), and enroll a personal voice sample — without uploading audio to a server.

Runtime
On-device TFLite
Modes
Alert · Mute · Enroll
Stack
Flutter + audio pipeline
Role
End-to-End
Overview

Keyword control that stays private

The app wires tflite_flutter with a BC-ResNet keyword model, continuous recording, alert playback, and mute paths. Shared preferences and local storage keep configuration on device; permissions are handled explicitly for mic access across platforms.

The Problem

Cloud voice features create trust and latency problems

Parents, professionals, and privacy-sensitive users want keyword alerts or muting without shipping every utterance to a vendor. Cloud ASR is powerful but the wrong default when the job is simply: detect a small keyword set and react locally, fast.

  • Users will not accept continuous cloud audio upload for a keyword beep
  • Mute mode needs low-latency detection in live audio
  • Enrollment should personalize without a training cluster
  • Call-mode constraints make audio routing non-trivial on mobile
The Solution

A focused on-device listening product

We shipped three clear modes — Word Alert, Word Mute, and Enrollment — on a Flutter shell with a TFLite keyword model, local labels, beep assets, and an audio pipeline using record/audioplayers/fftea utilities so detection stays on the phone.

Key Features

What users can do

  • Continuous on-device keyword listening with alert playback
  • Word Mute — detect keywords and mute them in live audio
  • Call-mode mute path for supported scenarios
  • Enrollment with a personal voice sample
  • Local model + labels shipped as app assets
  • Explicit mic permission handling across platforms
My Process

Model, pipeline, then product modes

  1. 01

    Model integration

    Bundled BC-ResNet TFLite model and labels, wired through tflite_flutter for on-device inference.

  2. 02

    Audio capture path

    Continuous recording and signal utilities so keyword frames can be scored in near real time.

  3. 03

    Alert & mute modes

    Productized the two reaction paths — play an alert vs mute matched audio — including call-mode considerations.

  4. 04

    Enrollment & polish

    Local enrollment flow, preferences, and integration tests so the experience feels like a product, not a model demo.

Technical Implementation

Flutter meets on-device ML

Voice Keyword Guard is built natively on Android using a focused, modern stack chosen for performance, maintainability, and a clean user experience.

Fluttertflite_flutterTensorFlow Literecordaudioplayersffteapermission_handlershared_preferences
Challenges & How I Solved Them

ML that has to feel instant

Latency vs battery

Continuous listening must score often enough to catch keywords without turning the phone into a heater — frame sizing and model choice matter.

Mute is harder than alert

Playing a beep is easy; surgically muting live audio (especially around calls) forces careful audio session handling.

Privacy as a product feature

Keeping audio on device is the selling point — we designed storage and inference so nothing needs a backend to work.

Outcome

Why this project matters

Voice Keyword Guard shows LogicsBeat can ship privacy-first ML products: real on-device inference, a clear alert/mute UX, and Flutter packaging — not a notebook demo wrapped in a WebView.

Have a mobile product idea?

I'm available for client work in Android, mobile product development, and end-to-end app delivery. Let's talk about what you're building.

Chat with us