|
Новичок
Сообщений: 3
Сказал(а) спасибо: 2
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 09.01.2012
Адрес: St.Petersburg
|
Важно ваше мнение! Разработка программы по разделению музыкального трека на партии -
09.01.2012, 17:23
Уважаемые Программисты!
Пишу по поводу возможности реализации разработки программного обеспечения, которое будет разделять музыкальный трек на составляющие партии музыкальных инструментов.
Словосочетание «партии музыкальных инструментов» - условная вещь: может выражаться в виде партий по нотам, либо в виде отдельных аудиодорожек (если затруднительно распознавание нот) – главное чтоб разделял, а остальное будет реализовываться походу дела.
У меня есть 2 варианта решения данной задачи:
1) Разделять на основе анализа аудиотрека без базы данных сэмплов этих муз.инструментов. Т.е. будет происходить поиск и объединение подобных по физическим характеристикам звуков и сохранение их на отдельную дорожку (похоже вместе с шумами и частицами других звуков). Т.е. гитару в одну дорожку, барабаны в другую, басы в третюю, скрипку в четвертую, вокал в пятую и тд.
2) Создать огромную базу данных сэмплов звуков музыкальных инструментов, чтобы сравнивать их со звуками в аудиозаписи. Данный вариант как мне подсказывают является самый легкореализуемый, но тут мы сталкиваемся с тем, что во-первых нужна огромная база данных сэмплов, во-вторых её нужно постоянно пополнять, т.к. появляются новые музык.инструменты (например, всякие новые пищалки и свистелки из электронной музыки), поэтому как мне кажется, следует создать универсальный алгоритм из первого варианта.
У данной разработки, по крайней мере для меня, есть 2 варианта развития:
1. создание что-то на подобии конвертера, который на входе будет принимать аудиотрек, а на выходе выдавать аудиодоржки каждого муз.инструмента (вкл. пищалки, свистелки, которые используются в электронщине). Это будет полезно и для музыкантов, и для диджеев.
2. либо применение с немного другой целью, для которой не требуется идеальное разделение. Для первого прототипа достаточно, чтобы он разделял музыкальный трек на типы музыкальных инструментов (барабан, тарелки в категорию ударных, гитара и голос в категорию ведущих, скрипка, свистелки и пищалки в другую категорию). Здесь важно чтобы программа знала начало звука, его силу и конец звука.
Прошу вас дать оценку и рекомендации по разработке данного программного обеспечения, т.к. в ближайшее время будет начат набор команды программистов и начнутся первые движения в сторону разработки самого простого прототипа и привлечения инвесторов.
Пишу сразу, знания программирования у меня базовые, но мне они не нужны, т.к. будет набираться команда программистов. Но я должен знать, по крайней мере, как это сделать и какие ключевые задачи нужно затронуть.
Так же очень интересуют вопросы:
1. Возможно ли добиться идеального рзаделения, без шумов и частиц других звуков?
2. Возможно ли реализовать такой универсальный алгоритм, который будет разделять трек на основе подобных звуков, а не базы сэмплов? (мне сказали, что очень сложно и не стоит на этом запариваться, лучше создать огромную бд сэмплов
3. Чем придется воспользоваться для разработки данного алгоритма? (анализ спектра, определения такта, гармоник, использование окон Хемминга и пр.)
4. Какие задачи будут являться приоритетными с точки зрения программирования?
Заранее спасибо за ответы, а так же за то что прочли данное обращение)
|
|
|
|
|
Member
Сообщений: 116
Сказал(а) спасибо: 6
Поблагодарили 7 раз(а) в 7 сообщениях
Регистрация: 15.09.2010
|

10.01.2012, 15:38
В приципе реализуемо, распозновать голос уже давно научились и это разделение возможно. Пригодиться с помощью этой проги караоки делать из .mp3.
|
|
|
|
|
Пользователь сказал cпасибо:
|
|
|
Новичок
Сообщений: 3
Сказал(а) спасибо: 2
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 09.01.2012
Адрес: St.Petersburg
|

