A premium Flutter application that demonstrates a fully hands-free voice command interface. Designed for high-end user experiences, it allows users to place orders (like coffee) using natural voice interaction, powered by a sophisticated state machine.
- Wake Word Detection: Activated by "Hey Bad" using Picovoice Porcupine.
- Natural Voice Ordering: Uses Speech-to-Text (STT) for capturing complex commands.
- Voice Feedback: Uses Text-to-Speech (TTS) for order confirmation and status updates.
- Interactive UI: Features premium aesthetics with
AvatarGlow, custom animations, and Google Fonts (Inter). - State Machine Architecture: Handles transitions between
Idle,Listening, andConfirmingstates seamlessly. - Local Notifications: Provides visual feedback for placed orders.
- Scalable Infrastructure: Clean Architecture with dependency injection using
GetIt.
- Flutter SDK
- Android Studio / VS Code
- Picovoice AccessKey (Free Tier)
-
Clone the repository:
git clone https://github.com/your-username/voice-command-ai.git cd voice-command-ai -
Install dependencies:
flutter pub get
-
Configure AccessKey: Open
lib/core/constants/app_constants.dartand replace thepicovoiceAccessKeywith your own key from the Picovoice Console. -
Run the app:
flutter run
lib/
βββ core/
β βββ constants/ # App-wide constants & API keys
β βββ services/ # Service layer (STT, TTS, WakeWord, Notifications)
βββ models/ # Data models (OrderModel)
βββ presentation/
β βββ screens/ # UI Screen layers (Home, All Orders)
β βββ widgets/ # Reusable UI components
βββ injection_container.dart # Dependency Injection setup
To ensure the wake word detection works in production (Release Mode), specialized configurations are included:
- Proguard Rules: Specific rules in
android/app/proguard-rules.proto prevent the Picovoice SDK from being stripped or obfuscated. - Resource Optimization: Custom
aaptOptionsinbuild.gradle.ktsto ensure.ppnfiles (wake word models) are not compressed. - Shrinking Settings:
isShrinkResourcesis disabled in release builds to protect native library dependencies.
Important
When building for release, ensure you run flutter clean before flutter build apk --release to apply the latest Proguard rules.
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License.