ConversaVerba is an open-source, gamified language learning app designed to help users improve their speaking and listening skills through interactive conversations and voice recognition. The app focuses on providing an immersive experience, where users can practice speaking in their target language, track their progress, and get real-time feedback.
The app's unique approach is to encourage users to practice speaking their target language from day one. Unlike traditional language learning methods, ConversaVerba helps users become comfortable with natural language acquisition through voice-based interactions, mimicking how children learn their first language.
- Voice-based learning: Users practice speaking and listening in their target language.
- Real-time translation: Convert phrases from a user's native language to the target language.
- Gamified progress tracking: Track user progress through levels, points, and challenges.
- Interactive AI conversations: Practice natural conversations with real-time feedback.
- Open-source collaboration: This project is open for contributors. If you're passionate about language learning or coding, we'd love for you to get involved!
- OpenNMT – Open-source neural machine translation, offering a customizable and highly extensible translation service.
- Apertium – Open-source machine translation system for a variety of languages, especially useful for less commonly spoken languages.
- DeepL API – High-quality translation (Freemium) for the best translations, especially for European languages.
- Mozilla DeepSpeech – Open-source speech recognition system based on deep learning, ideal for offline usage.
- Vosk – Lightweight, offline-compatible speech recognition supporting multiple languages.
- Festival – Open-source speech synthesis system, providing natural-sounding voices for TTS.
- eSpeak NG – Lightweight open-source TTS engine, offering a variety of language support and good offline capabilities.
- Django + Django Rest Framework (DRF) – A robust, scalable framework for handling the backend and providing REST APIs to the frontend.
- FastAPI – A high-performance alternative to Django for handling API requests, ideal for quick responses and async features.
- Flask + SQLite – Lightweight backend using Flask and SQLite for small-scale MVP versions.
To set up this project locally:
- Install Python 3.x
- Install Node.js for the frontend (if using React)
- Create an OpenNMT or Apertium instance for translation APIs (optional).
- Set up Mozilla DeepSpeech or Vosk for speech recognition and text-to-speech engines like Festival or eSpeak NG.
-
Clone the repository:
git clone https://github.com/LeonByte/ConversaVerba.git cd ConversaVerba/backend
-
Create and activate a virtual environment:
python3 -m venv venv source venv/bin/activate # For Linux/Mac venv\Scripts\activate # For Windows
-
Install the required dependencies:
pip install -r requirements.txt
-
Start the Flask or Django app:
python app.py # For Flask python manage.py runserver # For Django
-
Navigate to the frontend folder:
cd ../frontend
-
Install the required dependencies:
npm install
-
Run the frontend app:
npm start
- Make sure to configure your environment variables for API keys (e.g., OpenNMT, Apertium, DeepL, Mozilla DeepSpeech, etc.).
ConversaVerba is an open-source project! If you're interested in contributing, follow these steps:
- Fork the repository.
- Create a new branch (
git checkout -b feature-branch
). - Make your changes and commit them (
git commit -m 'Add new feature'
). - Push to your branch (
git push origin feature-branch
). - Create a pull request!
If you have suggestions or ideas, feel free to open an issue. We're looking forward to seeing how you can help improve this project!
This project is licensed under the MIT License - see the LICENSE file for details.
- OpenNMT, Apertium, and DeepL for providing reliable and powerful translation tools.
- Mozilla DeepSpeech and Vosk for offering open-source speech recognition.
- Festival and eSpeak NG for providing open-source TTS solutions.
- Django, FastAPI, and Flask for making backend development faster and more efficient.
- The open-source community for helping make these technologies accessible.
Once the app is set up and running, users will be able to:
- Start a conversation by selecting their target language.
- The app will prompt the user to speak, and it will recognize the speech via the Speech-to-Text engine.
- Users will receive a response based on the recognized text, either through a translation or a simulated conversation with the AI.
- The app will track progress through points and challenges, encouraging users to continue improving their language skills.
- Add more language options and support for custom language models.
- Implement more advanced conversational AI (e.g., sentiment analysis for better responses).
- Create a mobile app version (React Native or Flutter).
- Add user authentication and profile tracking.