Skip to content

Baian is an Arabic learning app that blends an multi-dialect conversation practice and AI‑driven pronunciation feedback into one smart platform, making Arabic more intuitive and practical to master

Notifications You must be signed in to change notification settings

smaffan21/baian

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Baian - A Smarter Way to Learn Arabic

Overview

Baian is a comprehensive Arabic learning platform that combines modern technology with traditional language education methods. The platform consists of two main components:

  • Mobile App (baian/) - A React Native application for interactive Arabic learning with letterboard, conversation practice, and speech recognition
  • Backend API (backend/) - Python-based server providing AI-powered Arabic learning assistance, speech synthesis, and pronunciation assessment

Features

🔤 Arabic Letterboard

  • Interactive grid of all Arabic letters (28 letters)
  • Audio pronunciation for each letter
  • Curated word lists with transliteration and English meanings
  • Built-in quizzes for vocabulary practice

🗣️ Conversation Scenarios

  • Restaurant Ordering (Easy): Practice ordering food in Arabic
  • Friend Chat (Medium): Casual conversations with Arabic-speaking friends
  • Business Meeting (Hard): Professional Arabic communication

🎯 Interactive Learning

  • Voice recording and pronunciation practice
  • AI-powered feedback on Arabic speech
  • Personalized learning paths and progress tracking
  • Daily challenges and exercises

🤖 AI-Powered Features

  • Real-time Arabic speech recognition
  • Azure Speech Services integration
  • Pronunciation accuracy scoring
  • Cultural appropriateness feedback

🎨 Modern User Interface

  • Clean, intuitive design following modern UX principles
  • Dark/light theme support
  • Responsive layouts for all screen sizes
  • Accessibility features for inclusive learning

Project Structure

Baian/
├── src/                   # React Native mobile app source
│   ├── components/        # Reusable UI components
│   │   ├── ArabicLetterboard.tsx  # Arabic letter grid component
│   │   └── TTSButton.tsx  # Text-to-speech button for Arabic
│   ├── screens/           # App screens and navigation
│   │   ├── DashboardScreen.tsx    # Main dashboard with letterboard
│   │   └── WelcomeScreen.tsx      # Welcome screen with Arabic branding
│   ├── data/              # App data and configurations
│   │   └── scenarios.ts   # Arabic conversation scenarios
│   ├── constants/         # App constants and themes
│   │   └── theme.ts       # Arabic-themed colors and styling
│   └── utils/             # Utility functions
├── backend/               # Python Flask API server
│   ├── main.py           # Main server with Arabic endpoints
│   └── requirements.txt   # Python dependencies
├── package.json          # React Native dependencies
└── README.md

Getting Started

Prerequisites

Mobile App Setup

  1. Navigate to the mobile app directory:

    cd baian
  2. Install dependencies:

    npm install
  3. Start the Expo development server:

    npx expo start
  4. Run on device:

    • Install Expo Go app on your mobile device
    • Scan the QR code displayed in the terminal

API Endpoints

The backend provides these Arabic-specific endpoints:

  • GET /api/letters - Get all Arabic letters with metadata
  • GET /api/letters/{id}/words - Get 10 words for a specific letter
  • GET /api/quiz/{letter_id} - Get quiz questions for a letter
  • POST /api/synthesize-arabic - Generate Arabic speech audio
  • POST /api/analyze-arabic-speech - Analyze Arabic pronunciation

Backend API Setup

  1. Navigate to the backend directory:

    cd backend
  2. Create a virtual environment (recommended):

    python -m venv venv
    # On Windows:
    venv\Scripts\activate
    # On macOS/Linux:
    source venv/bin/activate
  3. Install Python dependencies:

    pip install -r requirements.txt
  4. Configure environment variables: Create a .env file in the backend directory:

    AZURE_OPENAI_KEY=your_openai_key
    AZURE_OPENAI_ENDPOINT=your_openai_endpoint
    AZURE_OPENAI_VERSION=2023-05-15
    AZURE_SPEECH_KEY=your_speech_key
    AZURE_SPEECH_REGION=your_speech_region
    IP_ADDRESS=your_local_ip_address
  5. Run the Flask server:

    python main.py

Technology Stack

Frontend

  • React Native - Cross-platform mobile development
  • React - Web application framework
  • TypeScript - Type-safe JavaScript development
  • Tailwind CSS - Utility-first CSS framework

Backend

  • Python Flask - Lightweight web framework
  • Azure OpenAI - AI-powered learning assistance
  • Azure Speech Services - Speech recognition and synthesis

Development Tools

  • Expo - React Native development platform
  • Vite - Fast web development build tool
  • ESLint - Code quality and consistency

Contributing

We welcome contributions to make Baian even better! Please feel free to:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

License

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

Support

For support, questions, or feedback:

  • Create an issue in this repository
  • Contact the development team
  • Check our documentation

New Features in Baian

🆕 Arabic Letterboard

  • Interactive 28-letter Arabic alphabet grid
  • Tap any letter to hear pronunciation
  • View curated words starting with each letter
  • Take quizzes to test your knowledge

🆕 Arabic Conversation Practice

  • Restaurant scenario: Order food in Arabic
  • Friend chat: Casual Arabic conversations
  • Business meeting: Professional Arabic communication

🆕 Enhanced Speech Recognition

  • Arabic-specific pronunciation assessment
  • Cultural appropriateness feedback
  • Real-time transcription and analysis

Baian - Making Arabic learning smarter, more accessible, and more engaging for everyone. 🌟

بيان - طريقة أذكى لتعلم العربية 📚

About

Baian is an Arabic learning app that blends an multi-dialect conversation practice and AI‑driven pronunciation feedback into one smart platform, making Arabic more intuitive and practical to master

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors