Ir al contenido principal

Convierte una grabación de canción en una letra verificada con HeartMuLa

Envía audio de canción a HeartMuLa, revisa estribillos repetidos y palabras inciertas, presupuesta $0.05 por solicitud y sincroniza la letra verificada.

Autor
Lydia
Publicado
Lectura
7 min de lectura
Actualizado
Una mujer con auriculares y un hombre con una guitarra acústica sentados frente a frente ante un micrófono en un estudio de madera cálido al atardecer

HeartMuLa Transcribe convierte una grabación de canción en un borrador de texto por $0.05 por solicitud, tanto si la pista dura veinte segundos como seis minutos. Envía una URL de audio directa, lee la letra desde data.output.text y después contrasta las secciones repetidas y las palabras inciertas con esa misma grabación. La tarea no devuelve tiempos por línea, etiquetas de cantante ni puntuaciones de confianza, así que una letra verificada y un archivo de subtítulos sincronizados son dos trabajos distintos.

Qué acepta la tarea y qué devuelve

La página de HeartMuLa Transcribe enumera una entrada, audio_url: un MP3 o WAV de hasta 90 MB. No hay campo de prompt, de tamaño de modelo ni de marcas de tiempo, y tampoco ajuste de idioma: el modelo deduce el idioma del audio, de modo que la letra en cualquier idioma funciona igual. Está pensado para voz sobre música; para una entrevista o un pódcast encaja mejor un modelo de voz general como Grok STT. Es un modelo sin censura: la letra explícita vuelve tal como se canta, sin enmascarar ni rechazo, y tú sigues siendo responsable de los derechos del audio.

El reconocedor de letras abierto de HeartMuLa, HeartTranscriptor, está basado en Whisper y se entrenó con pistas vocales separadas; sus autores recomiendan separar antes la voz. La petición alojada no tiene interruptor de separación. Si una grabación tiene una mezcla de acompañamiento densa, puedes ejecutar tú mismo una herramienta de separación como Demucs y enviar la pista vocal como segunda solicitud. Trata esa pista como un experimento: compara cualquier palabra que cambie con la mezcla original, porque la separación puede introducir artefactos, y una voz de estudio no puede zanjar una palabra en otra interpretación. Las voces susurradas o gritadas y los archivos de bitrate muy bajo vuelven peor; envía el MP3 o WAV de mejor calidad que tengas.

Pruébalo primero en el Playground

Abre la página de HeartMuLa Transcribe y quédate en la pestaña Playground.

  1. En Input audio, pulsa Choose a file (MP3 o WAV, hasta 90 MB) o cambia a Asset URL y pulsa Add URL para un archivo alojado en otro sitio. Ese es el único campo.
  2. Comprueba la estimación de precio: $0.05, sea cual sea la duración.
  3. Inicia sesión y ejecuta. El texto de la letra aparece en el panel Output, con una vista JSON junto a la vista previa.

La URL debe devolver el propio archivo de audio, no un reproductor, una página para compartir ni una página de inicio de sesión, o la tarea falla como recurso no válido. Conserva tu propia copia de la versión exacta que envías, para que la transcripción siga unida a esa interpretación. Prueba aquí tu pista más difícil antes de poner un lote en cola.

O llámalo desde el código

Instala el SDK de Python (pip install spicyapi, Python 3.11+), asigna SPICY_API_KEY a tu clave del lado del servidor y ejecuta:

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

Las subidas, la espera, los errores y los reintentos están en la referencia del SDK de Python, y la guía de tareas cubre el ciclo de vida de la tarea y los callbacks. Una pista instrumental devuelve poco o nada y aun así se cobra como una ejecución correcta, así que descarta las pistas sin voz antes de poner un lote en cola. Una tarea completada acredita que terminó, no que sea exacta.

O deja que un Agent la ejecute

Si quieres que un asistente transcriba una carpeta de canciones por ti, dale la CLI o el servidor MCP. Ambos muestran el precio y te piden confirmación antes de una llamada de pago. El Skill añade instrucciones a cualquiera de los dos.

  • CLI. spicyapi ejecuta una tarea desde una terminal (npx @spicyapi/cli funciona sin instalar):

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

  • Servidor MCP. Añade el servidor MCP a tu asistente y luego pregunta: "Transcribe la letra de ./song.wav con HeartMuLa Transcribe." Llama a spicyapi_upload_file, luego a spicyapi_task_create (que se detiene para tu confirmación de precio) y luego a 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 instala el Agent Skill, que enseña a un asistente de programación a leer el esquema vigente y a reutilizar claves de idempotencia. No puede ejecutar tareas por sí mismo, así que úsalo con la CLI o con MCP.

