BravoNota – опубликованное приложение для iOS и Android, которое распознаёт аккорды собственной нейросетью прямо на телефоне. Пользователь получает временную шкалу аккордов, может перейти к нужному фрагменту записи и продолжить работу с тюнером, метрономом, библиотекой и спектрограммой.

Самая важная часть истории находится не в выборе архитектуры модели. Сложнее всего было создать коммерчески чистый набор данных, точно разметить музыку по времени и превратить исследовательскую идею в понятный инструмент для обычного музыканта.

Всё началось с занятий дочери

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

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

Следующий вопрос был сложнее: можно ли загрузить запись и увидеть, какие аккорды звучат в каждый момент?

Почему нельзя было просто взять готовую модель

Публичные исследования доказали, что задача решаема. В частности, работа A Bi-directional Transformer for Musical Chord Recognition описывает модель, которая учитывает контекст до и после текущего фрагмента музыки.

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

Поэтому для BravoNota был создан собственный набор данных. Работа включала:

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

В разметке помогала семья. Это сохранило исходную связь продукта с теми, для кого он создавался.

Что получает музыкант

BravoNota распознаёт 170 классов аккордов. Результат – не просто список названий, а временная шкала. Для каждого отрезка видны аккорд, начало, длительность и показатель согласованности.

Пользователь может:

  1. выбрать запись на телефоне;
  2. получить последовательность аккордов;
  3. перейти к спорному фрагменту;
  4. прослушать оригинал вместе с гармонической подсказкой;
  5. сохранить простой список или подробную таблицу.

Показатель согласованности намеренно остаётся рядом с ответом. Музыкальная гармония не всегда имеет единственную бесспорную трактовку, а шумная запись не должна превращаться в ложную уверенность интерфейса.

Зачем нужен углублённый режим

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

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

Такой подход не делает результат абсолютной истиной. Он превращает неопределённость в понятную часть продукта.

Нейросеть – только одна часть приложения

Музыканту нужен цельный инструмент, поэтому рядом с распознаванием работают:

  • тюнер для разных инструментов и строев;
  • метроном с настраиваемыми акцентами;
  • библиотека аккордов для клавишных и гитары;
  • живая спектрограмма;
  • прослушивание и сохранение результатов.

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

Почему аудио не отправляется на сервер

Модель работает на устройстве: Core ML на iOS и TensorFlow Lite на Android. Импортированная запись декодируется локально, поток микрофона анализируется в памяти, а результаты остаются в области приложения.

Для основных функций не нужны учётная запись, рекламный профиль или аналитический модуль. Это не просто обещание в тексте: архитектура обработки описана в политике BravoNota, а модель поставляется вместе с приложением.

Такое решение даёт сразу несколько преимуществ:

  • музыка не ждёт загрузки и ответа сервера;
  • функция работает без устойчивого интернета;
  • стоимость распознавания не растёт с каждым запуском;
  • пользователь сохраняет контроль над своей записью.

Как опыт BravoNota переносится в бизнес

История полезна не только музыкальным стартапам. Она показывает полный цикл прикладного AI:

  1. сформулировать задачу пользователя;
  2. проверить исследовательскую основу;
  3. создать собственные допустимые данные;
  4. обучить и сравнить модели;
  5. встроить модель в реальный интерфейс;
  6. показать неопределённость результата;
  7. доставить вычисления туда, где находятся данные.

Для другого заказчика меняется предметная область, набор классов, формат результата и место запуска. Сам подход остаётся тем же: готовая модель становится продуктом только вместе с данными, проверкой, интерфейсом и эксплуатацией.

Техническим специалистам

Модель семейства BTC получает частотно-временное представление CQT и учитывает контекст по обе стороны текущего кадра. Кадровые ответы объединяются в устойчивые временные сегменты. Мобильные версии используют нативные форматы Core ML и TensorFlow Lite.

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

Подробная история продукта, включая роль семьи и создание данных, опубликована на официальной странице BravoNota.

Итог

BravoNota выросла из маленькой семейной задачи в полноценный мобильный AI-продукт. Его ценность не сводится к архитектуре трансформера. Собственный набор данных, работа на устройстве, понятная неопределённость и набор повседневных музыкальных инструментов вместе сделали модель полезной для реального человека.

Источники

  1. The BravoNota StoryBravoNota
  2. Privacy and on-device processingBravoNota
  3. A Bi-directional Transformer for Musical Chord RecognitionISMIR