![]() |
|
![]() ![]() ![]() |
|
Klin |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1938 Регистрация: 7.10.2002 Где: Краснодар Репутация: нет Всего: 25 |
К примеру есть два зувуковых файла, нужно сравнить их в процентах, может кто знает как?
з.ы. если есть линк кидайте - полазию ![]() -------------------- Я человек - попробуйте обвинить меня за это. |
|||
|
||||
<Spawn> |
|
|||
![]() Око кары:) ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2776 Регистрация: 29.1.2003 Где: Екатеринбург Репутация: нет Всего: 64 |
Что значит "Сравнить в процентах"?
-------------------- "Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков. |
|||
|
||||
Klin |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1938 Регистрация: 7.10.2002 Где: Краснодар Репутация: нет Всего: 25 |
Это втом смысле во сколько процентов одни голос отличается от другого.
Иными словами существуют два звуковых файла один записан одним голосом, другой другим. У этих голосов есть что-то общеее тональность, громкость, резкость и т.п. Вот как определить, как эти параметры схожи или схожи ли вообще? З.ы. Сорри, что тему забросил, больше так не буду ![]() -------------------- Я человек - попробуйте обвинить меня за это. |
|||
|
||||
RAN |
|
|||
Опытный ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 709 Регистрация: 14.3.2003 Где: Щёлково Моск.обл. Репутация: нет Всего: 6 |
Модератор: Перенесено из С++
|
|||
|
||||
podval |
|
|||
![]() Где я? Кто я? ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3094 Регистрация: 25.3.2002 Где: СПб Репутация: 18 Всего: 62 |
Klin
По-моему, ты некорректно формулируешь задачу. Ты называешь сразу несколько параметров и хочешь чтобы это было одним махом оценено в процентах. А что тогда брать в качестве 100 процентов? Если хочешь решить задачу идентификации или верификации диктора по голосу - это можно сделать, но не в процентах. |
|||
|
||||
val |
|
|||
![]() Program developer ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 992 Регистрация: 14.1.2003 Где: г. Киев Репутация: 1 Всего: 7 |
Задача идентификации или верификации диктора по голосу не такая уж простая, как может показаться на первый взгляд, но начинать надо с такого:
1. Поиск основного тона 2. Анализ частотных составляющих в голосе... -------------------- Терпимость - величайшее благо человечества... Ярчайший признак интеллекта – постоянно хорошее настроение… |
|||
|
||||
val |
|
|||
![]() Program developer ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 992 Регистрация: 14.1.2003 Где: г. Киев Репутация: 1 Всего: 7 |
Podval, а как ты бы взялся за решение такой задачки, я имею ввиду задачу идентификации или верификации диктора по голосу. Думаю, что не в твоих принципах отказываться от вейвлетов в этом случае
![]() -------------------- Терпимость - величайшее благо человечества... Ярчайший признак интеллекта – постоянно хорошее настроение… |
|||
|
||||
podval |
|
|||
![]() Где я? Кто я? ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3094 Регистрация: 25.3.2002 Где: СПб Репутация: 18 Всего: 62 |
![]() Можно и с вейвлетами, а можно и без них обойтись, так же как и без поиска частоты основного тона. Можно сделать совсем просто, можно сказать, традиционно: взять допустим вектор признаков из первых 12 MFCC или LPCC (они хорошо моделируют аккустический тракт, куда входит и голосовой аппарат). Читаем звуковые файлы фреймами с перекрытием, формируем векторы признаков. усредняем их на длительности фрейма: средний кепстр даст характеристику звукового тракта. Для задачи разделения двух (в простейшем случае) дикторов строим дискриминантную функцию и делим с ее помощью полученные наборы векторов. Вобщем, классический линейный дискриминантный анализ. Вейвлетами можно усложнить вектор признаков. Для распознавания дикторов полезно бывает вычислить кепстральные коэффициенты от первых нескольких (обычно 3-х) коэффициентов аппроксимации и добавить к ним энтропию коэффициентов детализации. Это я имею в виду дискретное вейвлет-преобразование. Далее схема та же. Для задачи идентификации просто делим наборы данных для разных дикторов. Для верификации проверяем пороговое значение критерия близости. Если классов дикторов гораздо больше двух, то линейный дискриминантный анализ не дает положительных результатов (ошибается). Приходится использовать дискриминантный анализ с т.н. ядром, отличным от линейного. Только это не нелинейный ДА. Русскоязычного термина для этой байды я не встречал, иностранцы называют Kernel Fisher Discriminant Analysis. Очень хорошо (для речи!) работает с ядром в виде радиальных базисных функций вида exp(- ||x - y||^2/sigma^2). Еще более крутой метод, работающий намного-намного точнее (делит практически любые наборы данных) - это Support Vectors Machines, а по-русски метод опорных векторов. Он использует те же ядра. С его помощью ошибку распознавания можно свести к величине менее 1%, даже если число классов подкатывает к сотне. Но метод очень прожорливый в части вычислительных ресурсов, когда число классов большое и обучиться надо на большом объеме данных. Вобщем, тема обширная, сразу все не охватить. |
|||
|
||||
podval |
|
|||
![]() Где я? Кто я? ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3094 Регистрация: 25.3.2002 Где: СПб Репутация: 18 Всего: 62 |
З.Ы. что касается принципов использования вейвлетов, то после того, как хорошо помучился с ними, я для себя уже уяснил, что в распознавании речи с дискретным вейвлет-преобразованием делать нечего. Данный аппарат не для этого. Кодировать речь (да и вообще сигналы), сжимать, фильтровать с помощью вейвлетов- это замечательно и желательно.
Непрерывное ВП - еще куда ни шло. Однако, во-первых, наилучшего результата можно добиться использованием для этого преобразования Габора, но оно, строго говоря, не совсем вейвлет. Во-вторых, даже с ним (Габором) результат можно получить точнее на 2-3%, чем при использовании традиционного БПФ. А может, люди еще не нашли подходящего способа, как вейвлеты в такие задачи пристроить. В разпознавании дикторов - это я уже сказал, использовать вейвлеты можно. Но опраданы ли на это затраты - вопрос спорный. Вобщем, вейвлеты хороши, там, где они хороши ![]() |
|||
|
||||
val |
|
|||
![]() Program developer ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 992 Регистрация: 14.1.2003 Где: г. Киев Репутация: 1 Всего: 7 |
Спасибо, podval, я думаю, что обязательно возвращусь к этому вопросу и мы еще побеседуем по этому поводу...
-------------------- Терпимость - величайшее благо человечества... Ярчайший признак интеллекта – постоянно хорошее настроение… |
|||
|
||||
Klin |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1938 Регистрация: 7.10.2002 Где: Краснодар Репутация: нет Всего: 25 |
podval, извени, но ты тоже не понял нужно найти отличия, а проценты считать я и сам могу
![]() Я не знаю, как отличия найти. -------------------- Я человек - попробуйте обвинить меня за это. |
|||
|
||||
podval |
|
|||
![]() Где я? Кто я? ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3094 Регистрация: 25.3.2002 Где: СПб Репутация: 18 Всего: 62 |
И вот опять непонятно, что же ты хочешь сделать. ![]() Мы тут только что порассуждали о том, что можно взять в качестве признаков для голосов. Считай признаки и смотри, чем они отличаются. Если набор признаков будет достаточно большой и разномастный, переведи это все в главные компоненты и сравнивай их в процентах. Можно график построить в виде зависимости первой главной компоненты от второй и полюбоваться им. Тогда на нем два голоса (файла) будут представлены точками. Насколько эти точки не совпадут - настолько они и разные. |
|||
|
||||
Klin |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1938 Регистрация: 7.10.2002 Где: Краснодар Репутация: нет Всего: 25 |
Ага, теперь понял, что ты имел ввиду.
Да график построить можно, но для этого, как раз и нужны параметры ![]() Вот как их узнать. А схема понятна. -------------------- Я человек - попробуйте обвинить меня за это. |
|||
|
||||
val |
|
|||
![]() Program developer ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 992 Регистрация: 14.1.2003 Где: г. Киев Репутация: 1 Всего: 7 |
Чтобы особо не мучиться сравнивай их частотные составляющие, просто и объективно... Главное, что еще и неплохо работает...
А еще проще, посчитай корреляцию... -------------------- Терпимость - величайшее благо человечества... Ярчайший признак интеллекта – постоянно хорошее настроение… |
|||
|
||||
Klin |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1938 Регистрация: 7.10.2002 Где: Краснодар Репутация: нет Всего: 25 |
Люди, здесь есть люди?
![]() Может хватит отвечать ответом типа: "Посчитай все". Есть есть вариант, то ХОТЬ алгаритм дайте. -------------------- Я человек - попробуйте обвинить меня за это. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Алгоритмы" | |
|
Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Алгоритмы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |