# PracticePerfect - Improve your speaking skills locally

> Source: <https://dev.to/zem_ksh/practiceperfect-improve-your-speaking-skills-locally-2bmd>
> Published: 2026-10-19 07:05:11+00:00

*This is a submission for the [Hacktoberfest Open-Source AI Challenge Week 2: Side Hustle](https://dev.to/challenges/hacktoberfest-week2-2026-10-12)*

I sometimes start speaking before I’ve figured out how to organize what I want to say. I know the point I’m trying to make, but halfway through an explanation, I’m repeating myself or losing the thread.

I wanted somewhere to practice that felt private and easy to return to.

So I built PracticePerfect, a speaking-practice app powered by open models running locally on a laptop.

The workflow is simple:

The goal is to help people explain their thoughts more clearly through short, repeatable practice sessions. The scores are AI-generated practice feedback, rather than a clinical assessment or an objective measure of speaking ability.

Potential customers include students preparing for interviews and presentations, and professionals who want to rehearse without uploading personal or confidential recordings. A paid version could offer guided practice programs and richer progress tracking. That’s a business model I’d like to test; I’m not claiming validated demand or paying customers yet.

**Watch the demo:** [https://drive.google.com/drive/folders/12AqQWCHCR78lKqtFJdwQlPm_NKQjdjl4?usp=drive_link](https://drive.google.com/drive/folders/12AqQWCHCR78lKqtFJdwQlPm_NKQjdjl4?usp=drive_link)

The demo walks through choosing a topic, loading a recording, transcribing it, and generating feedback locally.

**GitHub repository:** [https://github.com/Zemksh/voice](https://github.com/Zemksh/voice)

The repository includes the setup instructions and requirements for running the app locally.

The app uses two models with different responsibilities:

The application stack is:

The main pipeline is:

**Recording → local transcription → transcript review → local feedback → practice results**

I separated transcription from feedback so each model has a focused job. The application handles file processing and storage, while Gemma interprets the response and suggests improvements.

I developed the project on a Fedora laptop with an Intel Core Ultra 9 185H, 32 GB of RAM, and no dedicated GPU. That made resource usage and the tradeoff between model size and response time practical concerns from the start.

Gemma 3:1b

Whisper small

Speaking practice can be personal. Someone might rehearse a difficult conversation, discuss their background in a mock interview, or practice a presentation containing confidential information.

I wanted users to be able to do that without sending their recordings to another company for analysis.

Running Whisper and Gemma locally makes that possible. After the models and dependencies are downloaded, the core practice workflow can operate without an internet connection. Recordings, transcripts, and feedback stay on the user’s laptop.

Open models also let me:

Local inference still uses computing resources, and performance depends on the machine. It also requires an initial download and setup. But it gives users control over where their practice data is processed.

For this project, open AI is what makes private, offline speech practice possible.
