Введение
Он расшифровывает спетый в аудиофайле текст песни и возвращает его текстом в задаче. Он настроен на вокал поверх музыки, а не на чистую речь.
HeartMuLa Transcribe достаёт из аудиофайла спетый текст песни и возвращает его текстом. Одно аудиополе, никаких опций, поддержка многих языков, оплата за расшифровку, а не за минуту.
Ключевые возможности и особенности
Настроен ровно там, где обычное распознавание речи рассыпается
Спетая строка приходит сжатой компрессором, продублированной, залитой ревербом и спорящей за ту же полосу частот с инструментами. Именно этому обычную речевую модель не учили — и именно здесь она возвращает обрывки. Эта настроена как раз на такой материал. Обратное тоже верно: для интервью или подкаста, где бороться не с чем, лучше взять обычную модель распознавания речи.
Текст в задаче, никаких файлов для скачивания
Файл, за которым нужно идти, не записывается. Запуск заканчивается на самой задаче: расшифровка лежит в результате — ни шага скачивания, ни бакета, куда писать, и ничего не попадает в 14-дневное хранение медиа. Прочитайте текст у завершённой задачи и отправьте его туда, где у вас уже лежат тексты песен.
Старый каталог — это умножение, а куча коротких клипов — нет
Длительность в цену не входит, так что шестиминутный трек стоит столько же, сколько двадцатисекундный припев. Накопившийся хвост из-за этого легко посчитать — число треков на одно число, — а вот папка коротких отрывков оказывается относительно дорогой формой. Это стоит заложить заранее: вещь, оказавшаяся инструментальной, вернётся почти пустой и всё равно будет засчитана как успешный оплаченный вызов, поэтому отсеивайте такие файлы до постановки в очередь.
Параметры запроса
| Параметр | Обязательно | Описание |
|---|---|---|
audio_url | Да | URL, который ведёт прямо к аудиофайлу. Страницы, отдающие HTML, падают как некорректный материал. Не менее 1 символов |
Стоимость
$0.05 / расшифровка
Оплата — за транскрипцию, а не за минуту: скудный результат с инструментального трека тоже оплачивается.
Сценарии использования
Преобразуйте речь в пригодный текст
Он расшифровывает спетый в аудиофайле текст песни и возвращает его текстом в задаче. Он настроен на вокал поверх музыки, а не на чистую речь. Используйте этот режим для расшифровки аудио- или видеоисточника. По возможности предоставьте чистую запись и проверьте имена, временные метки и фрагменты с низкой уверенностью.
Метаданные музыкального каталога
Соберите тексты песен по всему каталогу — для поиска, отображения и тегов. При оплате за вызов стоимость накопившегося хвоста считается простым умножением и не зависит от суммарной длительности.
Субтитры для видео с музыкой
Вытащите спетые строки из трека, чтобы потом развести их по времени в субтитрах короткого видео, где голос лежит поверх плотного микса.
Модерация и проверка прав
Прочитайте, что трек на самом деле говорит, до публикации: пригодится, когда площадке нужно решить вопрос о грубой лексике или о претензии по правам.
Руководство по промптам и практические советы
Отправляйте прямую ссылку на аудиофайл
Поле принимает URL, а не тело загрузки. Указывать он должен на само аудио: страница воспроизведения или ссылка на шаринг, отдающая HTML, падает как некорректный материал, а не как плохая расшифровка.
Ждите текст в задаче, а не файл
Расшифровка возвращается текстом в результате задачи. Забирать медиафайл не нужно, и для этого эндпоинта ничего не попадает в хранение медиа.
Проверьте результат перед следующей итерацией
На входе один URL аудио, на выходе текст песни, настраивать нечего: ни подсказки языка, ни тайм-кодов, ни меток говорящих, ни значений уверенности, ни выбора формы вывода. Модель заточена под спетый вокал поверх музыки; плотно наслоённые миксы, шёпот и крик, а также источники с очень низким битрейтом ухудшают результат, а чисто инструментальное аудио возвращает почти ничего. URL должен вести прямо к аудиофайлу: страница, отдающая HTML, падает как некорректный материал. Этот эндпоинт не создаёт медиафайлов, поэтому ничего от него не попадает в 14-дневное хранение медиа.
Быстрый старт API
# Generate the idempotency key once; reuse it when retrying after a lost response.
export SPICY_IDEMPOTENCY_KEY="${SPICY_IDEMPOTENCY_KEY:-$(uuidgen)}"
curl -X POST https://api.spicyapi.ai/api/v1/jobs/createTask \
-H "Authorization: Bearer $SPICY_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $SPICY_IDEMPOTENCY_KEY" \
-d '{
"model": "heartmula/transcribe/speech-to-text",
"input": {
"audio_url": "https://example.com/reference.mp3"
}
}'
# Copy data.taskId from the response into TASK_ID, then poll the status.
TASK_ID="TASK_ID_FROM_RESPONSE"
curl "https://api.spicyapi.ai/api/v1/jobs/recordInfo?taskId=$TASK_ID" \
-H "Authorization: Bearer $SPICY_API_KEY"
Аутентификация, полная схема, опрос статуса и обработка ошибок описаны в справочнике API.
