Определить частоту аудиовхода - Java? - PullRequest
2 голосов
/ 30 ноября 2010

Я исследовал это время от времени несколько месяцев.

Я ищу библиотеку или рабочий пример кода для определения частоты на аудиовходе звуковой карты или для обнаружения присутствия данного набора частоты. Я склоняюсь к Java, но реальным требованием является то, что должно быть чем-то более высокого уровня / проще, чем C , а предпочтительно кроссплатформенное . Linux будет целевой платформой, но я хочу оставить опции открытыми для Mac или, возможно, даже для Windows. Python также был бы приемлем, и если кто-нибудь знает язык, который облегчит эту задачу / имеет лучшие предварительно написанные библиотеки, я с радостью рассмотрю его.

По сути, у меня есть определенный набор пар частот , который появится на аудиовходе звуковой карты, и мне нужно иметь возможность обнаружить эту пару и затем ... сделать что-то, например, записать после максимальной продолжительности аудио, а затем выполните какое-либо действие. Потенциальный прогон может содержать, например, 5-10 пар, определенных во время выполнения, не может быть скомпилирован в : что-то вроде частоты 1 на ~ 1 секунду, максимальной задержки ~ 1 секунды, частоты 2 на ~ 1 второй.

Я нашел предложения о выполнении алгоритма БПФ или Гертцеля, но не смог найти ничего, кроме простейшего примера кода, который, казалось, не дал полезных результатов. Я также обнаружил некоторые ограничения для звука Java и невозможности сэмплирования с достаточно высокой скоростью, чтобы получить необходимое разрешение.

Есть предложения по использованию библиотек или, возможно, работающий код? Я признаю, что я не склонен к математике, поэтому я потерял некоторые технические описания того, как на самом деле работают алгоритмы.

Ответы [ 2 ]

0 голосов
/ 08 октября 2015

Проверьте SNDPeek, это кроссплатформенное приложение C ++, которое извлекает все виды информации из живого аудио; https://github.com/RobQuistNL/sndpeek

0 голосов
/ 25 февраля 2011

Если вы нацелены на обнаружение пар частот , то ваша работа очень похожа на DTMF детектор.

Попробуйте поискать DTMF в таких местах, как sourgeforge , вы найдете детекторы во многих языках программирования. Частотные пары, расположенные вдоль спектра, кажутся даже более строгими, чем ваши спецификации, поэтому вам следует хорошо адаптировать детектор DTMF к вашему входу.

...