10.01.2012, 17:03
Цитата:
Сообщение от Vulcanoid
В приципе реализуемо, распозновать голос уже давно научились и это разделение возможно. Пригодиться с помощью этой проги караоки делать из .mp3.
|
Спасибо за ответ! Есть уже программы: Melodyne, WIDIpro, правда, они выполняют немного другие задачи и немного по другим принципам.
Melodyne предназначен для звукозаписывающих студий. Он разделяет аудиодорожку одного инструмента на ноты, способен распознавать даже аккорды.
WIDIpro распознает из музыкального трека только один из шести предложенных инструментов (барабан, бас, вокал, гитара и др.). Распознавание идет на основе спектра и хорошо работает только на аудиодорожке одного инструмента (при обработке обычного муз.трека точность распознавания значительно снижается).
Применение возможно для диджеев, для создания ремиксов не на основе обработки цельного трека (как в основном делается сейчас), а на основе обработки разделенных аудиодорожек муз.инструментов по отдельности.
Так же для музыкантов, которые хотят играть любимые произведения не с MIDI-партитурами (они звучат немного убого), а, допустим, на основе того же mp3. Например, гитарист захотел сыграть свою партию - через программу убрал в музыкальном файле партию гитары и начал играть её вместе с оставшимися инструментами.
Прошу оставлять любые комментарии в данной теме. Начиная от критики, заканчивая положительными отзывами. Любое высказывание ценно. Особенно если оно будет затрагивать вопросы из первого поста
|
|
|
|
|
Специалист
Сообщений: 3,884
Сказал(а) спасибо: 1
Поблагодарили 19 раз(а) в 19 сообщениях
Регистрация: 27.06.2002
Адрес: Санкт-Петербург
|

11.01.2012, 12:45
Цитата:
Сообщение от Glazzzman
.... в ближайшее время будет начат набор команды программистов и начнутся первые движения в сторону разработки самого простого прототипа и привлечения инвесторов.
|
Я думаю, что набор команды программистов пока несколько преждевременен.
Лично я бы (сугубо имхо) разделил бы эту задачу на несколько подзадач:
1. Разработка научно-методического обоснования ("научного бэкграунда") процесса разделения музыкального трека на партии. Здесь нужны не программисты, а - люди, работа которых называется "аналитик", "постановщик задач", "эксперт предметной области", причем, скорее всего, с хорошей научной подготовкой..... Они, я думаю, должны разбираться в музыке, акустике.... возможно, иметь какие-то звукооператорские навыки... Количество таких людей невелико (вероятно, 1-2), но они должны определить научно-технические принципы работы продукта и поставить уже задачу программистам. Пока не будет выполнена аналитика - тебе не нужны программисты. "Ни один ветер не будет попутным для корабля, капитан которого не знает, ему куда плыть." (с) не помню, чье.
2. Разработка прототипа продукта (в общепринятых терминах это "технический проект"). Вот тут нужны будут, вероятно, 1-2 программиста ("группа" ли это?) - навряд ли больше. Этот прототип ( прототип!!! не продукт! не путать. Это всего лишь "фанерный макет".) должен примерно сформировать архитектуру продукта и доказать принципиальную реализуемость идеи - на принятых технических средствах, с данной группой разработчиков, и т.д. По результатам техпроекта, затея может быть полностью закрыта и отправлена в архив, либо продолжена уже для создания (коммерческого) продукта. Ну и, конечно, макет техпроекта уже можно будет показывать инвесторам, буде таковые найдутся.
3. А дальше начинается самое интересное - поиск инвесторов. Тебе потребуется сформировать бизнес-план и доказать потенциальным инвесторам, что продукт в обозримом времени "отобьет" вложенные в него деньги. (Ага, а ты думал, что инвесторы отдадут тебе свои кровные реальные денежки только за обещания? :-) Увы, это не сказка про Буратино....)
4. Ну и буде инвесторы найдутся, вот тут уже можно набирать "группу программистов" и разрабатывать продукт - то, что называется "рабочий проект". Да, прототип на этом этапе может быть выкинут на свалку истории....
На каком этапе ты сейчас находишься?
Да, еще пара соображений:
Не думаю, что ты сможешь добиться совершенно идеального разделения, без шумов и частиц других звуков. Скорее всего, на это понадобится время, возможно, довольно длительное - наверняка сделаешь не в первой версии продукта, это уж точно. И да, без анализа спектра, FFT, окон Хемминга и пр. ты не обойдешься. Но это все уже детали реализации.....
The difference between theory and practice is that in theory, there is no difference between theory and practice, but in practice, there is.
|
|
|
|
|
Пользователь сказал cпасибо:
|
|
|
Новичок
Сообщений: 3
Сказал(а) спасибо: 2
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 09.01.2012
Адрес: St.Petersburg
|

