API-dokumentasjon

Lyttbar API-dokumentasjon

Integrer Lyttbars tekst-til-tale-funksjonalitet i dine applikasjoner med vårt enkle og kraftige API. Støtter 11 språk med høyeste kvalitet AI-stemmer.

Kom i gang

Autentisering

  • • API-nøkler genereres i Projects-siden
  • • Bruk header: X-Lyttbar-Key: your-api-key
  • • Registrer domenet ditt for CORS-tilgang

Rate limits

  • • Pro: 700 minutter/måned
  • • Business: Høyere limits
  • • Konfigurerbart per prosjekt

Miljøvariabler & base-URLer

Legg verdiene i .env (eller tilsvarende secrets-håndtering). Disse peker mot produksjonsmiljøet vårt. Dersom du kjører Lyttbar selv, må du også setteTTS_STREAMING_ENABLED=1 for ekte OGG streaming.

# Grunnleggende Lyttbar API-konfig
LYTTBAR_API_KEY=din-hemmelige-nokkel

# Basisendepunkter
LYTTBAR_TTS_URL=https://lyttbar.no/api/tts
LYTTBAR_STREAM_URL=https://lyttbar.no/api/tts/stream
LYTTBAR_VOICE_URL=https://lyttbar.no/api/voices
LYTTBAR_LANGUAGES_URL=https://lyttbar.no/api/languages

# Streaming toggles (kun nødvendig dersom du kjører en egen instans av Lyttbar)
TTS_STREAMING_ENABLED=1
  • API-nøkkel: lagres sikkert og brukes i X-Lyttbar-Key.
  • Faste URL-er: /api/voices og /api/languages gir oppdatert liste over stemmer og språk.
  • Streaming-header: sjekk X-TTS-Fallback-Batch i responsen for å bekrefte om ekte streaming ble brukt.

Endepunkter

MetodePathFormål
POST/api/ttsGenerer lyd fra tekst (enkelt segment)
GET/api/ttsGenerer lyd via GET-parametere
GET/api/tts/streamStreaming TTS (real-time audio)
POST/api/tts/stitchKombiner flere segmenter til én fil
POST/api/translate-ttsOversett tekst og generer TTS
GET/api/translate-ttsHent støttede språk og stemmer
POST/api/read-urlLes URL og generer lydfil
GET/api/voicesListe alle tilgjengelige stemmer
GET/api/languagesListe støttede språk
GET/api/healthSjekk API-tilgjengelighet

Alle kall returnerer JSON. Lydfiler leveres som signerte URL-er (gyldig i 60 minutter). Streaming TTS returnerer direkte audio-data.

Parametre

Grunnleggende

  • payload - tekst for syntese
  • voice - stemme-ID (f.eks. "nb-NO-Chirp3-HD-Leda")
  • format - "mp3", "wav", "ogg"
  • speed - hastighet (0.5-2.0)

Avanserte

  • inputType - "text", "html", "url"
  • autoformat - "minimal", "standard", "maximum"
  • returnVtt - få VTT-fil tilbake
  • returnJson - få JSON-respons

Eksempelkode

Bruk eksemplene som utgangspunkt. Husk å lagre API-nøkler sikkert (ikke i klartekst i kode).

cURL

curl -X POST https://lyttbar.no/api/tts   -H "Content-Type: application/json"   -H "X-Lyttbar-Key: your-api-key"   -d '{
    "payload": "Hei, dette er en test av Lyttbar API.",
    "voice": "nb-NO-Chirp3-HD-Leda",
    "format": "mp3",
    "speed": 1.0
  }'

Node.js

async function generateTTS() {
  const res = await fetch("https://lyttbar.no/api/tts", {
    method: "POST",
    headers: {
      "X-Lyttbar-Key": process.env.LYTTBAR_API_KEY,
      "Content-Type": "application/json",
    },
    body: JSON.stringify({
      payload: "Dette er en test av Lyttbar API.",
      voice: "nb-NO-Chirp3-HD-Puck",
      format: "mp3",
      speed: 1.0,
      inputType: "text"
    }),
  });

  if (!res.ok) {
    throw new Error(await res.text());
  }

  const data = await res.json();
  console.log(data.audioUrl);
}

