Я пытаюсь сделать приложение для Android, которое проверяет, является ли записанный голос человека высокой частотой или нет. Я закончил до записи, но не знаю, как продолжить дальше. После поиска я обнаружил, что алгоритм БПФ должен использоваться, но проблема заключается в том, как получить значения массива, которые должны быть переданы как входные данные алгоритма. Может ли кто-нибудь помочь?обработка человеческого голоса
ответ
Предполагая, что вы определили, что подразумевается под «содержит высокую частоту», и вам просто нужна мера этого (нет необходимости визуализировать частотное содержание на графике), нет необходимости вычислять БПФ.
Я бы вычислил среднеквадратичные значения сигнала (мера общей энергии), затем применил фильтр нижних частот для данных (во временной области) и снова вычислил значения RMS на отфильтрованном сигнале. Сравнение потери энергии - это ваш показатель того, насколько высокое частотное содержание отвечает за ваше первоначальное значение энергии.
Ответ на комментарий:
Вам нужны данные для того, чтобы обработать его! Возможно, я не понимаю ваш вопрос? из чего вы хотите «получить точные значения« Вы заявили, что вы »завершили запись, поэтому я предполагаю, что у вас есть сигнал, хранящийся в памяти, теперь вам нужно вычислить полную энергию сигнала для того, чтобы либо A) вычислить изменение энергии после фильтрации или B) сравнить энергию с некоторым предопределенным жестко заданным значением (bad idea btw).
В любом случае это должно быть сделано во временной области, если все, что вы хотите, является мерой/значением. Как указано в теореме Парсеваля, нет необходимости выполнять интенсивную обработку процессора и переходить в частотную область для вычисления энергии сигнала. http://en.wikipedia.org/wiki/Parseval «s_theorem
РАЗРАБОТКА:
При записи голоса пользователя (сбор данных для вашего сигнала), необходимо убедиться, что данные не теряются и правильно хранятся в памяти (в некотором массиве типа объекте) и что у вас есть ссылка на этот массив. После сбора данных вам не нужно преобразовывать свой сигнал в значения, он уже сохраняется как последовательность значений. Поэтому теперь вы готовы выполнить некоторый расчет, чтобы получить меру «сколько высоких частот есть» ...
Значение среднеквадратичного значения (среднеквадратичное значение) является стандартизированным способом измерения полной энергии сигнал - вы берете «квадратный корень из среднего значения всех квадратов значений». См. http://mathworld.wolfram.com/Root-Mean-Square.html
RMS быстро и легко вычислить, но он дает вам энергию общего сигнала, низкочастотных компонентов и компонентов высокой частоты вместе, и нет способа узнать, связано ли высокое значение RMS с большим количеством высокочастотных компонентов или низкочастотных компонентов. Поэтому, я предлагаю, вы удаляете высокочастотные компоненты и снова вычисляете значение RMS, чтобы увидеть, насколько изменилась полная энергия при этом, т.е. насколько высокие частоты отвечали за исходное «сырое» значение RMS. Разделение двух значений - это показатель отношения высокой частоты ... Я не уверен, что это то, что вы хотите сделать, но то, что я буду делать.
Для фильтрации нижних частот вам необходимо выбрать значение частоты Fcut и сказать что-либо по этому вопросу считается «высоким», а затем применить фильтр нижних частот с точкой отсечки, установленной на Fcut, применение фильтра выполняется в временной области с помощью свертки.
Обычно они используют класс AudioRecord. Он записывает необработанные данные PCM, затем они могут выполнять некоторые вычисления по данным.
Будет ли запись сохранена на SD-карте? –
Могу ли я установить максимальную продолжительность записи звука? –
- 1. Удаление человеческого голоса из видео или аудиофайла
- 2. Какой лучший аудиоформат для человеческого голоса?
- 3. определения основной частоты человеческого голоса в прошивкой
- 4. Обнаружение человеческого голоса из ввода аудиофайла
- 5. Человеческого формат диапазон дат разбор
- 6. конвертировать точно азимут градусов человеческого
- 7. Обнаружение человеческого тела в Javascript
- 8. Ширина и высота человеческого тела
- 9. Обработка аудиофайла с помощью python или php
- 10. Аутентификация голоса
- 11. Доступность API для отслеживания других объектов, кроме человеческого жестов для Windows Kinect
- 12. PHP Unix время человеческого времени отображения неверно
- 13. рельсы 7.days в читаемую строку человеческого
- 14. дата Convert/время от читаемой человеческого формата
- 15. Отслеживание человеческого блоба, связанного с обнаружением лица
- 16. определение человеческого языка из текста :: системная структура
- 17. Получение человеческого считываемый выход Spring циклических ссылок
- 18. создание основного человеческого теста с php
- 19. рубин DateTime выход человеческого часового пояса
- 20. Запуск Растягиваемые Модели для человеческого разбора кода
- 21. Каковы некоторые решения для моделирования человеческого тела
- 22. Нормализация FFT Данные для человеческого слуха
- 23. Есть ли ресурс большого количества человеческого текста?
- 24. Силуэт изображения человеческого тела с использованием Matlab
- 25. 3d моделирование человеческого тела в браузере?
- 26. Часть человеческого тела HAAR Каскадный классификатор
- 27. Преобразовать Google Analytics датировать читаемое значение человеческого
- 28. Java - преобразование человеческого читаемого размера в байты
- 29. Библиотеки распознавания голоса Ruby
- 30. Распознавание голоса: управление голосом
, если я должен это сделать, тогда мне потребуются точные значения звукового сигнала. Можно ли получить точные значения? –
см. Мой ответ выше – Fredrik
записанный голос хранится в памяти, но для выполнения вычислений мне нужно преобразовать записанный голос в цифры rght? это то, что я имею в виду по значениям –