12.01.2012, 19:15
Цитата:
Сообщение от Влад
Я думаю, что набор команды программистов пока несколько преждевременен.
Лично я бы (сугубо имхо) разделил бы эту задачу на несколько подзадач:
1. Разработка научно-методического обоснования ("научного бэкграунда") процесса разделения музыкального трека на партии. Здесь нужны не программисты, а - люди, работа которых называется "аналитик", "постановщик задач", "эксперт предметной области", причем, скорее всего, с хорошей научной подготовкой..... Они, я думаю, должны разбираться в музыке, акустике.... возможно, иметь какие-то звукооператорские навыки... Количество таких людей невелико (вероятно, 1-2), но они должны определить научно-технические принципы работы продукта и поставить уже задачу программистам. Пока не будет выполнена аналитика - тебе не нужны программисты. "Ни один ветер не будет попутным для корабля, капитан которого не знает, ему куда плыть." (с) не помню, чье.
2. Разработка прототипа продукта (в общепринятых терминах это "технический проект"). Вот тут нужны будут, вероятно, 1-2 программиста ("группа" ли это?) - навряд ли больше. Этот прототип (прототип!!! не продукт! не путать. Это всего лишь "фанерный макет".) должен примерно сформировать архитектуру продукта и доказать принципиальную реализуемость идеи - на принятых технических средствах, с данной группой разработчиков, и т.д. По результатам техпроекта, затея может быть полностью закрыта и отправлена в архив, либо продолжена уже для создания (коммерческого) продукта. Ну и, конечно, макет техпроекта уже можно будет показывать инвесторам, буде таковые найдутся.
3. А дальше начинается самое интересное - поиск инвесторов. Тебе потребуется сформировать бизнес-план и доказать потенциальным инвесторам, что продукт в обозримом времени "отобьет" вложенные в него деньги. (Ага, а ты думал, что инвесторы отдадут тебе свои кровные реальные денежки только за обещания? :-) Увы, это не сказка про Буратино....)
4. Ну и буде инвесторы найдутся, вот тут уже можно набирать "группу программистов" и разрабатывать продукт - то, что называется "рабочий проект". Да, прототип на этом этапе может быть выкинут на свалку истории....
На каком этапе ты сейчас находишься?
Да, еще пара соображений:
Не думаю, что ты сможешь добиться совершенно идеального разделения, без шумов и частиц других звуков. Скорее всего, на это понадобится время, возможно, довольно длительное - наверняка сделаешь не в первой версии продукта, это уж точно. И да, без анализа спектра, FFT, окон Хемминга и пр. ты не обойдешься. Но это все уже детали реализации.....
|
Здравствуйте!
Огромное спасибо за такой содержательный ответ!
Написание научно-методического обоснования мне придется писать одному, т.к. инвесторы еще не привлечены, а мне платить за работу нечем) Максимум, что я могу позволить - попросить у специалистов консультации в интернете и встречаться с людьми, которые имеют хорошие знания в этой сфере (как раз-таки в поиске таких людей, один уже согласился, вот на днях собираюсь с ним встретиться).
Да и тем более где я их найду? По-моему таких специалистов крайне мало...)
Так же мне очень важно знать программную начинку продукта: что и как мы будем делать. Для этого мне как раз-таки понадобится тот человек (консультант) и, может, программист (все-таки это лучше, чем ничего), причем, скорее всего студент (по крайней мере на первом этапе, если этого уровня знаний достаточно для обсуждения данной темы).
По поводу инвесторов - проект я делаю на базе бизнес-инкубатора, поэтому к встрече с инвесторами я буду подготовлен, тем более я посещаю презентации других проектов и отмечаю часто задаваемые вопросы. (В основном, какая прибыль и сколько надо финансов в цифрах - конечно же не из неба, а точно рассчитанные).
Далее, если я решу эти задачи, то этап разработки по-моему будет уже более стабильным. Конечно не без проблем, но по-крайней мере будет уже заложен фундамент и условия работы.
Нахожусь как раз-таки на первом этапе. Проектом занялся относительно недавно.
У меня данная тема может разделиться на 2 проекта, как я писал выше. Один - программа для музыкантов, где очень важна точность разделения, другая - не выводит аудиоформат как результат работы, там важно получить характеристики волны, отличить барабан от гитары и распознать физические параметры каждого звука музыкального инструмента.
Последний раз редактировалось Glazzzman; 12.01.2012 в 19:51
Причина: уточнить кое-что
|
|
|
|
|
Member
Сообщений: 227
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 13.02.2006
|

