DaVoice Integration Guides
Step-by-step guides to integrate wake word detection into your applications across all major platforms
New to voice activation? Read what a wake word is and how wake word detection works before choosing an integration path.
Flutter Integration Guide
📦 Repository
GitHub: https://github.com/frymanofer/Flutter_WakeWordDetection
Flutter plugin for wake word detection on iOS and Android.
Step 1: Add Dependency
Add to pubspec.yaml:
dependencies:
flutter:
sdk: flutter
davoice_wake_word: ^1.0.0
permission_handler: ^10.0.0Step 2: Platform Configuration
iOS Configuration
Add to ios/Runner/Info.plist:
<key>NSMicrophoneUsageDescription</key> <string>This app needs microphone access for voice commands</string>
Android Configuration
Add to android/app/src/main/AndroidManifest.xml:
<uses-permission android:name="android.permission.RECORD_AUDIO" />
Step 3: Implementation Example
import 'package:flutter/material.dart';
import 'package:davoice_wake_word/davoice_wake_word.dart';
import 'package:permission_handler/permission_handler.dart';
class WakeWordScreen extends StatefulWidget {
@override
_WakeWordScreenState createState() => _WakeWordScreenState();
}
class _WakeWordScreenState extends State<WakeWordScreen> {
final DaVoiceWakeWord _wakeWord = DaVoiceWakeWord();
bool _isListening = false;
String _lastDetection = 'No detections yet';
@override
void initState() {
super.initState();
_requestPermissions();
_initializeWakeWord();
}
Future<void> _requestPermissions() async {
await Permission.microphone.request();
}
Future<void> _initializeWakeWord() async {
try {
await _wakeWord.initialize(
modelPath: 'assets/hey_jarvis.onnx',
threshold: 0.97,
onDetection: (result) {
setState(() {
_lastDetection = 'Detected at ${DateTime.now()}';
});
print('Wake word detected! Confidence: ${result.confidence}');
},
);
} catch (e) {
print('Error initializing wake word: $e');
}
}
void _toggleListening() async {
if (_isListening) {
await _wakeWord.stop();
} else {
await _wakeWord.start();
}
setState(() {
_isListening = !_isListening;
});
}
@override
void dispose() {
_wakeWord.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('DaVoice Wake Word'),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Icon(
_isListening ? Icons.mic : Icons.mic_off,
size: 100,
color: _isListening ? Colors.blue : Colors.grey,
),
SizedBox(height: 20),
Text(
_lastDetection,
style: TextStyle(fontSize: 18),
),
SizedBox(height: 40),
ElevatedButton(
onPressed: _toggleListening,
child: Text(_isListening ? 'Stop Listening' : 'Start Listening'),
),
],
),
),
);
}
}Step 4: Add Model Assets
Create assets/ folder and update pubspec.yaml:
flutter:
assets:
- assets/hey_jarvis.onnx
- assets/ok_assistant.onnx✅ Advanced Features
- • Configure sensitivity with threshold parameter
- • Implement background service for always-on detection
- • Add multiple wake word models
- • Handle errors and edge cases gracefully
Need Help Getting Started?
Our team provides free integration support and custom wake word training for all platforms.
Free Development Support • Code Examples • Community Discord • 1-2 Week Custom Model Turnaround