StevenAntonios/voice_control_smart_home

A smart home mobile application that allows users to control their home devices using voice commands (English & Arabic).

Dart

0

6 commits

updated Jun 5, 2025

See the code

README

🏠 Voice Control Smart Home - Flutter Application

A smart home mobile app that allows users to control home devices using voice commands in both English and Arabic. The system integrates AI-powered speech recognition, IoT microcontrollers, and real-time communication.


📱 Features

  • 🎙️ Voice Control (Whisper AI)
  • 🔌 Real-time Device Control (ESP32)
  • 🌡️ Sensor Monitoring (Temperature, Humidity, Light)
  • 🔐 Firebase Authentication
  • 🌐 HTTP + WebSocket Communication
  • 📦 Flutter Bloc (Cubit) State Management
  • 🌍 Multi-language support (EN/AR)

⚙️ Tech Stack

LayerTechnologies
Mobile AppFlutter (Dart)
BackendPython Flask
AIOpenAI Whisper
MicrocontrollerESP32
CommunicationHTTP & WebSocket
AuthenticationFirebase
State ManagementBloc (Cubit)

🧠 Architecture Overview

  • The mobile app captures user voice commands.
  • Audio is sent to the Flask backend for processing.
  • Whisper AI converts speech-to-text.
  • Commands are parsed and sent to ESP32.
  • ESP32 executes the command and sends back status updates in real-time via WebSocket.

📡 Data Flow

User → Mobile App → Flask Backend → Whisper AI → ESP32 → WebSocket Updates → Mobile App

🚀 Future Improvements

  • ✅ Fingerprint Authentication for sensitive actions.
  • ✅ Full user settings and scheduling automation.
  • ✅ More advanced device grouping.

📸 Demo

UI Screenshots

Login Home Option Voice Control Devices

Video Demos

UML Class Diagram

Class Diagram

🛠️ How to Run

1️⃣ Clone the repository

git clone https://github.com/your-username/your-repo-name.git
cd your-repo-name

2️⃣ Setup Flutter App

Make sure Flutter SDK is installed:

flutter --version
flutter pub get
flutter run

3️⃣ Configure Backend Server

Install requirements:

cd backend/
pip install -r requirements.txt

Make sure Whisper model is downloaded properly (since it's large).

Start Flask server:

python app.py

4️⃣ ESP32 Setup

Flash the ESP32 firmware to handle device control.
Ensure ESP32 is connected via WebSocket + HTTP to match mobile & backend.

5️⃣ Firebase Setup

Create Firebase project.
Enable Authentication → Email/Password.
Download google-services.json and place inside:
/android/app/google-services.json

⚠ Notes:

  • Make sure both Mobile & Backend & ESP32 are running on the same network.
  • WebSocket IP & HTTP URLs should be correctly configured in code.

🔗 Contact


🔐 License

This project is for educational and portfolio purposes.

StevenAntonios/voice_control_smart_home

A smart home mobile application that allows users to control their home devices using voice commands (English & Arabic).

Dart

0

6 commits

updated Jun 5, 2025

See the code

README

🏠 Voice Control Smart Home - Flutter Application

A smart home mobile app that allows users to control home devices using voice commands in both English and Arabic. The system integrates AI-powered speech recognition, IoT microcontrollers, and real-time communication.


📱 Features

  • 🎙️ Voice Control (Whisper AI)
  • 🔌 Real-time Device Control (ESP32)
  • 🌡️ Sensor Monitoring (Temperature, Humidity, Light)
  • 🔐 Firebase Authentication
  • 🌐 HTTP + WebSocket Communication
  • 📦 Flutter Bloc (Cubit) State Management
  • 🌍 Multi-language support (EN/AR)

⚙️ Tech Stack

LayerTechnologies
Mobile AppFlutter (Dart)
BackendPython Flask
AIOpenAI Whisper
MicrocontrollerESP32
CommunicationHTTP & WebSocket
AuthenticationFirebase
State ManagementBloc (Cubit)

🧠 Architecture Overview

  • The mobile app captures user voice commands.
  • Audio is sent to the Flask backend for processing.
  • Whisper AI converts speech-to-text.
  • Commands are parsed and sent to ESP32.
  • ESP32 executes the command and sends back status updates in real-time via WebSocket.

📡 Data Flow

User → Mobile App → Flask Backend → Whisper AI → ESP32 → WebSocket Updates → Mobile App

🚀 Future Improvements

  • ✅ Fingerprint Authentication for sensitive actions.
  • ✅ Full user settings and scheduling automation.
  • ✅ More advanced device grouping.

📸 Demo

UI Screenshots

Login Home Option Voice Control Devices

Video Demos

UML Class Diagram

Class Diagram

🛠️ How to Run

1️⃣ Clone the repository

git clone https://github.com/your-username/your-repo-name.git
cd your-repo-name

2️⃣ Setup Flutter App

Make sure Flutter SDK is installed:

flutter --version
flutter pub get
flutter run

3️⃣ Configure Backend Server

Install requirements:

cd backend/
pip install -r requirements.txt

Make sure Whisper model is downloaded properly (since it's large).

Start Flask server:

python app.py

4️⃣ ESP32 Setup

Flash the ESP32 firmware to handle device control.
Ensure ESP32 is connected via WebSocket + HTTP to match mobile & backend.

5️⃣ Firebase Setup

Create Firebase project.
Enable Authentication → Email/Password.
Download google-services.json and place inside:
/android/app/google-services.json

⚠ Notes:

  • Make sure both Mobile & Backend & ESP32 are running on the same network.
  • WebSocket IP & HTTP URLs should be correctly configured in code.

🔗 Contact


🔐 License

This project is for educational and portfolio purposes.