Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   www.boolean.name > Media для игр > Создание звукового оформления

Создание звукового оформления Создание звуков для игр или где их найти

Ответ
 
Опции темы
Старый 11.10.2012, 10:15   #1
ІГРОГРАЙКО
ПроЭктировщик
 
Аватар для ІГРОГРАЙКО
 
Регистрация: 19.06.2009
Адрес: Україна
Сообщений: 152
Написано 10 полезных сообщений
(для 24 пользователей)
Вопрос Сравнивание аудио дорожек (MP3, WAVE)

Здравствуйте!

У меня задача сделать программу какая бы загружала аудио файлы (MP3 - желательно) и сравнивала их между собой. Программа должна распознать подобные аудио треки. Например: одна и та же песня только с разным качеством, или с разной продолжительностью.
У меня вопрос к вам:
  • Можно ли это сделать с помощью C# XNA?
  • С чего мне следовало б начать?

Раньше никогда не имел дело с программированием аудио софта...
__________________
Blitz3D, XNA, WebGL, OpenGL, Unity3D
PC: ASUS A55VM Core i3 (2.4Ghz), 6 Gb RAM, Nvidia GF 630M GT 2Gb
(Offline)
 
Ответить с цитированием
Старый 17.10.2012, 05:24   #2
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,505
Написано 2,960 полезных сообщений
(для 5,245 пользователей)
Ответ: Сравнивание аудио дорожек (MP3, WAVE)

Первое что приходит на ум - сравнивать ID3 данные mp3 файлов (исполнителя и название песни например). По поводу сравнения самого аудиофайла ничего посоветовать не могу.
__________________
Blitz3d to Unity Wiki

Последний раз редактировалось pax, 17.10.2012 в 07:29.
(Offline)
 
Ответить с цитированием
Старый 17.10.2012, 14:52   #3
Dzirt
Элита
 
Аватар для Dzirt
 
Регистрация: 16.01.2008
Адрес: Украина
Сообщений: 1,800
Написано 958 полезных сообщений
(для 3,832 пользователей)
Ответ: Сравнивание аудио дорожек (MP3, WAVE)

Я сделал бы так:

Проанализировал с помощью графиков первый трек, и второй. Потом сравнил бы данные и поучил бы насколько они похожы между собой.

Итак начнем(сделать можно более универсально, но это в качестве примера):
1.Анализируем громкость левого и правого канала, и забиваем данные в лист.
2.Делаем тоже самое для второго трека.
3.После сравниваем положение точек на первом и втором графике, и высчитываем процент совпадений.

(делал на блицмаксе, в динамике график у меня выгядит так : anal.rar)

И вот полученый мной результат при сравнивании двух одинаковых треков:
Нажмите на изображение для увеличения
Название: 123123.jpg
Просмотров: 604
Размер:	53.3 Кб
ID:	17863
совпадение на 96% (не 100%, возможно по той причине, что я использовал флоат пойнт...хз)

Результат на сравнение разных треков :
Нажмите на изображение для увеличения
Название: 2323.jpg
Просмотров: 572
Размер:	67.3 Кб
ID:	17864
совпадение на 2%

Желтая линия, это левый канал, розовая - правый. красная линия - это то где треки не совпадают.

Сделал в обеденный перерыв...если уделить оптимизации то можно добится 99% результата и хорошей гибкости анализа, ну тут ты уже сам идею розвивай.

Разная продолжительность - анализируй только одинаковый отрезок времени(ориентируясь на меньший конечно).

С разным качеством пока не тестировал.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
ІГРОГРАЙКО (31.10.2012)
Старый 17.10.2012, 16:34   #4
Nerd
Чудо-кот
 
Аватар для Nerd
 
Регистрация: 22.02.2011
Сообщений: 893
Написано 475 полезных сообщений
(для 1,462 пользователей)
Ответ: Сравнивание аудио дорожек (MP3, WAVE)

Сообщение от Dzirt Посмотреть сообщение
1.Анализируем громкость левого и правого канала,
А почему не спектр?
(Offline)
 
