REST API · OpenAPI 3.1 · Serwer MCP

API dla programistów

Zamieniaj pliki, linki i teksty na akordy i słowa piosenek, a potem czytaj i uzupełniaj swój śpiewnik ze skryptu lub asystenta.

  • Darmowy plan
  • Ten sam silnik co aplikacja
  • Oficjalny serwer MCP
Bazowy URL https://jam-jam.org/api/v1 openapi.json llms.txt

Co umożliwia API

Każdą funkcję odblokowuje zakres, który zaznaczasz przy tworzeniu klucza.

Konwersja

Audio, PDF, obrazy, tekst lub link do songbooka, PDF, MIDI, MusicXML i nie tylko.

convert:writeconvert:read

Prywatny śpiewnik

Wyświetlanie, odczyt, tworzenie, edycja i porządkowanie piosenek i playlist.

carnet:readcarnet:write

Profile publiczne

Tylko odczyt: profile, opublikowane piosenki, obserwujący. Bez ścieżki dźwiękowej.

social:read

Separacja ścieżek

Konwersja (output=stems) oddziela wokal od akompaniamentu; narzędzie /stem-tool dzieli na dwie lub cztery ścieżki. Z kluczem API oba wymagają konta Premium.

stems:write Klucz API Premium

Kolejka audio

Analiza akordów i słów w tej samej kolejce co aplikacja.

audio:writequeue:read

Wykrywanie muzyki AI

Wskazówka, czy muzykę wygenerowało AI, dla pliku, linku Spotify, bezpośredniego linku audio lub kodu ISRC.

Ograniczenia, limity i prywatność

Muzyka generowana przez AI jest coraz częstsza. Jam Jam pomaga znaleźć jej oznaki: wklej link lub prześlij plik, aby uzyskać orientacyjny wynik.

Maks. 100 MB · Maks. 10 min · Spotify, bezpośredni link audio lub ISRC. YouTube nie jest obsługiwany. Linki Spotify mogą być analizowane tylko na podstawie fragmentu.

Jeden plik oczekujący lub przetwarzany na konto. Konta Premium mają pierwszeństwo w kolejce.

Gość: 2 analizy/dzień i 5/miesiąc. Konto bezpłatne: 5/dzień i 50/miesiąc. Premium: 30/dzień i 300/miesiąc. Wspólne limity witryny, aplikacji i API; błędy nie zużywają limitu. Reset o północy UTC i pierwszego dnia miesiąca UTC.

Audio jest wysyłane do dostawcy SH Labs do analizy. Deklaruje on, że nie przechowuje audio ani nie używa go do trenowania modeli. W razie awarii plik może być analizowany lokalnie, jeśli dostępna jest usługa zapasowa. Pliki tymczasowe są usuwane po przetworzeniu, błędzie lub anulowaniu. Konto przechowuje nazwę lub link, datę, stan i wynik przez 90 dni; wyniki gości przez 24 godziny. Limity gości wykorzystują token i pseudonimizowany identyfikator sieci, bez zapisywania adresu IP w jawnej postaci.

Ten wskaźnik nie jest prawdopodobieństwem ani dowodem. Niski wskaźnik nie gwarantuje ludzkiego pochodzenia.

Poznaj narzędzie
audio:writequeue:read

Obsługiwane formaty

Pełna, aktualna lista, z dokładnymi limitami i tym, co ten serwer faktycznie obsługuje, zawsze znajduje się pod GET /formats. W skrócie:

Formaty wejściowe

  • Pliki audio i wideo
  • PDF: akordy, słowa, nuty, tabulatura, zeskanowany śpiewnik
  • Obrazy: akordy, słowa, nuty, tabulatura
  • Zwykły tekst, ChordPro, OnSong
  • Linki i wyszukiwanie w sieci (page-link, web-search)
  • MusicXML, MIDI
  • JamSong, mieszany .zip, songbook (pivot)

Formaty wyjściowe

  • Songbook (pivot JSON, zawsze dostępny)
  • PDF: akordy, słowa, nuty, tabulatura, siatka
  • PNG, HTML, zwykły tekst, ChordPro
  • chords-lab, chords-csv, tonacja i BPM
  • MusicXML, MIDI (Premium)
  • Zsynchronizowane słowa: .lrc, .srt
  • Wideo karaoke (.mp4), podkład audio, JamSong

Zacznij w czterech krokach

Konwersja jest asynchroniczna: wysyłasz, śledzisz, odbierasz.

  1. Utwórz klucz

    Ustawienia › Klucze API. Prefiks jj_live_, wyświetlany tylko raz, 5 kluczy na konto, można je unieważnić.

    Zarządzaj moimi kluczami API
  2. Wyślij

    Plik, URL lub tekst, z wybranym formatem wyjściowym.

    POST /jobs
  3. Śledź

    Odpytuj z poszanowaniem Retry-After albo otwórz strumień Server-Sent Events.

    GET /jobs/{id}GET /jobs/{id}/events
  4. Odbierz

    Wynik jest dostępny przez 24 godziny, potem 410 Gone.

    GET /jobs/{id}/result

Przykłady

Kompletne wywołania, gotowe do skopiowania bez zmian.

Wylistuj formaty obsługiwane przez ten serwercurl

curl https://jam-jam.org/api/v1/formats

Konwertuj plik do PDFcurl

curl -X POST https://jam-jam.org/api/v1/jobs \
  -H "Authorization: Bearer jj_live_xxxxxxxxxxxxxxxx" \
  -F [email protected] \
  -F inputFormat=pdf-songbook \
  -F output=pdf-songbook

Konwertuj URL na śpiewnikcurl

curl -X POST https://jam-jam.org/api/v1/jobs \
  -H "Authorization: Bearer jj_live_xxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{"url": "https://example.com/tabs/amazing-grace", "output": "songbook"}'

Śledź postęp (SSE lub odpytywanie)curl

# Server-Sent Events
curl -N -H "Authorization: Bearer jj_live_xxxxxxxxxxxxxxxx" \
  https://jam-jam.org/api/v1/jobs/jb_123/events

# Polling
curl -H "Authorization: Bearer jj_live_xxxxxxxxxxxxxxxx" \
  https://jam-jam.org/api/v1/jobs/jb_123

Pobierz wynikcurl

curl -H "Authorization: Bearer jj_live_xxxxxxxxxxxxxxxx" \
  -OJ https://jam-jam.org/api/v1/jobs/jb_123/result

Python (requests)python

import time
import requests

API = "https://jam-jam.org/api/v1"
HEADERS = {"Authorization": "Bearer jj_live_xxxxxxxxxxxxxxxx"}

# 1. Discover formats
formats = requests.get(f"{API}/formats").json()

# 2. Submit a conversion
resp = requests.post(
    f"{API}/jobs",
    headers=HEADERS,
    json={"url": "https://example.com/tabs/amazing-grace", "output": "songbook"},
)
resp.raise_for_status()
job = resp.json()

# 3. Poll until done (or use GET /jobs/{id}/events for SSE)
while job["phase"] not in ("done", "failed", "cancelled"):
    time.sleep(job.get("etaS", 2))
    job = requests.get(f"{API}/jobs/{job['id']}", headers=HEADERS).json()

# 4. Fetch the result
if job["phase"] == "done":
    songbook = requests.get(f"{API}/jobs/{job['id']}/result/songbook", headers=HEADERS).json()
    print(songbook["songs"][0]["title"])
else:
    print("failed:", job.get("problem"))

Analiza utworu za pomocą wykrywania muzyki AIcurl

# Availability and remaining quota (no key needed)
curl https://jam-jam.org/api/v1/ai-music/availability

