Самодельная система караоке с баллами

  • Цена: $12.87 + $9.90 + $4.18

Мои жена и дочери любят петь. Подарок в виде системы караоке просто напрашивался сам собой. Но хотелось не просто «поорать», а чему-то ещё детей ещё и поучить. Поэтому сразу рассматривался вариант караоке с оценкой.
Доступных систем караоке с адекватной оценкой баллами оценками я не нашёл, поэтому и родилась такая самоделка.
Под катом много текста и фото, видео, электрические схемы, немного DIY, и небольшое руководство по созданию песен.
Спойлер — петь караоке с баллами можно без покупок и рукоделия, имея только компьютер с микрофоном.

Идея

Классические системы караоке по сути представляют собой комбинацию видеопроигрывателя и микрофонного смесителя. На видео записаны подсвечивающиеся буквы с морскими пейзажами на фоне, а звуковой дорожкой к видео идёт «минусовка» песни. Сигнал с микрофона подмешивается в воспроизводимый трек и выводится на акустическую систему.
С воспроизведением видео справится любой компьютер; более того, для караоке есть специальный формат kar, который занимает на порядки меньше места, чем видео.
Основой системы караоке, таким образом, может является компьютер. В моём случае был выбран старенький, но вполне рабочий нетбук Asus EEE 900. Конечно, к нему нужна ещё акустическая система и крайне желательно — телевизор или большой монитор, а ещё лучше — проектор.
Подмешивать сигнал с микрофона в трек оказалось сложнее. Самым простым вариантом казалось использовать микрофонный вход компьютера, а выход подключить к усилителю акустической системы. Системный микшер можно настроить так, чтобы сигнал с микрофона подмешивался к воспроизводимой музыке.
Однако практика показала, что в этом случае сигнал с микрофона ощутимо запаздывает, что делает идею непригодной для использования. Кто хоть раз слышал эхо в телефонных разговорах, понимает, что это такое. Говорить, а тем более петь, при эхо практически невозможно.
Насколько я понимаю, задержка связано с реализацией звуковых трактов большинства «рядовых» ПК – они полностью цифровые. То есть сигнал со входа оцифровывается, затем в цифровом виде смешивается с воспроизводимым звуком, и только потом преобразовывается в аналоговый вид и подаётся на выход. Поскольку при оцифровке используются буферы, возникает задержка сигнала.
Без аппаратной «добавки» в систему караоке обойтись не получилось.

Аппаратная часть

На помощь пришли братья наши восточные, у которых нашлась такая плата микрофонного усилителя – микшера. К этой плате можно подключить два микрофона и источник музыки, а с выхода её снимается смешанный сигнал, причём без всяких задержек в силу чисто аналогового характера схемы. Плата была незамедлительно заказана. Отдельно скажу, что сейчас у продавца плата дороже (я брал за $12.87) и отличается по фото от той, что я заказывал.
По внешнему виду плата разочаровала. Кривоватая пайка, разнотипные детали, и обилие отпечатков пальцев китайцев на стороне дорожек – этого можно было ожидать за $1-2-5, но у этой платы цена подороже. Однако, она заработала с первого включения.

Фото платы





Схема и размышления о ней
Примерно так выглядит схема микшера:

Схема упрощена — показан только один из двух каналов микрофонного усилителя, поскольку он идентичен второму. Также показан только левый канал выходного каскада, и не показаны схемы питания.
Микрофонные предусилители, темброблок и оконечный усилитель, собраны на сдвоенных операционных усилителях NE5532P. Плата также содержит блок эхо-эффекта на микросхеме M65831AP и аналоговый темброблок с раздельной регулировкой тембров НЧ и ВЧ.
Питание платы осуществляется от двуполярного источника переменного напряжения 12В. Для формирования требуемых напряжений установлены стабилизаторы 7812 и 7912 для организации двуполярного питания 12 вольт, а также стабилизатор и 7805 на 5 вольт для питания микросхемы эхо-эффекта. Схемы питания типовые и особого интереса не представляет. Забавно, что все стабилизаторы имеют маркировку разных производителей — Motorola, ON Semiconductor и STMicroelectronics, хотя я подозреваю что всё равно это подделки.

Для питания микшера я использовал купленный трёхваттный трансформатор со сдвоенной обмоткой на 12В со средней точкой. Трансформатор я установил в корпусе от блока питания, совмещённого с сетевой вилкой. Это позволило удалить трансформатор от схемы и тем самым снизить наводки.

Доработки платы

