HeartMuLa Transcribe trasforma una registrazione di canzone in una bozza di testo per $0.05 per richiesta, sia che il brano duri venti secondi sia che ne duri sei minuti. Invia un URL audio diretto, leggi il testo in data.output.text, poi controlla le sezioni ripetute e le parole incerte su quella stessa registrazione. Il task non restituisce tempi per riga, etichette di cantante né punteggi di confidenza, quindi un testo verificato e un file di sottotitoli sincronizzati sono due lavori separati.
Cosa accetta il task e cosa restituisce
La pagina di HeartMuLa Transcribe elenca un solo input, audio_url: un MP3 o WAV fino a 90 MB. Non ci sono campi per il prompt, per la dimensione del modello o per i timestamp, e nemmeno un'impostazione della lingua: il modello riconosce la lingua dall'audio, così un testo in una lingua diversa funziona allo stesso modo. È pensato per la voce sulla musica; per un'intervista o un podcast è più adatto un modello di parlato generale come Grok STT. È un modello senza censura: i testi espliciti tornano come vengono cantati, senza mascheramento né rifiuto, e tu resti responsabile dei diritti sull'audio.
Il riconoscitore di testi aperto di HeartMuLa, HeartTranscriptor, è basato su Whisper ed è stato addestrato su tracce vocali separate; i suoi autori consigliano di separare prima la voce. La richiesta ospitata non ha interruttore di separazione. Se una registrazione ha un mix di accompagnamento denso, puoi eseguire tu stesso uno strumento di separazione come Demucs e inviare la traccia vocale come seconda richiesta. Tratta quella traccia come un esperimento: confronta ogni parola che modifica con il mix originale, perché la separazione può introdurre artefatti, e una voce in studio non può decidere una parola in una performance diversa. Le voci sussurrate o urlate e i file a bitrate molto basso tornano peggio; invia l'MP3 o WAV di qualità migliore che tu abbia.
Provalo prima nel Playground
Apri la pagina di HeartMuLa Transcribe e resta nella scheda Playground.
- In Input audio, premi Choose a file (MP3 o WAV, fino a 90 MB) oppure passa a Asset URL e premi Add URL per un file ospitato altrove. Questo è l'unico campo.
- Controlla la stima del prezzo: $0.05, qualunque sia la durata.
- Accedi ed esegui. Il testo del brano compare nel pannello Output, con una vista JSON accanto all'anteprima.
L'URL deve restituire il file audio stesso, non un lettore, una pagina di condivisione o una pagina di login, altrimenti il task fallisce come asset non valido. Tieni una copia tua della versione esatta che invii, così la trascrizione resta legata a quella performance. Prova qui il brano più difficile prima di mettere in coda un lotto.
Oppure richiamalo dal codice
Installa l'SDK Python (pip install spicyapi, Python 3.11+), imposta SPICY_API_KEY sulla tua chiave lato server ed esegui:
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"])Gli upload, l'attesa, gli errori e i nuovi tentativi sono nel riferimento dell'SDK Python, e la guida ai task copre il ciclo di vita dei task e i callback. Un brano strumentale restituisce poco o nulla e viene comunque addebitato come esecuzione riuscita, quindi scarta i brani senza voce prima di mettere in coda un lotto. Un task completato certifica il completamento, non l'accuratezza.
Oppure lascia che lo esegua un Agent
Se vuoi che un assistente trascriva per te una cartella di canzoni, dagli la CLI o il server MCP. Entrambi mostrano il prezzo e ti chiedono conferma prima di una chiamata a pagamento. Lo Skill aggiunge istruzioni a entrambi.
- CLI.
spicyapiesegue un task da terminale (npx @spicyapi/clifunziona senza installazione):
``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 ``
- Server MCP. Aggiungi il server MCP al tuo assistente, poi chiedi: "Trascrivi il testo di ./song.wav con HeartMuLa Transcribe." Chiama
spicyapi_upload_file, poispicyapi_task_create(che si ferma per la tua conferma del prezzo), poispicyapi_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-skillinstalla l'Agent Skill, che insegna a un assistente di programmazione a leggere lo schema attivo e a riutilizzare le chiavi di idempotenza. Non può eseguire i task da solo, quindi usalo con la CLI o con MCP.
Controlla la copertura prima della punteggiatura
Riproduci la fonte una volta e annotane la struttura: strofa, ritornello, bridge, outro. Confronta quella sequenza con la bozza. Una trascrizione scorrevole può fondere due ritornelli in uno, e mettere in ordine la punteggiatura non riporta indietro la performance mancante. I modelli in stile Whisper possono anche ripetere una riga, saltare un breve passaggio o produrre parole sopra un lungo "ooh" o un ronzio, quindi riascolta in ogni punto in cui il testo sembra ripetersi in loop o sicuro in modo strano.
Non cancellare automaticamente le parole ripetute. Possono essere un'eco cantata, una frase principale ripetuta o un errore di riconoscimento; riascolta quel punto e decidi. Tieni una bozza intatta perché una modifica del redattore non venga mai attribuita al modello.
Mantieni ogni ripetizione come viene cantata. Prendi una canzone inventata il cui primo ritornello dice "Leave the lamp beside the window" e il cui ultimo dice "Leave the lamp beneath the window." Entrambe entrano nella melodia. La trascrizione deve conservare il cambiamento effettivamente cantato, invece di copiare il primo ritornello sul secondo.
Risolvi le parole che cambiano il significato
Dai priorità alle negazioni, ai nomi, ai numeri e alle parole corte che ribaltano una riga. "Do not close the garden gate" e "Do close the garden gate" si leggono bene entrambe e significano cose opposte. Riascolta con qualche secondo di contesto da entrambi i lati, perché una consonante isolata è più difficile da sentire dell'intera frase.
Se l'audio resta ambiguo, chiedi a chi canta o tieni una nota privata di incertezza. Non decidere una parola contestata per voto maggioritario tra trascrizioni ripetute: supposizioni identiche non sono prove indipendenti. Per un canto a più strati, decidi se il foglio copre solo la voce principale o ogni riga di accompagnamento udibile, e aggiungi etichette di ruolo solo in base al tuo ascolto o alle tue note di produzione.
Aggiungi i sottotitoli dopo aver verificato le parole
Il task non restituisce timestamp. Apri il montaggio audio o video finale in un editor di sottotitoli, aggiungi un cue per ogni frase cantata e imposta gli orari di inizio e fine rispetto a quella performance. Controlla il primo ingresso della voce, ogni ritornello ripetuto e l'ultima riga. Distribuire le righe in modo uniforme sulla durata fallisce, perché le pause strumentali e le sillabe tenute sono irregolari.
Riallinea dopo qualsiasi modifica all'audio. Tieni il testo nella lingua originale separato da qualsiasi traduzione: il task non ha un campo di traduzione, e un adattamento cantabile cambia parole e ritmo.
Stima il budget per registrazione
Il costo è il numero di richieste moltiplicato per $0.05: due arrangiamenti vocali costano $0.10, aggiungere una richiesta di traccia vocale per ciascuno porta il totale a $0.20, e ventiquattro registrazioni costano $1.20 prima dei nuovi tentativi. Poiché la durata non entra mai nel prezzo, una cartella di clip brevi costa relativamente tanto al minuto. Invia una canzone per richiesta: più canzoni concatenate in un unico file tornano come un unico blocco di testo continuo senza confini, e senza tempi con cui ricostruirle.
| Problema | Prossimo passo |
|---|---|
| L'URL restituisce HTML o richiede il login | Sostituiscilo con un URL audio diretto oppure carica il file |
| Manca l'ultimo ritornello | Ascolta quell'intervallo; prova la traccia vocale come seconda richiesta |
| Una consonante non è chiara | Ascolta nel contesto o chiedi a chi canta |
| Il testo è giusto ma i sottotitoli derivano | Riallinea sul montaggio finale; un'altra trascrizione non porta timestamp |






