Предыстория: я работаю над приложением для iPhone (на которое ссылаются в нескольких других публикациях ), которое «слушает» храп / дыхание во время сна и определяет наличие признаков апноэ во сне (в качестве предварительного экрана для «лаборатории сна») тестирование). Приложение, в основном, использует «спектральную разницу» для обнаружения храпа / вдоха, и оно работает довольно хорошо (корреляция около 0,85–0,90) при сравнении с записями в лаборатории сна (которые на самом деле довольно шумные).
Проблема: большинство «спальных» шумов (вентиляторов и т. Д.) Я могу отфильтровать с помощью нескольких методов и часто надежно обнаруживать дыхание на уровнях S / N, когда человеческое ухо не может его обнаружить. Проблема в голосовом шуме. Нет ничего необычного в том, что на заднем плане работает телевизор или радио (или просто кто-то говорит на расстоянии), а ритм голоса близко соответствует дыханию / храпу. Фактически, я запустил запись покойного автора / рассказчика Билла Холма через приложение, и это было по сути неотличимо от храпа в ритме, изменчивости уровня и некоторых других мерах. (Хотя я могу сказать, что, по-видимому, у него не было апноэ во сне, по крайней мере, не во время бодрствования.)
Так что это немного далеко (и, вероятно, часть правил форума), но я ищу некоторые идеи о том, как отличить голос. Нам не нужно как-то отфильтровывать храп (подумал, что это было бы неплохо), но нам просто нужен способ отвергнуть слишком «шумный» звук, который чрезмерно загрязнен голосом.
Любые идеи?
Опубликованные файлы: я разместил некоторые файлы на dropbox.com:
Первый - довольно случайная часть рок-музыки (я полагаю), а вторая - запись разговора покойного Билла Холма. Оба (которые я использую в качестве своих образцов «шума», отличающихся от храпа) были смешаны с шумом, чтобы запутать сигнал. (Это значительно усложняет задачу их идентификации.) Третий файл - это десять минут вашей записи, где первая треть в основном дышит, средняя треть - смешанное дыхание / храп, а последняя треть - довольно устойчивый храп. (Вы получаете кашель за бонус.)
Все три файла были переименованы из «.wav» в «_wav.dat», поскольку многие браузеры безумно затрудняют загрузку wav-файлов. Просто переименуйте их обратно в ".wav" после загрузки.
Обновление: я думал, что энтропия "делает свое дело" для меня, но это оказалось в основном особенностями тестовых случаев, которые я использовал, плюс алгоритм, который не был слишком хорошо разработан. В общем случае энтропия делает для меня очень мало.
Впоследствии я попробовал метод, в котором я вычисляю БПФ (используя несколько различных оконных функций) общей величины сигнала (я пробовал мощность, спектральный поток и несколько других мер), сэмплированных примерно 8 раз в секунду (беря статистику из основного цикла БПФ) что каждые 1024/8000 секунд). Для 1024 сэмплов это время составляет около двух минут. Я надеялся, что смогу увидеть закономерности в этом из-за медленного ритма храпа / дыхания против голоса / музыки (и что это также может быть лучшим способом решения проблемы « изменчивости »), но пока есть намеки паттерна здесь и там, я ничего не могу запереть
( Дополнительная информация: В некоторых случаях БПФ величины сигнала дает очень четкий паттерн с сильным пиком на частоте около 0,2 Гц и гармониками ступеньки. Но в большинстве случаев паттерн почти не настолько различен, и голос и музыка могут генерировать менее отчетливые версии аналогичного паттерна. Может быть какой-то способ вычислить значение корреляции для добродетели, но, похоже, для этого потребуется подгонка кривой к полиному 4-го порядка, и делать это раз в секунду в телефоне кажется нецелесообразным.)
Я также попытался сделать то же самое БПФ со средней амплитудой для 5 отдельных «полос», на которые я разделил спектр. Полосы 4000-2000, 2000-1000, 1000-500 и 500-0. Схема для первых 4 полос была в целом аналогична общей схеме (хотя в полосах более высоких частот отсутствовала реальная «выделяющаяся» полоса и часто исчезающе малый сигнал), но полоса 500-0 в целом была просто случайной.
Щедрость: Я собираюсь дать Натану награду, даже если он не предложил ничего нового, учитывая, что его предложение было самым продуктивным на сегодняшний день. У меня все еще есть несколько баллов, которые я хотел бы наградить кому-то еще, если бы они пришли с некоторыми хорошими идеями.