Sesli sohbet odaları (genelde sesli oda, sesli parti veya sesli alan olarak da adlandırılır) “odada konuşma” gibi görünse de, gerçekten çevrimiçi olduğunda en çok sorun yaşanan dört alan vardır:Yönetici pozisyonu yönetimi.(Düzen),Ses deneyimi.(Ekol/gürültü/ses seviyesi),Zayıf ağ kullanılabilir.(Kesinti/bağlantı kopması/yeniden bağlanma),Hediye ödülü.(Oyun tarzı ve risk yönetimi).

Bu makale konseptlerden bahsetmiyor, doğrudan sıfırdan bire kadar uygulanabilir bir “uygulama listesi” veriyor. Modüler olarak düzenlenmiştir ve bunları takip ederek çalışan bir sesli sohbet odasını kolayca başlatabilirsiniz.

Öncelikle “sesli sohbet odalarını” ayırt edin: Hangi türde bir sohbet odası yapıyorsunuz?

Farklı tipler, seçtiğiniz teknik yolu, maliyeti ve karmaşıklığı belirler.

1 Küçük odalarda yoğun etkileşim (tipik: sosyal sesli sohbet odası)

  • Oda sayısı: Onlarca ila yüzlerce kişi tarafından çevrimiçi olarak izleniyor.
  • Yayına katılan kişi sayısı: Genellikle 1-12 (genelde 8-9 kişi).
  • Özellikleri: Yüksek etkileşim, düşük gecikme süresi ve mikrofon sırasının önemi.

2 Büyük odalar yayına yöneliktir (tipik: ana sunucu konuşur, izleyiciler dinler).

  • Oda sayısı: Binlerden yüz binlere kadar.
  • Mikrofona bağlanan kişi sayısı: Az (1-3)
  • Özellikler: Daha çok canlı yayın gibi. Birçok ekip, büyük dağıtım için CDN'yi kullanırken RTC'yi canlı yayınlar için kullanır (ürün formunuza bağlı olarak).

Bu makale varsayımlı olarak yazılmıştır. Küçük odada güçlü etkileşim.Çünkü bu, “miks pozisyonu/miks yapma/zayıf internet/hediyeler” becerilerine en çok ihtiyaç duyan ve en yaygın olanıdır.

Genel yapı: Sesli sohbet odasının en küçük kullanılabilir sistemi (MVP)

En az 4 bağlantıya ihtiyacınız var:

  1. Odalar ve kullanıcı sistemi (işletme arka ucu)
  • Oda oluşturma, katılma ve çıkma, oda özellikleri (başlık, duyuru, şifre, etiketler).
  • Üye listesi, çevrimiçi durum, roller (ev sahibi/yönetici/seyirci/misafir)
  1. Sinyal sistemi (düzen ve durum senkronizasyonu)
  • Mikrofona bağlanma talebi, mikrofonu ele geçirmek, mikrofonu kapatmak, susturmak ve mikrofonu kapatmak.
  • Mikrofon durumu yayını (hangi mikrofon kullanılıyor, sessiz mi, ağ kalitesi simgesi)
  • Hediye mesajları, sistem duyuruları, oda olayları.
  1. Gerçek zamanlı ses (RTC medya bağlantısı)
  • Odaya girin, ses yayınlayın ve seslere abone olun.
  • Ses işleme (AEC/gürültü engelleme/otomatik kazanç)
  • Zayıf ağ stratejisi (paket kaybı/titreme/yeniden bağlanma)
  1. Hediye/ödül sistemi (ödeme + risk yönetimi)
  • Sipariş verme, ödeme geri çağrısı, para yatırma, envanter/sırt çantası (isteğe bağlı)
  • Hediye sunumu mesajları, listeler ve özel efektler (hafif, ilk olarak yapılabilir)

Bir cümle:
RTC, “net konuşma, kesintisiz iletişim ve düşük gecikme süresi”nden sorumludur; sinyal, “düzen”den sorumludur; hediyeler ise “paraya çevirme”den sorumludur.

Mikrofon sistemi: Sesli sohbet odasının “düzen merkezi”.”

İyi bir moderatör olmadığında, oda konuşma kavgasına, mikrofonun sürekli el değiştirmesine ve yönetimin çökmesine dönüşür.