# Analyze a file
curl -X POST https://jam-jam.org/api/v1/ai-music/jobs \
  -H "Authorization: Bearer jj_live_xxxxxxxxxxxxxxxx" \
  -F "[email protected]"

# Analyze a Spotify link
curl -X POST https://jam-jam.org/api/v1/ai-music/jobs \
  -H "Authorization: Bearer jj_live_xxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{"url":"https://open.spotify.com/track/2JUDGXTQYGQZrVVUgq40Ke"}'

# History, current analysis, one analysis
curl -H "Authorization: Bearer jj_live_xxxxxxxxxxxxxxxx" \
  https://jam-jam.org/api/v1/ai-music/history
curl -H "Authorization: Bearer jj_live_xxxxxxxxxxxxxxxx" \
  https://jam-jam.org/api/v1/ai-music/jobs
curl -H "Authorization: Bearer jj_live_xxxxxxxxxxxxxxxx" \
  https://jam-jam.org/api/v1/ai-music/jobs/JOB_ID

# Cancel
curl -X DELETE -H "Authorization: Bearer jj_live_xxxxxxxxxxxxxxxx" \
  https://jam-jam.org/api/v1/ai-music/jobs/JOB_ID

Przykłady kodu

Gotowe do uruchomienia przykłady w curl, JavaScript i Python, open source na licencji MIT:

jam-jam-api-examples

Asystenci i MCP

Asystent czyta kontrakt i sam buduje wywołania. Oficjalny serwer MCP daje mu 42 gotowe narzędzia.

Dla agentów AI

Przeczytaj najpierw GET /openapi.json: dokumentuje on zalecaną sekwencję wywołań (odkrywanie formatów, wysyłanie, śledzenie, pobieranie), uwierzytelnianie i limity w bloku x-agent-guide przeznaczonym do odczytu przez model. Plik llms.txt na tej stronie wymienia każdą możliwość konwersji jako osobny wpis.

Serwer MCP

Klucz odczytywany z JAM_JAM_API_KEY: widać tylko narzędzia, na które pozwalają jego zakresy. Nikogo nie obserwuje, niczego nie polubia i niczego nie publikuje sam z siebie.

Claude DesktopClaude CodeCursor
Szczegóły

Oficjalny serwer Model Context Protocol udostępnia asystentowi API jako 42 narzędzia z przedrostkiem jj_: konwersję plików i tekstu, odczyt i porządkowanie Twojego prywatnego śpiewnika, odczyt profili publicznych, rozdzielanie stemów, analizę audio i kolejkę, wykrywanie muzyki AI oraz mastering. Czyta klucz API ze zmiennej środowiskowej JAM_JAM_API_KEY i pokazuje tylko te narzędzia, na które pozwalają zakresy tego klucza. Zajmuje się za Ciebie odpytywaniem, błędami limitów i pobieraniem plików wynikowych, dzięki czemu asystent taki jak Claude Desktop, Claude Code czy Cursor może przekonwertować plik albo uporządkować Twój śpiewnik bez pisania przez Ciebie jakiegokolwiek kodu HTTP. Nikogo nie obserwuje, niczego nie lajkuje i nie publikuje utworów na własną rękę.

Instalacjashell
npx -y @jam-jam/convert-mcp

Strona pakietu w npm: npmjs.com/package/@jam-jam/convert-mcp

Konfiguracja (Claude Desktop, Claude Code, Cursor)json
{
  "mcpServers": {
    "jam-jam": {
      "command": "npx",
      "args": ["-y", "@jam-jam/convert-mcp"],
      "env": {
        "JAM_JAM_API_KEY": "jj_live_xxxxxxxxxxxxxxxx"
      }
    }
  }
}

Narzędzia i wymagane zakresy 42

Konwersja

formaty, pliki, tekst i stan zadań.

  • jj_list_formatsbez zakresu
  • jj_convert_fileconvert:write
  • jj_convert_textconvert:write
  • jj_get_jobconvert:read
Limity bez zakresu

co może klucz i ile mu zostało.

  • jj_check_usage
Prywatny śpiewnik, odczyt carnet:read

utwory i playlisty.

  • jj_list_songs
  • jj_get_song
  • jj_list_playlists
  • jj_get_playlist
Prywatny śpiewnik, zapis carnet:write

tworzenie, zmiana i usuwanie utworów i playlist.

  • jj_create_song
  • jj_update_song
  • jj_delete_song
  • jj_create_playlist
  • jj_update_playlist
  • jj_delete_playlist
Profile publiczne, odczyt social:read

karty profili, opublikowane utwory i playlisty, obserwujący i obserwowani.

  • jj_get_profile
  • jj_list_profile_songs
  • jj_list_profile_playlists
  • jj_list_followers
  • jj_list_following
Rozdzielanie stemów

możliwości, zadania i pliki.

  • jj_stems_capabilitiesconvert:read
  • jj_stems_separatestems:write
  • jj_stems_get_jobconvert:read
  • jj_stems_list_jobsconvert:read
  • jj_stems_get_fileconvert:read
  • jj_stems_cancel_jobstems:write
Analiza audio i kolejka

analiza pliku, potem lista, odczyt i anulowanie zadań.

  • jj_audio_analyzeaudio:write
  • jj_queue_listqueue:read
  • jj_queue_get_jobqueue:read
  • jj_queue_cancel_jobaudio:write
Wykrywanie muzyki AI

dostępność, analiza, historia i zadania.

  • jj_ai_music_availabilityqueue:read
  • jj_ai_music_analyzeaudio:write
  • jj_ai_music_currentqueue:read
  • jj_ai_music_get_jobqueue:read
  • jj_ai_music_historyqueue:read
  • jj_ai_music_cancel_jobaudio:write
Mastering

możliwości, presety, renderowanie, stan i anulowanie zadań.

  • jj_mastering_capabilitiesbez zakresu
  • jj_list_mastering_presetsmastering:read
  • jj_create_mastering_presetmastering:write
  • jj_master_audiomastering:write
  • jj_mastering_get_jobmastering:read
  • jj_mastering_cancel_jobmastering:write

Dokumentacja endpointów

Wszystkie obsługiwane trasy, według rodzin, z zakresem i limitem. Wiążący jest pełny kontrakt.

Konwersja (zadania) 6

Metoda Ścieżka Zakres Limit
POST /jobsWyślij konwersję: plik (multipart/form-data), URL lub czysty tekst/ChordPro (application/json). Przy output=stems wymagane są też zakres stems:write i klucz API Premium, z osobnym limitem (200/dobę UTC). convert:write limit: konwersja
GET /jobs/{id}Status zadania (faza, procent, kroki). Odpytuj, przestrzegając nagłówka Retry-After. convert:read limit: brak
DELETE /jobs/{id}Anuluje zadanie i usuwa jego pliki; zwraca limit tylko wtedy, gdy zadanie było jeszcze w kolejce. convert:write limit: brak
GET /jobs/{id}/eventsAlternatywa dla odpytywania w postaci Server-Sent Events: zdarzenia state, done, error oraz ping keep-alive. convert:read limit: brak
GET /jobs/{id}/resultPobiera główny artefakt (lub konkretny za pomocą ?artifact=). Dostępny przez 24 godziny od utworzenia zadania. convert:read limit: brak
GET /jobs/{id}/result/songbookKanoniczny pivot JSON śpiewnika (akordy, tekst, struktura), zawsze dostępny po zakończeniu zadania. convert:read limit: brak

Formaty 1

Metoda Ścieżka Zakres Limit
GET /formatsRejestr par wejście/wyjście faktycznie obsługiwanych przez ten serwer, z limitami (maxBytes, maxPages, maxDurationS). publiczny (bez klucza) limit: brak

Wykorzystanie i limity 1

Metoda Ścieżka Zakres Limit
GET /me/usageStan Twoich limitów (konwersja, odczyt, zapis, stems) oraz zakresy, z których Twoja tożsamość faktycznie może korzystać, w jednym wywołaniu. convert:read limit: brak

Śpiewnik, odczyt 4

Metoda Ścieżka Zakres Limit
GET /me/songsListuje utwory z Twojego prywatnego śpiewnika, stronicowane za pomocą nieprzezroczystego kursora; użyj updatedSince do eksportu przyrostowego. carnet:read limit: odczyt
GET /me/songs/{songId}Jeden pełny utwór z Twojego śpiewnika, wraz z akordami, tekstem i strukturą. carnet:read limit: odczyt
GET /me/playlistsListuje playlisty w Twoim śpiewniku, płaskie i z wieloma przynależnościami, ze stronicowaniem takim samym jak dla utworów. carnet:read limit: odczyt
GET /me/playlists/{playlistId}Jedna playlista i jej utwory, w kolejności, w skróconej formie. carnet:read limit: odczyt

Śpiewnik, zapis 8

Metoda Ścieżka Zakres Limit
POST /me/songsDodaje utwór do Twojego śpiewnika, ten sam pivotowy payload, który zwraca konwersja. Ustaw Idempotency-Key, aby uniknąć duplikatów. carnet:write limit: zapis
PUT /me/songs/{songId}Zastępuje utwór w całości (deklaratywnie); tworzy go pod tym id, jeśli jeszcze nie istnieje. carnet:write limit: zapis
PATCH /me/songs/{songId}Aktualizuje tylko wysłane pola (tonacja, kapodaster, bpm, playlistIds...); publikuje też lub cofa publikację utworu na Twoim profilu. carnet:write limit: zapis
DELETE /me/songs/{songId}Usuwa utwór z Twojego śpiewnika; usunięcie miękkie, idempotentne, opuszcza też wszystkie playlisty. carnet:write limit: zapis
POST /me/playlistsTworzy playlistę; songIds to uporządkowana lista zawartych w niej utworów, zachowywana dokładnie tak, jak została wysłana. carnet:write limit: zapis
PUT /me/playlists/{playlistId}Zastępuje playlistę w całości (deklaratywnie); songIds jest wymagane. carnet:write limit: zapis
PATCH /me/playlists/{playlistId}Zmienia nazwę, emoji okładki lub całkowicie zmienia kolejność utworów w playliście. carnet:write limit: zapis
DELETE /me/playlists/{playlistId}Usuwa samą playlistę; jej utwory pozostają w Twoim śpiewniku i w swoich innych playlistach. carnet:write limit: zapis

Społeczność, tylko odczyt 5

Metoda Ścieżka Zakres Limit
GET /users/{handle}Nagłówek publicznego profilu konta na podstawie nazwy użytkownika; konto prywatne, którego nie obserwujesz, zwraca zamkniętą kartę (bez bio i liczników). social:read limit: odczyt
GET /users/{handle}/songsUtwory opublikowane przez konto na jego profilu; audioPlayable jest prawdziwe tylko wtedy, gdy obserwujecie się nawzajem. social:read limit: odczyt
GET /users/{handle}/playlistsPlaylisty opublikowane przez konto; songCount liczy tylko to, co faktycznie możesz zobaczyć. social:read limit: odczyt
GET /me/followersKonta, które Cię obserwują; status=accepted (domyślnie) lub requested. social:read limit: odczyt
GET /me/followingKonta, które obserwujesz; status=requested wymienia wciąż oczekujące prośby do kont prywatnych. social:read limit: odczyt

Kolejka audio i stems 4

Metoda Ścieżka Zakres Limit
POST /audioUmieszcza w kolejce automatyczną analizę akordów i tekstu, a następnie synchronizację, dla utworu już znajdującego się w Twoim śpiewniku. Ta sama kolejka co w aplikacji; songId musi należeć do Ciebie. audio:write limit: brak
GET /queueKolejka przetwarzania audio Twojego konta: aktywne, oczekujące (z rank) oraz ukończone z ostatnich 7 dni. queue:read limit: brak
GET /queue/{id}Jedno zadanie z kolejki audio, tylko Twoje; ten sam nierozróżnialny 404 dla nieznanego zadania lub cudzego. queue:read limit: brak
DELETE /queue/{id}Anuluje jedno z Twoich zadań w kolejce audio; zwraca limit tylko wtedy, gdy analiza jeszcze się nie zakończyła. audio:write limit: brak

Separacja ścieżek 6

Metoda Ścieżka Zakres Limit
GET /stem-tool/capabilitiesSprawdź dostępność, limity, modele i limit separacji ścieżek dla wywołującego. convert:read limit: brak
GET /stem-tool/jobsWyświetl prywatne zadania separacji ścieżek wywołującego z opcjonalnym kursorem stronicowania. convert:read limit: brak
POST /stem-tool/jobsPrześlij plik audio i podziel go na dwie lub cztery ścieżki. Klucze API wymagają Premium. stems:write limit: stems
GET /stem-tool/jobs/{id}Odczytaj stan, postęp i dostępne pliki własnego zadania. convert:read limit: brak
DELETE /stem-tool/jobs/{id}Anuluj własne zadanie separacji ścieżek. stems:write limit: brak
GET /stem-tool/jobs/{id}/files/{name}Uzyskaj krótkotrwały podpisany adres do pobrania ścieżki MP3 lub archiwum ZIP. convert:read limit: brak

Z kluczem API wszystkie te trasy wymagają konta Premium; w przeciwnym razie odpowiedzią jest 403 (api-premium-required). Limity wywołującego zwraca GET /stem-tool/capabilities.

Mastering 8

Metoda Ścieżka Zakres Limit
GET /mastering/capabilitiesLimity, zakresy ustawień, cele głośności, wbudowane presety i prawo do renderowania. publiczny (bez klucza) limit: brak
GET /mastering/presetsWyświetl swoje presety masteringu. mastering:read limit: brak
POST /mastering/presetsUtwórz preset masteringu (wymagany Idempotency-Key). mastering:write limit: brak
DELETE /mastering/presets/{id}Usuń jeden ze swoich presetów masteringu. mastering:write limit: brak
POST /mastering/jobsPrześlij audio i uruchom mastering z presetem lub ustawieniami. mastering:write limit: mastering (3/tydzień za darmo, bez limitu w Premium)
GET /mastering/jobs/{id}Pobierz stan zadania masteringu. mastering:read limit: brak
DELETE /mastering/jobs/{id}Anuluj zadanie masteringu. mastering:write limit: brak
GET /mastering/jobs/{id}/resultPobierz zmasterowany plik WAV. mastering:read limit: brak

Wykrywanie muzyki AI 7 + 1 wewnętrzna

Metoda Ścieżka Zakres Limit
GET /ai-music/availabilityDostępność narzędzia, akceptowane formaty i pozostałe limity konta lub odwiedzającego. publiczny (bez klucza) limit: brak
POST /ai-music/jobsWysyła plik audio, link Spotify, bezpośredni link audio lub kod ISRC. Jedno niezakończone zadanie na konto; YouTube nie jest obsługiwany. audio:write limit: wykrywanie AI
GET /ai-music/jobsOdnajduje trwającą lub najnowszą analizę. queue:read limit: brak
GET /ai-music/jobs/{id}Śledzi analizę i odczytuje jej raport. queue:read limit: brak
DELETE /ai-music/jobs/{id}Anuluje analizę i usuwa jej pliki tymczasowe. audio:write limit: brak
GET /ai-music/historyPrywatna historia z ostatnich 90 dni, po 30 pozycji na stronę; wymaga konta, żadne audio nie jest przechowywane. queue:read limit: brak
DELETE /ai-music/history/{id}Usuwa skan z historii; limit zużyty przez udaną analizę nie jest zwracany. audio:write limit: brak
GET /ai-music/source/{token}/{filename}Tymczasowy adres zarezerwowany dla dostawcy wykrywania, ważny najwyżej 180 sekund: żaden klient go nie wywołuje. wewnętrzna limit: brak

