Человек при помощи мозга может отличить один звук от другого. Например, звук “а” от остальных 43 звуков. Наверное, никто не будет возражать что эта задача - поле деятельности для нейронной сети.
Есть много форматов звуковых файлов, например FLAC, MP3, но самый крутой из всех это придуманный Microsoft формат без сжатия WAV. В файле формата WAV в начале идёт всякая служебная информация, например количество каналов – моно или стерео, частота дискретизации в Герцах и прочее в этом духе.
А затем начинается кусок собственно данных звука. Этот кусок представляет собой простой столбик чисел. Если принять за порядковое число в столбике координату X, а число в ряду за Y можно построить график, который визуально показывает звук.
Вот такой у меня получился звук “ а”. Чем больше амплитуда по оси Y, тем громче звук это я проверил. А вот, к примеру звук “б”:
Увеличенный участок звука “б”:
Такие точечные графики или звуковые осциллограммы называются временные ряды и относятся к математической статистике. Как их сравнивать? Надо, наверное, максимально совместить их между собой. Опыт показал, что лучше совмещаются графики не по максимуму Y, а по первому перепаду по Y равному 3000.
Представляется что небольшие отклонения от нуля по оси Y это тишина поэтому её можно отбросить от сравнения. Поэтому я на глаз выбрал два диапазона в 30067 и в 9093 значений по оси X и назвал их “значимые расстояния”. Теперь остаётся только сравнить попарно значения из значимого расстояния Y у графиков трёх звуков: “а”, второго звука “а” и "б” и дело в шляпе?
Но не тут-то было – оказалось, что при таком сравнении звуки “а" и "б” больше похожи чем два звука “ а ". Я пробовал сравнивать и чистые значения Y и с различными припусками – то есть плюс-минус какими-то величинами – не получается распознавание.
На этом месте у меня идеи иссякли, и я на математическом форуме задал вопрос “С какой стороны подойти к этой проблеме?” Человек ответил, что он бы присмотрелся к огибающей графика. Огибающая графика уменьшает плотность значений на отрезке графика. То есть оставляет не все значения, а только крупных перепадов.
"Окно” взято 300 (примерная длина волны) – просто берём наибольшее Y для верхней огибающей и наименьшее для нижней огибающей. Получились 102 точки. Верхняя огибающая значимого расстояния звука “а”:
Можно переходить к сравнениям. Посравнивал я попарно значения огибающих и понял, что это меня не спасло.
А Вы любите статистику?
Если понравилась статья ставьте лайк и подписывайтесь на канал.