Speech To TextHeartmula

ai/heartmula/transcribe-lyrics

heartmula/transcribe-lyrics

heartmula/transcribe-lyrics. Parcourez les API de modèles d’image, de vidéo et d’échange de visage. Testez un modèle puis intégrez-le avec une API REST unifiée.

Modèles associés

ai/heartmula/transcribe-lyrics Modèles associés 1

Référence complète des paramètres, schéma de sortie et tarifs actuels

Marché des API de modèles IAUne plateforme pour tout créerLe plus populaireConditionsParcourez les API de modèles d’image, de vidéo et d’échange de visage. Testez un modèle puis intégrez-le avec une API REST unifiée.
audio *Audioaudio_upload—audio/*

Référence complète des paramètres, schéma de sortie et tarifs actuels

En savoir plusUne plateforme pour tout créerParcourez les API de modèles d’image, de vidéo et d’échange de visage. Testez un modèle puis intégrez-le avec une API REST unifiée.
outputsarray<object>

API

Parcourez les API de modèles d’image, de vidéo et d’échange de visage. Testez un modèle puis intégrez-le avec une API REST unifiée.

cURL
# 1) Submit — returns { "task_uuid": "..." }
curl -X POST "https://www.namifusion.com/api/v1/marketplace/run/heartmula/transcribe-lyrics" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "input": {
    "audio": "https://d5v2vcqcwe9y5.cloudfront.net/algorithm/video_translate/260327/default/qtqfcgymg08o.wav"
  }
}'

# 2) Poll until status is "completed", then read the output URLs
curl "https://www.namifusion.com/api/v1/marketplace/run/tasks/TASK_UUID" \
  -H "Authorization: Bearer YOUR_API_KEY"
Python
import time, requests

API_KEY = "YOUR_API_KEY"
HEADERS = {"Authorization": f"Bearer {API_KEY}"}

# 1) Submit
resp = requests.post(
    "https://www.namifusion.com/api/v1/marketplace/run/heartmula/transcribe-lyrics",
    headers=HEADERS,
    json={
        "input": {
            "audio": "https://d5v2vcqcwe9y5.cloudfront.net/algorithm/video_translate/260327/default/qtqfcgymg08o.wav"
        }
    },
)
resp.raise_for_status()  # 401/402/429/5xx stop here instead of polling a bad task
task = resp.json()

# 2) Poll until a terminal state (completed / failed / cancelled).
#    This model is allowed up to 300s server-side.
deadline = time.time() + 360
while task.get("status") not in ("completed", "failed", "cancelled"):
    if time.time() > deadline:
        raise TimeoutError(f"still {task.get('status')} — keep the task_uuid and poll later")
    time.sleep(3)
    poll = requests.get(f"https://www.namifusion.com/api/v1/marketplace/run/tasks/{task['task_uuid']}", headers=HEADERS)
    poll.raise_for_status()
    task = poll.json()

print(task["status"], task.get("output"))
JavaScript
const API_KEY = "YOUR_API_KEY";
const HEADERS = { Authorization: `Bearer ${API_KEY}` };

// 1) Submit
const resp = await fetch("https://www.namifusion.com/api/v1/marketplace/run/heartmula/transcribe-lyrics", {
  method: "POST",
  headers: { ...HEADERS, "Content-Type": "application/json" },
  body: JSON.stringify({
    "input": {
      "audio": "https://d5v2vcqcwe9y5.cloudfront.net/algorithm/video_translate/260327/default/qtqfcgymg08o.wav"
    }
  }),
});
if (!resp.ok) throw new Error(`submit failed: ${resp.status} ${await resp.text()}`);
let task = await resp.json();

// 2) Poll until a terminal state (completed / failed / cancelled).
//    This model is allowed up to 300s server-side.
const deadline = Date.now() + 360 * 1000;
while (!["completed", "failed", "cancelled"].includes(task.status)) {
  if (Date.now() > deadline) throw new Error(`still ${task.status} — keep the task_uuid and poll later`);
  await new Promise((r) => setTimeout(r, 3000));
  const poll = await fetch(`https://www.namifusion.com/api/v1/marketplace/run/tasks/${task.task_uuid}`, { headers: HEADERS });
  if (!poll.ok) throw new Error(`poll failed: ${poll.status}`);
  task = await poll.json();
}

console.log(task.status, task.output);

Documentation API

ai/heartmula/transcribe-lyrics

Fast, multilingual lyric transcription with no cold starts and affordable per-run pricing.

ai/heartmula/transcribe-lyrics is an AI model designed to extract lyrics from audio files with a focus on speed, reliability, and cost efficiency. It supports multilingual transcription and is well suited for production workflows that require consistent performance and ready-to-use lyric extraction.

🚀 Key Features

  • Lyric-focused transcription: Built specifically for extracting sung lyrics from audio, making it a strong fit for music-centric workflows.
  • Multilingual support: Handles multilingual audio content for broader catalog coverage and international use cases.
  • No cold start: Delivers more consistent responsiveness for real-time and high-volume production environments.
  • Simple audio input: Accepts an audio URL, making it easy to plug into existing media pipelines.
  • Affordable pricing: Low per-run cost makes it practical for batch processing and large-scale lyric indexing.

🛠️ Technical Specifications

ItemDetails
Model architectureAI lyric transcription model
Task typeAudio-to-text(lyric extraction)
InputAudio URL
Input formatString(audio)
OutputTranscribed lyrics text
Language supportMultilingual
LatencyOptimized for online inference with no cold starts
Deployment profileProduction-ready performance

Sample Prompts

Note: This model primarily operates on audio input rather than Prompt-based control. The examples below illustrate common task intents.

  • Extract the full lyrics from this song audio.
  • Transcribe the lyrics from this multilingual music track.
  • Identify the sung content in this audio file and return readable lyrics text.

💰 Pricing

ItemPrice
Base Price$0.05

💡 Best Use Cases

  • Music platforms: Generate lyrics for song catalogs to improve discovery, display, and metadata quality.
  • UGC and short-form media: Extract lyrics from music-backed content for subtitles, tagging, or search.
  • Media archiving: Convert recorded performances and legacy audio assets into structured lyric text.
  • Multilingual content operations: Support lyric transcription across languages for global media workflows.