Aller au contenu principal

Transformer un enregistrement de chanson en paroles vérifiées avec HeartMuLa

Envoyez un audio chanté à HeartMuLa, vérifiez refrains et mots incertains, budgétez $0.05 par requête et synchronisez les paroles vérifiées en sous-titres.

Auteur
Lydia
Publié
Lecture
8 min de lecture
Mis à jour
Une femme tenant un casque et un homme avec une guitare acoustique, assis face à face devant un micro dans un studio en bois chaleureux au coucher du soleil

HeartMuLa Transcribe transforme un enregistrement de chanson en brouillon de texte pour $0.05 par requête, que la piste dure vingt secondes ou six minutes. Envoyez une URL audio directe, lisez les paroles dans data.output.text, puis vérifiez les passages répétés et les mots incertains sur ce même enregistrement. La tâche ne renvoie ni minutage par ligne, ni identification du chanteur, ni score de confiance : une feuille de paroles vérifiée et un fichier de sous-titres synchronisés sont donc deux travaux distincts.

Ce que la tâche accepte et renvoie

La page HeartMuLa Transcribe liste une entrée, audio_url : un MP3 ou WAV jusqu'à 90 MB. Il n'y a ni champ de prompt, ni champ de taille de modèle, ni champ de minutage, et pas non plus de réglage de langue : le modèle détecte la langue à partir de l'audio, de sorte que des paroles dans une autre langue fonctionnent exactement pareil. Le modèle est conçu pour la voix sur musique ; pour une interview ou un podcast, un modèle de parole général comme Grok STT convient mieux. C'est un modèle sans censure : les paroles explicites reviennent telles qu'elles sont chantées, sans masquage ni refus, et vous restez responsable des droits sur l'audio.

L'outil ouvert de reconnaissance des paroles de HeartMuLa, HeartTranscriptor, repose sur Whisper et a été entraîné sur des pistes vocales séparées ; ses auteurs recommandent de séparer la voix d'abord. La requête hébergée n'a aucun interrupteur de séparation. Si un enregistrement a un mixage d'accompagnement dense, vous pouvez lancer vous-même un outil de séparation comme Demucs et soumettre la piste vocale comme deuxième requête. Considérez cette piste comme une expérience : comparez chaque mot qu'elle modifie avec le mixage original, car la séparation peut introduire des artefacts, et une voix studio ne peut pas trancher un mot dans une autre interprétation. Les voix murmurées ou criées et les fichiers à très faible débit binaire reviennent moins bien ; envoyez le MP3 ou WAV de la meilleure qualité dont vous disposez.

Essayez d'abord dans le Playground

