ОБСЛУЖИВАНИЕ И РЕМОНТ ФОРТЕПИАНО

ГОСТЕВАЯ ВЕРСИЯ ФОРУМА


Начать новую тему Ответить на тему  [ Сообщений: 25 ]  На страницу 1, 2, 3  След.
Автор Сообщение
 Заголовок сообщения: Устройство для распознавания биений - каким ему быть?
СообщениеДобавлено: 08 май 2023, 15:01 
Активный завсегдатай
Аватара пользователя
То что любой настройщик работающий на слух может делать почти интуитивно оказывается не такой простой задачей для программистов и инженеров. Речь про слышание биений. Как эффективно автоматизировать эту работу настройщицкого слуха?

Я потратил некоторое время на попытку соорудить «несложную» программу призванную показывать слышимые биения в виде числа. После того как программа разрослась в размерах но так и не выдала желаемого результата я, наконец, решил собрать известные мне сведения здесь и изложить видимые причины того почему задача не столь проста как выглядит с самого начала. Возможно, это поможет мне или кому-нибудь другому в дальнейших попытках автоматизировать эту часть труда настройщика.

Прежде всего, давайте определимся, чего мы хотим в идеале? Как на практике должно выглядеть подобное вспомогательное устройство? Я убежден что оно должно быть максимально простым (и бесплатным :D ). Например, приложение на телефоне практически без каких-либо настроек показывающее на экране численное значение основных слышимых биений. Хотя бы основного. И может быть мелким шрифтом — другие, если их тоже слышно. Меня также устроил бы сайт на который можно было бы зайти и в результате увидеть то же самое число крупным шрифтом на весь экран. Остальное было бы уже необязательными усложнениями.

Но вот, для примера, устройство изготовленное настройщиком Mark Cerisano, инженером по образованию:

Изображение

Марк сам спроектировал и изготовил его. Ему удалось даже продать один или несколько экземпляров устройства. Изготовив несколько работающих прототипов, потерпев неудачу с подрядчиками, он наконец, сам взялся за работу и довёл коробочку до более-менее приличного вида. И что самое главное — она действительно делает то для чего была создана. Вы спросите: а где же экранчик с цифрами? Его нет. Устройство следует включать в электрическую розетку и настраивать всеми этими ручками. После чего вы сможете отчетливо услышать биения из динамика устройства. И сами на слух оценить их скорость числом.

Далеко от идеала.

Однако, помимо этого устройства Mark Cerisano сделал одно очень хорошее дело: он объяснил нам каким образом можно визуализировать биения. Тем самым он дал и ключ к возможному алгоритму решения задачи:

https://youtu.be/9SBAW7ku-hU?t=478

Оказывается, после несложной фильтрации входного акустического сигнала можно получить наглядное изображение интервальных биений следующего вида:

Изображение

То есть, можно увидеть подобную картинку совершенно не задумываясь о том какие именно характеристики сигнала сделали биение слышимым. И подсчитать их количество за секунду. Как, например, тут - 5 биений в секунду. При таком подходе оказывается важно то что амплитуда биений изображена максимально наглядно.

Казалось бы, дело за малым: приделай ко всей этой математике экранчик показывающий число 5 — и готово!

Но тут во мне просыпается математик и говорит: Позвольте, ведь тут ясно видно что частота самих звуковых колебаний гораздо выше чем частота биений. Необходимо построить огибающую этого сигнала. И вот её частота и будет являться частотой биений. Тут уже пахнет преобразованием Гильберта-Хуанга. Очевидные для человека вещи оказываются не так просты для компьютера.

Но и это ещё не всё. Фильтрацию сигнала по частоте, предложенную Марком Церизано для визуализации биений следует выполнять не абы где а вокруг потенциальных частот возникновения этих самых биений. То есть сперва хорошо бы распознать сам проигрываемый интервал чтобы понять в каких местах частотного диапазона фортепиано могут возникать биения. А это как делать?

Нейронные сети уже давно стали обыкновенным инструментом для решения задач распознавания чего-либо. Современные технологии позволяют встраивать обученную «нейронку» в простые программы вроде андроидных приложений. Меня, например, умиляет одна такая небольшая программка называемая Object Detector and Classifier:

Изображение

Собственно, нам нужно такое же но «только с перламутровыми пуговицами». Пусть распознает интервалы на слух.

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

Распознав интервал на слух компьютер мог бы затем легко определить в каких диапазонах частот следует искать потенциальные биения, отфильтровать эти диапазоны по Марку Церизано, построить огибающие по Гильберту-Хуангу, по огибащей вычислить частоту биений, показать число на экране. И всё это — в реальном времени.

