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/voicesog/api/languagesgir oppdatert liste over stemmer og språk. - • Streaming-header: sjekk
X-TTS-Fallback-Batchi responsen for å bekrefte om ekte streaming ble brukt.
Endepunkter
| Metode | Path | Formål |
|---|---|---|
| POST | /api/tts | Generer lyd fra tekst (enkelt segment) |
| GET | /api/tts | Generer lyd via GET-parametere |
| GET | /api/tts/stream | Streaming TTS (real-time audio) |
| POST | /api/tts/stitch | Kombiner flere segmenter til én fil |
| POST | /api/translate-tts | Oversett tekst og generer TTS |
| GET | /api/translate-tts | Hent støttede språk og stemmer |
| POST | /api/read-url | Les URL og generer lydfil |
| GET | /api/voices | Liste alle tilgjengelige stemmer |
| GET | /api/languages | Liste støttede språk |
| GET | /api/health | Sjekk 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 syntesevoice- 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 tilbakereturnJson- 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.
| Kode | Beskrivelse |
|---|---|
| 400 | Bad Request – valideringsfeil, manglende felt |
| 401 | Unauthorized – feil nøkkel eller token |
| 403 | Forbidden – IP-begrensning eller manglende scope |
| 404 | Not Found – jobId finnes ikke |
| 409 | Conflict – jobben finnes allerede |
| 429 | Too Many Requests – rate limit truffet |
| 500 | Internal Server Error |
| 503 | Service Unavailable – midlertidig nedetid |
Kontakt support ved gjentatte 5xx-feil. Sjekk status på kontakt-siden.
Kom i gang med Lyttbar API
- Opprett API-nøkkel i Projects-siden
- Registrer domenet ditt for CORS-tilgang
- Test API-kall med eksempelkode
- Implementer feilhåndtering og retry-logikk
- Sett opp rate limiting i din applikasjon
- Planlegg nøkkelrotasjon (anbefalt årlig)
- Overvåk API-forbruk og kvoter
- Test alle endepunkter du planlegger å bruke
Trenger du hjelp? Kontakt support eller se dokumentasjonen.