01.04.2012, 19:07
На мой взгляд среди пунктов опроса явно не хватает следующего: "Это невозможно".
Цитата:
Сообщение от Glazzzman
2) Создать огромную базу данных сэмплов звуков музыкальных инструментов, чтобы сравнивать их со звуками в аудиозаписи. Данный вариант как мне подсказывают является самый легкореализуемый, но тут мы сталкиваемся с тем, что во-первых нужна огромная база данных сэмплов, во-вторых её нужно постоянно пополнять, т.к. появляются новые музык.инструменты (например, всякие новые пищалки и свистелки из электронной музыки), поэтому как мне кажется, следует создать универсальный алгоритм из первого варианта.
|
Боюсь, таким образом окажется возможным выделить лишь голос синтезатора и то лишь при условии, что программа будет располагать ТЕМ ЖЕ САМЫМ банком сэмплов, что и синтезатор.
Думаю, сэмпл одной скрипки вряд ли сможет помочь выделить голос другой скрипки.
И то же самое с одной скрипкой, но двумя разными скрипачами.
Цитата:
|
Для первого прототипа достаточно, чтобы он разделял музыкальный трек на типы музыкальных инструментов (барабан, тарелки в категорию ударных, гитара и голос в категорию ведущих, скрипка, свистелки и пищалки в другую категорию).
|
На мойц взгляд это существенно сложнее, чем восстановление нотной партитуры.
Цитата:
|
Пишу сразу, знания программирования у меня базовые, но мне они не нужны, т.к. будет набираться команда программистов. Но я должен знать, по крайней мере, как это сделать и какие ключевые задачи нужно затронуть.
|
Это верно. Программирование здесь вообще на проследнем этапе. А первый, самый главный и тот, который, на мой взгляд, так и не будет доведен до конца, - разработка работающих подходов к данной задаче.
Цитата:
Так же очень интересуют вопросы:
1. Возможно ли добиться идеального рзаделения, без шумов и частиц других звуков?
|
Как известно, задача очистки произвольного звука от шума алгоритмически неразрешима.
А указанная задача является лишь подзадачей для Вашей задачи.
Диагноз: нереализуемо.
Цитата:
|
2. Возможно ли реализовать такой универсальный алгоритм, который будет разделять трек на основе подобных звуков, а не базы сэмплов? (мне сказали, что очень сложно и не стоит на этом запариваться, лучше создать огромную бд сэмплов
|
На мой взгляд оба подхода не внушают оптимозма.
Цитата:
|
3. Чем придется воспользоваться для разработки данного алгоритма? (анализ спектра, определения такта, гармоник, использование окон Хемминга и пр.)
|
Предобаботка возможно, анадиз Фурье и амплитудных огибающих) + нейронные сети.
А, как известно, нейронные сети дают верный результат лишь с некоторой вероятностью отличной от 1. Т.е. на выходе будет что-то, что можно назвать разделением по дорожкам лишь с определенной вероятностью. И, боюсь, вероятность получения чего-либо удобоваримого окажется недопустимо низкой.
Цитата:
|
4. Какие задачи будут являться приоритетными с точки зрения программирования?
|
Об этом говорить преждевременно.
Единственное - тот, кто будет работать над подходами к решению этой проблемы, должен хорошо ориентироваться в том, что алгоритмически реализуемо, а что - нет.
|
|
|
|
|
Member
Сообщений: 511
Сказал(а) спасибо: 2
Поблагодарили 49 раз(а) в 41 сообщениях
Регистрация: 05.01.2011
Адрес: Белгородская обл.
|