Только… Где, спрашивается, мы возьмём «десятки тысяч» проигранных интервалов для обучения нейронной сети? Кто будет их наигрывать? К счастью, здесь нет необходимости сидеть за инструментом годами. Достаточно програть все клавиши по одной в их естественном хроматическом порядке. Так чтобы каждый звук длился по крайней мере 2-3 секунды (обычное время, достаточное для распознавания биений натренированным слухом). Затем — нашинковать запись на 88 отдельных звуковых файлов. Далее можно автоматически комбинировать из полученных «клавиш» любые интервалы. Так мы получим все интервалы для данного инструмента. Их будут многие десятки. На них то и будем обучать нейронку.

Но и этого мало. Чтобы обучение нейронной сети было эффективным, чтобы результирующий кругозор её оказался достаточно большим, для обучения необходимо будет задействовать по крайней мере несколько инструментов: пианино и роялей. В итоге, возможно, мы сможем скормить обучаемой нейронной сети если не десятки тысяч то хотя бы тысячи интервалов.

Такая вот расширенная постановка такой простой-непростой задачи.


Вернуться к началу
 Профиль  
Cпасибо сказано 
За это сообщение пользователю Сергей "Спасибо" сказали:
AlexHutor, Klopff, Октямыч
 Заголовок сообщения: Re: Устройство для распознавания биений - каким ему быть?
СообщениеДобавлено: 08 май 2023, 16:17 
Administrator
Аватара пользователя
phpBB [video]


Вернуться к началу
 Профиль  
Cпасибо сказано 
 Заголовок сообщения: Re: Устройство для распознавания биений - каким ему быть?
СообщениеДобавлено: 08 май 2023, 17:23 
Активный завсегдатай
Аватара пользователя
Это пример довольно сложного девайса В комментариях я отыскал как сам автор видео отзывается о нём:

I use a Sanderson Accutuner IV which has a built-in bandpass filter and an RCA out which let's you hear the frequency selected if you have powered headphones or power it through an amp of some type. It is a very cool learning tool and I find that it doesn't take long listening to the beats filtered to be able to hear them better without the filter. However, it isn't the most economical tool, because the tuner costs around $1,700. I thought it would be great if someone built a bandpass filter app with controls to select the notes of the piano, but I haven't found one yet.


https://www.accu-tuner.com/accutuner4.html


Вернуться к началу
 Профиль  
Cпасибо сказано 
 Заголовок сообщения: Re: Устройство для распознавания биений - каким ему быть?
СообщениеДобавлено: 09 май 2023, 16:16 
Мэтр
Аватара пользователя
Мне представляются необходимыми такие фазы в работе подобного устройства:
1. Определение основных частот обоих тонов интервала.
2. Определение частотной области наиболее низкого совпадения гармоник.
3. Настройка полосового фильтра на эту частоту.
4. Вылавливание моментов максимумов амплитуды колебаний на этой частоте и подсчет времени периода появления этих максимумов.
5. Пересчет длительности этого периода в частоту.
Понимаю, что последнее - это проще всего.
Первые две задачи я могу и на слух решить, третью и вручную несложно осуществить. Будь у меня сильное желание, масса свободного времени и неограниченный доступ к любым радиодеталям, а думаю, что смог бы реализовать четвертый этап аппаратно. Тем более — пятый. Но в программировании я профан.


Вернуться к началу
 Профиль  
Cпасибо сказано 
 Заголовок сообщения: Re: Устройство для распознавания биений - каким ему быть?
СообщениеДобавлено: 14 май 2023, 19:58 
Активный завсегдатай
Аватара пользователя
А как бы вы сформулировали простой критерий сужения всего множества [комбинаторно] возможных интервалов до множества потенциально полезных (контрольных)?

Например: Если все частоты на которых могут возникнуть потенциальные биения выходят за диапазон 40-4000гц то интервал исключаем. Все остальные интервалы годны.


Вернуться к началу
 Профиль  
Cпасибо сказано 
 Заголовок сообщения: Re: Устройство для распознавания биений - каким ему быть?
СообщениеДобавлено: 16 май 2023, 06:11 
Мэтр
Аватара пользователя
Сергей писал(а):
А как бы вы сформулировали простой критерий сужения всего множества [комбинаторно] возможных интервалов до множества потенциально полезных (контрольных)?

