Понедельник, 22 Июня 2009 г. 04:11
ссылка
Голос, я знаю, вырезают очень нехитрым способом: берут разницу между каналами *чаще всего вычитают не сигналы, а их спектры). Обычно голос пишут ровно на все каналы, а инструменты нет. Я думал и иногда сажусь за работу над другим методом спектрального анализа: вырезать голос, исходя из предположения, что инструменты настроены идеально, и все звуки, которые они издают не строго на частотах нот, имеют частоты в целое число раз отличающиеся от ноты, в то время как голос попадает в ноты не идеально и имеет непрерывный, а не дискретный спектр, однако фальшивит менее, чем на полутон. В таком случае можно составить список разрешённых (частоты нот и кратные им) и запрещённых (все остальные) частот. Потом взять производную от спектра по времени, запрещённые частоты вообще вырезать, предварительно посчитав средние значения их производных возле разрешённых частот, и из производных разрешённых частот вычесть средние значения близких к ним запрещённых. И вот как-то оно должно работать. Будет ли -- понятия не имею, пока не проверю, а работы много.
А вот как вырезать один инструмент -- это задача похитрее. В принципе, звук инструмента куда лучше поддаётся анализу, чем голос, так как у каждого инструмента есть свой характерный спектр. Можно пытаться подбирать такие значения нот, при которых разница между исходным сигналом и сигналом после вычитания предполагаемого звука, минимальна.
Но всё это уже совсем малопонятная задача. Гораздо проще разобрать сигнал на набор ярко выраженных мелодий, распознать ноты, и таким образом получить предполагаемую партитуру. Потом просто предложить пользователю самому расставить инструменты или по необходимости убрать.
А вот сдвинуть тональность уже готовой минусовки - да с полпинка! Если это midi, который по сути представляет собой компьютерную запись нот, то это умеет делать любой нотный редактор. Если это просто звук - только чуть-чуть сложнее: надо взять спектр, сдвинуть его, но не линейно, а со сжатием, после чего восстановить сигнал. В принципе, серьёзные звуковые редакторы это умеют.