Ответить с цитированием
Старый 17.10.2012, 18:17   #5
Dzirt
Элита
 
Аватар для Dzirt
 
Регистрация: 16.01.2008
Адрес: Украина
Сообщений: 1,800
Написано 958 полезных сообщений
(для 3,832 пользователей)
Ответ: Сравнивание аудио дорожек (MP3, WAVE)

Сообщение от Nerd96 Посмотреть сообщение
А почему не спектр?
...потому что
(Offline)
 
Ответить с цитированием
Старый 18.10.2012, 03:50   #6
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,505
Написано 2,960 полезных сообщений
(для 5,245 пользователей)
Ответ: Сравнивание аудио дорожек (MP3, WAVE)

Dzirt, а что если два одинаковых трека имеют разную задержку в начале, например у первого 0с, а у второго 0,5с тишины?
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 18.10.2012, 10:31   #7
Dzirt
Элита
 
Аватар для Dzirt
 
Регистрация: 16.01.2008
Адрес: Украина
Сообщений: 1,800
Написано 958 полезных сообщений
(для 3,832 пользователей)
Ответ: Сравнивание аудио дорожек (MP3, WAVE)

Сообщение от pax Посмотреть сообщение
Dzirt, а что если два одинаковых трека имеют разную задержку в начале, например у первого 0с, а у второго 0,5с тишины?
Сравниать нужно только начиная с участка где есть колибание в графике.

А если будут разные громкости?
Вычислить макимальную амплитуду первого трека, и подстроить данные второго трека под него...добавлять разницу к примеру.

Если копнуть еще глубже, то можно сравнивать "поведение" графиков, а не громкость определнных участков. Вообщем вариантов для развития - масса.
(Offline)
 
Ответить с цитированием
Старый 18.10.2012, 11:38   #8
Nerd
Чудо-кот
 
Аватар для Nerd
 
Регистрация: 22.02.2011
Сообщений: 893
Написано 475 полезных сообщений
(для 1,462 пользователей)
Ответ: Сравнивание аудио дорожек (MP3, WAVE)

Сообщение от pax Посмотреть сообщение
Dzirt, а что если два одинаковых трека имеют разную задержку в начале, например у первого 0с, а у второго 0,5с тишины?
Говорю же - анализу спектра кусками по 16 секунд не помешает даже лишний заполненный кусок секунды в две-три.
(Offline)
 
Ответить с цитированием
Старый 18.10.2012, 11:50   #9
Dzirt
Элита
 
Аватар для Dzirt
 
Регистрация: 16.01.2008
Адрес: Украина
Сообщений: 1,800
Написано 958 полезных сообщений
(для 3,832 пользователей)
Ответ: Сравнивание аудио дорожек (MP3, WAVE)

Сообщение от Nerd96 Посмотреть сообщение
Говорю же - анализу спектра кусками по 16 секунд не помешает даже лишний заполненный кусок секунды в две-три.
16 секунд-это слишком много имхо,я бы брал участками по секунд 5 для более точного результата.

Вообщем если есть желание, попробуй насколько твой способ будет точнее....особенно при сравнении двух похожих по стилю треков....на брутал дез-грайнд-коре он скорее всего загнется.)
(Offline)
 
Ответить с цитированием
Старый 21.11.2012, 11:09   #10
ІГРОГРАЙКО
ПроЭктировщик
 
Аватар для ІГРОГРАЙКО
 
Регистрация: 19.06.2009
Адрес: Україна
Сообщений: 152
Написано 10 полезных сообщений
(для 24 пользователей)
Ответ: Сравнивание аудио дорожек (MP3, WAVE)

Duplicate songs detector via audio fingerprinting

Вот нашел хорошее решение данной задачи.
__________________
Blitz3D, XNA, WebGL, OpenGL, Unity3D
PC: ASUS A55VM Core i3 (2.4Ghz), 6 Gb RAM, Nvidia GF 630M GT 2Gb
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +1, время: 19:37.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com