Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Вырезание голоса из песни (http://www.flasher.ru/forum/showthread.php?t=146425)

xpymbl4 07.11.2010 19:11

Вырезание голоса из песни
 
Натыкался ли кто-нибудь на алгоритм вырезнания голоса из песни? Ну или голоса из шума. Или может кто знает способы реализации?

VVall 07.11.2010 20:07

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

xpymbl4 07.11.2010 20:17

Собственно то что и нужно - анализ частот, нахождение частот где расположен голос, подавление всех частот где голоса нет. Никакие инструменты на выходе мне не нужны, только голос.
Алгоритмов таких не встречали? как думаете, на флеше такое реализовать возможно? Или вообще на чем такое можно реализовать?

Rox 07.11.2010 20:20

Алгоритм прост:
1. пишем в поисковике: скачать миди <Название песни>
2. качаем программу для работы с миди
3. качаем vst плагины (эмуляторы синтезаторов гитар и ударных)
4. подключаем вст инструменты в скачанной программе или подключаем миди контроллер через usb интерфейс к синтезатору с этими готовыми инструментами=)
5. нажимаем кнопочку сохранить mp3 =)
о чудо песня без голоса))

Добавлено через 12 минут
конкретно задачу сформульируйте. реализовать для веб? или реализовать просто для себя?
вообще голоса лежат около 1кгц по частотам. +-400 и еще небольшие хвостики по всему спектру. Задача решается через алгоритмы преобразования фурье. лично я пытался решить некую аналогичную задачу, но увы математики не хватило, а в универе в свое время нам этого не давали.

Кроме того для работы со звуком используется не чистое преобразование фурье, а так называемое "быстрое преобразование фурье". Голосовые связки колеблются по синусу. разложив по синусоидам волну можно выделить нужные синусоиды. но это дело скажем лет 10-15 жизни)) т.к. мат апарат там жесть.

Если на флеше есть sdk эквалайзера, то можно попробовать частотами поиграть. А так впринципе уже есть готовые sdk под делфями, например библиотека bass.dll.

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

VVall 07.11.2010 21:01

Если задача "оставить голос", а не "вырезать", т.е. убрать - то проблема обратная: эквалайзер оставит вам прямо в голосе звуки инструментов; метод вычитания каналов, если он применим к обратной задаче (надо подумать) оставит вместе с голосом и всё, что в центре панорамы. А там может быть половина всех инструментов. В любом случае, обе задачи невозможно решить в принципе, чтобы оставить только голос или только музыку. Считайте, что голос - это точно такой-же инструмент, и вы хотите из играющего большого оркестра вырезать или оставить только одну скрипку.

На AS3 эти алгоритмы реализуются, только работать будет на порядки медленнее, чем на C и т.п.

mikhailk 07.11.2010 23:28

В общем виде алгоритм не реализовать.

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

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

Есть вариант с точной минусовкой. По идее, если из фонограммы вычесть минусовку, то останется голос, но на самом деле и это не так.

Котяра 08.11.2010 00:01

Берём мастер диск с несведёнными дорожками и убираем галочку с канала
@voice для минусовки/ со всех остальных для а капелла.
Тут для вырезания вувузелы во время трансляции ЧМ в ЮАР лучшие умы голову ломали) А там всего-то пару явно выраженных рисунков.

xpymbl4 08.11.2010 00:22

Ага. отлично. спасибо. От идеи скорее всего придется отказаться, а жаль.

chabapok 08.11.2010 04:08

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

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


Часовой пояс GMT +4, время: 21:11.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.