Автор: Артем Распознавание речи - это удобный полигон.
|
|
Здравствуйте, коллеги. Добрался до скоростного инета.
Артем, молодец - правильно говОришь. Кто не понимает - проблемы его. Именно полигон. И во многом лучше чем зрение. У зрения нет обратного канала. Речь - идеальный кластеризированный поток. Поэтому роем, товарищи!
Я, сидя в деревне, между кладкой стен из пеноблоков, кое-что осмыслил. В ближайшее время попробую это воплотить. А пока мысли в слух.
Рефлексируя обо всем, что и почему лезло в голову могу высказать:
1. Фонемная функция Пирогова хороша - это первая информация, которая вздыбила моск.
2. Начал ее интерпретировать, пришлось вспомнить опять MEL-шкалу, которую я в своих версиях программы отправил в утиль из-за полного отсутсвия полезности. Полезность и информативность я, повторяю в сотый раз, проверяю по выходу.
3. Помятуюя о частоте основного тона, чему были посвещаны страницы нашей ветки, решил воспроизвести мел-шкалу определенным образом, а не так как советует статья:
http://habrahabr.ru/post/140828/Получилось то, чего я никак не ожидал.
Ну, вот моя мел-шкала всего из 16 диапазонов:
(6,12,18,24,30,36,42,48,54,60,66,72,78,84,90,106);
Если умножить каждое значение на 25, получатся реальные герцы.
Шкала повторяет интервал при частоте основного тона в 150 гц (6*25), а не логарифмический масштаб, как советует статья. Шкала линейная.
Когда я проиграл, то что сказал в микрофон, получился какой-то голос, явно не мой. Я произнес слово как можно более высоким тоном, а когда проиграл, голос в динамике не изменился. Я об этом писал и попробую предоставить результаты. С этого можно заключить, что подобранные таким образом мел-частоты реализуют некий инвариант относительно частоты основного тона. Разборчивость при этом достаточно хорошая.
Таким образом ковыряясь с одним(фонемная функция), неожиданно получился результат и его надо использовать дальше в системе. Почему раньше этого не было? Да, потому что повторял тупо то, что написано без понимания физического смысла. А здесь смысл в том, что человек все-таки повторяет про себя то, что хочет распознать и повторяет со своими частотами. Если помните, несколько страниц выше я предлагал алгоритмизировать для этого эффекта речевой аппарат. Так вот не надо ничего моделировать. Мел-частоты, подобранные именно таким образом дают желаемый результат.
Далее о функции Пирогова.
Постулат: человек распознает не само частотное распределение, а отношение спектров за время tau. Т.е. изменение спектральной плотности.
Это замечательно. Но кто сказал, что изменение спектральной плотности надо анализировать именно так, как предлагает автор статьи? Не умоляя достоинства этого метода, я все таки вдохновился именно спектром спектра. Наблюдая за поведением локального максимума можно найти алгоритм, который позволит выделить гласные и согласные звуки. Это в конечном итоге то, что делает метод Пирогова. Повторю: аксиома неизменна и правильна, просто другой метод.
Ну, и последнее. Даже все эти методы не полные. Остается вопрос с щипящими, которые полезно выделять просто цифровым фильром в априори известной области.
Таким образом имеем:
1. Частотный инвариант произношения от мел-шкалы
2. Анализ изменения спектральной плотности на основе поведения локального максимума спектра спектра.
3. Цифровая фильтрация шипящих.
4. Ну, и временная реализация тоже может что-то дать, но я пока не касался этой темы, просто констатирую резерв.