https://github.com/alphacep/vosk-android-demo
Когда
Когда угодно, при компиляции или в рантайме
модельку хочешь поменять?
Класс из либы где то в своем коде получаешь как зависимость и работаешь с ним?
Не, скармливать байты из AudioRecord извне
Ну але. Опиши задачу. Если тебе надо в модель vosk скармливать аудиоданные то vosk умееет читать данные из Byte InputStream. То есть твоя задача превратить эти данные (массивы отсчетов) в стрим. Я ее решил когда писал диктофон с Воск встроенным, опиши подробнее что пишешь - пришлю тебе ссылку на свою либу которая решает твою задачу в пять строк
А как? Вот оно читает звук внутри себя, никаких стримов нет short[] buffer = new short[bufferSize]; while (!interrupted() && ((timeoutSamples == NO_TIMEOUT) || (remainingSamples > 0))) { int nread = recorder.read(buffer, 0, buffer.length);
Неа, смотри его андроид демку, не лезь внутрь. У джава апи два метода - распознать с микрофона и распознать стрим
А, типа через файл?
У меня есть либа превращающая входные данные с микрофона в байтовый inputstream. Если нужна пром.обработка - пишешь класс для обработки потока с входным и выходным потоками
https://github.com/psa98/AudioStreams Сэкономил тебе две недели мучений. Что пишешь то?
Коммуникатор со стартом по фразе
Эта либа уже в звёздочках) Слуш, а не сталкивался с тем, что два аудиопотока надо мержить, чтобы слушать двух человек одновременно?
Ну, делал с постоянным слушанием Воск звука и реакцией на фразу демку для одного проекта. С той либой было несложно, но жрать же будет батарею.
Ну надо будет - смержишь, это что то типа класса реализующего АудиоИнпутСтрим моей либы, на входе два аудио стрима, класс читает из них в цикле все кусками, перегоняет в 16-битные отсчеты, суммирует значения двух каналов и делит пополам, результат кидает в буфер разумного размера из которого другие классы забирают данные как из инпутстрима
Не думал, что надо просто просуммировать. Там же всякие преобразования фурье и тд и тп Просто сложить и разделить? Серьёзно?
Сложи и послушай - увидишь
Будет ужасный результат - придумаю чего
А если один молчит? Второй будет тише слышен
Можно суммить и ограничивать сверху по формуле модул результата, так что бы не было больше 32000 величина отсчета
Обсуждают сегодня