Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Общие вопросы по программированию, компьютерный форум
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.01.2013, 05:57   #1
chertovich
Форумчанин
 
Аватар для chertovich
 
Регистрация: 26.07.2009
Сообщений: 489
По умолчанию Алгоритм сравнения спектров (звуков)

Здравствуйте.
Пишу диплом: программу для голосового управления компьютером. Программа сравнивает полученные с микрофона данные с записанными. Если звуковые фрагменты совпадают на определенное количество процентов, то выполняется какое-то предустановленное действие на данную команду.
Для сравнения звуковых фрагментов, я преобразовываю звук в спектральный вид, т.е. выполняю БПФ (Быстрое преобразование Фурье). Преобразование выполняется окнами (блоками), это видно на рисунке, окна расположенны в столбик, их 7 штук (для команды "Открыть").

Здесь изображены спектры двух произнесений команды "Открыть", которую я произнес 2 раза (под номером 1 и 2) которые и необходимо сравнить.

Пробываю их сравнивать, путем определения их разницы. Результаты не очень утишительные.

Может у Вас есть идеи, как их можно сравнить, учитывая то, что продолжительность команды, а также спекральное содержимое может отличаться при каждом новом произнесении команды. Буду рад любым идеям.

Вот звуковая команда "Пуск":
Изображения
Тип файла: jpg Открыть.jpg (84.3 Кб, 148 просмотров)
Тип файла: jpg Пуск.jpg (39.0 Кб, 135 просмотров)
Если в глубине души вы программист, то, следуя своим наклонностям, вы захотите написать кусок кода.

Последний раз редактировалось chertovich; 21.01.2013 в 06:41.
chertovich вне форума Ответить с цитированием
Старый 08.02.2013, 17:51   #2
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

1. Почему именно 7?
2. Представляется, что дискретность по спектру выбрана избыточной, а по времени - недостаточной. По идее спектр нужно приводить к достаточно широким интервалам (заведомо не уже 1/3 октавы), но длина элементарного участка не должна превышать одну фонему, что, если мне не изменяет память, по прядку соответствует 10-30 мс.
s-andriano вне форума Ответить с цитированием
Старый 08.02.2013, 17:55   #3
chertovich
Форумчанин
 
Аватар для chertovich
 
Регистрация: 26.07.2009
Сообщений: 489
По умолчанию

Данный фрагмент длинной примерно от 500 до 700 мс. И получается, одно окно примерно равно 100 мс. Пробывал меньше, результат получается хуже... Получится больше окон, а поскольку, я их сравниваю один к одному, то результаты будут плачебными. Но все равно спасибо за помощь.
Если в глубине души вы программист, то, следуя своим наклонностям, вы захотите написать кусок кода.
chertovich вне форума Ответить с цитированием
Старый 09.02.2013, 14:53   #4
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Обычно, когда мы хотим получить результат, то делать следует так, как правильно, а не так, как проще.
Если одна фонема существенно короче 100 мс, значит, обработка фрагментов длиной 100 мс принципиально неспособна привести к решению поставленной задачи.
Т.е. ориентироваться нужно, исходя из конкретных характеристик предметной области.
Кроме того, считать, думаю, нужно не точное совпадение, а коэффициент корреляции, и для целей распознавания задавать некоторое пороговое значение.
Ну и внутри "окна" должно быть не более 10-15 значений.

Последний раз редактировалось s-andriano; 09.02.2013 в 15:11.
s-andriano вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Корректная отображение спектров digital-stream Мультимедиа в Delphi 1 25.05.2012 00:08
Сравнение звуков MakarovAlv Помощь студентам 1 26.06.2009 16:13
алгоритм сравнения больших чисел со сдвигом WOLFak Паскаль, Turbo Pascal, PascalABC.NET 0 29.12.2008 22:36
Алгоритм сравнения f3nix Общие вопросы Delphi 1 16.02.2008 11:12