17.08.2026 456 материалов

Студент превратил исследовательский прототип IEEE в Android-приложение для коррекции высоты тона — с открытым исходным кодом и полной офлайн-работой

Разработчик из Бангладеш взял демку с конференции IEEE, реализовал алгоритм YIN на чистом Dart и собрал Android-приложение, которое в реальном времени показывает и корректирует высоту голоса — без отправки данных на сервер.

Студент превратил исследовательский прототип IEEE в Android-приложение для коррекции высоты тона — с открытым исходным кодом и полной офлайн-работой

Примерно 1,5% людей страдают врождённой амузией — их мозг физически не способен различать высоту звука. Для них существовал лабораторный прототип, но он работал только в браузере на ноутбуке. Теперь он помещается в кармане.

Что такое амузия и почему это важно

Амузия (congenital amusia) — это нейрологическое нарушение, при котором человек не различает мелодические интервалы. Это не «нет слуха» в бытовом смысле: люди с амузией могут годами заниматься музыкой и не добиться прогресса в распознавании нот, потому что проблема на уровне обработки звука мозгом. Распространённость оценивается примерно в 1–2% населения — цифра немалая, хотя точные данные зависят от методологии диагностики.

Ранее группа исследователей опубликовала в IEEE прототип системы обратной связи в реальном времени: человек поёт, система анализирует высоту тона и визуально показывает отклонение от целевой ноты. Идея — дать обратную связь, которую мозг не может сформировать самостоятельно. Прототип работал на платформе Streamlit — то есть запускался в браузере на десктопе, требовал Python-сервер и интернет-соединение. Для людей, которым инструмент нужен ежедневно, это неудобно.

Что сделал разработчик

Рудронил Бардхан (Rudhronil Bardhan), старшеклассник из Дакки, перенёс эту идею в нативное Android-приложение. Основные технические решения:

Алгоритм YIN на чистом Dart. YIN — классический алгоритм определения высоты тона, описанный в исследовании Alain de Cheveigné и Hideki Kawahara (2002). Он работает на основе автокорреляции сигнала: вычисляет смещение между сдвинутыми копиями звуковой волны и находит период основного тона. Бардхан реализовал его целиком на Dart, без нативных библиотек (NDK/JNI), что упрощает сборку и переносимость, но ставит вопрос о производительности — об этом ниже.

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

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

Полная офлайн-работа. Весь аудиопоток обрабатывается на устройстве, данные никуда не отправляются. С точки зрения приватности — важно, учитывая, что приложение работает с микрофоном.

Исходный код выложен на GitHub.

Критический разбор: что известно и чего не хватает

Здесь стоит остановиться и взглянуть на проект скептически.

Латентность. Главный параметр любого приложения для работы со звуком в реальном времени — задержка между входным сигналом и отображённой обратной связью. Если спектрограмма отстаёт на 200–300 мс, пользоваться инструментом крайне некомфортно. Для амузии, где критично именно мгновенное визуальное подкрепление, это делает или убивает продукт. В описании проекта нет ни слова о реальной латентности. YIN в чистом Dart на среднем Android-смартфоне — это не гарантированно быстрая история. Dart компилируется в нативный код, но всё-таки не C/C++, и алгоритм требует значительного объёма вычислений на каждый аудиофрейм.

Точность детекции. YIN хорош для чистых монофонических сигналов (один голос, один инструмент), но чувствителен к шуму. Типичная точность — ±1–2 цента при хорошем SNR (сигнал/шум). В реальных условиях — с фоновым шумом, встроенным микрофоном телефона, неакустически изолированном помещении — точность может заметно падать. Для людей с амузией, которые учатся петь, это критично: ошибка детекции может дать ложную обратную связь.

Нет валидации на целевой аудитории. Амузия — медицинский диагноз. Показать прототип на конференции — одно, проверить его эффективность на реальных пациентах с амузией — совсем другое. В публикации нет упоминаний клинических тестов, пользователей с подтверждённой амузией или партнёрств с исследовательскими группами. Это не баг проекта — это его текущее ограничение.

Автор — старшеклассник. Это нейтральный факт, но он объясняет, почему проект таков, каков он есть: учебная реализация на основе открытого исследования, а не коммерческий продукт с командой QA. GitHub-репозиторий, вероятно, не содержит подробной документации по архитектуре, тестов или бенчмарков.

Что это значит для обычного пользователя

Даже если вы не входите в те самые 1,5%, приложение может быть полезным:

  • Развитие музыкального слуха. Визуальная обратная связь в реальном времени — один из эффективных способов тренировки интонации. Приложения типа Vocal Pitch Monitor делают нечто похожее, но не все из них open source и бесплатны.
  • Настройка инструментов. Спектрограмма и детектор нот работают и для гитары, и для духовых.
  • Образование. Для учителей музыки и логопедов — наглядный инструмент, не требующий лицензий и интернета.

При этом важно понимать: одно open-source-приложение от старшеклассника — не замена специализированному терапевтическому инструменту. Если у вас или вашего ребёнка диагностирована амузия, это дополнительный инструмент, но не лечение.

Итого

Проект Бардхана — хороший пример того, как академическая исследовательская работа может превратиться в доступный инструмент. IEEE-прототип сидел в Streamlit-демке и был бесполезен для тех, кому был адресован. Теперь он работает на смартфоне, не требует сервера и бесплатно доступен каждому.

Вопросы к латентности, точности и клинической эффективности остаются открытыми. Но для проекта, который начался как учебная работа — это достойная отправная точка, и open-source-лицензия позволяет кому угодно взять код и довести его до состояния, пригодного для реальной реабилитационной практики.