Api.Airforce
API REFERENCE

Âm thanh

Chuyển văn bản thành giọng nói, chuyển giọng nói thành văn bản, âm nhạc, hiệu ứng âm thanh, thay đổi giọng nói, lồng tiếng và sao chép giọng nói — một khóa API cho mọi nhà cung cấp.

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

Chuyển văn bản thành giọng nói

Tổng hợp lời nói từ văn bản. Trả về byte âm thanh thô với Loại nội dung phù hợp (ví dụ: âm thanh/mpeg). Các định dạng PCM và µ-law bao gồm tiêu đề WAV để chúng có thể phát trên mọi trình duyệt.

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

mô hình 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.

Ví dụ

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

Liệt kê giọng nói

Trả về mọi giọng nói bạn có thể chuyển dưới dạng tham số "giọng nói" trong các cuộc gọi TTS / voice-over / audiobook. Giọng nói nhân bản cũng được trả lại ở đây khi trạng thái của chúng được kích hoạt.

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

Cấu trúc phản hồi

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.

Thế hệ âm nhạc

Tạo các bản nhạc đầy đủ từ lời nhắc văn bản. Trả về âm thanh nhị phân.

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

Hiệu ứng âm thanh

SFX ngắn từ lời nhắc văn bản. Hình dạng tương tự như âm nhạc, chỉ có thời lượng ngắn hơn.

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

Phiên âm (chuyển giọng nói thành văn bản)

Tải lên nhiều phần của một tập tin âm thanh. Trả về văn bản được phiên âm.

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

Mô hình phiên mã

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

Cách ly âm thanh

Loại bỏ tiếng ồn nền khỏi clip trong khi vẫn giữ được giọng nói ở tiền cảnh. Tải lên nhiều phần, trả về âm thanh.

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

Bộ thay đổi giọng nói (chuyển giọng nói thành giọng nói)

Lấy giọng nói đầu vào và kết xuất lại bằng giọng khác trong khi vẫn giữ nguyên thời gian và biến điệu.

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

Lồng tiếng

Lồng tiếng đa ngôn ngữ không đồng bộ. Trả về ID nhiệm vụ ngay lập tức; thăm dò trạng thái, sau đó tìm nạp âm thanh lồng tiếng cho mỗi ngôn ngữ đích.

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

Nhân bản giọng nói

Sao chép giọng nói từ các mẫu âm thanh ngắn và tái sử dụng nó trên mọi điểm cuối giọng nói. Nhân bản giọng nói yêu cầu có sự đồng ý rõ ràng — tìm nạp văn bản chấp thuận hiện tại, băm nó và gửi hàm băm cùng với mẫu của bạn.

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.


Ghi chú

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