Stan i specyfikacja 2

Metoda Ścieżka Zakres Limit
GET /healthStan usługi i gotowość poszczególnych silników (OMR, audio, wideo...); bez wymaganego uwierzytelniania. publiczny (bez klucza) limit: brak
GET /openapi.jsonTa umowa w postaci czytelnego dla maszyn pliku JSON. publiczny (bez klucza) limit: brak

Pełna, czytelna dla maszyn umowa, zawsze zsynchronizowana z tą tabelą:

https://jam-jam.org/api/v1/openapi.json Kontrakt OpenAPI

Limity i ograniczenia

Dokładne saldo podają GET /me/usage oraz nagłówki X-Quota-* każdej odpowiedzi.

Konwersja

Darmowe konto
6 / tydzień
Premium
500 / miesiąc
Bez klucza i sesji
3 / 24 h

Ten sam licznik co eksport śpiewnika w aplikacji.

Odczyty i zapisy

na dobę UTCDarmowe kontoPremium
Odczyty (śpiewnik, profile)200020 000
Zapisy (śpiewnik)2005000

X-Read-Quota-* · X-Write-Quota-*

Ścieżki przez konwersję

POST /jobs · output=stems

Wymagany klucz API Premium: bez Premium odpowiedzią jest 403 (premium-required).

Premium
200 na dobę UTC

Wywołując te trasy, potwierdzasz, że masz prawa do wysyłanego audio.

Szczegóły
  • POST /jobs z output=stems zwraca plik .zip: vocals, accompaniment i manifest.json.
  • Wymagane zakresy: stems:write i convert:write.
  • Osobny licznik, niezależny od konwersji, liczony na dzień UTC (nie w kroczącym oknie 24 godzin).
  • Nie myl tego z narzędziem Separacja ścieżek (/stem-tool/*): tam klucz API wymaga konta Premium, z własnymi limitami (GET /stem-tool/capabilities).

Uzyskiwanie klucza API

Załóż darmowe konto Jam Jam, otwórz Ustawienia, Klucze API w aplikacji (mobilnej lub webowej) i utwórz klucz. Zaczyna się od jj_live_ i jest pokazywany tylko raz: skopiuj go od razu. Maksymalnie 5 kluczy na konto, odwoływalnych w każdej chwili.

Błędy

Każdy błąd, na każdej trasie, to obiekt application/problem+json (RFC 9457) ze stabilnym polem code, na którym klient może oprzeć swoją logikę: quota-exhausted, rate-limited, unsupported-pair, not-found... Pełny katalog znajduje się w schemacie OpenAPI (components.schemas.Problem).

Przechowywanie

Przesłane pliki i wygenerowane wyniki są usuwane 24 godziny po utworzeniu zadania. Nic nie jest przechowywane dłużej, w tym zadania zakończone niepowodzeniem. Pobranie wyniku po tym czasie zwraca 410 Gone.

Podziękowania open source

Ta API opiera się na prawdziwych silnikach open source. Używanych uczciwie, wymienionych z nazwy:

Modele i dane

Wykrywanie mówców (Studio): model odcisku głosu WeSpeaker ResNet34-LM, projekt WeNet (github.com/wenet-e2e/wespeaker), wytrenowany na VoxCeleb (VGG, Uniwersytet Oksfordzki), licencja CC BY 4.0 (creativecommons.org/licenses/by/4.0/). Zmodyfikowany przez Jam Jam: wagi przekonwertowane do połowicznej precyzji.