Api.Airforce
API REFERENCE

Audio

Tekst-naar-spraak, spraak-naar-tekst, muziek, geluidseffecten, stemverandering, nasynchronisatie en stemklonen: één API-sleutel, elke provider.

Endpoints in this section: /v1/audio/speech, /music, /sound-effects, /transcriptions, /audio-isolation, /voice-changer, /dubbing, /voices, plus /v1/voices/* for cloning.

Tekst-naar-spraak

Synthetiseer spraak uit tekst. Retourneert onbewerkte audiobytes met het overeenkomende inhoudstype (bijvoorbeeld audio/mpeg). PCM- en µ-law-formaten bevatten een WAV-header, zodat ze in elke browser kunnen worden afgespeeld.

POSThttps://api.airforce/v1/audio/speech

TTS-modellen

· live
ParameterTypeRequiredDescription
modelstringRequiredTTS model ID. See /v1/models for IDs with input_modalities containing "text" and output_modalities containing "audio".
inputstringRequiredText to synthesise. Long inputs are chunked automatically.
voicestringRequiredVoice ID. Use GET /v1/audio/voices to list options. Cloned voices appear here too.
response_formatstringOptional"mp3" (default), "mp3_44100_128", "mp3_44100_192", "pcm_22050", "pcm_24000", "pcm_44100", "ulaw_8000".
speedfloatOptional0.25 – 4.0. OpenAI-compatible. Some upstream providers ignore this.
voice_settingsobjectOptionalElevenLabs-shape: { stability: 0–1, similarity_boost: 0–1, style: 0–1, use_speaker_boost: bool }.
language_codestringOptionalISO-639-1 hint, e.g. "de", "en", "ja". Improves prosody for multilingual models.
seedintegerOptionalReproducibility seed where supported.

Voorbeeld

curl https://api.airforce/v1/audio/speech \
  -H "Authorization: Bearer sk-air-YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  --output speech.mp3 \
  -d '{
    "model": "elevenlabs-multilingual-v2",
    "input": "Willkommen bei Airforce.",
    "voice": "21m00Tcm4TlvDq8ikWAM",
    "response_format": "mp3_44100_128",
    "voice_settings": {"stability": 0.6, "similarity_boost": 0.8}
  }'

Maak een lijst van stemmen

Retourneert elke stem die u kunt doorgeven als de parameter 'stem' bij TTS-/voice-over-/audioboekoproepen. Gekloonde stemmen worden hier ook teruggestuurd zodra hun status actief is.

GEThttps://api.airforce/v1/audio/voices
curl https://api.airforce/v1/audio/voices \
  -H "Authorization: Bearer sk-air-YOUR_API_KEY"

Antwoord-structuur

ParameterTypeRequiredDescription
voices[]arrayOptionalList of voice descriptors.
voices[].idstringOptionalProvider-native voice identifier. Pass this as "voice".
voices[].namestringOptionalHuman-readable name.
voices[].categorystringOptional"premade" | "cloned" | "professional".
voices[].preview_urlstringOptionalShort audio sample, when the upstream exposes one.
voices[].labelsobjectOptionalFree-form metadata: gender, language, accent, age, use case.

Muziek generatie

Genereer volledige muziektracks via een tekstprompt. Retourneert binaire audio.

POSThttps://api.airforce/v1/audio/music
ParameterTypeRequiredDescription
modelstringRequiredMusic model ID, e.g. "music-v1".
promptstringRequiredStyle / mood / structure description.
duration_secondsintegerOptionalTrack length. Range depends on the model (typically 15–120 s).
response_formatstringOptional"mp3" (default) or provider-native.
instrumentalbooleanOptionalWhen true, suppresses vocals.
stylestringOptionalOptional genre tag list, e.g. "EDM, bass, dark".
curl https://api.airforce/v1/audio/music \
  -H "Authorization: Bearer sk-air-YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  --output track.mp3 \
  -d '{
    "model": "music-v1",
    "prompt": "Lofi hip-hop beat with soft piano and rain",
    "duration_seconds": 60,
    "instrumental": true
  }'

Geluidseffecten

Korte SFX vanaf een tekstprompt. Dezelfde vorm als muziek, alleen een kortere duur.

POSThttps://api.airforce/v1/audio/sound-effects
ParameterTypeRequiredDescription
modelstringRequiredSFX model ID.
promptstringRequiredEffect description, e.g. "thunder rumble fading into rain".
duration_secondsintegerOptionalLength, typically 0.5–22 s.
response_formatstringOptional"mp3" (default).
curl https://api.airforce/v1/audio/sound-effects \
  -H "Authorization: Bearer sk-air-YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  --output thunder.mp3 \
  -d '{
    "model": "sfx-v1",
    "prompt": "Distant thunder rolling, then rain",
    "duration_seconds": 8
  }'

Transcripties (spraak-naar-tekst)

Meerdelige upload van een audiobestand. Retourneert de getranscribeerde tekst.

POSThttps://api.airforce/v1/audio/transcriptions

Transcriptiemodellen

· live
ParameterTypeRequiredDescription
modelstringRequiredTranscription model ID, e.g. "whisper-1".
filebinaryRequiredAudio file. Supports mp3, wav, m4a, flac, ogg, webm.
languagestringOptionalISO-639-1 language hint.
promptstringOptionalOptional bias prompt to steer vocabulary (jargon, names).
response_formatstringOptional"json" (default), "text", "srt", "vtt", "verbose_json".
temperaturefloatOptional0–1. Higher allows more creative interpretation of unclear audio.
curl https://api.airforce/v1/audio/transcriptions \
  -H "Authorization: Bearer sk-air-YOUR_API_KEY" \
  -F "[email protected]" \
  -F "model=whisper-1" \
  -F "language=de" \
  -F "response_format=verbose_json"

Response (verbose_json)

{
  "text": "Willkommen zum Meeting...",
  "language": "de",
  "duration": 412.5,
  "segments": [
    {"id": 0, "start": 0.0, "end": 4.2, "text": "Willkommen zum Meeting", "speaker": "S1"},
    {"id": 1, "start": 4.2, "end": 9.8, "text": "...", "speaker": "S2"}
  ]
}

Audio-isolatie

Verwijder achtergrondgeluiden uit een clip terwijl de voorgrondstem behouden blijft. Uploaden uit meerdere delen, retourneert audio.

POSThttps://api.airforce/v1/audio/audio-isolation
ParameterTypeRequiredDescription
modelstringRequiredIsolation model ID.
filebinaryRequiredInput audio.
curl https://api.airforce/v1/audio/audio-isolation \
  -H "Authorization: Bearer sk-air-YOUR_API_KEY" \
  -F "model=isolation-v1" \
  -F "[email protected]" \
  --output clean.mp3

Stemwisselaar (spraak-naar-spraak)

Neem invoerspraak en geef deze opnieuw weer met een andere stem, waarbij de timing en verbuiging behouden blijven.

POSThttps://api.airforce/v1/audio/voice-changer
ParameterTypeRequiredDescription
modelstringRequiredVoice-change model ID.
voicestringRequiredTarget voice ID. Same catalog as TTS.
filebinaryRequiredInput audio.
voice_settingsobjectOptionalOptional ElevenLabs-shape settings (stability, similarity_boost, …).
curl https://api.airforce/v1/audio/voice-changer \
  -H "Authorization: Bearer sk-air-YOUR_API_KEY" \
  -F "model=voice-changer-v1" \
  -F "voice=21m00Tcm4TlvDq8ikWAM" \
  -F "[email protected]" \
  --output transformed.mp3

Nasynchronisatie

Asynchrone nasynchronisatie in meerdere talen. Retourneert onmiddellijk een taak-ID; peilen naar de status en ophalen van de nagesynchroniseerde audio per doeltaal.

1. Create job

POSThttps://api.airforce/v1/audio/dubbing
ParameterTypeRequiredDescription
modelstringRequiredDubbing model ID.
filebinaryRequiredSource audio (mp3, wav, m4a, mp4 video extracted automatically).
target_langstringRequiredTarget language code, ISO-639-1. Pass multiple via repeated form fields for multi-language output.
source_langstringOptionalSource language. Auto-detected when omitted.
num_speakersintegerOptionalHint for diarization. Auto when omitted.
watermarkbooleanOptionalAdd an audible watermark to the output.
curl https://api.airforce/v1/audio/dubbing \
  -H "Authorization: Bearer sk-air-YOUR_API_KEY" \
  -F "model=dubbing-v1" \
  -F "[email protected]" \
  -F "target_lang=de" \
  -F "target_lang=es" \
  -F "source_lang=en"
{
  "task_id": "dub_01HXY...",
  "status": "queued"
}

2. Poll status

GEThttps://api.airforce/v1/audio/dubbing/:task_id
{
  "task_id": "dub_01HXY...",
  "status": "completed",
  "progress": 100,
  "available_languages": ["de", "es"]
}

3. Download per language

GEThttps://api.airforce/v1/audio/dubbing/:task_id/audio/:lang
curl https://api.airforce/v1/audio/dubbing/dub_01HXY.../audio/de \
  -H "Authorization: Bearer sk-air-YOUR_API_KEY" \
  --output german.mp3

Stemklonen

Kloon een stem uit korte audiofragmenten en hergebruik deze op elk spraakeindpunt. Voor het klonen van stemmen is expliciete toestemming vereist. Haal de huidige toestemmingstekst op, hash deze en verzend de hash met uw voorbeelden.

1. Fetch consent text

GEThttps://api.airforce/v1/voices/consent-text
{
  "text": "I confirm that the voice samples I am uploading are either my own voice or a voice I have explicit permission to clone…",
  "hash": "9f4b0c8d2e…"
}

2. Create the clone

POSThttps://api.airforce/v1/voices/clone
ParameterTypeRequiredDescription
namestringRequiredPublic voice name shown in the library.
descriptionstringOptionalOptional free-text description.
consent_hashstringRequiredSHA-256 of the consent paragraph. Fetch the current text via GET /v1/voices/consent-text and pass its hash field.
filesbinaryRequired1–25 audio samples. Repeat the form field per file. Total ≤ 200 MB. 30 s – 3 min per clip works best.
curl https://api.airforce/v1/voices/clone \
  -H "Authorization: Bearer sk-air-YOUR_API_KEY" \
  -F "name=My voice" \
  -F "description=Calm, conversational" \
  -F "consent_hash=9f4b0c8d2e..." \
  -F "[email protected]" \
  -F "[email protected]"
{
  "provider_voice_id": "voice_01HXY...",
  "name": "My voice",
  "description": "Calm, conversational",
  "created_at": "2026-05-06T22:30:00Z",
  "status": "active",
  "provider": "elevenlabs"
}

3. List your library

GEThttps://api.airforce/v1/voices/library
curl https://api.airforce/v1/voices/library \
  -H "Authorization: Bearer sk-air-YOUR_API_KEY"
ParameterTypeRequiredDescription
voices[].provider_voice_idstringOptionalPass as "voice" on TTS / voice-changer endpoints.
voices[].statusstringOptional"active" | "errored" | "deleting".
voices[].providerstringOptionalUpstream that hosts the clone.
voices[].last_errorstringOptionalSet when status is "errored".

4. Update / delete

PATCHhttps://api.airforce/v1/voices/clone/:id
DELETEhttps://api.airforce/v1/voices/clone/:id

PATCH accepts name and description in a JSON body. DELETE removes the voice both locally and at the upstream provider.


Opmerkingen

  • Audio responses are returned as raw bytes with the right Content-Type. PCM / µ-law formats are wrapped in a minimal WAV header so they're browser-playable as-is.
  • Multipart endpoints (transcriptions, isolation, voice-changer, dubbing, cloning) accept up to 200 MB per request.
  • Voice IDs work across providers: a cloned ElevenLabs voice can be passed straight to /v1/audio/voice-changer.
  • Cost is metered per character (TTS), per second (music / SFX / dubbing / changer), or per audio minute (transcription). Check X-Cost-Cents on the response.