Для оценки баллов при пении на компьютер должен быть выведен сигнал с голосом певца, без «минусовки». Сигнал подавался на микрофонный вход нетбука — с одного микрофона на левый канал, с другого — на правый.
Здесь следует отметить, что в современных ноутбуках с совмещённым аудиоразъёмом вход микрофона является монофоническим (одноканальным), и использовать некоторые режимы игры, требующие раздельных сигналов с каждого из микрофонов (соревнование, дуэт) не получится.
Плата в исходном варианте выхода сигнала микрофона не имеет, поэтому потребовалась доработка. Фактически доработка свелась к поиску точки, с которой снимался сигнал, и подпайке к этой точке. Точка, найденная методом научного тыка умозаключений и проб, показана на схеме. Точка показана для одного микрофона — входные усилители обоих из них абсолютно идентичны.

Место съёма сигнала с микрофона

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

Косметические доработки
После того, как первый восторг от включения платы рассеялся, я обратил внимание на эхо-эффект. Во-первых, эхо было с явно выраженными повторами, в то время как хотелось чего-то более близкого к реверберации, когда не слышно отдельных «отражений». Также, когда регулятор уровня эхо был выкручен на «ноль», всё равно отчётливо прослеживалось «двоение» голоса с микрофона.
Первая проблема решилась достаточно просто — микросхема эхо-эффекта предусматривает установку задержки эхо логическими уровнями на четырёх выводах. На плате даже есть места для перемычек, однако требуемые уровни всё равно задавались разведёнными дорожками. Согласно даташиту изначально задержка была установлена в 160 мс, после корректировки стала 61 мс.
Для решения второй проблемы пришлось внимательнее посмотреть на обвязку микросхемы эхо-эффекта. Если упростить схему, то её можно представить так:

Из схемы видно, что входной сигнал разветвляется на два пути — основной (показан красным) и сигнал эхо (синим). Сигнал эхо — это задержанный микросхемой входной сигнал. После задержки сигналы смешиваются.
Часть смешанного сигнала поступает опять на вход микросхемы задержки, формируя, таким образом, «повторы», характерные для эхо.
Но согласно этой схеме, если регулятор уровня эхо выведен в «ноль», то на выход всё равно будет проходить задержанный сигнал! Это и являлось причиной неприятных на слух «двоений» голоса.
Схему решено было переделать следующим образом:

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

Дополнительный резистор в 22 кОм нужен для того, чтобы немного выровнять регулировку глубины эхо-эффекта. В итоге получилось неидеально — на большей части хода регулятора эхо не слышно, оно появляется только в конце хода. Более того, при выкручивании на максимум ослабление становится слишком маленьким и эхо не затухает, а наоборот, усиливается. Это всё тоже можно решить установкой и подбором резисторов в цепи обратной связи, но я оставил как есть. В большинстве случаев эхо не нужно, а эффект с усилением эхо детям даже нравится, балуются «демоническим звуком».
Ещё одна доработка понадобилась, когда выяснилось, что один из каналов «минусовки» играет значительно тише второго. При этом сигнал с микрофонов шел на оба канала с одинаковой громкостью.
Проблема оказалась в конденсаторе 10 мкФ сразу после регулятора громкости. «Народный» transistortester показал ёмкость 1 мкФ. Вот он, герой:

Замена конденсатора на аналогичный решила проблему. Внутренний перфекционист потребовал заменить также аналогичный конденсатор из второго, «нормального», канала, а также перемерять остальные конденсаторы на плате. Поддавшись на уговоры, так и сделал, получив чувство глубокого морального удовлетворения (что, однако, никак не сказалось на качестве звука).

Плата была помещена в корпус, сделанный из старого CD-привода. Из привода вытащены потроха, корпус укорочен, из текстолита изготовлены передняя и задняя панель. Шильдик на передней панели – наклееная на текстолит бумага с распечаткой, поверх которой приклеена плёнка. Выглядит колхозно, прошу строго не судить. Но поставленной цели удовлетворяет.

Фото собранного устройства и блока питания



И натюрмортик:

Фото корпуса изнутри



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

Микрофон

Плата предусматривает подключение динамических микрофонов. Это важно, поскольку входы ПК, смартфонов и планшетов в большинстве своём предназначены для подключения конденсаторных микрофонов. Если подключить микрофон неверного типа, на который не рассчитан вход, то звук если и будет, то будет очень тихим или искажённым. В наличии динамического микрофона у меня не было, поэтому был заказан вот такой. Хороший или плохой, сказать не могу, сравнить не с чем. По факту меня устраивает, звук по моим ощущениям вполне чистый.
Микрофон лёгкий, сидит в руке хорошо, удобно. Шнур толстый, но очень гибкий. Шнур тяжеловат с непривычки, особенно по сравнению с самим микрофоном, но руку не оттягивает. Никто на тяжесть не жаловался, даже 6-7 летние дети.
Поскольку в аудиоаппаратуре я не разбираюсь от слова «совсем», опишу микрофон простыми словами. Микрофон спроектирован так, чтобы «слышать» звуки только вблизи самого микрофона. При этом диаграмма направленности такая, что петь нужно в «макушку» микрофона, а не в бок. Насколько я понял, так устроены все микрофоны данного типа.

