HeartMuLa Transcribe zamienia nagranie piosenki w szkic tekstu za 0,05 $ za zadanie, niezależnie od tego, czy utwór trwa dwadzieścia sekund, czy sześć minut. Wyślij bezpośredni adres URL do audio, odczytaj tekst w data.output.text, a potem porównaj powtarzane fragmenty i niejasne słowa z tym samym nagraniem. Zadanie nie zwraca czasów wersów, oznaczeń wykonawców ani ocen pewności, więc sprawdzony tekst piosenki i zsynchronizowany plik napisów to dwa osobne zadania.
Co zadanie przyjmuje i co zwraca
Strona HeartMuLa Transcribe wymienia jedno wejście, audio_url: plik MP3 lub WAV o wadze do 90 MB. Nie ma pola na prompt, na rozmiar modelu ani na znaczniki czasu, nie ma też ustawienia języka: model rozpoznaje język z samego audio, więc tekst w innym języku działa tak samo. Model jest przeznaczony do wokalu na tle muzyki; do wywiadu lub podcastu lepiej pasuje ogólny model mowy, taki jak Grok STT. To model bez cenzury: teksty o treści jednoznacznie dorosłej wracają tak, jak jest śpiewany, bez maskowania i bez odmowy, a odpowiedzialność za prawa do audio zostaje po Twojej stronie.
Otwarty rozpoznawacz tekstu HeartMuLa, HeartTranscriptor, opiera się na Whisperze i został wytrenowany na rozdzielonych ścieżkach wokalnych, a jego autorzy zalecają najpierw rozdzielić głos. Hostowane zadanie nie ma przełącznika rozdzielania. Jeśli nagranie ma gęsty miks akompaniamentu, możesz sam uruchomić narzędzie do rozdzielania, takie jak Demucs, i przesłać ścieżkę wokalną jako drugie zadanie. Traktuj tę ścieżkę jak eksperyment: porównuj każde słowo, które zmienia, z miksem oryginalnym, bo rozdzielanie może wprowadzać artefakty, a studyjny wokal nie rozstrzygnie spornego słowa w innym wykonaniu. Wokale szeptane lub krzyczane oraz pliki o bardzo niskim bitrate wracają gorzej; wyślij MP3 lub WAV w najlepszej jakości, jaką masz.
Najpierw wypróbuj w Playground
Otwórz stronę HeartMuLa Transcribe i zostań w zakładce Playground.
- W polu Input audio naciśnij Choose a file (MP3 lub WAV, do 90 MB) albo przełącz się na Asset URL i naciśnij Add URL dla pliku hostowanego gdzie indziej. To jedyne pole.
- Sprawdź szacowaną cenę: 0,05 $, niezależnie od długości.
- Zaloguj się i uruchom. Tekst piosenki pojawi się w panelu Output, obok podglądu będzie widok JSON.
Adres URL musi zwracać sam plik audio, a nie odtwarzacz, stronę udostępniania ani stronę logowania, inaczej zadanie zakończy się błędem nieważnego zasobu. Zachowaj własną kopię dokładnie tej wersji, którą wysyłasz, żeby transkrypcja pozostała związana z tym wykonaniem. Wypróbuj tutaj najtrudniejszy utwór, zanim dodasz partię do kolejki.
Albo wywołaj z kodu
Zainstaluj Python SDK (pip install spicyapi, Python 3.11+), ustaw SPICY_API_KEY na swój klucz po stronie serwera i uruchom:
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"])Przesyłanie plików, oczekiwanie, błędy i ponowne próby opisuje referencja Python SDK, a przewodnik po zadaniach obejmuje cykl życia zadania i callbacki. Utwór instrumentalny zwraca niewiele albo nic, a mimo to jest rozliczany jako udane wykonanie, więc odsiać utwory bez wokalu przed dodaniem partii do kolejki. Zakończone zadanie potwierdza wykonanie, a nie poprawność.
Albo niech to wykona Agent
Jeśli asystent ma za Ciebie przepisać folder z piosenkami, daj mu CLI albo serwer MCP. Oba pokazują cenę i proszą o potwierdzenie przed płatnym wywołaniem. Skill dokłada instrukcje do jednego i drugiego.
- CLI.
spicyapiwykonuje jedno zadanie z terminala (npx @spicyapi/clidziała bez instalacji):
``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 ``
- Serwer MCP. Dodaj serwer MCP do swojego asystenta, a potem zapytaj: „Przepisz tekst piosenki z ./song.wav za pomocą HeartMuLa Transcribe”. Wywołuje
spicyapi_upload_file, następniespicyapi_task_create(który zatrzymuje się na potwierdzenie ceny), a następniespicyapi_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-skillinstaluje Agent Skill, który uczy asystenta programistycznego odczytywać aktualny schemat i ponownie używać kluczy idempotencji. Sam nie wykonuje zadań, więc używaj go z CLI albo z MCP.
Sprawdź pokrycie przed interpunkcją
Odsłuchaj źródło raz i zapisz jego strukturę: zwrotka, refren, bridge, outro. Porównaj tę sekwencję ze szkicem. Płynna transkrypcja może zlać dwa refreny w jeden, a poprawienie interpunkcji nie przywróci brakującego wykonania. Modele w stylu Whispera mogą też powtarzać wers, pominąć krótki fragment albo wyprodukować słowa na długim „oooh” lub mruczeniu, więc odsłuchuj każde miejsce, gdzie tekst wygląda na zapętlony albo zbyt pewny siebie.
Nie usuwaj automatycznie powtórzonych słów. Mogą być śpiewanym echem, powtórzoną frazą wiodącą albo błędem rozpoznania; odtwórz to miejsce i zdecyduj. Zachowaj nietknięty szkic, żeby zmiana redaktora nigdy nie została przypisana modelowi.
Zachowaj każde powtórzenie tak, jak jest śpiewane. Weź wymyśloną piosenkę, której pierwszy refren brzmi „Leave the lamp beside the window”, a ostatni „Leave the lamp beneath the window”. Oba warianty pasują do melodii. Transkrypcja powinna zachować faktycznie zaśpiewaną zmianę, zamiast kopiować pierwszy refren na drugi.
Rozstrzygnij słowa zmieniające znaczenie
Na pierwszym planie trzymaj negacje, imiona, liczby i krótkie słowa, które odwracają sens wersu. „Do not close the garden gate” i „Do close the garden gate” brzmią dobrze i znaczą dokładnie przeciwne rzeczy. Odtwarzaj z kilkoma sekundami kontekstu z obu stron, bo pojedyncza spółgłoska jest trudniejsza do usłyszenia niż cała fraza.
Jeśli audio pozostaje niejednoznaczne, zapytaj wykonawcę albo zapisz prywatną notatkę o niepewności. Nie rozstrzygaj spornego słowa głosowaniem większościowym wśród powtarzanych transkrypcji: identyczne domysły nie są niezależnym dowodem. Przy śpiewie wielogłosowym zdecyduj, czy arkusz obejmuje tylko głos wiodący, czy każdą słyszalną linię akompaniamentu, i dodawaj oznaczenia ról wyłącznie na podstawie własnego odsłuchu lub notatek produkcyjnych.
Dodaj napisy po sprawdzeniu słów
Zadanie nie zwraca znaczników czasu. Otwórz finalny montaż audio lub wideo w edytorze napisów, dodaj wpis dla każdej zaśpiewanej frazy i ustaw czasy początku oraz końca względem tego wykonania. Sprawdź pierwsze wejście głosu, każdy powtórzony refren i ostatni wers. Równe rozłożenie wersów w czasie nie działa, bo przerwy instrumentalne i przeciągnięte sylaby są nierówne.
Po każdej zmianie audio wyrównaj ponownie. Trzymaj tekst w oryginalnym języku osobno od tłumaczenia: zadanie nie ma pola tłumaczenia, a aranżacja nadająca się do śpiewania zmienia słowa i rytm.
Zaplanuj budżet na nagranie
Koszt to liczba zadań razy 0,05 $: dwie aranżacje wokalne kosztują 0,10 $, dodanie zadania ze ścieżką wokalną dla każdego z nich daje 0,20 $, a dwadzieścia cztery nagrania kosztują 1,20 $ przed ponownymi próbami. Ponieważ długość nigdy nie wchodzi do ceny, folder krótkich klipów jest stosunkowo drogi w przeliczeniu na minutę. Wysyłaj jedną piosenkę na zadanie: kilka piosenek sklejonych w jeden plik wraca jako jeden nieprzerwany blok tekstu bez granic i bez czasów, z których dałoby się je odtworzyć.
| Problem | Następny krok |
|---|---|
| URL zwraca HTML lub wymaga logowania | Zastąp go bezpośrednim adresem audio albo wgraj plik |
| Brakuje ostatniego refrenu | Odsłuchaj ten fragment; spróbuj ścieżki wokalnej jako drugiego zadania |
| Jedna spółgłoska jest niejasna | Odsłuchaj w kontekście lub zapytaj wykonawcę |
| Tekst jest poprawny, a napisy się rozjeżdżają | Wyrównaj względem finalnego montażu; kolejna transkrypcja nie wnosi znaczników czasu |