generateTTS();

Python

import requests

API_KEY = "..."  # lagres sikkert

# Hent tilgjengelige stemmer
voices = requests.get(
    "https://lyttbar.no/api/voices",
    headers={"X-Lyttbar-Key": API_KEY}
).json()

# Generer TTS
response = requests.post(
    "https://lyttbar.no/api/tts",
    headers={"X-Lyttbar-Key": API_KEY},
    json={
        "payload": "Dette er en test av Lyttbar API.",
        "voice": "nb-NO-Chirp3-HD-Leda",
        "format": "mp3",
        "speed": 1.0
    },
    timeout=30,
)
response.raise_for_status()
result = response.json()
print(f"Audio URL: {result['audioUrl']}")

Streaming TTS (JavaScript)

// Streaming TTS eksempel
const response = await fetch(
  "https://lyttbar.no/api/tts/stream?text=Hei%20dette%20er%20en%20test&voice=nb-NO-Chirp3-HD-Leda&rate=1.0",
  {
    headers: {
      "X-Lyttbar-Key": "your-api-key"
    }
  }
);

const audioBlob = await response.blob();
const audioUrl = URL.createObjectURL(audioBlob);
const audio = new Audio(audioUrl);
audio.play();

Støttede språk og stemmer

Lyttbar støtter 11 språk med Chirp3-HD stemmer (høyeste kvalitet).

Norske stemmer

  • nb-NO-Chirp3-HD-Leda (kvinnelig)
  • nb-NO-Chirp3-HD-Puck (mannlig)
  • nb-NO-Chirp3-HD-Kore (kvinnelig)
  • nb-NO-Chirp3-HD-Orus (mannlig)

Flerspråklige stemmer

  • Engelsk: en-US-Chirp3-HD-Kore, en-US-Chirp3-HD-Puck
  • Tysk: de-DE-Chirp3-HD-Kore, de-DE-Chirp3-HD-Puck
  • Spansk: es-ES-Chirp3-HD-Kore, es-ES-Chirp3-HD-Puck
  • Fransk: fr-FR-Chirp3-HD-Kore, fr-FR-Chirp3-HD-Puck
  • Arabisk: ar-XA-Chirp3-HD-Leda, ar-XA-Chirp3-HD-Orus
  • Polsk: pl-PL-Chirp3-HD-Kore, pl-PL-Chirp3-HD-Puck
  • Ukrainsk: uk-UA-Chirp3-HD-Kore, uk-UA-Chirp3-HD-Orus
  • Russisk: ru-RU-Chirp3-HD-Leda, ru-RU-Chirp3-HD-Orus
  • Hindi: hi-IN-Chirp3-HD-Kore, hi-IN-Chirp3-HD-Puck
  • Tyrkisk: tr-TR-Chirp3-HD-Kore, tr-TR-Chirp3-HD-Puck

💡 Tips: Bruk GET /api/voices for å hente oppdatert stemmeliste med dialekt-informasjon.

Feilkoder og håndtering

Anbefalt praksis er å logge alle feil med referanse-ID og implementere retry-logikk.

KodeBeskrivelse
400Bad Request – valideringsfeil, manglende felt
401Unauthorized – feil nøkkel eller token
403Forbidden – IP-begrensning eller manglende scope
404Not Found – jobId finnes ikke
409Conflict – jobben finnes allerede
429Too Many Requests – rate limit truffet
500Internal Server Error
503Service Unavailable – midlertidig nedetid

Kontakt support ved gjentatte 5xx-feil. Sjekk status på kontakt-siden.

Kom i gang med Lyttbar API

  1. Opprett API-nøkkel i Projects-siden
  2. Registrer domenet ditt for CORS-tilgang
  3. Test API-kall med eksempelkode
  4. Implementer feilhåndtering og retry-logikk
  5. Sett opp rate limiting i din applikasjon
  6. Planlegg nøkkelrotasjon (anbefalt årlig)
  7. Overvåk API-forbruk og kvoter
  8. Test alle endepunkter du planlegger å bruke

Trenger du hjelp? Kontakt support eller se dokumentasjonen.