Фото микрофона



Несмотря на наличие у платы двух входов, для начала решил заказать только один микрофон, т.к. непонятно было, «зайдёт» игрушка или нет.

Качество звука

Разрабатываемая система не предназначается ни для меломанов, ни для аудиофилов. Сомневаюсь, что она даст приемлемое для этих категорий качество звука. С обывательской же точки зрения заметных искажений в звук система не вносит. Единственное, что удалось заметить — это небольшое фоновое шипение, возникающий при подаче напряжения питания на плату. Но оно значительно слабее музыки и голоса и слышен только в полной тишине. Если не обращать на него специально внимание, то он незаметен.
Шум этот вносится микрофонным усилителем, поскольку пропадает при выкручивании уровня сигнала с микрофонов в ноль. К сожалению, аппаратуры для измерения уровня шумов, АЧХ и тому подобного у меня нет, так что никаких количественных величин дать не смогу.
Поэтому просто несколько примеров. Записывались на телефон через простейший переходник с делителем напряжения.
Голос: drive.google.com/open?id=1Bexac2V2zqbWuDSIACILrTLFIs9iZVMk
Тест «тишины» — первые 5 секунд записаны с выключенным микрофоном (использовался выключатель на самом микрофоне), затем с платы снималось питающее напряжение: drive.google.com/open?id=16TSbTLNTQ17zeS-5TLgObyxZ1NqjBeMq

Программная часть

Изюминкой караоке-системы предполагалось оценка пения в баллах. Компьютер у нас уже есть, сигнал с микрофона на него заведён, осталось найти софт, который умеет оценивать пение в баллах.
Недолгие поиски привели к игре UltraStar Deluxe и её последователю Vocaluxe, которые хорошо отвечали поставленной цели. Игры сделаны по мотивам игры на Sony Playstation и предлагает игрокам петь караоке на баллы. Положительная особенность их в том, что она отображает стилизованный «нотный стан» и показывает, в какой тональности фактически поёт игрок и попадает он в ноты или нет прямо в процессе пения.
Для анализа пения игрока как раз и используется сигнал с микрофонного входа – только голос, без подмешенной музыки.
Выбирая между двумя перечисленными, остановился на UltraStar Deluxe, поскольку Vocaluxe требует Windows 7, а на использованном нетбуке уже была установлена Windows XP и устанавливать что-то другое не хотелось. К тому же, несмотря на отсутствие развития, последние версии игры вполне стабильны и играбельны.
Большой проблемой оказалось найти русские песни для игры. Поиск по интернете позволил скачать несколько десятков вариантов, но на проверку нормальными из них оказались всего несколько.
Здесь следует сказать, как организованы эти песни. Основу составляет текстовый файл, в котором содержатся название, исполнитель, жанр и т.п., ссылки на звуковой файл, обложки и фоновое видео, а также информация о словах и нотах. Подробно про формат файла можно почитать, например, тут.
Если обложки (приодеть полуобнажённых исполнительниц) и тексты названий скорректировать просто, то с информацией о словах и нотах сложнее. Вкратце эта информация сводится к тому, что для заданной позиции в песне указывается очередной слог и тональность ноты, ему соответствующей. И если со слогами в найденных песнях всё было более-менее в порядке, то с тональностями часто попадался полный трэш. Это хорошо было видно (вернее, слышно), если загрузить песню в редактор и включить режим, когда поверх песни проигрываются заданные в файле ноты. Даже я со своим медвежьим слухом очевидно понимал, что тональность не та. Пришлось влазить в увлекательный мир создания и редактирования песен для этих игр.

Увлекательный мир с маленьким видеоуроком
В игру входят средства для создания песен (UltraStar Creator) и упорядочивания их (UltraStar Manager); кроме этого, есть несколько сторонних редакторов (SongEasy, Yass, UltraStarEditor). Мне больше всего понравились Yass и UltraStarEditor. Они хоть и небезглючные, но достаточно удобные и позволяют именно редактировать песню, в отличие от UltraStar Creator и SongEasy, которые нацелены на быстрое создание песни.
В этих редакторах можно наглядно расставить слоги в нужные позиции в песне, задать тональность, прослушать результат — в этом режиме ноты звучат поверх трека. Именно в них я убедился, что большинство найденных мною в свободном доступе русских песен имеют неверные ноты.
Однако довести «кривую» песню до нормы или создать новую всё равно достаточно трудоёмко. У меня уходит 2-3 часа на песню.
Создание песни заключается в расстановке слогов в нужных позициях и задании тональностей для слогов. Расставить слоги просто — где поётся, там и «рисуется», а вот с тональностями сложнее. Музыканты, наверное, без труда смогут подобрать мелодию на слух, но это не мой случай. Я поступал разными способами.
Поначалу находил midi-файл нужной песни, и открывал его midi-редактором. Я использовал Aria Maestrosa и MidiEditor. Далее находил канал с основной мелодией и смотрел его в режиме Piano Roll. Это фактически то же отображение, которое используется в самой игре и в редакторах. Дальше оставалось просто (но не быстро) расставить нужные тональности слогам.
Важно, чтобы тональность midi совпадала с тональностью используемой мелодии. Можно в качестве мелодии использовать тот самый midi, сконвертированный в mp3. Я так и сделал для одной из песен, для конвертации использовал вот этот сервис. Однако даже если тональность не совпадает, достаточно правильно определить начальную ноту, а остальные просто пропорционально сместить.
Последние песни я делал в редакторе UltraStarEditor, его сейчас и использую. В нём поверх «нотного стана» отображается спектрограмма трека, и если в качестве трека использовать полноценную песню с голосом, то при некоторой сноровке можно определять нужную высоту ноты. Но это работает не всегда — часто на спектрограмме голос сливается с инструментами, да и исполнители не роботы и не музыкальные инструменты, и не всегда их голоса звучат точно по нотам.
В последующем искал в Интернете ноты песен и опирался на них. Важно, чтобы ноты соответствовали именно ведущему голосу, т.е. аккорды для гитары не подойдут. Такие ноты подходят лучше всего:

В «переводе» нот в редактор сильно помогала вот эта картинка.
Ещё один вариант — найти видеоурок игры на пианино нужной песни. Там сразу видно, какие ноты нужно использовать.
Повторюсь, тем, кто знаком с музыкальной грамотой на уровне более чем «слышал», скорее всего будет намного проще. Но даже если вас, как и меня, музыкальное образование обошло стороной, всё равно остаётся множество способов создавать песни.
Хоть я и остановился в итоге а UltraStarEditor, не могу сказать, что редактор идеален. Есть глюки, которые в своё время изрядно попортили мне жизнь. Перечислю некоторые из них; возможно, кому-то это сэкономит часы потраченных нервов:
— не любит пути и названия файлов на русском
— после создания песни обязательно прописать название и автора, потом лучше сохранить песню и перезагрузить редактор
— иногда перестаёт копировать-вставлять, помогает перезагрузка
— при копировании блоков иногда выпадают ноты, нужно перепроверять.
Песни я стараюсь делать в двух вариантах — «полноценную» и минусовку. Как показала практика, люди часто стесняются петь под минусовку, а подпевать исполнителю — вполне. Игра от этого не становится хуже.
Чтобы облегчить себе жизнь, пытаюсь найти минусовку точно такой же тональности и темпа, как и исходная песня. Понять, подходит ли минусовка треку, проще всего запустив их параллельно. Я для этого использовал редактор Audacity.
Делать песню проще всего с голосом — и слова слышны, и тональность. Потом переделка под минусовку становится тривиальной — достаточно подменить трек и, возможно, немного подвинуть все слоги.
Напоследок ещё один важный момент. Перед тем, как делать песню, крайне рекомендуется установить нужный темп (BPM). Узнать темп можно при помощи MixMeister BPM analyzer или другого аналогичного.
Нюансов в редактировании много, но стоит начать и всё это не так страшно уже выглядит. Надеюсь, немного понятнее станет после просмотра этого видео.

Созданные мной песни находятся в открытом доступе здесь.
Бонус — коллекция kar-файлов, которой, наверное, лет уже 15. Не помню, где её достал, это было ещё во времена «до Интернета». Там ОЧЕНЬ много песен, русских и английских.

Примерно так выглядит процесс игры. Поёт ребёнок, не профессионал.

Качество записи голоса в этом видео неважное — не успел настроить уровни и запустил первый попавшийся диктофон, который, как оказалось, записывал с частотой дискретизации 16 кГц. Так что о качестве микрофона и платы по этому видео прошу не судить. Выше есть примеры нормальной записи.

Как петь без «железа»

Интрига всей этой задумки в том, что для пения с баллами можно безо всяких покупок и доработок. Нужно использовать микрофон, подключаемый непосредственно к компьютеру. Если вам повезло, и звуковой тракт вашего компьютера пропускает сигнал с микрофона без задержки, вы получите точно такой же эффект совершенно бесплатно и без SMS рукоделия! Даже если задержка звука есть, можно петь и без передачи звука с микрофона на акустику, игра от этот не перестаёт быть интересной.
То есть достаточно установить игру, подключить микрофон, скачать песни и весело проводить время!

Спасибо за внимание! Увлекательного вам пения!
Буду рад вопросам, комментарием и конструктивной критике.

Планирую купить 0 Добавить в избранное 0

(c) 2017 Источник материала

Пролистать наверх