Интересует возможность технической реализации следующей задачи (а может даже готовое решение).
Я видел, что в аудиоредакторах можно вырезать музыку, чтобы остался только голос.
Вот мне нужно то же самое, только в реальном времени. Чтобы я ни смотрел: ролик на жестком диске, видео с Youtube или что-либо еще. Чтобы из звукового потока вся музыка вырезалась и оставался один голос.
Я понимаю, что качественно удалить музыку не получится. Но хотя бы снизить ее до минимума.
Концептуальные вопросы (а зачем тебе и т.д.) просьба пока не писать. Знаю огромную аудиторию для этой функции.
Друзья, интересует любая информация. В принципе реализуемость, сложность, уровень компетенции программистов, стоимость, сроки, возможно, внешнее оборудование, альтернативы.
Впринципе реализуемо. Ютуб по жалобе копирайтеров музыку вырезает из видео. Естественно там НС.
сложность
От сложно до очень сложно, если делать все с нуля.
уровень компетенции программистов
Очень компетентные программисты с такой задачей опять же с нуля врятли справятся. Тут скорее опять же эксперты по НС. Никакой алгоритм вам точно не скажет, музыка ли сейчас, или голос. Вернее скажет в 1 песне из 10 и то, в 1 месте песни из 10.
Что касается готовых реализаций или куда копать. Копать в торону гугловских апи. Возможно у них есть подобные API. Вот тут посмотрите https://cloud.google.com/
numfin, почему не в тему? Задачи гугла при удалении музыки с ютубе похожи на те задачи которые хочет решить ТС. Я дал точку где можно поискать API для подобной задачи, возможно там что-то полезное найдется. А возможно и нет, тогда уж извните.
devalone, мы видимо про разные ютубы говорим. никогда внимания не обращали, на искореженную музыку в видео? Автор что-то говорит, а на фоне иногда вырывается песня которую вставил автор, но ютуб ее отделяет от голоса и глушит, причем голос вполне себе спокойно продолжает существовать.
Григорий Хримян, а вот на счет этого не знаю. Скорее всего не RT. Зачем каждый раз, кажому человеку в видео проводить расчеты, чтобы удалить песню. Действительно это не RT. Но другого варианта у меня нет. Но если существует такой апи от них, то можно в RT на сервере производителя софта это делать, мощности конечно же нужны не маленькие, но это уже другой вопрос. Тот же Translate API от гугла переводит сообщение почти в RT, вы пишите текст, он отправляется на сервер, там обрабатывается, возвращает перевод. Есть у них конечно база данных скорее всего из популярных фраз, слов, предложений, но остальное переводится в "почти RT". Короче очень много "НО" в данном вопросе.
Может у гугла и нейросети этим занимаются, но в начале 2000-х cooledit pro это делал с помощью плагинов. Тогда о нейросетях никто кроме ученых и не слышал, да и не потянули бы те компьютеры подобные излишества, а вырезание лишних частот более-менее быстро работало на том железе. Имхо, вы написали ответ просто наугад, совершенно не владея темой.
Григорий Хримян, эта программа не была предназначена для реалтайма, но на среднем компьютере 2004 года делала это вполне быстро (были вроде бы какие-то программы, обрабатывающие звук vsti плагинами в реальном времени вроде бы, но мне тогда это не нужно было, поэтому я в них не погружался). Вам бы вопрос задать на форумах звукорежиссёров и увлекающихся написанием музыки на компьютере людей, может и программиста не придется искать.
Голос имеет свою частоту. Можно срезать все, что не попадает в этот диапазон.
Будет ли это качественно? Вряд ли. Даже ручная обработка трека не дает чистой минусовки — слышен сайдчейн, куча лишних мусорных шумов, поломанный голос. Идеально чистого звука просто так не добиться. Наверное, можно разработать алгоритмы, которые доведут этот процесс до хорошего результата. Но на коленке такое не собрать.
https://en.wikipedia.org/wiki/Cocktail_party_effect
Можно попробовать алгоритм слепого разделения сигналов (Blind Signal Separation)
Там различные присутствуют техники, попробуйте какая Вам больше приглянется
Григорий Хримян, сначала попробуйте просто в постобработке - в книге Хайкина, например, есть код для Matlab, где он смешивает три сигнала, а затем их разделяет с помощью максимизации взаимной информации. Если Вы пользователь Python, в библиотеках scikit-learn так же есть примеры применения этого алгоритма.
Даниил Смирнов, спасибо. Но это пока слишком круто для меня. Интересовало направление мысли. В постобработке Audition неплохо справляется. Но это совсем другое.
Григорий Хримян, почему же, данный метод вполне себе работает в real-time, он просто вычисляет матрицу смешения и затем отделяет источники друг от друга. В постобработке я предложил просто понаблюдать.
Григорий Хримян, по микроконтроллерам я не спец, больше в ПЛИС. Вы ищете возможности изготовления готового устройства? Как Вы видите его реализацию? Звучит просто интересно.
Даниил Смирнов, почему бы и нет, как вариант. Кабель с 3.5 джеком, потом микроконтроллер, а в нем 3.5 разъем для наушников. Питание от батареек. Соответственно девайс может работать от любых устройств. Железо все доступное. Вот сколько будет стоить разработка ПО ??