Skip to content

VictorLopes/LocalEnglishTutor

Repository files navigation

Local English Tutor 🎓🤖

A privacy-focused, local AI-powered English tutor with a WhatsApp-inspired interface. Speak or type to interact with your AI tutor, featuring high-quality voice transcription and synthesis—all running locally on your machine.

Features 🚀

  • Conversation History: Persistent storage for all your practice sessions using SQLite.
  • Conversation Management: Easily Delete, Archive, or add Notes to your sessions via a dedicated menu.
  • Adaptive Learning: Supports all CEFR levels (A1 to C2) with context-aware responses and corrections.
  • Voice-First Interaction: Transcribe your speech in real-time using faster-whisper.
  • Natural Voice Synthesis: High-quality local TTS using kokoro-onnx for a human-like tutoring experience.
  • Local LLM: Powered by Ollama, ensuring your conversations stay private.
  • WhatsApp-Style UI: Familiar and clean interface built with PySide6.
  • Real-time Indicators: Visual feedback for "thinking", "recording", and "transcribing" states.

History Demo

Management Demo

Personalized Learning 🎯

The Local English Tutor adapts to your specific needs through a two-step selection process:

  1. Level Selection: Choose from standard CEFR levels (A1 to C2) or specialized tracks like Business English and Job Interview preparation.
  2. Subject Selection: Pick from dozens of curated topics—ranging from "Daily Routine" for beginners to "Quantum Field Theory" or "Business Negotiation" for advanced learners.
  3. Customizable Subjects: You can easily add new subjects or levels by editing the config.json file.

This ensures the AI Tutor uses the appropriate vocabulary, grammar complexity, and context for your session.

Tech Stack 🛠️

Tip

You can easily switch between these models by updating the "model" field in your config.json file.

Prerequisites 📋

Before you begin, ensure you have the following installed:

  1. Python 3.12+
  2. Ollama: Download and install Ollama

Installation ⚙️

  1. Clone the repository:

    git clone https://github.com/VictorLopes/LocalEnglishTutor.git
    cd LocalEnglishTutor
  2. Run the setup script: This will create a virtual environment, install dependencies, and pull the required LLM model.

    chmod +x setup.sh
    ./setup.sh

Usage 🎯

  1. Start the application:

    ./start.sh
  2. Configure your session:

    • Select your English Level on the first screen.
    • Choose a Subject you'd like to practice.
  3. Start Chatting:

    • Text Chat: Type your message in the input field and press Enter.
    • Voice Chat: Click the 🎤 icon to start recording, speak, and click the ⏹ icon to stop. The AI will automatically transcribe and respond with audio.
    • Audio Playback: Click the play button on AI messages to replay the tutor's voice.

Warning

On MacOS, the app needs permission to access the microphone. You can grant this permission in the System Settings > Privacy & Security > Microphone. If you are facing issues with the microphone, try granting the permission in the terminal using tccutil reset Microphone com.localenglishtutor.app.

License 📄

This project is licensed under the MIT License - see the LICENSE file for details.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors