Версия для печати
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум на Исходниках.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
Цитата Prince @
много вычислений получится, если файл большой.

Нет файл небольшой - всего 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 @
при условии что нет каких-то посторонних шумов или других звуков

Это сильно облегчает задачу.
Цитата 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 @
может идти от микрофона или от какой-то программы

Значит так и предполагается, что не предвидится точного соответствия, особенно в случае прохода звука через микрофон.

Автор: ttt480 02.02.21, 07:52
Mikleс микрофоном - это я наверное погорячился.
Скорее речь идет о какой либо программе.
Если микшер громкости на компьютере открыть, то можно увидеть что от каких-то приложений исходит звук.

Насчет гимна, в принципе - похожий звук.
Навряд ли от приложения будет исходить звук гимна.
Но если даже в приложении chrome.exe заиграет гимн - и скрипт среагирует - это будет нормально потому что звук действительно похож.

Тут вопрос о том, что нужно как-то записывать спектр этого короткого звукового сигнала - чтобы потом среагировать на него.

Автор: Mikle 02.02.21, 10:33
Вот спектр сигнала "тада":

user posted image

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

Чтобы не зависеть от этого, я бы действовал так:
Взял в средней области несколько пиков (отмечено зелёным и пронумеровано внизу).
Между пиками отметил несколько характерных точек, можно просто взять середины промежутков (отмечено синим).
Сделал бы резонансные фильтры по количеству отмеченных точек.
Прогонял бы сигнал через фильтры и сравнивал уровни сигналов с усреднённым уровнем двух соседей, например, уровень сигнала между точками 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 @
Сделайте мне этот скрипт ?
Я заплачу деньги.

Мне некогда. По деталям реализации могу подсказать, в том числе если 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
Цитата Jin X @
Они все легко гуглятся.

Ничего не могу найти.
Помогите.

Автор: Alexei 28.03.21, 12:23
Цитата ttt480 @
Помогите.

За это время можно было бы самому научиться или денег накопить.
Огласите весь список сумму ,может желающие сами набегут.

Цитата ttt480 @
Ничего не могу найти.

Если найдете и опять будет что-то про "скрипт", то я вам не завидую: узнаете много нового о себе. :)
По теме: Вам пора бы определиться
Цитата
на звучание на компьютере определенной мелодии
- достаточно если она будет ОДНОГОЛОСОЙ ? Или вам нужен целый "оркестр" распознать.
Цитата ttt480 @
через микрофон

А вот это совсем печально. Проскочит если микрофон будет в студии , а специально обученный "солист" -перед ним. Думаю, тут понадобится матрица из микрофонов и DSP.
Как вариант : купите колонку с Алисой, и договоритесь с Яндексом. :)

Автор: ttt480 29.03.21, 13:05
Цитата Alexei @
- достаточно если она будет ОДНОГОЛОСОЙ ? Или вам нужен целый "оркестр" распознать.

Звук наподобие tada.wav - это короткий звук конкретной частоты.
Я не очень разбираюсь в терминах - не знаю одноголосый он или многоголосый.
Просто короткий звук, длительностью максимум 3 секунды.

(если вы имеете ввиду - не играет ли что-ни будь на фоне этого звука. Нет - не играет. Только один этот звук и ничего другого на фоне.)
Цитата Alexei @
Проскочит если микрофон будет в студии , а специально обученный "солист" -перед ним. Думаю, тут понадобится матрица из микрофонов и DSP.

Нет, имеется ввиду не микрофон, а звук исходящий из какой-то программы.
Я имел ввиду, что алгоритм должен висеть в трее и постоянно "слушать" звуки которые исходят из этой конкретной программы и среагировать тогда, когда она услышит нужный звук.
(среагировать как угодно, например выдать окошко Msgbox с надписью "Hello world")

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

Про деньги уже много раз писал, что заплачу их.
Все равно никто не помогает.

Автор: Alexei 30.03.21, 09:29
Цитата ttt480 @
Нет, имеется ввиду не микрофон

По моему, вы путаетесь в показаниях... :)
Цитата ttt480 @
звук идет из микрофона - там нет медиаресурса.


Цитата ttt480 @
не знаю одноголосый он или многоголосый.

Одноголосый , это когда вы один напеваете, или одним пальцем тыкаете в рояль... :)

Цитата ttt480 @
Про деньги уже много раз писал

В том-то и дело, что про деньги, а не про их количество... :)
Можно сообщить в личку безмерно большую величину вашей благодарности. ;)
Может, заинтересуюсь, кое-какие мысли есть.

Автор: ttt480 30.03.21, 15:32
Цитата Alexei @
По моему, вы путаетесь в показаниях...

Нет не путаюсь.

Вот - сообщение 14
Как среагировать на определенный звук wav на компьютере в системе Windows
Речь идет о программе, которая производит некий звук.

А в 15 сообщении человек примерно объяснил как можно детектировать звук, основываясь на его частоте.

Цитата Alexei @
Может, заинтересуюсь, кое-какие мысли есть.

Хорошо.
Тогда делайте.
А я вам все оплачу.

Автор: ^D^ima 12.04.21, 14:10
Цитата ttt480 @
Речь идет о программе, которая производит некий звук.

Может быть проще отследить обращение к файлу?

Powered by Invision Power Board (https://www.invisionboard.com)
© Invision Power Services (https://www.invisionpower.com)