HeartMuLa Transcribe превращает запись песни в черновик текста за $0.05 за запрос, независимо от того, длится трек двадцать секунд или шесть минут. Отправьте прямую ссылку на аудио, прочитайте текст в data.output.text, а затем сверьте повторяющиеся фрагменты и сомнительные слова с той же самой записью. Задача не возвращает построчные тайм-коды, метки певцов и оценки уверенности, поэтому проверенный текст песни и синхронизированный файл субтитров — это две отдельные работы.
Что задача принимает и что возвращает
На странице HeartMuLa Transcribe указан один входной параметр, audio_url: файл MP3 или WAV размером до 90 MB. Нет поля для промпта, размера модели и таймкодов, нет и настройки языка: модель определяет язык по самому аудио, поэтому текст песни на любом языке работает точно так же. Модель рассчитана на голос поверх музыки; для интервью или подкаста лучше подойдёт универсальная речевая модель вроде Grok STT. Это модель без цензуры: откровенный текст возвращается в том виде, в каком он спет, без маскирования и отказов, а ответственность за права на аудио остаётся на вас.
Открытый распознаватель текста HeartMuLa, HeartTranscriptor, основан на Whisper и обучен на разделённых вокальных дорожках, и его авторы рекомендуют сначала разделить голос. У размещённого запроса нет переключателя разделения. Если в записи плотный инструментальный микс, вы можете сами запустить инструмент разделения вроде Demucs и отправить вокальную дорожку вторым запросом. Относитесь к этой дорожке как к эксперименту: сравнивайте каждое слово, которое она меняет, с исходным миксом, потому что разделение может вносить артефакты, а студийный вокал не способен решить спорное слово в другом исполнении. Шёпот, крик и файлы с очень низким битрейтом возвращаются хуже; отправляйте MP3 или WAV лучшего качества, которое у вас есть.
Сначала попробуйте в Playground
Откройте страницу HeartMuLa Transcribe и оставайтесь на вкладке Playground.
- В поле Input audio нажмите Choose a file (MP3 или WAV, до 90 MB) или переключитесь на Asset URL и нажмите Add URL, если файл размещён в другом месте. Это единственное поле.
- Проверьте оценку стоимости: $0.05, какой бы длины трек ни был.
- Войдите в аккаунт и запустите выполнение. Текст песни появится на панели Output, рядом с предпросмотром будет представление JSON.
Ссылка должна отдавать сам аудиофайл, а не плеер, страницу общего доступа или страницу входа, иначе задача завершится ошибкой «недопустимый ресурс». Сохраните у себя копию той самой версии, которую отправляете, чтобы расшифровка оставалась привязанной к этому исполнению. Сначала испытайте здесь самый сложный трек, а уже потом ставьте пакет в очередь.
Или вызовите из кода
Установите Python SDK (pip install spicyapi, Python 3.11+), задайте в SPICY_API_KEY ваш серверный ключ и выполните:
from pathlib import Path
import uuid
from spicyapi import SpicyClient
client = SpicyClient() # reads SPICY_API_KEY from the environment
song = client.upload_file("./authorized-original-song.wav") # uploads are kept for one day
task = client.create_task(
model="heartmula/transcribe/speech-to-text",
input_data={"audio_url": song["uri"]},
idempotency_key=str(uuid.uuid4()), # new key per new request; reuse only to retry the same one
)
final = client.wait_for_terminal(task["taskId"])
if final["state"] != "succeeded":
raise RuntimeError(f"Task {task['taskId']} ended as {final['state']}")
# The lyrics are text on the task, not a file; save them now, task content is not permanent
Path("lyrics-draft.txt").write_text(final["output"]["text"])Загрузка, ожидание, ошибки и повторные попытки описаны в справочнике Python SDK, а руководство по задачам охватывает жизненный цикл задачи и обратные вызовы. Инструментальная запись возвращает мало или ничего, но всё равно тарифицируется как успешный запуск, поэтому отсеивайте треки без вокала до постановки пакета в очередь. Завершённая задача подтверждает выполнение, а не точность.
Или поручите это Agent
Если помощник должен расшифровать за вас папку с песнями, дайте ему CLI или сервер MCP. Оба показывают цену и запрашивают подтверждение перед платным вызовом. Skill добавляет к любому из них инструкции.
- CLI.
spicyapiвыполняет одну задачу из терминала (npx @spicyapi/cliработает без установки):
``bash spicyapi files upload ./song.wav # prints a spicy:// URI spicyapi tasks create --model heartmula/transcribe/speech-to-text \ --input-json '{"audio_url": "spicy://YOUR-UPLOAD-URI"}' --wait ``
- Сервер MCP. Добавьте сервер MCP своему помощнику, а затем спросите: «Расшифруй слова песни в ./song.wav с помощью HeartMuLa Transcribe». Он вызывает
spicyapi_upload_file, затемspicyapi_task_create(который останавливается для подтверждения цены), затемspicyapi_task_wait.
``json { "mcpServers": { "spicyapi": { "command": "npx", "args": ["--yes", "--package=@spicyapi/mcp", "spicyapi-mcp"], "env": { "SPICY_API_KEY": "YOUR_SPICY_API_KEY" } } } } ``
- Skill.
npx skills add spicyapi-ai/spicy-skillустанавливает Agent Skill, который учит помощника для программирования читать актуальную схему и переиспользовать ключи идемпотентности. Сам по себе он задачи не выполняет, поэтому используйте его вместе с CLI или MCP.
Сначала проверьте охват, потом пунктуацию
Прослушайте источник один раз и запишите его структуру: куплет, припев, бридж, аутро. Сравните эту последовательность с черновиком. Плавная расшифровка может слить два припева в один, и выравнивание пунктуации не вернёт утраченное исполнение. Модели в духе Whisper также могут повторить строку, пропустить короткий фрагмент или выдать слова поверх долгого «у» или мычания, поэтому прослушивайте любое место, где текст выглядит зацикленным или необоснованно уверенным.
Не удаляйте повторяющиеся слова автоматически. Это может быть спетое эхо, повторённая ключевая фраза или ошибка распознавания; переслушайте этот момент и решите сами. Сохраните нетронутый черновик, чтобы правка редактора никогда не была приписана модели.
Сохраняйте каждое повторение таким, каким оно спето. Возьмите вымышленную песню, первый припев которой звучит «Leave the lamp beside the window», а последний — «Leave the lamp beneath the window». Обе фразы ложатся на мелодию. Расшифровка должна сохранять реально спетые изменения, а не копировать первый припев поверх второго.
Разберитесь со словами, меняющими смысл
В первую очередь проверяйте отрицания, имена, числа и короткие слова, которые переворачивают строку. «Do not close the garden gate» и «Do close the garden gate» читаются одинаково хорошо и означают противоположное. Переслушайте фрагмент с несколькими секундами контекста с обеих сторон, потому что отдельный согласный слышен хуже, чем фраза целиком.
Если аудио остаётся неоднозначным, спросите исполнителя или оставьте личную пометку о неуверенности. Не решайте спорное слово голосованием большинства по нескольким расшифровкам: одинаковые догадки не являются независимым подтверждением. Для многослойного вокала решите, покрывает ли лист только основной голос или каждую слышимую подпевающую строку, и добавляйте роли только на основании собственного прослушивания или рабочих заметок.
Добавьте субтитры после проверки слов
Задача не возвращает таймкоды. Откройте финальную аудио- или видеосборку в редакторе субтитров, добавьте cue-метку для каждой спетой фразы и задайте время начала и конца относительно этого исполнения. Проверьте первое появление голоса, каждый повторённый припев и последнюю строку. Равномерное распределение строк по длительности не работает, потому что инструментальные паузы и задержанные слоги неравномерны.
После любой правки аудио выполняйте выравнивание заново. Держите текст на исходном языке отдельно от любого перевода: в задаче нет поля перевода, а пригодная для пения адаптация меняет слова и ритм.
Считайте бюджет по записям
Стоимость — это число запросов, умноженное на $0.05: две вокальные аранжировки стоят $0.10, запрос вокальной дорожки для каждой из них поднимает сумму до $0.20, а двадцать четыре записи стоят $1.20 до учёта повторных попыток. Поскольку длительность никогда не входит в цену, папка коротких фрагментов обходится относительно дорого в пересчёте на минуту. Отправляйте по одной песне на запрос: несколько песен, склеенных в один файл, возвращаются единым сплошным блоком текста без границ и без таймкодов, по которым их можно было бы восстановить.
| Проблема | Что делать дальше |
|---|---|
| Ссылка отдаёт HTML или требует входа | Замените её прямой ссылкой на аудио или загрузите файл |
| Пропущен последний припев | Прослушайте этот фрагмент; попробуйте вокальную дорожку вторым запросом |
| Неразборчив один согласный | Прослушайте в контексте или спросите исполнителя |
| Текст верный, но субтитры расходятся | Выровняйте по финальной сборке; другая расшифровка не даёт таймкодов |