Bir makine öğrenimi projesi için hangi durumlar gereklidir (veri yapısı olarak kopyalamanızı öneririm)?

Her bir mikrofon konumu (koltuk) en azından şunları içerir:

  • seatIndexMakine pozisyon numarası (0-7 veya 1-8)
  • userIdŞu andaki kiracı (boş = kimse yok)
  • lock: Mikrofonu kilitlediniz mi (kilitlediyseniz başkaları konuşamaz)?
  • muteBySelfKullanıcı kendini susturuyor.
  • muteByAdminYönetici zorunlu olarak susturma yaptı.
  • audioLevel: Ses seviyesi (UI animasyonu için kullanılır)
  • networkQualityAğ kalitesi (kırmızı, sarı, yeşil)
  • role: Ev sahibi/misafir/yönetici işaretleri (kullanıcının üzerine eklenebilir)

Makine işletme listesi (ürünün yaygın olarak kullanılan fonksiyonları)

  • Mekan için başvuru yap.:Seirici → Başvuru sırası (zaman aşımı ile)
  • Kabul et/reddet.Ev sahibi/yönetici → Sinyallemelerle bildirim + mikrofon konumunu güncelleme.
  • Özgürce mikrofona konuşma.Başvuru yapmadan, mikrofon pozisyonuna basarak katılabilirsiniz (tanıdık kişilerin bulunduğu odalara uygundur).
  • İçki için teşekkürler.Yönetici, birinin belirli bir mikrofon pozisyonuna geçmesini belirtir.
  • Maçtan çıkarıldı.Yönetici, birini sohbet odasından kaldırdı.
  • Mikrofonu kilitle/kilidini aç.: Mikrofonu kötüye kullanmaktan kaçının.
  • Mikrofonu kapat/aç.Yönetici, bir mikrofon pozisyonunun konuşma yetkisine sahip olup olmadığını kontrol eder.
  • Mikrofon değiştirme/mikrofon pozisyonunu değiştirme.İki mikrofon konumunun değiştirilmesi (deneyimi geliştirir)
  • Mikrofonu aşırı uzun süre kullanmak.Başvuru onaylandıktan sonra X saniye içinde mikrofona bağlanmazsanız, başvurunuz otomatik olarak iptal edilir.
  • Koltuk rezervasyonunu korumak için bağlantı kesmeBağlantı kesildikten sonra mikrofon pozisyonunu N saniye boyunca koru (deneyimin anahtarı).

Şiddetle tavsiye edilir: Makale durumu “arka uçun otoritesi” olarak ayarlanmalıdır.”

Birçok ekip başlangıçta sadece istemci senkronizasyonu kullanır, ancak zayıf ağ bağlantısı/çoklu istemci/yeniden bağlanma durumunda durum karışır.

Bunu böyle yapabilirsin:

  • Arka uç, oda mikrofon durumunu saklar.(Hafif depolama alanı olan Redis yeterli).
  • Tüm mikrofon değişiklikleri bir “sinyal olayı” (event) üzerinden gerçekleşir.
  • Müşteriler sadece durumu görüntüler, kendi başlarına hakemlik yapmazlar.

Böyle bir yeniden bağlanma durumunda, istemci bir kez oda anlık görüntüsünü çekerek durumu normale döndürebilir.

Ses mikslemesi ve ses kalitesi: Kullanıcılar sadece keyif aldıklarında siteye kalır.

Sesli sohbet odasındaki ses deneyimi = “İyi duyulabilmek + Tahriş edici olmamak + Mikrofonun çatlama sesi olmaması + Yankı olmaması”.

1 Ses işleme dörtlüsü (hepsinin açık olması gerekir)

  • AEC Ekolu GidermeÇınlama nedeniyle dışarıya yayın yapmaktan kaçının.
  • NS gürültü engellemeÇevresel gürültü (fan, klavye, araç gürültüsü)
  • AGC otomatik kazanç.:Ses hacmini düşük olan kişi, sesin hem çok yüksek hem de çok düşük olmasını önlemek için sesi yükseltmelidir.
  • VAD insan sesi algılama (isteğe bağlı):Arka planı daha akıllıca sıkıştırın.

Eğer olgun bir RTC SDK kullanıyorsanız, genellikle bunların varsayılan politikaları vardır; yapmanız gereken şey:

  • Kullanıcılara “sunmak"Gürültü engelleme anahtarı.
  • Ev sahiplerine sunun.“Tüm katılımcılar sustu/sessizliği kaldırdı.
  • İçin“Kızarmış mısır”Proteksiyon yapmak (aşağıda açıklanıyor)

2 Ses patlaması/ses kısılması koruması (mutlaka yapılmalıdır)

Mikrofon patlaması olayları oldukça yaygındır: Kullanıcı çok yakınlaşır, telefonun mikrofonu aşırı yüklenir veya müzik çok yüksek sesle açılır.

Yapılabilecek şeyler:

  • Giriş sesi seviyesini sınırlayın (giriş kazancı)
  • AGC/Limiter'ı (zirve sınırlaması) aktive edin.
  • Kullanıcı arayüzü hatırlatması: “Mikrofondan uzak durun/Sistem sesini azaltın”.”
  • Peak değeri eşiğin üzerinde olduğunda algılama → kazanım otomatik olarak azaltılır.

3 Arka plan müziği (BGM) ve ses efektleri (isteğe bağlı, ancak çok puan kazandırır).

Sesli sohbet odalarında yaygın olan oyunlar: şarkı çalma, ses efektleri, ses değiştirme ve ses tonu değiştirme.

İki gerçekleştirme yöntemi vardır:

  • Müşteri tarafından yerel olarak yapılan mikslemeler.Düşük gecikme süresi ve hızlı uygulama (ancak her tarafın tutarlılığına dikkat edilmelidir).
  • Sunucu tarafı mikslemesi.Çok tutarlı (daha yüksek maliyet, daha fazla karmaşıklık).

MVP, ilk olarak istemci tarafı mikslemesini önerir ve aşağıdakileri garanti eder:

  • BGM sesi, insanlar konuşurken otomatik olarak kısılır (müzik, insanlar konuştuğunda daha hafif olur).
  • Odadan çıkarken oynatmayı durdurun ve arka planda pil tüketimini önleyin.

Zayıf ağ ve yeniden bağlanma: Sesli sohbet odasının “hayatta kalmasının” anahtarı.

Zayıf internet bağlantısı nadir bir durum değil, normal bir durumdur: metro, asansör, 4G titreme, Wi-Fi geçişi.

1 Sahip olmanız gereken zayıf ağ stratejileri listesi.

  • Ağ kalitesi raporu.:UI, kırmızı, sarı ve yeşil renkleri gösterir (ev sahibi, kimin bağlantı sorunu olduğunu görebilir).
  • Paket kaybına karşı önlemler.: Öncelikle ses sürekliliğini koruyun ve uygun şekilde bit hızını düşürmeye izin verin.
  • Titreşim tamponlama stratejisi.: Tartışmaları ve anlaşmazlıkları önleyin.
  • Wi-Fi/hücresel geçiş işlemiDeğiştirirken kısa bir süre için takılıp kalmak ve sonra kendini toplayabilmek gerekir.
  • Bağlantı kesildi, yeniden bağlanıyor.:Otomatik yeniden bağlanma + yeniden bağlanma sırasında UI durumu bildirimi.
  • Koltuk rezervasyonunu korumak için bağlantı kesmeİnternet bağlantısı kesildiğinde ve N saniye içinde geri döndüğünde bile mikrofon haklarını koruyabilmek (harika bir deneyim)

2 Yeniden bağlanma süreci önerisi (en güvenli set)

  1. Medyanın bağlantısının kesildiği (veya ağın eşik değerine kadar kötüleştiği) tespit edildi.
  2. Kullanıcı arayüzü, “Yeniden bağlanıyor...” mesajını gösteriyor.”
  3. Önce RTC odasına yeniden bağlanın (katılın).
  4. Oda anlık görüntülerini (mikrofon pozisyonu/rol/sessizlik durumu) yükle.
  5. Eğer kullanıcı daha önce mikrofonu kullanıyordu ve rezervasyonu henüz bitmemişse → mikrofon otomatik olarak kullanıma geri döner.
  6. Tamamlandıktan sonra üye listesini ve ses gücü animasyonunu yenileyin.

