Как получить синхронный текст песни для своих файлов на iPhone

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

Экран воспроизведения bMusic: обложка, полоса прогресса и управление

Почему у ваших треков нет слов

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

Вторая причина мельче и обиднее: слова уже есть, но их никто не читает. Файл .lrc рядом с альбомом или текст, который много лет назад записала в тег настольная программа. Фонотек, где есть и то и другое, полно, а большинство плееров для iPhone игнорируют и то и другое — потому что функцию делали как поиск, а не как чтение файла.

Значит, плеер, который берёт эту задачу на себя, должен уметь три вещи: прочитать ваш .lrc, прочитать текст, лежащий в тегах, и — когда нет ни того ни другого — выписать слова из самого звука. bMusic делает все три, и третьего не может ни один поиск.

По шагам

Как дать словам попасть в ваш трек

  1. 01

    Импортируйте трек как обычно

    Передача по Wi-Fi, AirDrop, «Файлы», прямая ссылка или ваш сервер WebDAV. Из-за текстов ничего не меняется ни в способе импорта, ни в самом файле: MP3, AAC, M4A, ALAC, FLAC, OPUS, WAV, AIFF приходят как есть.

  2. 02

    Дайте bMusic прочитать то, что уже есть

    Откройте трек и попросите текст. Если слова лежат в тегах файла или рядом приехал .lrc с тем же именем, они уже на экране — включая формат с таймкодами, который идёт построчно. Содержимое .lrc можно и просто вставить.

  3. 03

    Если слов нет — дайте устройству послушать песню

    «Распознать» выписывает слова прямо из звука вместе с таймкодами, и всё это происходит на устройстве. При первом запросе один раз скачивается речевая модель — это единственное место, где нужна сеть, и загрузка возобновляется после обрыва. Дальше всё работает и в самолёте.

  4. 04

    Поправьте строки, которые он расслышал не так

    Распознанный текст — это черновик. Построчный редактор позволяет исправить слово, сдвинуть таймкод и тут же прослушать результат вместе с песней. Останется та версия, которую хотели вы, а не та, что модель услышала сквозь тарелки.

  5. 05

    Сохраните и возьмите с собой

    Текст хранится вместе с треком и синхронизируется через ваш собственный iCloud, поэтому исправленная на телефоне строка есть и на Mac. Всё это экспортируется обратно в .lrc — формат, который читает всё остальное.

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

Чего поиск по базе дать не может

Работает на записях, которых никто не каталогизировал
Концертная запись, демо, самиздат, региональное издание: распознавание читает звук, поэтому ему всё равно, вносил ли кто-нибудь эту песню в индекс.
Звук не покидает телефон
Модель работает на устройстве. Запись никуда не загружается для сверки — в этом и разница между своей фонотекой и поисковым запросом.
Слова идут за песней
Таймкоды берутся из самого распознавания, поэтому строка подсвечивается тогда, когда её поют, а нажатие на строку перематывает песню к ней — и на iPhone, и в плавающем окне текста на Mac.
То, что у вас уже есть, не пропадает
Сначала читаются файл .lrc и текст в тегах. Ничего собранного не пересчитывается заново, а то, что bMusic выписал сам, экспортируется в .lrc.

Вопросы

Тексты для своей музыки: частые вопросы

Он отправляет мою музыку на сервер, чтобы найти текст?
Нет. Слова выписывает речевая модель, работающая на устройстве. По сети скачивается только сама модель — один раз, когда кто-то впервые просит текст: это запрос публичного файла, к которому не приложено ничего из вашей фонотеки.
Насколько это точно?
Он слушает пение, а не ищет песню в базе, поэтому чистый вокал в разреженном миксе выходит очень близко, а стена гитар, сильный акцент или три голоса разом стоят точности. Любую строку потом можно поправить руками — обычно это пара минут, а не переписывание заново.
Сколько времени уходит на песню?
Несколько минут в фоне для трека обычной длины, и отменить можно в любой момент. Дольше ждать приходится загрузки модели перед первым разом, и она бывает только однажды.
Можно использовать свои файлы .lrc?
Да — импортируйте файл, вставьте его содержимое или дайте bMusic взять текст из тегов. Таймкоды синхронного .lrc используются как есть, а слова любой песни экспортируются в том же формате.
Видно ли текст на Mac?
Да. Приложение для Mac ведёт его построчно в панели Now Playing и в плавающем окне на рабочем столе, поверх всего остального, — ради чего слова к песне, под которую подпеваешь, и нужны.

Возьмите свою музыку с собой

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

iPhone, iPad и Mac · iOS 18.0 или новее · MP3, AAC, M4A, ALAC, FLAC, OPUS, WAV, AIFF