MissingPluginException с использованием аудиоклассификатора TensorFlow Lite на Flutter

Я пытаюсь использовать аудиоклассификатор 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 использовать микрофон, и как только он прекращает запись, я получаю исключение.

Вы пытались остановить работающее приложение и открыть его снова?

Jaimin Raval 06.03.2024 11:06

@JaiminRaval Да, но не сработало.

John 06.03.2024 12:52

я думаю, что tflite audio не поддерживает Интернет. это только для Android и iOS

magesh magi 06.03.2024 13:37

Да, он не работает в Интернете. Вы можете увидеть платформы, на которых работает каждый пакет, на его странице pub.dev.

HJo 06.03.2024 15:33
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
4
74
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

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

Чтобы решить вашу проблему, вам придется поискать другой пакет, поддерживающий веб-платформу, или создать собственный инструмент самостоятельно. Вы можете просмотреть некоторые интересные аудиопакеты здесь: https://fluttergems.dev/audio/

Другие вопросы по теме