ensureInitialized method
Requests microphone permission and initialises the STT engine once.
Returns true when ready to listen.
Implementation
Future<bool> ensureInitialized() async {
if (_initialized) return _available;
if (!kIsWeb) {
final status = await Permission.microphone.request();
if (!status.isGranted) {
_initialized = true;
_available = false;
return false;
}
}
final ok = await _stt.initialize();
_initialized = true;
_available = ok;
return ok;
}