01.04.2012, 20:12
[quote=Glazzzman;611888]2. Возможно ли реализовать такой универсальный алгоритм, который будет разделять трек на основе подобных звуков, а не базы сэмплов?
Я думаю такое выполнить не реально. Время будет потрачено в пустую. Наиболее верное решение
Цитата:
Цитата:
Сообщение от Glazzzman
(мне сказали, что очень сложно и не стоит на этом запариваться, лучше создать огромную бд сэмплов
|
База данных сэмплов-лучшее,что может быть на сегодняшний день. Главное-высококачественная оцифровка всех необходимых музыкальных инструментов. А выполнить такую колоссальную работу-ох,как не просто.
Сама затея неплохая и я рад,что есть в мире такие люди,которые в этом заинтересованы. Искренне желаю удачи в таком глобальном деле.
|
|
|
|
|
Member
Сообщений: 227
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 13.02.2006
|

02.04.2012, 21:34
[QUOTE=Сергей 66;635815]
Цитата:
Сообщение от Glazzzman
База данных сэмплов-лучшее,что может быть на сегодняшний день.
|
А можно как-то аргументировать эту точку зрения?
Как имеющийся сэмпл некоторого инструмента может помочь в распознавании аналогичного инструмента в фонограмме?
Для синтеза музыкального звука сэмпл - вещь, безусловно, полезная. Но вот как его можно приспособить для анализа?
|
|
|
|
|
Member
Сообщений: 511
Сказал(а) спасибо: 2
Поблагодарили 49 раз(а) в 41 сообщениях
Регистрация: 05.01.2011
Адрес: Белгородская обл.
|

03.04.2012, 10:11
Я имел ввиду вот что:семплы хорошо иметь,чтобы прописывать необходимые партии в индивидуальных,независимых,музыкальных треках,чтобы в итоге получить готовую отредактированную муз.композицию. Если вы музыкант,мульти-нструменталист,это будет только вам на руку! А распознавать некими программами или алгоритмами определенные инструментальные партии в потоке частот готовых миксовых фонограмм-дело архисложное. Если бы это было возможно,инженеры и программисты с мировым именем,давно бы нечто подобное разработали и внедрили. Но пока в мировой практике нет аналогов для реализации вашей затеи. Ну сами посудите-как в хаосе различных частот можно выделить определенный инструмент? Ведь в определенном спектре частот может находиться не один инструмент,а несколько. Например фортепиано имеет широкий диапазон частот а флейта более узкий,но в моменте исполнения музыкальной партии их частоты будут пересекаться и отделить одно от другого нереально. Просто наше ухо слышит и знает,что вот это звучит флейта,а вот это рояль. Мы слушаем и наслаждаемся полноценным составом спектра и соответственно окраски звука. А как некая программа будет решать такую задачу по разделению одного от другого-мне непонятно. Я так понимаю,что вы хотите получить из готового студийного сведенного по панораме микса-отдельные полноценно звучащие дорожки того или иного муз.инструмента. А какова цель? Что будете делать с образцами дорожек? Для будущих фонограмм? Если вам нужны фонограммы без голоса,надо самому прописывать на слух каждый услышанный инструмент на отдельную дорожку теми самыми образцами семплов.
|
|
|
|
| Опции темы |
|
|
| Опции просмотра |
Линейный вид
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
|