Ana nokta:Medya yeniden bağlanıyor.Durumun geri yüklenmesiBirlikte yapmak gerekir, yoksa “ses geri gelir ama mikrofon hala boştur/başka biri tarafından işgal edilmiştir”.

Hediye ödülü: En küçük kullanılabilir oyun + risk yönetimi listesi.

Sesli sohbet odasının hediye sisteminde en çok sorun yaşanan konular “ödeme tutarlılığı” ve “hediye gönderme/reşit olmayanlar/para iadesi anlaşmazlıkları”dır.

1 MVP hediye sistemi, sadece bunlara ihtiyacınız var.

  • Hediye listesi (ID, isim, fiyat, simge)
  • Sipariş vermek (sipariş numarası oluşturmak)
  • Ödeme geri çağrısı (üçüncü taraf geri çağrısı sizin arka uçunuza).
  • Sonuçların bildirilmesi (başarı/başarısızlık)
  • Odada “hediye mesajı” yayınlanıyor (UI animasyonu için).
  • Basit liste (bugünkü katkılar/bu oturumdaki katkılar)

MVP'nin temel ilkeleri:
Ödeme başarılı olduğunda “arka uç geri çağrısı” esas alınır.Müşteri tarafından sağlanan bilgilere güvenmeyin.

2 Risk yönetimi ve uyumluluk (en azından bunları yapın)

  • Frekans sınırlaması.Aynı hesap/cihazda kısa bir süre içerisinde hediye verme sayısı sınırlıdır.
  • Anormal durum tespiti.: Yüksek frekanslı küçük ödemeler, saniyeler içinde gerçekleşen işlemler ve odalar arasındaki anormallikler.
  • İade işlemi stratejisi.Hediyeler geri çekilebilir mi? Puan tablosu nasıl geri alınır?
  • Küçüklerin korunması.:Gerçek isim/sınırlama/açılır pencere uyarısı (platformunuzun ve bölgenizin kurallarına göre)
  • İçerik yönetimi.Pornografi, politika veya hakaret içeren içeriklerle ilgili bildirimler, susturma ve hesap engelleme süreçleri (İlk olarak insan tarafından yönetilen bir arka uç olsa bile).

7 Oda yönetimi: Siz yapmazsanız, oda kesinlikle kötü bir hal alacaktır.

Sesli sohbet odaları teknik ürünler değildir, bunlar “yarı topluluklardır”.

En azından ev sahibine/yöneticisine bu yetenekleri verin:

  • Yasaklama/yasağın kaldırılması (bireysel/toplu)
  • Odayı terk et (isteğe bağlı yasaklama süresi).
  • Kara liste/beyaz liste (tanıdıkların odasına çok ihtiyaç var)
  • Anagramlar (metin mesajları/oda adları için)
  • Raporlama girişi + işleme arka uç (en basit hâlinde bile kayıt yapabilmeli)

İniş yöntemi nasıl seçilir?

Sesli sohbet odasını oluşturmak için iki yol vardır:

Güzergah A: Kendi kendine oluşturulan (WebRTC + SFU/medya sunucusu)

Avantajları: Kontrol edilebilir, özelleştirilebilir ve uzun vadede ölçeklendirildiğinde daha ucuz olabilir.
Dezavantajları: Geliştirme/iyi işleyiş ağır, uyumluluk/zayıf ağ sorunları, yayına geçme yavaş.

Güzergah B: Olgun RTC SDK'yi kullanmak (en hızlı uygulama)

Avantajları: Hızlı öğrenme, zayıf ağ/ses işleme konusunda olgun, uçlar arası destek daha sorunsuz.
Dezavantajları: Miktara göre ödeme gerekliliği ve bazı derinlemesine yeteneklerin tedarikçiye bağlı olması.

Eğer sesli sohbet odasını en hızlı şekilde başlatmak istiyorsanız (mikrofon konumu, gürültü engelleme, zayıf ağ bağlantısında yeniden bağlanma gibi özelliklerin hepsi hazır), doğrudan olgun gerçek zamanlı ses ve video SDK'sini kullanarak bunu gerçekleştirebilirsiniz. Burada hızlı bir başlangıç rehberi hazırladım (konsol ve demo dahil):Tencent RTC'nin sesli sohbet odası çözümü.

İlgili bağlantılar.