OpenAI Realtime API’si ile sesli asistan uygulamaları oluşturmak yeni bir tasarım alanı açar: Modelin duyduğu ses, ham mikrofonunuz değil, yerel bir ses değiştireci aracılığıyla işlenen bir persona sesi olsaydı ne olurdu? Bu tek değişiklik, persona kilitli asistanları, yerel aksan giriş ile dil öğrenme öğretmenlerini, markalı sesli müşteri destek ajanlarını ve ne olursa olsun tutarlı sounding olan AI ajanlarını açar.
Bu kılavuz tam boru hattını kapsar — ses yakalama, sanal mikrofon yönlendirmesi, WebRTC el sıkışması, gecikme süresi bütçesi ve üretimde karşılaşacağınız pratik tradeofflar.
Özet
| Aşama | Gecikme süresi aralığı | Notlar |
|---|---|---|
| DSP ses efekti | 10-20 ms | Ton, eşitleme, reverb — CPU’da çalışır |
| AI ses klonlama | 50-300 ms | Modele ve donanıma bağlı |
| Ağ (istemci→API) | 15-40 ms | WebRTC UDP, bölgesel son nokta |
| Realtime API çıkarımı | 300-800 ms | Model + TTS oluşturması |
| Ağ (API→istemci) | 15-40 ms | İlk jeton akışı |
| Toplam ileri-geri | 0,5–1,5 s | Çoğu asistan UX için kabul edilebilir |
Derin dalıştan önce mimari diyagrama mı ihtiyacınız var? Mimari bölümüne gidin.
Giriş Hattı Neden Ses Değiştirici Ekleyin
Realtime API çift yönlü ses+metin kanalıdır. Ses gönderirsiniz; model transkripsiyon, sebep ve ses akışı sağlar. Giriş sesi sadece PCM’dir — API “gerçek vs. işlenmiş”in bir kavramı yoktur. Bu, istediğiniz herhangi bir ses kaynağını enjekte edebileceğiniz anlamına gelir.
API’ye ulaşmadan önce girişi işlemeniz gereken nedenler:
Persona tutarlılığı. Beş farklı destek temsilcisi çağrıları işliyorsa, doğal sesler farklılık gösterir. Hepsini aynı ses profili aracılığıyla çalıştırmak, modelin “görmesi” için tutarlı bir marka sesi oluşturur (ve iç günlükler eşleşebilir). Bu çıkış TTS sesinden ayrıdır — operatörden modelin ne duyduğunu şekillendiriyorsunuz, bu tur zamanlamayı ve inceden inceye modelin ton yansıtmasını etkiler.
Dil öğrenme uygulamaları. İspanyolca uygulaması yapan bir öğrenci, ses değiştiriciyi, ses Realtime API’ye ulaşmadan önce aksanını nötr LATAM profiline düzleştirmek için ayarlayabilir. Model daha temiz hedef dil fonemleri alır, ASR doğruluğu iyileşir ve öğrenci ağır vurgulu giriş yerine yerel aksanıyla giriş yapılan geribildirim alır.
Gizlilik ve anonimleştirme. Bir kurumsal dağıtımda, operatörler gerçek seslerinin API günlüklerinde depolanmasını istemeyebilir. Ses işleme API çağrısından önce, depolanan ses dönüştürülür, konuşmacının biyometrik sesi değil.
AI ajan boru hatları. Otomasyonlu ajanlar, modelin belirli bir rolle ilişkilendirdiği tutarlı bir “ses parmak izi” verilebilir. Çok aracılı orkestrasyonda, farklı ajanlar aynı donanımda çalışsa bile akustik olarak farklı sesler olabilir.
Ses Hattı Nasıl Çalışır
Ses değiştirici olmadan standart yol:
Mikrofon → İşletim sistemi ses alt sistemi → Tarayıcı/Electron getUserMedia → WebRTC parçası → Realtime API
Giriş aşamasında ses değiştirici ile:
Mikrofon → Ses Değiştirici → Sanal mikrofon çıkışı → Tarayıcı/Electron getUserMedia → WebRTC parçası → Realtime API
Anahtar sanal mikrofon cihazıdır. Windows’ta, düşük gecikme süreli ses yakalama uyumlu sanal ses cihazı, fiziksel mikrofonlar yanında işletim sistemi cihaz listesinde görünür. navigator.mediaDevices.getUserMedia({ audio: { deviceId: virtualMicId } })’yi çağırdığınızda, işlenen sesi taşıyan bir MediaStreamTrack alırsınız. WebRTC bağlantısı o parçayı tüketir — OpenAI Realtime API asla bir sanal cihazdan geldiğini bilmez.
VoxBooster tam olarak bunu sunuyor: herhangi bir tarayıcı veya Electron uygulamasında standart giriş cihazı olarak görünen düşük gecikme süreli ses yakalama sanal mikrofonu. Alt 300ms AI ses klonlaması ve alt 20ms DSP efektleri bu sanal çıkışına yazılır, böylece WebRTC oturumunu yeniden bağlamadan çalışma zamanında ikisi arasında geçebilirsiniz.
Mimari Diyagram
┌─────────────────────────────────────────────────────────┐
│ Windows 10/11 │
│ │
│ Fiziksel mikrofon ──► Ses Değiştirici ──► Sanal mikrofon cihazı │
│ (10-300 ms) (düşük gecikme süreli ses yakalama) │
└─────────────────────────────┬───────────────────────────┘
│ getUserMedia(deviceId)
▼
┌─────────────────────────────────────────────────────────┐
│ Tarayıcı / Electron Uygulaması │
│ │
│ MediaStream ──► RTCPeerConnection │
│ WebRTC teklif/cevap │
│ ICE + DTLS-SRTP │
└─────────────────────────────┬───────────────────────────┘
│ UDP (SRTP)
▼
┌─────────────────────────────────────────────────────────┐
│ OpenAI Realtime API │
│ │
│ VAD → Transkripsiyon → Model çıkarımı → TTS çıkışı │
│ (WebRTC veya WebSocket aktarımı) │
└─────────────────────────────────────────────────────────┘
Realtime API hem WebRTC (tarayıcı uygulamaları için tercih, jitter ve NAT’ı otomatik işler) hem de WebSocket (PCM arabelleğini doğrudan kontrol ettiğiniz sunucu tarafı Node.js boru hatları için tercih) destekler.
WebRTC Bağlantı Ayarlanması
OpenAI Realtime API WebRTC yolu geçici bir belirteci gerektirir. Tipik akış:
- Arka ucu
POST /v1/realtime/sessions’i API anahtarınız ile çağırır ve kısa ömürlü istemci parolasını döndürür. - Ön uç o parolayı OpenAI’nin TURN/STUN altyapısı ile
RTCPeerConnectionoluşturmak için kullanır. - Sanal mikrofonun
MediaStreamTrack’ını eş bağlantısına eklersiniz. - Bağlantı işlenen ses sesini modele taşır.
En az JavaScript parçacığı:
// 1. Arka uçtan geçici belirteci al
const { client_secret } = await fetch('/api/realtime-token').then(r => r.json());
// 2. Cihazları numaralandır ve sanal mikrofon bul
const devices = await navigator.mediaDevices.enumerateDevices();
const virtualMic = devices.find(d => d.kind === 'audioinput' && d.label.includes('VoxBooster'));
// 3. İşlenen ses yakala
const stream = await navigator.mediaDevices.getUserMedia({
audio: { deviceId: virtualMic.deviceId, echoCancellation: false, noiseSuppression: false }
});
// 4. WebRTC bağlantı oluştur
const pc = new RTCPeerConnection();
pc.addTrack(stream.getAudioTracks()[0]);
// 5. Realtime API'ye bağlan
const offer = await pc.createOffer();
await pc.setLocalDescription(offer);
const sdpResponse = await fetch('https://api.openai.com/v1/realtime', {
method: 'POST',
headers: {
'Authorization': `Bearer ${client_secret.value}`,
'Content-Type': 'application/sdp'
},
body: offer.sdp
});
await pc.setRemoteDescription({ type: 'answer', sdp: await sdpResponse.text() });
Not: Ses değiştirici zaten işliyorken getUserMedia kısıtlamalarında echoCancellation ve noiseSuppression’ı devre dışı bırakın. İşlenen sesin üstüne tarayıcı seviyesi gürültü bastırmanın yığılması çift işleme eserlerini tanıtır.
Derinlemesine Gecikme Süresi Bütçesi
0,5–1,5 saniye aralığı bir planlama zarfıdır. Bunu sıkılaştırma:
Ses işleme aşaması (10-300 ms). DSP efektleri (ton, eşitleme, chorus, reverb) 10-20 ms’de gerçek zamanlı olarak işler. AI ses klonlaması bir lookahead penceresi gerektirir — tipik olarak ilk jeton çıkışı için 50-150 ms — model boyutu ve GPU kullanılabilirliği ile ölçeklenir. Ayrı bir GPU olmayan bir makinede, AI klonlaması için 150-300 ms bekleyin. Orta düzey oyun GPU’su üzerinde, aynı model 50-80 ms’de çalışır.
API’ye ağ (15-40 ms). WebRTC UDP, ses için WebSocket TCP’den daha hızlıdır. Kullanıcılarınıza en yakın bölgesel API son noktasını kullanın. OpenAI otomatik olarak en yakın veri merkezine yönlendirir, ancak arka uç aracılığıyla proxy yapıyorsanız, arka ucunuzu API son noktasının yakınına yerleştirin.
Realtime API çıkarımı (300-800 ms). Bu baskın terimdir ve kullanıcı tarafından kontrol edilemez. gpt-4o-realtime-preview daha büyük modellerden daha hızlı çalışır. Kısa max_response_output_tokens ayarlanması ilk ses jetonu için beklemeyi azaltır. turn_detection: { type: 'server_vad' } kullanımı ayarlanmış threshold ile yanlış tur tamamlamalarını engeller.
Akış çıkışı (15-40 ms). API oluşturuldukça ses parçalarını akışa alır. İlk ses parçası tipik olarak tur tamamlama tespitinden 300-500 ms içinde gelir. Çıkışa da ses dönüşümü uyguluyorsanız, bu aşama için 10-50 ms ekleyin.
Kullanım Durumları ve Persona Tablosu
| Kullanım Durumu | Giriş ses profili | Neden önemli |
|---|---|---|
| Markalı müşteri destek botu | Nötr profesyonel ses | Operatördan bağımsız olarak tutarlı marka sesi |
| Dil öğrenme öğretmeni | Hedef dil aksanı düzleştirme | Öğrenci çıkışında daha iyi ASR |
| Oyun AI yardımcısı | Fantezi/karakter sesi | Sürüklenme; yardımcı oyuncudan farklı ses |
| Kurumsal AI ajan | Rol atanmış ses parmak izi | Çok ajanın hattı, denetim farklılaştırması |
| Gizlilik koruyucu operatör | Anonim ses | Günlüğe kaydedilen seste biyometrik koruma |
| Erişilebilirlik asistanı | Normalleştirilmiş konuşma netliği | Daha temiz giriş, dysarthric konuşma için ASR’yi iyileştirir |
Ses Aktivitesi Algılanmasının İşlenişi
Realtime API’nin VAD, konuşmacının turununun ne zaman bittiğini ve model çıkarımını tetiklediğini belirler. İşlenen ses ile birkaç sorun ortaya çıkabilir:
Reverb kuyruk yanlış pozitifleri. Ağır reverb, konuşmacı durduğunda ses zarfını uzatır. VAD bunu devam eden konuşma olarak yorumlayabilir ve tur tespitini geciktirebilir. Çözüm: reverb zayıflatma süresini azaltın veya VAD yapılandırmasına küçük silence_duration_ms dolgu ekleyin.
Ton efektleri ve enerji eşiği. Aşırı ton kaymaları, VAD’nin enerji modelinin eğitilmediği frekans bantlarına enerji kaydırır. VAD konuşma başlangıcını kaçırırsa, turn_detection yapılandırmasında threshold parametresini düşürün.
AI klonlama lookahead ve jitter. Ses klonlama modeli değişken gecikme (jitter) tanıtırsa, ses akışında düzensiz paket zamanlaması vardır. Bu, WebRTC yolunda jitter arabellek taşmasına neden olabilir. Gönderme tarafında 50 ms jitter arabelleği ekleyerek veya PCM yazma hızını kesin olarak kontrol ettiğiniz WebSocket aktarımını kullanarak azaltın.
Whisper temelli yedek test için — işlenen sesin tam Realtime API entegrasyonunu dağıtmadan önce temiz transkripsiyon ürettiğini doğrularken yararlıdır — sanal mikrofon çıkışını yerel bir Whisper modeline yönlendirebilir ve transkriptleri inceleyebilirsiniz. Bu, canlı API çağrısı yapmaktan yineleme için daha hızlıdır.
Çıkış Tarafı Oluşturma
Girişteki ses değiştirici resmin yarısıdır. Gerçekten persona kilitli bir asistan için, modelin ses çıkışının da kullanıcının hoparlörlerine ulaşmadan önce ses dönüşümünden geçmesini de istersiniz. Çıkış MediaStreamTrack’ını yakaladığınız için, bir ses worklet veya yerel DSP zincirinden geçirip hoparlörlere yönlendirdiğiniz için daha basit olur.
Yaygın desenler:
- Çıkışı persona’nın kaydına uyması için ton ayarlama aracılığıyla çalıştırın
- Tutarlı eşitleme profili uygulayın (mevcudiyeti artırın, hafif ısı geri çekilmesi)
- Fiziksel bir alanda ses vermesi amaçlanan karakterler için ince oda reverb ekleyin
Birleştirilmiş hatt o zaman:
[Operatör mikrofonu] → Ses Değiştirici → Sanal Mikrofon → Realtime API → TTS Çıkışı → Çıkış Ses FX → Hoparlörler
Entegrasyon Kontrol Listesi
Üretim entegrasyonunu gönderilmeden önce:
- Sanal mikrofon cihazının
enumerateDevices()’te göründüğünü ve tarayıcı yenilemesinden sonra hayatta kaldığını onaylayın - Tarayıcı seviyesi yankı iptali ve gürültü bastırmayı devre dışı bırakın (ses değiştirici bunu işler)
- Hedef donanım yüzdelik diliminde ses işleme gecikmesini ölçün (ortalama değil p95)
- Belirli ses profilinizle VAD davranışını test edin — kaçırılan tur başlarını ve yanlış sonları kontrol edin
- Kısa alışverişler için ilk ses jetonu gecikmesini sınırlamak için
max_response_output_tokensayarlayın - Düzgün düşüşü ekleyin: sanal mikrofon kaybolursa (kullanıcı VoxBooster’ı kapattı), fiziksel mikrofona geri dönün
- Üretim için, geçici belirteci arka uç aracılığıyla istekini proxy yapın — asla OpenAI API anahtarını tarayıcıda sunmayın
Realtime API’nin kendisi hakkında daha derin bir tanıtım için OpenAI Realtime API belgeleri’ne bakın. WebRTC Wikipedia makalesi yeniyseniz aktarım katmanını anlamak için iyi bir referanstır.
VoxBooster Yığına Neler Ekler
VoxBooster, sanal mikrofon katmanında bu mimariye uyan bir Windows 10/11 ses işleme uygulamasıdır. Realtime API entegrasyonu ile ilgili spesifik özellikler:
- Çekirdek sürücüsü olmayan düşük gecikme süreli ses yakalama sanal mikrofonu — yüklemeden hemen sonra tarayıcı cihaz listesinde görünür, yeniden başlatma gerekmez
- Ton, eşitleme ve efektler için alt 20ms DSP yolu — ses işleme bütçesini, çoğu donanımda toplam gidiş-dönüşün 1 saniyenin altında kalması için yeterince düşük tutar
- CPU veya GPU’da çalışan alt 300ms AI ses klonlaması — bulut bağımlılığı yok, ses yerel kalır
- Entegre gürültü bastırma, tarayıcı seviyesi gürültü işlemesini ses kalitesi düşürülmeden güvenle devre dışı bırakabileceğiniz anlamına gelir
VoxBooster $6.99/ay veya R$29,90/ay’de mevcuttur — bir lisans sanal mikrofon, AI klonlaması, soundboard ve gürültü bastırma dahil olmak üzere tam özellik setini kapsar.
İlgili Okuma
- Gerçek zamanlı ses klonlamasının kaputun altında nasıl çalıştığı
- Tarayıcı ve masaüstü uygulamalar için ses değiştirici kurulum kılavuzu
- 2026’da en iyi AI ses değiştiriciler
OpenAI Realtime API’nin üzerine inşa etmek gerçekten heyecan vericidir ve ses giriş hattı yığın tarafından en az belgelenen parçalardan biridir. Persona seslerini, dil öğretmenlerini veya ajan farklılaştırmasını deniyorsanız, burada açıklanan sanal mikrofon yaklaşımı Windows’ta en düşük sürtünme yoludur — sunucu tarafı ses işleme yok, ek ağ atlamasından gecikme yok, sadece işlenen ses WebRTC parçasına doğru gider.
VoxBooster İndir ve sanal mikrofonu Realtime API ile deneyin. Kurulum beş dakikadan az sürer.
Sıkça Sorulan Sorular
OpenAI Realtime API ile ses değiştirici kullanabilir miyim? Evet. Realtime API, standart bir WebRTC medya parçası veya ham bir PCM akışı aracılığıyla ses alır. Ses değiştiriciniz bir sanal mikrofon cihazı çıkışı veriyorsa, bağlantı kurarken o sanal cihazı ses giriş kaynağı olarak geçersiniz. API’nin işlenmiş ve işlenmemiş sesi ayırt etmesinin bir yolu yoktur.
Bir ses değiştiriciyi Realtime API ile birleştirirken toplam gecikme süresi ne kadardır? Tipik dağıtımlarda 0,5–1,5 saniye ileri ve geri gecikme beklentisi koyun. Ses işleme, efekt türüne bağlı olarak 10–300 ms ekler. Realtime API’nin kendisi model çıkarımı ve yanıt oluşturma için 300–800 ms katkıda bulunur. Ağ gidiş-dönüşler ek olarak 30–80 ms ekler.
OpenAI Realtime API yerel olarak WebRTC’yi destekliyor mu? Evet. OpenAI, orijinal WebSocket aktarımının yanında yerel WebRTC desteği ekledi. WebRTC, tarayıcı tabanlı ve Electron uygulamaları için tercih edilen yoldur, çünkü NAT geçişi, jitter arabelleğe alma ve paket kaybı kurtarmasını otomatik olarak işler.
Realtime API sesi reddetmeden önce ses değiştirici gecikme süresi ne kadar kabul edilebilir? Realtime API, gecikme süresine dayalı olarak sesi reddetmez — aldığını işler. Pratik sınır kullanıcı deneyimidir. Ses işleme gecikmesi yaklaşık 300 ms’yi aştığında, doğal konuşma turları sırasında konuşmacı-model gecikme süresi fark edilir hale gelir.
Markalı bir sesle müşteri destek botu için bu kurulumu kullanabilir miyim? Evet ve bu en güçlü kullanım durumlarından biridir. Operatörün sesini, onu tutarlı bir markalı persona olarak eşleyen bir ses değiştirici aracılığıyla geçirip çıkışı Realtime API’ye beslersiniz.
Bu masaüstü uygulaması olmadan bir tarayıcıda çalışır mı? Windows’ta bir tarayıcıda, düşük gecikme süreli ses yakalama tabanlı sanal mikrofon tarayıcının cihaz listesinde görünür. Saf web uygulamaları, Web Audio API aracılığıyla sesi işleyebilir ve işlenen akışı sanal cihaz olmadan WebRTC parçasına doğrudan besleyebilir.
Ses değiştirilirken Realtime API’nin ses aktivitesi algılaması ne olur? VAD, gelen sesin genlik ve spektral özellikleri üzerinde çalışır. Çoğu ses efekti VAD doğruluğunu anlamlı şekilde etkilemez. Aşırı ton düşüşü gibi ağır efektler VAD eşiğini karıştırabilir — kaçırılan tur sınırları ile karşılaşırsanız hassasiyeti ayarlayın veya el ile sessizlik süresi ekleyin.