Skip to content

A video call apps to enable deaf people to communicate with normal people using sign language recognition and speech-to-text

License

Notifications You must be signed in to change notification settings

baharudin-yusup/salingsapa

Repository files navigation

App Banner

Get it on Google Play Get it on Google Play

Salingsapa

Codemagic build status

Salingsapa is a Flutter application designed to make video calls more inclusive. The app focuses on improving communication for individuals with hearing impairments by incorporating Sign Language Recognition and Speech-to-Text features. Built following Clean Architecture principles and utilizing BLoC state management, Salingsapa ensures a robust and scalable solution.

Enjoy seamless, high-quality video calls powered by Agora and supported by a strong Firebase backend. Salingsapa aims to make communication easier and more accessible for everyone.

πŸš€ Features

Inclusive Video Calls

  • Conduct video calls with a unique emphasis on inclusivity.
  • Features advanced Sign Language Recognition and Speech-to-Text for enhanced communication.
  • Seamless video calls powered by WebRTC with Agora for high-quality and efficient communication.

Sign Language Recognition

  • Employs TensorFlowLite to recognize and interpret Sign Language gestures.
  • Enhances communication for individuals with hearing impairments.

Speech-to-Text Conversion

  • Utilizes native Android and iOS APIs for real-time Speech-to-Text conversion.
  • Converts spoken words into text to aid understanding during calls.

πŸ—‚οΈ Project Structure

The project follows a well-structured directory layout to ensure scalability and maintainability.

configs/
scripts/
lib/
β”œβ”€β”€ core/
β”œβ”€β”€ data/
β”œβ”€β”€ domain/
β”œβ”€β”€ presentation/

For more details, please refer to the PROJECT_STRUCTURE.md.

πŸ› οΈ Technical Specifications

Backend and Infrastructure

  • Firebase: Provides backend services for authentication, messaging, and remote configuration.

Core Technologies

  • Agora RTC Engine: Powers seamless and high-quality video calls using WebRTC.
  • TensorFlowLite: Utilized for Sign Language Recognition to enhance communication for individuals with hearing impairments.
  • BLoC (Business Logic Component): Manages state efficiently, ensuring scalable and maintainable application logic.

Additional Dependencies

  • Dio: Manages HTTP requests for data communication.
  • Flutter Localizations and Intl: Supports multiple languages and localization.
  • Dynamic Color: Enhances the user interface and experience with adaptive color schemes.

Architecture

  • **Clean Architecture **: Ensures the maintainability and scalability of the codebase, separating concerns into distinct layers (presentation, domain, data).

Continuous Integration and Deployment

  • Codemagic: Automates CI/CD processes, streamlining development and deployment.

Machine Learning Model

  • ASL Alphabet Dataset: The Sign Language Recognition model is trained using the ASL Alphabet dataset by Akash.

▢️ How to Run the App

Prerequisites

Before you begin, make sure you have:

  • Flutter installed on your machine.
  • An emulator or a physical device connected for testing.
  • Android SDK (for running the Android app).
  • Cocoapods and Xcode (for running the iOS app).

Steps

  1. Clone the Repository

    git clone https://github.com/baharudin-yusup/salingsapa.git
    cd salingsapa
  2. Run the App

    • Configuring and Running Automatically

      • Visual Studio Code

        1. Open the "Run and Debug" panel.

        2. Choose the appropriate configuration:

          • DEV App
          • PROD App
        3. Run the selected configuration.

      • Android Studio/IntelliJ IDEA

        1. Open the "Run/Debug and Configuration" dropdown.

        2. Choose the appropriate configuration:

          • DEV App (Windows)
          • PROD App (Windows)
          • DEV App (Mac/Linux)
          • PROD App (Mac/Linux)
        3. Run the selected configuration.

    • Configuring and Running Manually

      This example demonstrates how to run the app manually on MacOS in a development environment:

      1. Initialize Environment

        Run the initialize-env.sh script with the --env dev argument to set up the development environment.

        chmod +x ./scripts/initialize-env.sh && ./scripts/initialize-env.sh --env dev
      2. Initialize Firebase Options

        Run the initialize-firebase-options.sh script with the --env dev argument to set up Firebase options for the development environment.

        chmod +x ./scripts/initialize-firebase-options.sh && ./scripts/initialize-firebase-options.sh --env dev
      3. Generate Necessary Files

        Run the following command to generate necessary files and delete any conflicting outputs.

        dart run build_runner build --delete-conflicting-outputs
      4. Install Flutter Packages

        Run the following command to install required Flutter packages.

        flutter pub get
      5. Run the App

        Finally, run the app with the specified flavor and target.

        flutter run --flavor dev --target=lib/main_dev.dart

We hope you find Salingsapa useful and enjoyable to use. If you have any questions, suggestions, or issues, please feel free to open an issue on our GitHub repository.