Я пытаюсь использовать аудиоклассификатор TensorFlow Lite (созданный с помощью Teachable Machine) на Flutter, но когда начинается распознавание, я получаю это исключение:
MissingPluginException (реализация для прослушивания метода на канале FileRecognitionStream не найдена)
Вот код, с которого начинается распознавание:
Future<void> stopRecording() async {
try {
String? path = await recorder.stop();
setState(() {
isListening = false;
recordingPath = path!;
recognitionStream = TfliteAudio.startFileRecognition(
sampleRate: 44100,
audioDirectory: recordingPath,
);
recognitionStream.listen((event) {
recognition = event["inferenceTime"];
inferenceTime = event["recognitionResult"];
}).onDone(() {
print("DONE");
});
});
} catch (e) {
print('Error Start Recording: $e');
}
}
Когда запись останавливается, создается файл, путь к которому передается классификатору. Я запускаю приложение в Интернете, когда начинается запись, я разрешаю Chrome использовать микрофон, и как только он прекращает запись, я получаю исключение.
@JaiminRaval Да, но не сработало.
я думаю, что tflite audio не поддерживает Интернет. это только для Android и iOS
Да, он не работает в Интернете. Вы можете увидеть платформы, на которых работает каждый пакет, на его странице pub.dev.





MissingPluginException означает, что используемый вами код не может работать на целевой платформе.
В вашем случае, я думаю, вы используете пакет tflite_audio: https://pub.dev/packages/tflite_audio и пытаетесь запустить свой код в Интернете. Но согласно приведенной выше ссылке пакет предназначен для работы только на Android и IOS. Вот почему вы получаете ошибку.
Чтобы решить вашу проблему, вам придется поискать другой пакет, поддерживающий веб-платформу, или создать собственный инструмент самостоятельно. Вы можете просмотреть некоторые интересные аудиопакеты здесь: https://fluttergems.dev/audio/
Вы пытались остановить работающее приложение и открыть его снова?