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

Из записи песни — в проверенный текст с HeartMuLa

Отправьте аудио песни в HeartMuLa, проверьте повторные припевы и сомнительные слова, рассчитайте $0.05 за запрос и синхронизируйте проверенный текст.

Автор
Lydia
Опубликовано
Время чтения
6 мин чтения
Обновлено
Женщина с наушниками и мужчина с акустической гитарой сидят друг напротив друга у микрофона в тёплой деревянной студии на закате

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.

  1. В поле Input audio нажмите Choose a file (MP3 или WAV, до 90 MB) или переключитесь на Asset URL и нажмите Add URL, если файл размещён в другом месте. Это единственное поле.
  2. Проверьте оценку стоимости: $0.05, какой бы длины трек ни был.
  3. Войдите в аккаунт и запустите выполнение. Текст песни появится на панели Output, рядом с предпросмотром будет представление JSON.

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

Или вызовите из кода

Установите Python SDK (pip install spicyapi, Python 3.11+), задайте в SPICY_API_KEY ваш серверный ключ и выполните:

python
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 или требует входаЗамените её прямой ссылкой на аудио или загрузите файл
Пропущен последний припевПрослушайте этот фрагмент; попробуйте вокальную дорожку вторым запросом
Неразборчив один согласныйПрослушайте в контексте или спросите исполнителя
Текст верный, но субтитры расходятсяВыровняйте по финальной сборке; другая расшифровка не даёт таймкодов

Другие языки English · 日本語 · 한국어 · Deutsch · Français · Español · Português (Brasil) · Italiano · Polski