Zaman damgalı şarkı sözü API'si
Uç nokta açıklaması
Zaman damgalı şarkı sözü, bir şarkının kelime düzeyindeki zaman damgalarını getirir; sözlerin senkron gösterimi için kullanılır.
Uç nokta: POST /api/lyrics/timeline
Faturalama: Ücretsiz (yalnızca okuma sorgusu; hiçbir ücret alınmaz ve üretim görevi oluşturulmaz).
Dönüş biçimi: zaman çizelgesi dizisi doğrudan döndürülür — data / success sarmalayıcısı yoktur; ayrıştırıldığında yalnızca bir dizidir.
İstek parametreleri
Headers
| Parametre | Tür | Zorunlu | Notlar |
|---|---|---|---|
| Authorization | string | evet | Bearer YOUR_API_KEY |
| Content-Type | string | evet | application/json |
Gövde parametreleri
| Parametre | Tür | Zorunlu | Varsayılan | Notlar |
|---|---|---|---|---|
| model | string | hayır | suno-v6 | Müşteriye görünen model adı: suno-v6, suno-v6-wild veya suno-v6-mini |
| song_id | string | evet | - | Şarkı kimliği |
İstek örneği
curl -X POST https://www.suno-api.io/api/lyrics/timeline \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "suno-v6",
"song_id": "clip_id"
}'
Yanıt
Aşağıda, üretim ortamında 189,6 saniyelik bir suno-v6 şarkısı için gerçek yanıt var (o çağrıda 69 segment vardı; burada yalnızca baş ve son birkaç segment tutuldu):
[
{
"word": "[Intro]\n\n\n[",
"start_s": 15,
"end_s": 15.04277,
"success": true,
"p_align": 0.99
},
{
"word": "Instrumental: ",
"start_s": 15.04704,
"end_s": 15.10264,
"success": true,
"p_align": 0.99
},
{
"word": "End]\n\n\n",
"start_s": 189.16974,
"end_s": 189.654,
"success": true,
"p_align": 0.99
}
]
Alan referansı
| Alan | Tür | Notlar |
|---|---|---|
word |
string | Bu segmentin metni; kendi satır sonlarını taşır: segment başına bir söz satırı, segment sonunda \n ve paragraflar arasında \n\n, bu yüzden yalnızca boşluk içeren kayıtlar çıkar |
start_s |
number | Segmentin başlangıç zamanı, saniye (ondalıklı) |
end_s |
number | Segmentin bitiş zamanı, saniye. Son segmentin end_s değeri neredeyse şarkı süresine eşittir |
success |
boolean | Bu segmentin başarıyla hizalanıp hizalanmadığı |
p_align |
number | Hizalama güveni; ölçümlerde istikrarlı biçimde 0.99 |
Dikkat edilmesi gerekenler
- Sarmalayıcı aramayın. Yanıt dizinin kendisidir,
{"data": ...}değildir vesuccessalanı da yoktur. - Başta segment olmayabilir. Yalnızca girişi olan şarkılarda ölçüm ilk segmentin ancak 15. saniyede göründüğünü gösterdi ve
start_sdeğerinin0dan başlaması garanti değildir; karaoke için baştaki boşluğu kendiniz işleyin. - Enstrümantal ve yapı işaretleri de döner,
[Intro],[Verse 1],Instrumental: soft arpeggiating piano, …,[End]gibi biçimlerde ve yine kelime kelime zamanlıdır. Söz altyazısı yapmadan önce bu segmentleri baştaki[ya daInstrumentalile süzün; aksi halde düzenleme açıklamaları söz gibi görünür. - Kelime bazlıdır, satır bazlı değildir. Aynı söz satırı sıklıkla birkaç segmente bölünür ve
\nile satırlara birleştirilmelidir; bir satırın zamanı ilk segmentininstart_sdeğeridir. - Segment sayısı şarkıya bağlıdır; sabit bir sayı varsaymayın (ölçüm: 189,6 saniyelik şarkıda 69 segment ve yaklaşık 6,5 KB yanıt gövdesi).
.lrc dosyası oluşturma
Bu uç nokta yalnızca zaman çizelgesi verisini döndürür; doğrudan dosya döndürmez. .lrc gerekiyorsa dönen start_s değerinden [mm:ss.cc] biçiminde satırlar kurun (word alanı kendi satır sonlarını taşır — satırlara bölün ve boş satırları atlayın). Örnek için Şarkı medyası indirme ve önizleme API'si sayfasındaki "Zaman damgalı sözler (.lrc) nasıl alınır" bölümüne bakın.
Aşağıda enstrümantal/yapı işareti süzgeci içeren tam sürüm var (satır başına bir segment, önce veri şeklini doğrulamak için uygundur):
import re
SKIP = re.compile(r"^\[.*\]$|^Instrumental:")
def to_lrc(segments):
lines = []
for seg in segments:
if not seg.get("success", True):
continue
text = (seg.get("word") or "").strip()
if not text or SKIP.match(text):
continue
cs = int(max(0.0, float(seg["start_s"])) * 100 + 0.5)
lines.append(f"[{cs // 6000:02d}:{(cs % 6000) // 100:02d}.{cs % 100:02d}]{text}")
return "\n".join(lines)
Uyumluluk notları
Eski belgeler { success, song_id, lyrics: [...] } sarmalayıcı nesnesi örneğini kullanıyordu. Güncel belgeler doğrudan dönen zaman çizelgesi dizisini esas alır.
API anahtarı alın
Kaydolduktan sonra konsoldan bir API anahtarı oluşturun. Her üretim 0,6 ¥ tutarındadır ve 2 parça döner, indirmeler sınırsızdır ve telefon numarası gerekmez.
API anahtarı al Genel bakışa dön