Я пытаюсь выполнить некоторую обработку звука на Android в режиме реального времени.
На данный момент у меня есть приложение, которое записывает звук в течение заранее определенного времени и сохраняет его в файле WAV, который затем обрабатывается.
Это работает довольно хорошо, но, поскольку меня просто интересует запись импульсных откликов, я подумал, что было бы неплохо, если бы мое приложение автоматически определяло, когда возник импульс, и просто сохраняло образцы за 0,5 сегмента до импульса. и до 1,5 секунд после (всего 2 секунды).
Вот как я имею дело с байтовым массивом файла wav:
double audioSample = (double) (array[i+1] << 8 | array[i] & 0xff)/ 32767.0;
Это дает мне значения между [-1,1], поэтому, допустим, моя идея заключалась бы в рассмотрении импульса любого звука более или менее 0,3. Я думаю, что решение будет заключаться в хранении образцов в буфере и проверке его значений в реальном времени, но я не совсем уверен, как это реализовать.
Вы, ребята, знаете какой-нибудь образец кода или что-нибудь, на что я могу взглянуть?