Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Теория программирования > Общие вопросы создания ПО
Перезагрузить страницу Важно ваше мнение! Разработка программы по разделению музыкального трека на партии
Результаты опроса: Какова сложность создания этой программы, кол. чел. в команде, а так же время разрабо
Сложнее некуда! 3 37.50%
Нужно потрудиться 3 37.50%
Обычная задача. Ничего особенного 1 12.50%
Пустяки! 1 12.50%
Команда до 5 чел. 2 25.00%
Команда из 5-10 чел. 1 12.50%
Команда более 10 чел. 3 37.50%
срок 1-3 месяца 1 12.50%
срок 3-8 месяцев 1 12.50%
как минимум в течении года 5 62.50%
1-3 года 3 37.50%
Опрос с выбором нескольких вариантов ответа. Голосовавшие: 8. Вы ещё не голосовали в этом опросе

Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
Glazzzman Glazzzman вне форума
Новичок
 
Сообщений: 3
Сказал(а) спасибо: 2
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 09.01.2012
Адрес: St.Petersburg
Exclamation Важно ваше мнение! Разработка программы по разделению музыкального трека на партии - 09.01.2012, 18:23

Уважаемые Программисты!

Пишу по поводу возможности реализации разработки программного обеспечения, которое будет разделять музыкальный трек на составляющие партии музыкальных инструментов.
Словосочетание «партии музыкальных инструментов» - условная вещь: может выражаться в виде партий по нотам, либо в виде отдельных аудиодорожек (если затруднительно распознавание нот) – главное чтоб разделял, а остальное будет реализовываться походу дела.

У меня есть 2 варианта решения данной задачи:
1) Разделять на основе анализа аудиотрека без базы данных сэмплов этих муз.инструментов. Т.е. будет происходить поиск и объединение подобных по физическим характеристикам звуков и сохранение их на отдельную дорожку (похоже вместе с шумами и частицами других звуков). Т.е. гитару в одну дорожку, барабаны в другую, басы в третюю, скрипку в четвертую, вокал в пятую и тд.
2) Создать огромную базу данных сэмплов звуков музыкальных инструментов, чтобы сравнивать их со звуками в аудиозаписи. Данный вариант как мне подсказывают является самый легкореализуемый, но тут мы сталкиваемся с тем, что во-первых нужна огромная база данных сэмплов, во-вторых её нужно постоянно пополнять, т.к. появляются новые музык.инструменты (например, всякие новые пищалки и свистелки из электронной музыки), поэтому как мне кажется, следует создать универсальный алгоритм из первого варианта.

У данной разработки, по крайней мере для меня, есть 2 варианта развития:
1. создание что-то на подобии конвертера, который на входе будет принимать аудиотрек, а на выходе выдавать аудиодоржки каждого муз.инструмента (вкл. пищалки, свистелки, которые используются в электронщине). Это будет полезно и для музыкантов, и для диджеев.
2. либо применение с немного другой целью, для которой не требуется идеальное разделение. Для первого прототипа достаточно, чтобы он разделял музыкальный трек на типы музыкальных инструментов (барабан, тарелки в категорию ударных, гитара и голос в категорию ведущих, скрипка, свистелки и пищалки в другую категорию). Здесь важно чтобы программа знала начало звука, его силу и конец звука.
Прошу вас дать оценку и рекомендации по разработке данного программного обеспечения, т.к. в ближайшее время будет начат набор команды программистов и начнутся первые движения в сторону разработки самого простого прототипа и привлечения инвесторов.


Пишу сразу, знания программирования у меня базовые, но мне они не нужны, т.к. будет набираться команда программистов. Но я должен знать, по крайней мере, как это сделать и какие ключевые задачи нужно затронуть.