Ouvrez la page HeartMuLa Transcribe et restez dans l'onglet Playground.

  1. Sous Input audio, appuyez sur Choose a file (MP3 ou WAV, jusqu'à 90 MB), ou basculez sur Asset URL et appuyez sur Add URL pour un fichier hébergé ailleurs. C'est le seul champ.
  2. Vérifiez l'estimation de prix : $0.05, quelle que soit la durée.
  3. Connectez-vous et lancez. Le texte des paroles apparaît dans le panneau Output, avec une vue JSON à côté de l'aperçu.

L'URL doit renvoyer le fichier audio lui-même, pas un lecteur, une page de partage ou une page de connexion, sinon la tâche échoue en tant que ressource invalide. Conservez votre propre copie de la version exacte que vous soumettez, pour que la transcription reste liée à cette interprétation. Testez ici votre morceau le plus difficile avant de mettre un lot en file.

Ou appelez-la depuis le code

Installez le SDK Python (pip install spicyapi, Python 3.11+), affectez SPICY_API_KEY à votre clé côté serveur et exécutez :

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"])

Les envois, l'attente, les erreurs et les nouvelles tentatives figurent dans la référence du SDK Python, et le guide des tâches couvre le cycle de vie des tâches et les callbacks. Un morceau instrumental renvoie peu ou rien et reste quand même facturé comme une exécution réussie : écartez donc les morceaux sans voix avant de mettre un lot en file. Une tâche terminée atteste de l'achèvement, pas de l'exactitude.

Ou laissez un Agent l'exécuter

Si vous voulez qu'un assistant transcrive un dossier de chansons pour vous, donnez-lui la CLI ou le serveur MCP. Les deux affichent le prix et vous demandent une confirmation avant un appel payant. Le Skill ajoute des instructions par-dessus l'un ou l'autre.

  • CLI. spicyapi exécute une tâche depuis un terminal (npx @spicyapi/cli fonctionne sans installation) :

``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 ``

  • Serveur MCP. Ajoutez le serveur MCP à votre assistant, puis demandez : « Transcris les paroles de ./song.wav avec HeartMuLa Transcribe. » Il appelle spicyapi_upload_file, puis spicyapi_task_create (qui s'arrête pour votre confirmation de prix), puis 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 installe l'Agent Skill, qui apprend à un assistant de programmation à lire le schéma en cours et à réutiliser les clés d'idempotence. Il ne peut pas exécuter de tâches tout seul, utilisez-le donc avec la CLI ou MCP.

Vérifiez la couverture avant la ponctuation

Écoutez une fois la source et notez sa structure : couplet, refrain, bridge, outro. Comparez cette séquence avec le brouillon. Une transcription fluide peut fusionner deux refrains en un seul, et ranger la ponctuation ne restaurera pas l'interprétation manquante. Les modèles de type Whisper peuvent aussi répéter une ligne, sauter un court passage ou produire des mots sur un long « ooh » ou un bourdonnement : réécoutez donc à chaque endroit où le texte semble bouclé ou trop sûr de lui.

Ne supprimez pas automatiquement les mots répétés. Ils peuvent être un écho chanté, une phrase principale répétée ou une erreur de reconnaissance ; réécoutez cet endroit et décidez. Gardez un brouillon intact pour qu'une modification de l'éditeur ne soit jamais attribuée au modèle.

Conservez chaque répétition telle qu'elle est chantée. Prenons une chanson imaginée dont le premier refrain dit « Leave the lamp beside the window » et dont le dernier dit « Leave the lamp beneath the window. » Les deux phrases rentrent dans la mélodie. La transcription doit conserver le changement réellement chanté, plutôt que de copier le premier refrain sur le second.

Tranchez les mots qui changent le sens

Priorisez les négations, les noms, les nombres et les petits mots qui retournent une ligne. « Do not close the garden gate » et « Do close the garden gate » se lisent bien et signifient l'opposé l'une de l'autre. Réécoutez avec plusieurs secondes de contexte de chaque côté, car une consonne isolée est plus difficile à entendre que la phrase entière.

Si l'audio reste ambigu, demandez à la personne qui chante ou conservez une note d'incertitude privée. Ne tranchez pas un mot contesté par vote majoritaire entre plusieurs transcriptions : des suppositions identiques ne sont pas des preuves indépendantes. Pour un chant à plusieurs couches, décidez si la feuille ne couvre que la voix principale ou toutes les lignes d'accompagnement audibles, et n'ajoutez des étiquettes de rôle qu'à partir de votre propre écoute ou de vos notes de production.

Ajoutez les sous-titres après avoir vérifié les mots

La tâche ne renvoie aucun minutage. Ouvrez le montage audio ou vidéo final dans un éditeur de sous-titres, ajoutez un repère pour chaque phrase chantée et fixez les heures de début et de fin par rapport à cette interprétation. Vérifiez la première entrée de la voix, chaque refrain répété et la dernière ligne. Répartir les lignes uniformément sur la durée échoue, car les pauses instrumentales et les syllabes tenues sont irréguliers.

Réalignez après toute modification de l'audio. Gardez le texte en langue originale séparé de toute traduction : la tâche n'a pas de champ de traduction, et une adaptation chantable change les mots et le rythme.

Budgétez par enregistrement

Le coût, c'est le nombre de requêtes multiplié par $0.05 : deux arrangements vocaux coûtent $0.10, ajouter une requête de piste vocale pour chacun porte le total à $0.20, et vingt-quatre enregistrements coûtent $1.20 avant les nouvelles tentatives. Comme la durée n'entre jamais dans le prix, un dossier de courts clips coûte relativement cher à la minute. Envoyez une chanson par requête : plusieurs chansons concaténées dans un seul fichier reviennent comme un bloc de texte continu sans frontières, et sans minutages pour les reconstruire.

ProblèmeAction suivante
L'URL renvoie du HTML ou exige une connexionRemplacez-la par une URL audio directe, ou téléversez le fichier
Le dernier refrain manqueÉcoutez cet intervalle ; essayez la piste vocale comme deuxième requête
Une consonne n'est pas claireÉcoutez dans le contexte ou demandez à la personne qui chante
Le texte est juste mais les sous-titres dériventRéalignez sur le montage final ; une autre transcription n'apporte aucun minutage

Aussi en English · 日本語 · 한국어 · Deutsch · Español · Português (Brasil) · Русский · Italiano · Polski

Essayez par vous-même

Vous ne payez que ce que vous lancez : ni forfait, ni abonnement.

Créé avec MiniMax H3 · ByteDance Seedance 2.0 Fast