ai/heartmula/transcribe-lyrics
heartmula/transcribe-lyrics
heartmula/transcribe-lyrics. Duyệt API mô hình ảnh, video và đổi khuôn mặt. Thử mô hình rồi tích hợp qua một API REST thống nhất.
Mô hình liên quan
Đầy đủ tham số, lược đồ đầu ra và giá hiện tại
| Chợ API mô hình AI | Một nền tảng cho mọi thứ | Phổ biến nhất | Điều khoản | Duyệt API mô hình ảnh, video và đổi khuôn mặt. Thử mô hình rồi tích hợp qua một API REST thống nhất. |
|---|---|---|---|---|
| audio *Audio | audio_upload | — | audio/* |
Đầy đủ tham số, lược đồ đầu ra và giá hiện tại
| Tìm hiểu thêm | Một nền tảng cho mọi thứ | Duyệt API mô hình ảnh, video và đổi khuôn mặt. Thử mô hình rồi tích hợp qua một API REST thống nhất. |
|---|---|---|
| outputs | array<object> |
API
Duyệt API mô hình ảnh, video và đổi khuôn mặt. Thử mô hình rồi tích hợp qua một API REST thống nhất.
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);Tài liệu 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
| Item | Details |
|---|---|
| Model architecture | AI lyric transcription model |
| Task type | Audio-to-text(lyric extraction) |
| Input | Audio URL |
| Input format | String(audio) |
| Output | Transcribed lyrics text |
| Language support | Multilingual |
| Latency | Optimized for online inference with no cold starts |
| Deployment profile | Production-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
| Item | Price |
|---|---|
| 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.