Определение высоты тона / частоты микрофона (в частности, ActionScript 3.0) - PullRequest
1 голос
/ 05 марта 2012

Итак, я пытаюсь определить среднюю частоту звука, записанного с микрофона.Можно предположить, что этот звук будет в формате mp3 или wav.Моя конечная цель - сделать это вживую (или достаточно близко), но сейчас достаточно просто найти среднюю частоту mp3 или wav.

Мне невероятно трудно найти какие-либо классы в ActionScript 3.0, которые могут помочь мне с этой задачей.Кто-нибудь может мне помочь, возможно, предложив классы в AS3.0 или алгоритмы для меня, чтобы посмотреть на эту конкретную задачу?

Спасибо всем заранее.

1 Ответ

0 голосов
/ 09 мая 2012

Лучший подход зависит от анализируемого аудио. Для монофонического ввода, такого как певец, флейта или труба, может хорошо подойти автокорреляционный подход. Идея заключается в том, что вы пытаетесь найти период формы волны, сравнивая его с собой на разных интервалах, чтобы найти наилучшее совпадение. Представьте, что у вас есть звуковая волна с периодом, который начинается заново после каждых 400 сэмплов. Если бы вам пришлось перебирать некоторое количество выборок, всегда сравнивая выборку по индексу i с выборкой по индексу (i + 400), возможно, вычитая одну из другой и добавляя этот результат к промежуточной сумме, вы обнаружите, что ваш итого было бы 0, если бы волна идеально соответствовала сама себе на этом интервале 400. Конечно, вы не знаете, что 400 - ваше магическое число, и поэтому вам нужно проверить различные интервалы, которые попадают в ваш возможный диапазон , Вы можете исключить интервалы, которые привели бы к частоте, которая была бы невероятно низкой или высокой. Вы также, очевидно, не ожидаете найти идеальное совпадение, но, вообще говоря, интервал, в котором совпадение наиболее близко, является вашей частотой для монофонического тона.

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

...