Например: Если все частоты на которых могут возникнуть потенциальные биения выходят за диапазон 40-4000гц то интервал исключаем. Все остальные интервалы годны.

Я бы еще добавил диапазон приемлемых частот самих биений: нас интересуют только биения с частотами от 0,5 до 20 Гц.


Вернуться к началу
 Профиль  
Cпасибо сказано 
 Заголовок сообщения: Re: Устройство для распознавания биений - каким ему быть?
СообщениеДобавлено: 25 май 2023, 00:23 
Активный завсегдатай
Аватара пользователя
Я был бы признателен энтузиастам которые запишут полную клавиатуру тех пианино или роялей которые окажутся у них под рукой и пришлют в виде звукового файла мне на почту lukash33@mail.ru
Один инструмент - один файл. В любом звуковом формате. Я сам потом нарежу на отдельные звуки.

В файле - весь хроматический ряд снизу вверх. По одной клавише. Но только не легато!
Продолжительность каждого звука на одной такой записи должна быть примерно одинаковой - около 2-х секунд с интервалами между ними около 0.2 секунды.
Эти небольшие паузы важны для автоматического отделения одного звука от другого.
Ну и сила удара, вы понимаете, как обычно при контроле биений - более-менее равномерная.

Интервалы из нарезанных звуков я потом буду склеивать сам.

На одну такую запись уходит порядка 5 минут. Для записи достаточно простого телефона с диктофоном.
Поскольку семплы будут использованы для обучения нейронки, их происхождение (и качество) по большому счету значения не имеет.
Желательно чтобы посторонних шумов все же было не слишком много. Специально ухудшать ничего не надо.
Настроены инструменты могут быть приблизительно. Лишь бы унисоны были не самыми плохими.

Изображение


Вернуться к началу
 Профиль  
Cпасибо сказано 
 Заголовок сообщения: Re: Устройство для распознавания биений - каким ему быть?
СообщениеДобавлено: 25 май 2023, 01:48 
Administrator
Аватара пользователя
Что-то, мне кажется, перегиб с этой нейронкой. Начинать надо с простого. Указываешь программе, к примеру, что играешь большую терцию с нижним звуком А3. А программа уже знает, что биения надо слушать двумя октавами выше верхнего тона интервала, то есть на С#6. И если будет успешно подсчитываться частота этих биений в секунду, то тогда уже можно будет задумываться о большем, об обучении пресловутой нейронки. Но настройщики скажут вам спасибо и за упрощенный вариант, даже если нужно будет тыкать программу в интервал в ручную.


Вернуться к началу
 Профиль  
Cпасибо сказано 
 Заголовок сообщения: Re: Устройство для распознавания биений - каким ему быть?
СообщениеДобавлено: 14 июн 2023, 00:21 
Активный завсегдатай
Аватара пользователя
Извините, Александр. В этой задаче у меня исследовательский интерес сильно перевешивает практицизм.
Хочется понять насколько можно оказаться близко к идеалу простоты приложения. Ведь по большому счету не нужны ему никакие кнопки.
Сейчас на нейронке обученной у меня на примере лишь одного пианино правильно распознаются около 5% интервалов от других инструментов (и верхняя и нижняя ноты).
Если нейронку обучаю на примере примерно пяти инструментов то процент безошибочно распознанных уже около 20%
Но больше записей инструментов у меня пока нет )


Вернуться к началу
 Профиль  
Cпасибо сказано 
 Заголовок сообщения: Re: Устройство для распознавания биений - каким ему быть?
СообщениеДобавлено: 17 июн 2023, 14:26 
Активный завсегдатай
Аватара пользователя
Вчера сходил в ближайшую музыкальную школу где с любезного разрешения директора записал ещё 19 инструментов. На это у меня ушло часа два времени.
Сегодня обработал звук и переобучил нейронку на основе новых семплов.
Тесты показали что процент безошибочных угадываний интервалов теперь около 50%. Очень неплохо!
Приятно что достиг такого качества еще не имея сотен записанных инструментов а всего лишь менее трех десятков.


Вернуться к началу
 Профиль  
Cпасибо сказано 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 25 ]  На страницу 1, 2, 3  След.

ГОСТЕВАЯ ВЕРСИЯ ФОРУМА



Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Добавить в Избранное
Добавить в Избранное

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Вы можете создать форум бесплатно PHPBB3 на Getbb.Ru, Также возможно сделать готовый форум PHPBB2 на Mybb2.ru
Русская поддержка phpBB
Copyright © Aiwan. Kolobok smiles