Вопрос

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

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

В ответах на мой первоначальный вопрос один респондент предположил, что автокорреляция может работать хорошо, если вы знаете, что примечания находятся в определенном диапазоне.Интересно, будет ли автокорреляция работать еще лучше, если вам нужно будет проверять только наличие или отсутствие определенной ноты (+/- х центов).

Эти методы:

  • Поцелуй БПФ
  • ФФТВ
  • Дискретное вейвлет-преобразование
  • автокорреляция
  • анализ пересечения нуля
  • октавные фильтры
  • Дедвейт

Любые мысли будут оценены по достоинству.

Это было полезно?

Решение

По мере того, как вы это описываете, вам просто нужно определить, присутствует ли конкретная высота звука.Очень простой (быстрый) детектор просто записывал бы эквивалент одного периода сигнала, затем записывал другой период и коррелировал их, как упрощенная (с одной задержкой) автокорреляция.Если есть высокое совпадение, вы знаете, что записываемый сигнал повторяется примерно с одним и тем же периодом или его гармоникой.

Например, чтобы обнаружить 1 кГц, запишите 1 мс звука (48 выборок с частотой 48 кГц), затем запишите еще 1 мс и сравните их (корреляция = умножение всех выборок и суммирование).Если они совпадают (корреляция выше некоторого порога), то вы слушаете частоту 1 кГц, 2 кГц, 3 кГц или какую-либо другую частоту.Проведение нескольких периодов придаст вам больше уверенности в матче.

Истинная автокорреляция подскажет вам, какая именно гармоника, особенно если это важно для вас.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top