Api.Airforce
API REFERENCE

Audio

Teks-ke-ucapan, ucapan-ke-teks, musik, efek suara, perubahan suara, dubbing, dan kloning suara — satu kunci API, setiap penyedia.

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

Teks-ke-ucapan

Sintesis pidato dari teks. Mengembalikan byte audio mentah dengan Tipe Konten yang cocok (misalnya audio/mpeg). Format PCM dan µ-law menyertakan header WAV sehingga dapat diputar di browser apa pun.

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

model TTS

· 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.

Contoh

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}
  }'

Daftar suara

Mengembalikan setiap suara yang dapat Anda sampaikan sebagai parameter "suara" pada panggilan TTS / sulih suara / buku audio. Suara kloning juga dikembalikan ke sini setelah statusnya aktif.

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

Struktur respons

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.

Generasi musik

Hasilkan trek musik lengkap dari prompt teks. Mengembalikan audio biner.

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
  }'

Efek suara

SFX pendek dari prompt teks. Bentuknya sama seperti musik, hanya saja durasinya lebih pendek.

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
  }'

Transkripsi (ucapan-ke-teks)

Unggahan multi bagian dari file audio. Mengembalikan teks yang ditranskripsi.

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

Model transkripsi

· 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"}
  ]
}

Isolasi audio

Hapus kebisingan latar belakang dari klip sambil mempertahankan suara latar depan. Unggahan multibagian, mengembalikan 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

Pengubah suara (ucapan-ke-ucapan)

Ambil masukan ucapan dan render ulang dengan suara yang berbeda dengan tetap menjaga waktu dan infleksi.

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

Sulih suara

Sulih suara multi-bahasa asinkron. Segera mengembalikan ID tugas; jajak pendapat untuk status, lalu ambil audio yang di-dubbing per bahasa target.

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

Kloning suara

Kloning suara dari sampel audio pendek dan gunakan kembali di setiap titik akhir ucapan. Kloning suara memerlukan persetujuan eksplisit — ambil teks persetujuan saat ini, hash, dan kirimkan hash dengan sampel Anda.

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.


Catatan

  • 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.