Версия для печати
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум на Исходниках.RU > Программирование звука > Как среагировать на определенный звук wav на компьютере в системе Windows |
Автор: ttt480 26.07.19, 17:27 |
Здравствуйте, уважаемые форумчане. Посоветуйте - какой программой можно заставить среагировать - на звучание на компьютере определенной мелодии длинной 2 секунды (не голоса а именно мелодии) ? Это файл C:\Windows\Media\tada.wav (при условии конечно, что одновременно нет звуков больше ни от каких других процессов) Вот нашел такую программу, которая строит изображение - звукового спектра tada.wav Вопрос в том, как сопоставить этот "эталонный" спектр" - общему потоку звукового звучания ? (Чтобы вовремя среагировать на него, когда в ОС появится звук с похожим спектром.) https://dropmefiles.com/ybhlw ______.rar (, : 778) Или может быть есть какие-то программы ? Добавлено Ну вот например эта программа - реагирует на два быстрых хлопка, рядом с микрофоном. Она быстро распознает спектр с двумя резкими звуковыми возмущениями и реагирует на них. https://dropmefiles.com/UUvw3 Можно скриптом реализовать что-то похожее, только c реакцией на мелодию tada.wav ? |
Автор: Prince 27.07.19, 17:32 |
Если сигнал известен, можно обнаружить его согласованным фильтром, в данном случае, выполнить свертку сигнала на выхода карты с сигналом из файла, развернутым наоборот. Но много вычислений получится, если файл большой. Можно взять небольшой характерый отрывок и искать его в звуковом потоке. Захват можно осуществить при помощи basswasapi.dll. Она умеет работать с loopback, из коробки. |
Автор: ttt480 31.07.19, 19:36 |
Нет файл небольшой - всего 3 секунды. Цитата Prince @ Захват можно осуществить при помощи basswasapi.dll. Она умеет работать с loopback, из коробки. А как это скриптом реализовать ? |
Автор: ttt480 05.07.20, 18:16 |
Здравствуйте, уважаемые форумчане. Посоветуйте - какой программой можно заставить среагировать - на звучание на компьютере определенной мелодии длинной 2 секунды (не голоса а именно мелодии) ? Это файл C:\Windows\Media\tada.wav (при условии конечно, что одновременно нет звуков больше ни от каких других процессов) Вот нашел такую программу, которая строит изображение - звукового спектра tada.wav Вопрос в том, как сопоставить этот "эталонный" спектр" - общему потоку звукового звучания ? (Чтобы вовремя среагировать на него, когда в ОС появится звук с похожим спектром.) |
Автор: Mikle 06.07.20, 06:12 |
Не прошло и года. Если это именно воспроизведение этого файла, то, может быть, достаточно отследить его открытие? Чревато ошибкой, если, например, открыть файл в каком-нибудь редакторе, но не воспроизводить, или антивирусник решит проверить файл. Или звук этот, но прийти может из другого источника? Тогда вешать на Output звучки анализатор. Но это тоже не 100% надёжно - пользователь может поменять настройки звучки так, что воспроизводимые звуки не будут попадать на запись, хотя и будут звучать. |
Автор: ttt480 15.11.20, 18:35 |
Цитата Mikle @ Или звук этот, но прийти может из другого источника? Тогда вешать на Output звучки анализатор. Но это тоже не 100% надёжно - пользователь может поменять настройки звучки так, что воспроизводимые звуки не будут попадать на запись, хотя и будут звучать Да этот звук проигрывается не из файла, а идет из другого источника - через микрофон. Вы пишите, что "Тогда вешать на Output звучки анализатор. Но это тоже не 100% надёжно" Ничего страшного, что ненадежно - лишь бы было хоть что-нибудь. (Никто вообще ничего не ответил - за несколько лет.) Как это сделать - этот "Output анализатор"? Как скриптом среагировать на данный звук tada.wav ? |
Автор: Mikle 17.11.20, 10:55 |
Этот самый звук "тада" - просто аккорд до мажор, можно посмотреть частоты его составляющих - да+ми+соль - и ждать появления этих частот. Чтобы не получать ложное срабатывание при прослушивании музыки (до мажор - очень распространённый аккорд) засекать характерные длительности (короткий + длинный). |
Автор: ttt480 01.02.21, 05:41 |
Здравствуйте, уважаемые форумчане. Посоветуйте - какой программой или скриптом можно заставить среагировать - на звучание на компьютере определенной мелодии длинной 2 секунды (не голоса а именно мелодии) ? Это файл C:\Windows\Media\tada.wav (при условии конечно, что одновременно нет звуков больше ни от каких других процессов) Вот нашел такую программу, которая строит изображение - звукового спектра tada.wav Вопрос в том, как сопоставить этот "эталонный" спектр" - общему потоку звукового звучания ? (Чтобы вовремя среагировать на него, когда в ОС появится звук с похожим спектром.) |
Автор: Gonarh 01.02.21, 07:00 |
Программно открыть микшер, постоянно вести запись, анализировать чем-нить типа быстрым преобразованием фурье получив массив частот и амплитуд, сравнить с эталоном. |
Автор: ttt480 01.02.21, 08:03 |
Gonarh здравствуйте. Помогите написать скрипт который это делает. Я заплачу деньги. |
Автор: Prince 01.02.21, 16:12 |
Не слышал, чтобы такое скриптами делалось. Опиши задачу. На что нужно среагировать и в чем реакция должна выражаться. |
Автор: ttt480 02.02.21, 03:57 |
Prince задача такая. Есть поток звука, который может идти от микрофона или от какой-то программы. Нужно среагировать на определенный конкретный звук, который может встретится в этом потоке (при условии что нет каких-то посторонних шумов или других звуков). То есть должна быть реакция на спектр конкретного звука - в звуковом потоке. В качестве примера рассматривается звук tada.wav (не файл tada.wav, а спектр звука из этого файла) А реакция на этот звук - это дело десятое. Например - это появление сообщения "Hello world" Самое главное - чтобы скрипт среагировал на конкретный звуковой спектр (длиной например - три секунды). |
Автор: Mikle 02.02.21, 05:43 |
Это сильно облегчает задачу. Цитата ttt480 @ То есть должна быть реакция на спектр конкретного звука - в звуковом потоке. В качестве примера рассматривается звук tada.wav (не файл tada.wav, а спектр звука из этого файла) Этот пример конкретизирует задачу, возможно, в неверном направлении. Звук "tada.wav" действительно можно детектировать по спектру, это конкретный музыкальный сигнал. А вот, если нужно среагировать, например, на фразу "Алиса, выключи компьютер", то спектр тут не поможет. Так что нужно описать задачу ещё конкретнее. |
Автор: ttt480 02.02.21, 06:18 |
Mikle если речь идет о том, чтобы была реакция на "Алиса, выключи компьютер" - это не то. Мне нужна не речь, а конкретный точный звуковой спектр. tada.wav - воспроизводится всегда с одинаковым спектром, сколько раз его не запусти. Допустим звуковой файл состоит из трех последовательно соединенных элементов: "Алиса, выключи компьютер" + "tada.wav" + "Алиса, выключи компьютер" Когда скрипт посередине проигрывания файла услышит нужный звуковой спектр - он среагирует. Звук из tada.wav - длится от силы 2 секунды. |
Автор: Mikle 02.02.21, 07:39 |
Первый аккорд гимна России - тоже до мажор, имеет примерно ту же длительность и диапазон. Тебя устроит, что скрипт будет реагировать заодно на гимн России? Понятно, что точного соответствия звуков нет, но, если написано: Значит так и предполагается, что не предвидится точного соответствия, особенно в случае прохода звука через микрофон. |
Автор: ttt480 02.02.21, 07:52 |
Mikleс микрофоном - это я наверное погорячился. Скорее речь идет о какой либо программе. Если микшер громкости на компьютере открыть, то можно увидеть что от каких-то приложений исходит звук. Насчет гимна, в принципе - похожий звук. Навряд ли от приложения будет исходить звук гимна. Но если даже в приложении chrome.exe заиграет гимн - и скрипт среагирует - это будет нормально потому что звук действительно похож. Тут вопрос о том, что нужно как-то записывать спектр этого короткого звукового сигнала - чтобы потом среагировать на него. |
Автор: Mikle 02.02.21, 10:33 |
Вот спектр сигнала "тада": При воспроизведении сигнал может пройти регулятор громкости, это повлияет на уровень кривой на графике. Так же возможно действие эквалайзера, тогда график будет в разных местах плавно изогнут вверх или вниз. Чтобы не зависеть от этого, я бы действовал так: Взял в средней области несколько пиков (отмечено зелёным и пронумеровано внизу). Между пиками отметил несколько характерных точек, можно просто взять середины промежутков (отмечено синим). Сделал бы резонансные фильтры по количеству отмеченных точек. Прогонял бы сигнал через фильтры и сравнивал уровни сигналов с усреднённым уровнем двух соседей, например, уровень сигнала между точками 2 и 3 должен быть на 20-30 Дб меньше полусуммы уровней 2 и 3. Такое измерение позволит обойти влияние эквалайзера. Если все фильтры показывают прохождение две секунды - считать, что сигнал детектирован. |
Автор: ttt480 02.02.21, 11:01 |
Mikleпонятно. Сделайте мне этот скрипт ? Я заплачу деньги. |
Автор: Prince 02.02.21, 13:45 |
Попробую на досуге что-нить придумать на эту тему, но это будет не скоро. И да, никого не смущает слово скрипт? |
Автор: Mikle 02.02.21, 17:47 |
Да, слово неподходящее. Мне некогда. По деталям реализации могу подсказать, в том числе если Prince будет делать. |
Автор: ttt480 02.03.21, 04:59 |
Prince, Здравствуйте. Вы уже сделали что-нибудь ? |
Автор: Pavia 02.03.21, 05:42 |
Тут через нейронные сети нужно. Нужен датасет ложных звуков что-бы на них не реагировал. |
Автор: ttt480 03.03.21, 09:01 |
Помогите. |
Автор: ttt480 09.03.21, 23:21 |
Здравствуйте, уважаемые форумчане. Посоветуйте - какой программой или скриптом можно заставить среагировать - на звучание на компьютере определенной мелодии длинной 2 секунды (не голоса а именно мелодии) ? Это файл C:\Windows\Media\tada.wav (при условии конечно, что одновременно нет звуков больше ни от каких других процессов) Вот нашел такую программу, которая строит изображение - звукового спектра tada.wav Вопрос в том, как сопоставить этот "эталонный" спектр" - общему потоку звукового звучания ? (Чтобы вовремя среагировать на него, когда в ОС появится звук с похожим спектром.) |
Автор: ttt480 21.03.21, 05:30 |
Здравствуйте, уважаемые форумчане. Посоветуйте - какой программой или скриптом можно заставить среагировать - на звучание на компьютере определенной мелодии длинной 2 секунды (не голоса а именно мелодии) ? Это файл C:\Windows\Media\tada.wav (при условии конечно, что одновременно нет звуков больше ни от каких других процессов) Вот нашел такую программу, которая строит изображение - звукового спектра tada.wav Вопрос в том, как сопоставить этот "эталонный" спектр" - общему потоку звукового звучания ? (Чтобы вовремя среагировать на него, когда в ОС появится звук с похожим спектром) |
Автор: Jin X 21.03.21, 13:07 |
ttt480, вы теперь каждую неделю будете одно и то же сообщение повторять? Может, стоит найти фрилансера на специализированных сайтах? |
Автор: ttt480 23.03.21, 10:01 |
Jin X давайте тогда я заплачу деньги. Сколько будет стоить ? |
Автор: Jin X 25.03.21, 09:09 |
ttt480, мне не надо платить, я же не предлагаю свои услуги. Есть куча сайтов, где можно найти исполнителей. Они все легко гуглятся. |
Автор: ttt480 27.03.21, 15:34 |
Ничего не могу найти. Помогите. |
Автор: Alexei 28.03.21, 12:23 |
За это время можно было бы самому научиться или денег накопить. Огласите Если найдете и опять будет что-то про "скрипт", то я вам не завидую: узнаете много нового о себе. По теме: Вам пора бы определиться Цитата - достаточно если она будет ОДНОГОЛОСОЙ ? Или вам нужен целый "оркестр" распознать.на звучание на компьютере определенной мелодии А вот это совсем печально. Проскочит если микрофон будет в студии , а специально обученный "солист" -перед ним. Думаю, тут понадобится матрица из микрофонов и DSP. Как вариант : купите колонку с Алисой, и договоритесь с Яндексом. |
Автор: ttt480 29.03.21, 13:05 |
Звук наподобие tada.wav - это короткий звук конкретной частоты. Я не очень разбираюсь в терминах - не знаю одноголосый он или многоголосый. Просто короткий звук, длительностью максимум 3 секунды. (если вы имеете ввиду - не играет ли что-ни будь на фоне этого звука. Нет - не играет. Только один этот звук и ничего другого на фоне.) Цитата Alexei @ Проскочит если микрофон будет в студии , а специально обученный "солист" -перед ним. Думаю, тут понадобится матрица из микрофонов и DSP. Нет, имеется ввиду не микрофон, а звук исходящий из какой-то программы. Я имел ввиду, что алгоритм должен висеть в трее и постоянно "слушать" звуки которые исходят из этой конкретной программы и среагировать тогда, когда она услышит нужный звук. (среагировать как угодно, например выдать окошко Msgbox с надписью "Hello world") В микрофоне могут быть шумы, искажения, фоновые звуки. А звук проигрываемый программой - хоть она тысячу раз его проиграет - это будет в точности тот же самый звук, в точности той же самой частоты без малейших отклонений. Про деньги уже много раз писал, что заплачу их. Все равно никто не помогает. |
Автор: Alexei 30.03.21, 09:29 |
По моему, вы путаетесь в показаниях... Одноголосый , это когда вы один напеваете, или одним пальцем тыкаете в рояль... В том-то и дело, что про деньги, а не про их количество... Можно сообщить в личку безмерно большую величину вашей благодарности. Может, заинтересуюсь, кое-какие мысли есть. |
Автор: ttt480 30.03.21, 15:32 |
Нет не путаюсь. Вот - сообщение 14 Как среагировать на определенный звук wav на компьютере в системе Windows Речь идет о программе, которая производит некий звук. А в 15 сообщении человек примерно объяснил как можно детектировать звук, основываясь на его частоте. Хорошо. Тогда делайте. А я вам все оплачу. |
Автор: ^D^ima 12.04.21, 14:10 |
Может быть проще отследить обращение к файлу? |