Zingu is an innovative language learning application designed to help users improve their pronunciation and accent through advanced AI technologies. By combining speech recognition, machine learning, and interactive coaching, Zingu provides a personalized language learning experience.
- 🎙️ Accent Detection: Advanced AI-powered accent recognition
- 🧠 AI Language Coach: Personalized coaching and feedback
- 🎮 Interactive Learning: Gamified pronunciation practice
- 📊 Progress Tracking: Real-time performance metrics
- 🌈 Kids Mode: Child-friendly interface and learning experience
- React (TypeScript)
- Vite
- Axios
- Firebase Authentication
- Python
- FastAPI
- Machine Learning Models
- Speech Recognition SDK
Zingu is more than just an application - it's a collaborative platform for language learners and enthusiasts worldwide!
- Collaborative Learning: Build together, learn together
- Global Impact: Help language learners across the globe
- Transparent Development: Open code means no hidden barriers
- Continuous Improvement: Community-driven enhancements
- Developers: Improve AI models, add features
- Linguists: Enhance language datasets
- UX Designers: Refine user experience
- Translators: Add support for more languages
- Language Learners: Provide real-world feedback
- Node.js (v18+)
- npm (v9+)
- Python (v3.9+)
- Firebase Account
- Create a Firebase account at https://firebase.google.com/
- Have a Google account ready
-
Create a New Firebase Project
- Go to the Firebase Console
- Click "Add project"
- Name your project (e.g., "zingu-accent-improver")
- Follow the setup wizard
-
Enable Authentication
- In Firebase Console, go to "Authentication"
- Enable Sign-In Methods:
- Email/Password
- Google Sign-In
- Optional: Add other providers as needed
-
Set Up Firestore Database
- Go to "Firestore Database"
- Click "Create database"
- Choose "Start in test mode" (for development)
- Select a starting location for your database
-
Configure Firebase in Your Project
Create a
.env
file in thefrontend/
directory with the following structure:VITE_FIREBASE_API_KEY=your_api_key VITE_FIREBASE_AUTH_DOMAIN=your_project.firebaseapp.com VITE_FIREBASE_PROJECT_ID=your_project_id VITE_FIREBASE_STORAGE_BUCKET=your_project.appspot.com VITE_FIREBASE_MESSAGING_SENDER_ID=your_sender_id VITE_FIREBASE_APP_ID=your_app_id VITE_FIREBASE_MEASUREMENT_ID=your_measurement_id
💡 How to Find These Values:
- Go to Project Settings in Firebase Console
- Under "Your apps" section, click on the web app icon (
</>
) - Copy the configuration object values
-
Install Firebase SDK
cd frontend npm install firebase
We recommend setting up Firestore security rules to protect user data:
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /users/{userId} {
allow read, write: if request.auth != null && request.auth.uid == userId;
}
match /accent_data/{document=**} {
allow read: if request.auth != null;
allow write: if request.auth != null;
}
}
}
- Never commit your
.env
file to version control - Use Firebase's environment-specific configurations
- Regularly update Firebase SDK and review security settings
- Ensure all environment variables are correctly set
- Check Firebase Console for any configuration issues
- Verify network connectivity and CORS settings
🔒 Always prioritize user data privacy and security! 🛡️
- Clone the repository
git clone https://github.com/qkral/zingu.git
cd zingu
- Install Frontend Dependencies
cd frontend
npm install
- Set Up Environment Variables
- Create
.env.development
and.env.production
infrontend/
- Add necessary configuration (API URLs, Firebase config)
- Run Development Server
npm run dev
- Create Virtual Environment
python -m venv venv
source venv/bin/activate # On Windows, use `venv\Scripts\activate`
- Install Backend Dependencies
cd backend
pip install -r requirements.txt
- Set Up Environment Variables
- Create a
.env
file in thebackend/
directory - Add necessary configurations:
OPENAI_API_KEY=your_openai_key SPEECH_SDK_KEY=your_speech_sdk_key DATABASE_URL=your_database_connection_string
- Initialize Database
# If using SQLAlchemy or similar ORM
python -m app.db.init_db
- Run Backend Server
uvicorn app.main:app --reload
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-improvement
) - Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-improvement
) - Open a Pull Request
- Be respectful and inclusive
- Provide constructive feedback
- Celebrate each other's learning journey
- No language barrier is too big to overcome!
Please read CONTRIBUTING.md for details on our code of conduct and the process for submitting pull requests.
This project is licensed under the MIT License - see the LICENSE.md file for details.
- OpenAI for inspiring AI technologies
- Speech recognition research community
- Language learning enthusiasts worldwide
- Project Maintainer: Quentin Kral
- Project Link: https://github.com/qkral/zingu
Together, we're breaking down language barriers! 🌍🗣️