Перейти к основному контенту

HeartMuLa Transcribe — многоязычный speech-to-text эндпоинт, настроенный на пение: отправьте одну ссылку на аудио и получите лирику текстом. Опций нет, тайминги строк, оценки уверенности и метки говорящих не возвращаются.

От $0.05/запрос

Рабочая область

Ввод

Речь в текст
0/1

Перетащите аудиофайл или выберите файл на устройстве · 1 файл · Не более 90 МБ · MP3 · WAV

Файлы: 0 / 1
URL, который ведёт прямо к аудиофайлу. Страницы, отдающие HTML, падают как некорректный материал. Подсказка языка не нужна и не принимается: модель мультиязычная и определяет язык из самого аудио. Не менее 1 символов

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

Не заполнено 1 обязательное поле: Исходное аудио

Вывод

Готово к запуску

Результат появится здесь.

Настройте ввод, проверьте стоимость и запустите модель.

Связанные модели и следующие шаги

Нужной модели нет?

Напишите, какую модель добавить и для чего она вам нужна. Запрос попадёт к тем, кто решает, что подключать дальше.

Спетые строки, вынутые из готового микса и возвращённые текстом

HeartMuLa Transcribe принимает одно-единственное поле — ссылку на аудио — и возвращает спетые в этой записи слова текстом прямо в задаче. Здесь нет настройки языка, нет запроса тайм-кодов и нет переключателя разделения голосов: таких полей в схеме просто не существует. Это единственное семейство в каталоге, которое завершает задачу текстом, а не медиафайлом, поэтому в медиахранилище ничего не пишется и шаг скачивания вам строить не придётся. Тарификация идёт за транскрипцию, а не за минуту, так что шестиминутный трек и двадцатисекундный хук стоят ровно одинаково.

Открыть песочницу
Поля запроса
Одно: audio_url, ссылка, ведущая на аудио
Результат
Текст песни в результате задачи — без файла и без ссылки на ресурс
Тарификация
За транскрипцию, независимо от длительности аудио
Языки
Многоязычно; определённый язык не сообщается
Предел задачи
3600 секунд от отправки до конечного состояния
Хранение
Медиаресурс не создаётся; загруженное аудио удаляется через 1 день
Форма
Одно обязательное поле, остальное схема отклоняетaudio_url — это и есть всё тело запроса: непустая URI-строка, которая должна вести прямо на аудио. Любой другой ключ не отбрасывается молча, а не проходит валидацию, поэтому вызов, вернувший транскрипцию, использовал ровно то, что вы отправили. Между вызовами нечего подкручивать, и по мере роста интеграции не появляется таблицы параметров, которую надо держать в синхроне.
Результат
Текст в задаче, а не файл в бакетеВсе остальные семейства здесь заканчивают тем, что пишут файл, который вы потом забираете. Это заканчивается самой задачей: транскрипция лежит в результате. Никакого шага скачивания, ничего не попадает в 14-дневное окно хранения медиа, а в вашем клиенте появляется ровно одна ветка, читающая текстовое поле там, где остальные обходят список ресурсов.
Назначение
Настроено на голос, который спорит с миксомСпетая строка приходит сжатой, продублированной, утопленной в ревербе и конкурирующей с инструментами в том же частотном диапазоне. Именно на этот случай общие речевые модели не обучались, и именно здесь они склонны возвращать обрывки. Эта модель настроена ровно на него. А для интервью или подкаста, где спорить не с чем, лучше подойдёт обычная модель распознавания речи.

Что API HeartMuLa Transcribe делает хорошо

  • Запрос, который пишешь по памяти

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

  • Текст песни приходит прямо в задаче

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

  • Длительность никогда не попадает в счёт

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

  • Многоязычность без поля языка

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

  • Каждая строка возвращается так, как спета

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

  • Асинхронность и намеренно широкий предел

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

Кому подойдёт HeartMuLa Transcribe

  • Команды каталога и метаданных

    Сделать старый фонд доступным для поиска по тому, о чём он поёт

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

  • Короткое видео и субтитры

    Сначала слова, потом тайминг

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

  • Доверие, безопасность и проверка прав

    Прочитать, что на самом деле говорит трек, до публикации

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

  • Продукты со взрослым аудио

    Шаг расшифровки, который не отказывается от материала

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

Как вызвать API HeartMuLa Transcribe

  1. Направьте audio_url на файл, а не на страницу о нём

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

  2. Отправьте единственное поле с заголовком Idempotency-Key

    В теле лежит audio_url и больше ничего. Сохраните полученный идентификатор задачи и приложите к запросу Idempotency-Key: ключ действует 24 часа, поэтому повтор после оборванного соединения попадает в ту же задачу, а не создаёт вторую, которая тарифицируется отдельно.

  3. Опрашивайте задачу или примите колбэк, с таймаутами близко к пределу

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

  4. Прочитайте текст из задачи и скопируйте к себе

    Транскрипция приходит текстом в результате, поэтому скачивать нечего и в медиахранилище ничего не появляется. Она стирается по тому же графику, что и текст промптов, так что долговременная копия — ваша, а не наша. Запишите её рядом с идентификатором трека в тот момент, когда задача достигла конечного состояния.

  5. Просейте пакет до запуска

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

Примеры работы HeartMuLa Transcribe

  • Отдельный трек из публичного хранилища

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

    {"audio_url": "https://files.example.com/masters/track-07.mp3"}
  • Приватный файл за подписанной ссылкой

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

    {"audio_url": "https://storage.example.com/takes/session-04.wav?X-Amz-Expires=3600&X-Amz-Signature=2f9c1a"}
  • Прогон по старому фонду с рабочим списком

    Раз запрос состоит из одного поля, пакет — это цикл по списку ссылок с отдельным Idempotency-Key на строку. Каждая строка рассчитывается сама по себе, поэтому упавшую строку можно повторить, не перезапуская весь набор, а стоимость всего прогона равна числу строк, умноженному на цену одной транскрипции, а не суммарной длительности каталога.

Вопросы об API HeartMuLa Transcribe

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