Управление большими моделями Vosk в Android JavaJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Управление большими моделями Vosk в Android Java

Сообщение Anonymous »

Я собираюсь использовать библиотеку «воск» в своем проекте Android, написанном на Java. Первоначально я мог выполнять задачи преобразования речи в текст, используя небольшую и легкую модель. Однако я не знаю, как работать с более крупными и сложными моделями. Всякий раз, когда я пытаюсь включить файлы модели в свое приложение, я сталкиваюсь с ошибкой «java.lang.OutOfMemoryError». Кроме того, мне не хватает информации о том, как загрузить файлы модели из памяти устройства. Буду очень признателен за любые рекомендации по эффективной работе с большими моделями в моем проекте Android. это мои коды:
публичный класс SpeakToText реализует RecognitionListener {

Код: Выделить всё

private final String VOSK_TAG = "SpeakRecognizing";

private Context context;
private Model model;
private SpeechService speechService;
private SpeechStreamService speechStreamService;

public void initModel() {
StorageService.unpack(context, "vosk-model-small-fa-0.4", "model",
(model) -> {
this.model = model;
Toast.makeText(context, "Ready", Toast.LENGTH_SHORT).show();
recognizeMicrophone();
},
(exception) -> setErrorState("Failed to unpack the model" + exception.getMessage()));
}

@Override
public void onResult(String hypothesis) {
Log.i("TAG", hypothesis);
}

@Override
public void onFinalResult(String hypothesis) {
if (speechStreamService != null) {
speechStreamService = null;
}
Log.i(VOSK_TAG, "onFinalResult: " + hypothesis);
}

@Override
public void onPartialResult(String hypothesis) {
Log.i(VOSK_TAG, "onPartialResult: " + hypothesis);
}

@Override
public void onError(Exception e) {
setErrorState(e.getMessage());
Log.e(VOSK_TAG, "onError: ", e);
}

@Override
public void onTimeout() {
Log.i(VOSK_TAG, "onTimeout: ");
}

private void setErrorState(String message) {

}

public void recognizeMicrophone() {
if (speechService != null) {
speechService.stop();
speechService = null;
} else {
try {
Recognizer rec = new Recognizer(model, 16000.0f);
speechService = new SpeechService(rec, 16000.0f);
speechService.startListening(this);
} catch (IOException e) {
setErrorState(e.getMessage());
}
}
}

public void pause(boolean checked) {
if (speechService != null) {
speechService.setPause(checked);
}
}
}
Я хочу, чтобы либо модель помещалась в файлы проекта без ошибок и запускалась, либо файл модели импортировался с мобильного устройства память.Спасибо.
Обновление:
Я вручную скопировал файл модели в нужную папку (\Internal Shared Storage\Android\data\com .example.myapp\files\model). Теперь я не знаю, как импортировать эту модель в приложение.

Подробнее здесь: https://stackoverflow.com/questions/780 ... droid-java
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Управление большими моделями Vosk в Android Java
    Гость » » в форуме JAVA
    0 Ответы
    16 Просмотры
    Последнее сообщение Гость
  • Управление большими моделями Vosk в Android Java
    Anonymous » » в форуме Android
    0 Ответы
    17 Просмотры
    Последнее сообщение Anonymous
  • Разница между линейными моделями PanelOLS и статистическими моделями OLS
    Anonymous » » в форуме Python
    0 Ответы
    54 Просмотры
    Последнее сообщение Anonymous
  • Как бороться с большими моделями Стэнфордского НЛП, находящимися в стадии разработки?
    Anonymous » » в форуме C#
    0 Ответы
    20 Просмотры
    Последнее сообщение Anonymous
  • Используйте микрофон в Java для распознавания речи с помощью VOSK
    Anonymous » » в форуме JAVA
    0 Ответы
    45 Просмотры
    Последнее сообщение Anonymous

Вернуться в «JAVA»