Comprueba la cobertura antes de los signos de puntuación

Reproduce la fuente una vez y anota su estructura: verso, estribillo, puente y outro. Compara esa secuencia con el borrador. Una transcripción fluida puede fundir dos estribillos en uno, y ordenar los signos de puntuación no devolverá la interpretación que falta. Los modelos al estilo de Whisper también pueden repetir una línea, omitir un pasaje breve o producir palabras sobre un "ooh" largo o un zumbido, así que escucha en cualquier punto donde el texto parezca en bucle o seguro de forma extraña.

No borres las palabras repetidas automáticamente. Pueden ser un eco cantado, una frase principal repetida o un error de reconocimiento; rebobina ese punto y decide. Conserva un borrador sin tocar para que ningún cambio del editor se atribuya al modelo.

Mantén cada repetición tal como se canta. Piensa en una canción inventada cuyo primer estribillo dice "Leave the lamp beside the window" y cuyo último dice "Leave the lamp beneath the window." Ambas caben en la melodía. La transcripción debe conservar el cambio que realmente se cantó, en lugar de copiar el primer estribillo sobre el segundo.

Resuelve las palabras que cambian el significado

Prioriza las negaciones, los nombres, los números y las palabras cortas que dan la vuelta a una línea. "Do not close the garden gate" y "Do close the garden gate" se leen bien y significan lo contrario. Rebobina con varios segundos de contexto a ambos lados, porque una consonante aislada se oye peor que la frase completa.

Si el audio sigue siendo ambiguo, pregunta a quien canta o guarda una nota de incertidumbre privada. No resuelvas una palabra en disputa por votación mayoritaria entre transcripciones repetidas: las conjeturas idénticas no son evidencia independiente. En el canto a varias capas, decide si la hoja cubre solo la voz principal o todas las líneas de acompañamiento audibles, y añade etiquetas de papel únicamente a partir de tu propia escucha o de tus notas de producción.

Añade subtítulos después de verificar las palabras

La tarea no devuelve marcas de tiempo. Abre el montaje final de audio o vídeo en un editor de subtítulos, añade un cue para cada frase cantada y fija las horas de inicio y fin respecto a esa interpretación. Comprueba la primera entrada de la voz, cada estribillo repetido y la última línea. Repartir las líneas de forma uniforme a lo largo de la duración falla porque los descansos instrumentales y las sílabas sostenidas son desiguales.

Vuelve a alinear después de cualquier edición del audio. Mantén el texto en el idioma original aparte de cualquier traducción: la tarea no tiene campo de traducción, y una adaptación cantable cambia la letra y el ritmo.

Presupuesta por grabación

El coste son solicitudes multiplicadas por $0.05: dos arreglos vocales cuestan $0.10, añadir una solicitud de pista vocal para cada uno lo lleva a $0.20, y veinticuatro grabaciones cuestan $1.20 antes de los reintentos. Como la duración nunca entra en el precio, una carpeta de clips cortos sale relativamente cara por minuto. Envía una canción por solicitud: varias canciones concatenadas en un solo archivo vuelven como un bloque de texto continuo sin fronteras, y sin tiempos con los que reconstruirlas.

ProblemaSiguiente paso
La URL devuelve HTML o pide iniciar sesiónSustitúyela por una URL de audio directa o sube el archivo
Falta el estribillo finalEscucha ese intervalo; prueba la pista vocal como segunda solicitud
Una consonante no está claraEscucha en contexto o pregunta a quien canta
El texto es correcto pero los subtítulos se desvíanVuelve a alinear respecto al montaje final; otra transcripción no aporta marcas de tiempo

También en English · 日本語 · 한국어 · Deutsch · Français · Português (Brasil) · Русский · Italiano · Polski

Pruébalo tú mismo

Pagas solo lo que ejecutas: sin planes ni suscripciones.

Hecho con MiniMax H3 · ByteDance Seedance 2.0 Fast