Przejdź do głównej treści
SUNO umożliwia nam tworzenie twórczości na bazie wygenerowanej muzyki, uzyskiwanie tekstów piosenek oraz osi czasu audio. Niniejszy dokument wyjaśnia metody integracji z odpowiednimi API. To API posiada tylko jeden parametr wejściowy, którym jest audio_id — oficjalny identyfikator wygenerowanego utworu. W tym przykładzie podajemy audio_id o wartości ec13e502-d043-4eb2-92ee-e900c6da69d1.
import requests

url = "https://api.acedata.cloud/suno/timing"

headers = {
    "accept": "application/json",
    "authorization": "Bearer {token}",
    "content-type": "application/json"
}

payload = {
    "audio_id": "ec13e502-d043-4eb2-92ee-e900c6da69d1"
}

response = requests.post(url, json=payload, headers=headers)
print(response.text)
Przykładowy fragment odpowiedzi:
{
  "success": true,
  "task_id": "ccf72cca-1c82-4580-8575-bb141c7e8e48",
  "trace_id": "d8e0b7c3-6d24-4ed9-98ac-ffe683576a75",
  "data": {
    "aligned_words": [
      {
        "word": "[Verse]\nSnowflakes ",
        "success": true,
        "start_s": 2.63,
        "end_s": 3.43,
        "p_align": 0.531
      },
      {
        "word": "dance ",
        "success": true,
        "start_s": 3.43,
        "end_s": 3.91,
        "p_align": 0.911
      },
      {
        "word": "on ",
        "success": true,
        "start_s": 3.91,
        "end_s": 4.35,
        "p_align": 0.937
      },
      {
        "word": "rooftops ",
        "success": true,
        "start_s": 4.35,
        "end_s": 5.11,
        "p_align": 0.366
      },
      {
        "word": "high\n",
        "success": true,
        "start_s": 5.11,
        "end_s": 6.25,
        "p_align": 0.969
      },
      ...
    ],
    "waveform_data": [0.02138, 0.02193, 0.01806, 0.16597, 0.15168, 0.14243, ...],
    "hoot_cer": 0.35013262599469497,
    "is_streamed": false
  }
}

Opis pola aligned_words

Jak widać, data.aligned_words to tablica obiektów, z których każdy reprezentuje słowo lub frazę z informacjami o czasie.
  • word: faktyczne słowo lub fraza w tekście piosenki
  • success: wartość logiczna, wskazująca, czy wyrównanie tego słowa powiodło się
  • start_s: czas rozpoczęcia słowa (w sekundach)
  • end_s: czas zakończenia słowa (w sekundach)
  • p_align: prawdopodobieństwo lub wskaźnik pewności wyrównania, w zakresie od 0 do 1