Transkripsi audio
Transkripsikan audio dengan endpoint POST /v1/audio/transcriptions yang kompatibel dengan OpenAI. Model yang didukung, batas ukuran file, contoh curl dan Python, serta API job URL asinkron opsional.
audio yang kompatibel dengan OpenAI
Gunakan bentuk JSON OpenAI untuk sintesis suara. Respons berisi byte audio dan secara default MP3.
curl https://getvibeapi.com/v1/audio/speech \
-H "Authorization: Bearer $GETVIBE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "chatterbox-turbo",
"input": "Hello from GetVibe",
"voice": "default",
"response_format": "mp3",
"speed": 1
}' \
--output speech.mp3Model yang tersedia adalah tts, gemini-tts, gemini-3.8-flash-tts, gemini-3.8-flash-lite-tts, gemini-3.8-flash-tts-lite, chatterbox-tts, kokoro-tts, chatterbox-turbo, dan gpt-4o-mini-tts. response_format (mp3, opus, aac, flac, wav, pcm) dan speed menggunakan format OpenAI; halaman model mencantumkan batas native yang lebih ketat bila ada. gpt-4o-mini-tts menerima 13 suara OpenAI (alloy, ash, ballad, coral, echo, fable, nova, onyx, sage, shimmer, verse, marin, cedar) dan field opsional instructions, yang mengarahkan penyampaian dengan kata-kata sederhana, misalnya "speak calmly and warmly".
Kloning suara
Model voice-clone-tts dapat mengucapkan teks apa pun dengan suara Anda sendiri, termasuk dalam bahasa Rusia. Pertama, buat suara tersebut sekali dari rekaman berdurasi 3–60 detik (wav atau mp3, hingga 10 MB) — ini gratis. consent: true diperlukan: Anda mengonfirmasi bahwa suara tersebut adalah suara Anda sendiri atau bahwa Anda telah mendapatkan persetujuan dari pemiliknya. Hingga 20 suara baru per 24 jam.
curl https://getvibeapi.com/api/media/voices \
-H "Authorization: Bearer $GETVIBE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "My voice",
"consent": true,
"audio_url": "https://example.com/my-voice.wav"
}'Jawabannya membawa voice.id (voice_…). Berikan sebagai opts.voice_id dalam permintaan media biasa; mesin qwen3 (default, kualitas terbaik) atau chatterbox (ekonomis). Harga per 1000 karakter teks, hingga 4000 karakter per permintaan.
Suara Premium — kemiripan terdekat. Tambahkan "engine": "premium" saat membuatnya; rekaman harus 10–60 detik. Pembuatan dikenai biaya $2.00 sekali dan hanya ditagih jika suara berhasil dibuat: tidak ada biaya saat error, dan saldo di bawah harga akan menjawab 402 sebelum rekaman dikirim. Sintesiskan dengan mesin MiniMax: minimax-speech-2.8-hd, minimax-speech-2.6-hd atau minimax-speech-02-hd ($0.125 per 1000 karakter) dan versi Turbo-nya ($0.075); nama lama premium / premium-turbo berarti speech-02. Tepat setelah pembuatan, kami mengucapkan satu kata pendek dengan suara tersebut — MiniMax menghapus suara yang tidak digunakan selama 7 hari. Suara Premium yang dihapus langsung berhenti berfungsi, tetapi layanan sintesis tidak menyediakan penghapusan dan biaya pembuatan tidak dikembalikan.
curl https://getvibeapi.com/api/media/generate \
-H "Authorization: Bearer $GETVIBE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "voice-clone-tts",
"prompt": "Hello! This is my cloned voice.",
"opts": { "voice_id": "voice_Ab12Cd34Ef56Gh78Ij90", "language": "auto" }
}'Sebuah voice hanya dapat digunakan oleh akun Anda. Daftarkan dengan GET /api/media/voices; hapus satu dengan DELETE /api/media/voices/{voice_id} — rekamannya ikut dihapus dari layanan sintesis. Kami tidak menyimpan rekaman itu sendiri.
Suara ElevenLabs. Saat diaktifkan, GET /api/media/voices mencantumkan harganya di bawah pricing.elevenlabs_*. Buat suara tersebut dengan engine: "elevenlabs" dari rekaman 10–60 detik (slot suara terbatas: saat sudah terisi, jawabannya adalah 409 voice_slots_full), lalu sintesiskan dengan elevenlabs-v4 atau elevenlabs-v4-turbo — stability, similarity_boost, speed, seed, language, dan tag audio seperti [laughs] langsung di dalam teks. File hasil kedua adalah JSON subtitle dengan pewaktuan per kata. Harga per 1000 karakter: v4 $0.044, v4 Turbo $0.022 — harga promosi hingga 12 Oktober 2026, lalu $0.16 dan $0.08. Penyimpanan $0.70 per suara per bulan (bulan pertama sudah termasuk; selanjutnya ditagih setiap bulan pada hari pembuatan suara). Jika saldo Anda terlalu rendah, suara tersebut dipertahankan satu bulan lagi dan dihapus hanya jika biayanya masih belum dibayar pada penagihan berikutnya — kami mengirim email lebih dulu. Lihat semua suara Anda dan statusnya di My voices.
Beberapa rekaman. Satu suara ElevenLabs menampung hingga 25 rekaman: saat pembuatan sebagai array samples (masing-masing {"audio_url"} atau {"audio_base64"}, wav/mp3 hingga 10 MB, totalnya hingga 50 MB dan 10–300 detik), dan setelahnya dengan POST /api/media/voices/{voice_id}/samples {"samples": […]}. Menambahkan gratis; biaya penyimpanan tetap satu per suara. Dengan "remove_background_noise": true ElevenLabs menghapus noise latar dari rekaman secara gratis (nonaktif secara default: ini bisa membuat rekaman yang bersih jadi lebih buruk).
transkripsi yang kompatibel dengan OpenAI
Kirim permintaan multipart dengan file dan model. Ukuran file dibatasi 50 MB. Responsnya adalah { text: "..." }.
curl https://getvibeapi.com/v1/audio/transcriptions \
-H "Authorization: Bearer $GETVIBE_API_KEY" \
-F [email protected] \
-F model=whisper-large-v3 \
-F language=en
# → {"text":"..."}Model yang tersedia adalah speech-to-text, whisper-large-v3-turbo, nemotron-asr-multilingual, dan whisper-large-v3. Harga per menit saat ini tercantum dalam katalog model audio. Ukuran file harus antara 1 byte hingga 50 MB.
Stempel waktu dan subtitle
response_format mengikuti OpenAI: json (default, { text }), text (teks biasa), verbose_json (JSON dengan language, duration dan segments[] — id, start, end, text dalam detik), srt dan vtt (subtitle siap pakai). Untuk penanda waktu per kata, kirim timestamp_granularities[]=word dengan verbose_json (kolom words[]: word, start, end); segment dan word dapat digabungkan. Harga tidak bergantung pada format.
# SRT subtitles (or vtt); verbose_json returns JSON with segments[] and words[]
curl https://getvibeapi.com/v1/audio/transcriptions \
-H "Authorization: Bearer $GETVIBE_API_KEY" \
-F [email protected] \
-F model=whisper-large-v3 \
-F response_format=srt
curl https://getvibeapi.com/v1/audio/transcriptions \
-H "Authorization: Bearer $GETVIBE_API_KEY" \
-F [email protected] \
-F model=whisper-large-v3 \
-F response_format=verbose_json \
-F "timestamp_granularities[]=segment" \
-F "timestamp_granularities[]=word"
# → {"task":"transcribe","language":"en","duration":5.9,"text":"...",
# "segments":[{"id":0,"start":0.03,"end":0.71,"text":"Hello!"}, ...],
# "words":[{"word":"Hello!","start":0.03,"end":0.51}, ...]}Stempel waktu berasal dari whisper-large-v3, whisper-large-v3-turbo, nemotron-asr-multilingual, qwen3-asr-1.7b, dan speech-to-text (segmennya dibentuk dari waktu tiap kata). universal-2, voxtral-small-24b-2507, dan nemotron-3-diarization tidak mengembalikan stempel waktu, sehingga verbose_json / srt / vtt ditolak dengan 400 untuk model-model tersebut sebelum biaya apa pun dikenakan.
universal-2 tidak tersedia pada route ini. /api/transcribe yang lebih lama menerima audio_url publik, berjalan secara asinkron, dan diaktifkan oleh operator dengan TRANSCRIBE_ENABLED; jika tidak, akan mengembalikan 503.Transkripsi URL versi lama
Transkripsi audio asinkron dari URL publik. Anda membuat task lalu melakukan polling hasilnya melalui id kami.
Parameter pembuatan
| Parameter | Tipe | Deskripsi |
|---|---|---|
audio_urlreq. | string (URL) | Tautan publik ke file audio. |
language | string | Kode bahasa, mis. ru, en (2-10 karakter). Opsional — terdeteksi otomatis. |
redact_pii | boolean | Redaksi data pribadi. Aktif secara default (kepatuhan 152-FZ); dinonaktifkan hanya dengan redact_pii: false eksplisit. |
Buat dan polling
Pembuatan mengembalikan 202 dengan { id, status: "processing" }. Polling GET /api/transcribe/{id} sampai statusnya success (atau fail); lalu respons berisi text, durationSec, priceRub.
# 1. create a transcription job (audio by public URL)
curl https://getvibeapi.com/api/transcribe \
-H "Authorization: Bearer $GETVIBE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"audio_url": "https://example.com/audio.mp3",
"language": "en",
"redact_pii": true
}'
# → {"id":"...","status":"processing"}