Так же очень интересуют вопросы:
1. Возможно ли добиться идеального рзаделения, без шумов и частиц других звуков?
2. Возможно ли реализовать такой универсальный алгоритм, который будет разделять трек на основе подобных звуков, а не базы сэмплов? (мне сказали, что очень сложно и не стоит на этом запариваться, лучше создать огромную бд сэмплов
3. Чем придется воспользоваться для разработки данного алгоритма? (анализ спектра, определения такта, гармоник, использование окон Хемминга и пр.)
4. Какие задачи будут являться приоритетными с точки зрения программирования?

Заранее спасибо за ответы, а так же за то что прочли данное обращение)
Ответить с цитированием
  (#2 (permalink)) Старый
Vulcanoid Vulcanoid вне форума
Member
 
Сообщений: 146
Сказал(а) спасибо: 11
Поблагодарили 8 раз(а) в 8 сообщениях
Регистрация: 15.09.2010
По умолчанию 10.01.2012, 16:38

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

Цитата:
Сообщение от Vulcanoid Посмотреть сообщение
В приципе реализуемо, распозновать голос уже давно научились и это разделение возможно. Пригодиться с помощью этой проги караоки делать из .mp3.
Спасибо за ответ! Есть уже программы: Melodyne, WIDIpro, правда, они выполняют немного другие задачи и немного по другим принципам.

Melodyne предназначен для звукозаписывающих студий. Он разделяет аудиодорожку одного инструмента на ноты, способен распознавать даже аккорды.
WIDIpro распознает из музыкального трека только один из шести предложенных инструментов (барабан, бас, вокал, гитара и др.). Распознавание идет на основе спектра и хорошо работает только на аудиодорожке одного инструмента (при обработке обычного муз.трека точность распознавания значительно снижается).

Применение возможно для диджеев, для создания ремиксов не на основе обработки цельного трека (как в основном делается сейчас), а на основе обработки разделенных аудиодорожек муз.инструментов по отдельности.
Так же для музыкантов, которые хотят играть любимые произведения не с MIDI-партитурами (они звучат немного убого), а, допустим, на основе того же mp3. Например, гитарист захотел сыграть свою партию - через программу убрал в музыкальном файле партию гитары и начал играть её вместе с оставшимися инструментами.

Прошу оставлять любые комментарии в данной теме. Начиная от критики, заканчивая положительными отзывами. Любое высказывание ценно. Особенно если оно будет затрагивать вопросы из первого поста
Ответить с цитированием
  (#4 (permalink)) Старый
Влад Влад вне форума
Специалист
 
Сообщений: 3,884
Сказал(а) спасибо: 1
Поблагодарили 25 раз(а) в 25 сообщениях
Регистрация: 27.06.2002
Адрес: Санкт-Петербург
По умолчанию 11.01.2012, 13: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пасибо:
Glazzzman (12.01.2012)
  (#5 (permalink)) Старый
Glazzzman Glazzzman вне форума
Новичок
 
Сообщений: 3
Сказал(а) спасибо: 2
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 09.01.2012
Адрес: St.Petersburg
По умолчанию 12.01.2012, 20:15

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

На каком этапе ты сейчас находишься?

Да, еще пара соображений:
Не думаю, что ты сможешь добиться совершенно идеального разделения, без шумов и частиц других звуков. Скорее всего, на это понадобится время, возможно, довольно длительное - наверняка сделаешь не в первой версии продукта, это уж точно. И да, без анализа спектра, FFT, окон Хемминга и пр. ты не обойдешься. Но это все уже детали реализации.....
Здравствуйте!
Огромное спасибо за такой содержательный ответ!

Написание научно-методического обоснования мне придется писать одному, т.к. инвесторы еще не привлечены, а мне платить за работу нечем) Максимум, что я могу позволить - попросить у специалистов консультации в интернете и встречаться с людьми, которые имеют хорошие знания в этой сфере (как раз-таки в поиске таких людей, один уже согласился, вот на днях собираюсь с ним встретиться).
Да и тем более где я их найду? По-моему таких специалистов крайне мало...)

Так же мне очень важно знать программную начинку продукта: что и как мы будем делать. Для этого мне как раз-таки понадобится тот человек (консультант) и, может, программист (все-таки это лучше, чем ничего), причем, скорее всего студент (по крайней мере на первом этапе, если этого уровня знаний достаточно для обсуждения данной темы).

По поводу инвесторов - проект я делаю на базе бизнес-инкубатора, поэтому к встрече с инвесторами я буду подготовлен, тем более я посещаю презентации других проектов и отмечаю часто задаваемые вопросы. (В основном, какая прибыль и сколько надо финансов в цифрах - конечно же не из неба, а точно рассчитанные).

Далее, если я решу эти задачи, то этап разработки по-моему будет уже более стабильным. Конечно не без проблем, но по-крайней мере будет уже заложен фундамент и условия работы.

Нахожусь как раз-таки на первом этапе. Проектом занялся относительно недавно.

У меня данная тема может разделиться на 2 проекта, как я писал выше. Один - программа для музыкантов, где очень важна точность разделения, другая - не выводит аудиоформат как результат работы, там важно получить характеристики волны, отличить барабан от гитары и распознать физические параметры каждого звука музыкального инструмента.

Последний раз редактировалось Glazzzman; 12.01.2012 в 20:51 Причина: уточнить кое-что
Ответить с цитированием
Ads.
  (#6 (permalink)) Старый
andriano andriano вне форума
Member
 
Сообщений: 227
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
Регистрация: 13.02.2006
По умолчанию 01.04.2012, 20:07

На мой взгляд среди пунктов опроса явно не хватает следующего: "Это невозможно".

Цитата:
Сообщение от Glazzzman Посмотреть сообщение
2) Создать огромную базу данных сэмплов звуков музыкальных инструментов, чтобы сравнивать их со звуками в аудиозаписи. Данный вариант как мне подсказывают является самый легкореализуемый, но тут мы сталкиваемся с тем, что во-первых нужна огромная база данных сэмплов, во-вторых её нужно постоянно пополнять, т.к. появляются новые музык.инструменты (например, всякие новые пищалки и свистелки из электронной музыки), поэтому как мне кажется, следует создать универсальный алгоритм из первого варианта.
Боюсь, таким образом окажется возможным выделить лишь голос синтезатора и то лишь при условии, что программа будет располагать ТЕМ ЖЕ САМЫМ банком сэмплов, что и синтезатор.
Думаю, сэмпл одной скрипки вряд ли сможет помочь выделить голос другой скрипки.
И то же самое с одной скрипкой, но двумя разными скрипачами.
Цитата:
Для первого прототипа достаточно, чтобы он разделял музыкальный трек на типы музыкальных инструментов (барабан, тарелки в категорию ударных, гитара и голос в категорию ведущих, скрипка, свистелки и пищалки в другую категорию).
На мойц взгляд это существенно сложнее, чем восстановление нотной партитуры.
Цитата:
Пишу сразу, знания программирования у меня базовые, но мне они не нужны, т.к. будет набираться команда программистов. Но я должен знать, по крайней мере, как это сделать и какие ключевые задачи нужно затронуть.
Это верно. Программирование здесь вообще на проследнем этапе. А первый, самый главный и тот, который, на мой взгляд, так и не будет доведен до конца, - разработка работающих подходов к данной задаче.
Цитата:
Так же очень интересуют вопросы:
1. Возможно ли добиться идеального рзаделения, без шумов и частиц других звуков?
Как известно, задача очистки произвольного звука от шума алгоритмически неразрешима.
А указанная задача является лишь подзадачей для Вашей задачи.
Диагноз: нереализуемо.
Цитата:
2. Возможно ли реализовать такой универсальный алгоритм, который будет разделять трек на основе подобных звуков, а не базы сэмплов? (мне сказали, что очень сложно и не стоит на этом запариваться, лучше создать огромную бд сэмплов
На мой взгляд оба подхода не внушают оптимозма.
Цитата:
3. Чем придется воспользоваться для разработки данного алгоритма? (анализ спектра, определения такта, гармоник, использование окон Хемминга и пр.)
Предобаботка возможно, анадиз Фурье и амплитудных огибающих) + нейронные сети.
А, как известно, нейронные сети дают верный результат лишь с некоторой вероятностью отличной от 1. Т.е. на выходе будет что-то, что можно назвать разделением по дорожкам лишь с определенной вероятностью. И, боюсь, вероятность получения чего-либо удобоваримого окажется недопустимо низкой.
Цитата:
4. Какие задачи будут являться приоритетными с точки зрения программирования?
Об этом говорить преждевременно.
Единственное - тот, кто будет работать над подходами к решению этой проблемы, должен хорошо ориентироваться в том, что алгоритмически реализуемо, а что - нет.
Ответить с цитированием
  (#7 (permalink)) Старый
Сергей 66 Сергей 66 вне форума
Member
 
Аватар для Сергей 66
 
Сообщений: 1,424
Сказал(а) спасибо: 89
Поблагодарили 211 раз(а) в 186 сообщениях
Регистрация: 05.01.2011
Адрес: Белгородская обл.
По умолчанию 01.04.2012, 21:12

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

[QUOTE=Сергей 66;635815]
Цитата:
Сообщение от Glazzzman Посмотреть сообщение
База данных сэмплов-лучшее,что может быть на сегодняшний день.
А можно как-то аргументировать эту точку зрения?
Как имеющийся сэмпл некоторого инструмента может помочь в распознавании аналогичного инструмента в фонограмме?

Для синтеза музыкального звука сэмпл - вещь, безусловно, полезная. Но вот как его можно приспособить для анализа?
Ответить с цитированием
  (#9 (permalink)) Старый
Сергей 66 Сергей 66 вне форума
Member
 
Аватар для Сергей 66
 
Сообщений: 1,424
Сказал(а) спасибо: 89
Поблагодарили 211 раз(а) в 186 сообщениях
Регистрация: 05.01.2011
Адрес: Белгородская обл.
По умолчанию 03.04.2012, 11:11

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

Опции темы
Опции просмотра

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Важно ваше мнение!!!! Помогите!!! koroli44 Техническая поддержка 2 13.01.2012 22:38
Ваше мнение Armored Системный блок 34 12.10.2011 08:06
Ваше мнение механоид Видеокарты 3 21.01.2011 13:58
Выбор между Sven SPS 870 и Jetbalance JB-623, Важно Ваше мне Cosmologist Звук и акустические системы 0 15.11.2010 15:11
Важно Ваше мнение... Geen Подбор комплектующих 4 08.04.2010 17:47
Ваше мнение Andruxa Охлаждение и разгон 4 29.03.2010 18:32
Ваше мнение imported_basik Видеокарты 6 27.11.2009 01:40
Ваше мнение imported_basik Подбор комплектующих 5 27.10.2009 11:32
ваше мнение gnomon Подбор комплектующих 16 28.12.2008 01:32
ваше мнение. Peach_Pie Ноутбуки 5 23.08.2007 00:30
Очень важно Ваше мнение как IT-шников! Потапова Екатерина Работа 4 25.04.2006 18:34



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов