Een voicechatroom (ook wel een voice room, voice party of voice space genoemd) lijkt op een plek waar je gewoon kunt chatten, maar als je er eenmaal bent, zijn er vier dingen die het meest kunnen mislopen:Het managen van machtsposities.(Orde)De audio-ervaring(Echo/ruis/volume),Beschikbaar op zwakke netwerken(Storingen/verbroken verbindingen/herverbindingen),Een geschenk of fooi geven(Speelwijze en risicobeheersing).

In dit artikel worden geen concepten besproken. In plaats daarvan wordt een praktische “implementatielijst” van 0 naar 1 gepresenteerd, onderverdeeld in modules. Als je deze volgt, kun je een werkende voicechatroom online zetten.

Maak eerst een verschil tussen de verschillende soorten “voice rooms”: welke soort gebruik je?

De verschillende typen bepalen de technische route, de kosten en de complexiteit die je kiest.

1 Veel interactie in kleine ruimten (typisch voor sociale spraakruimten)

  • Aantal personen in de kamer: van tientallen tot honderden mensen kijken online mee
  • Aantal deelnemers: meestal 1–12 (vaak 8 of 9 deelnemers).
  • Kenmerken: veel interactie, lage latentie, de volgorde van de microfoons is belangrijk.

2 Grote kamers zijn meer gericht op uitzendingen (typisch: de streamer spreekt, het publiek luistert).

  • Aantal personen in de kamer: van duizenden tot honderdduizenden.
  • Aantal mensen die aan het woord zijn: weinig (1–3)
  • Kenmerken: Het lijkt meer op livestreaming. Veel teams gebruiken RTC voor videogesprekken en CDN voor grootschalige distributie (afhankelijk van de vorm van je product).

Deze tekst is geschreven vanuit de aanname dat... Veel interactie in een kleine ruimte.Omdat deze streamers het meest voorkomen en ze het meest behoefte hebben aan de vaardigheden “mic-positionering/mixen/zwakke internetverbinding/gifts”.

Algemene architectuur: het minimale bruikbare systeem (MVP) voor spraakruimten.

Je hebt minimaal 4 verbindingen nodig:

  1. Ruimte en gebruikerssysteem (bedrijfsachtergrond)
  • Een kamer maken, deelnemen, vertrekken, kamerattributen (titel, aankondiging, wachtwoord, tags)
  • De ledenlijst, online status en rollen (huiseigenaar/beheerder/toeschouwer/gast)
  1. Het signaleringssysteem (synchronisatie van volgorde en status)
  • Aanvraag om aan de microfoon te komen, de microfoon overnemen, iemand uit de microfoon schoppen, iemand het zwijgen opleggen en de microfoon uitschakelen.
  • De status van de microfoon wordt uitgezonden (wie gebruikt welke microfoon, is deze uitgeschakeld, enzovoort, evenals een pictogram voor de netwerkkwaliteit).
  • Cadeauberichten, systeemberichten, gebeurtenissen in de kamer
  1. Realtime audio (RTC mediabestand)
  • Het betreden van de ruimte, het publiceren van audio en het abonneren op audio.
  • Audioverwerking (AEC/ruisreductie/automatische versterking)
  • De strategie voor zwakke netwerken (verloren pakketten/trillingen/herverbindingen)
  1. Het systeem voor geschenken/beloningen (betaling + risicobeheer)
  • Bestelling plaatsen, betalingsherinnering, geld ontvangen, voorraad/rugzak (optioneel)
  • De berichten over cadeaupresentaties, ranglijsten en speciale effecten (die eerst lichtgewicht kunnen zijn)

Kortom:
RTC staat voor “duidelijke communicatie, ononderbroken verbinding en lage latentie”; signaalgeving staat voor “orde”; en geschenken staan voor “geld maken”.

Het McMee-systeem: de “ordecentrale” van de spraakruimte.”

Als de moderator zijn werk niet goed doet, verandert de ruimte in een situatie waarbij mensen elkaar de mond afsluiten, elkaar onderbreken en de orde verstoorden.

Welke statussen zijn nodig voor een machtspositie (ik raad je aan om deze als gegevensstructuur over te nemen)?

Elke microfoonpositie (seat) omvat ten minste:

  • seatIndexDe volgorde van de microfoons (0–7 of 1–8)
  • userIdDe huidige bewoner (leeg = niemand)
  • lock: Is de microfoon vergrendeld (zodat anderen niet kunnen deelnemen)?
  • muteBySelf: De gebruiker schakelt zichzelf uit
  • muteByAdminDe beheerder heeft gedwongen tot stilte gebracht.
  • audioLevel: Het volume (voor UI-animaties)
  • networkQualityDe netwerkkwaliteit (rood, geel, groen)
  • role: Markering voor huiseigenaren/gasten/beheerders (kan op de gebruikerspagina worden geplaatst)

De bedieningshandleiding van Mewei (veelgebruikte functies van het product)

  • Ik solliciteer bij Meike.Het publiek → De aanvraagwachtrij (met een tijdslimiet)
  • Accepteren/weigerenDe huiseigenaar/beheerder → Op de hoogte brengen via signalering + update van de microfoonpositie.
  • Vrij spreken op de microfoonZonder een aanvraag in te dienen, kun je meteen een microfoonpositie bemachtigen (geschikt voor kamers met bekenden).
  • Houd van meDe beheerder wijst iemand aan om op een bepaalde microfoonpositie te staan.
  • Hij werd uit het team gezet.De beheerder heeft iemand uit de chatroom verwijderd.
  • Microfoon uitschakelen/inschakelen: Voorkom dat mensen zomaar het woord nemen tijdens een vergadering.
  • De microfoon uitschakelen/inschakelenDe beheerder bepaalt of een gebruiker mag spreken in een bepaalde microfoonpositie.
  • De microfoon verwisselen/de microfoonpositie wisselen: De twee microfoonposities worden omgewisseld (voor een betere ervaring)
  • Je hebt je spreektijd overschreden.Na goedkeuring van de aanvraag wordt de verbinding automatisch verbroken als je binnen X seconden niet op de microfoon klikt.
  • Reservering behouden bij een onderbreking van de verbindingNa een verbindingstekort behoud je je microfoonpositie nog N seconden (een belangrijk aspect van de gebruikservaring).

Het wordt nadrukkelijk aanbevolen om de status van de stream als “achtergrondinformatie” te beschouwen.”

Veel teams gebruiken in eerste instantie alleen client-side synchronisatie, maar als gevolg hiervan raakt de status een puinhoop als er een slechte internetverbinding is, meerdere clients worden gebruikt of als de verbinding opnieuw tot stand komt.

Je kunt dit op de volgende manier doen:

  • De achterkant slaat de status van de microfoonposities in de ruimte op.(Redis is lichtgewicht en voldoende opslagruimte biedt)
  • Alle wijzigingen in de microfoonposities worden geregistreerd als “signaalgevende gebeurtenissen” (events).
  • De client rendert alleen de status en fungeert niet als scheidsrechter.

Tijdens een dergelijke herverbinding kan de client het spel herstellen door één keer een kamerснимок op te halen.

Mengen van audio en geluidskwaliteit: gebruikers blijven alleen als ze het leuk vinden om te luisteren.

De audio-ervaring in de voicechatroom is: “duidelijk hoorbaar, niet storend, geen feedback en geen galm”.

1 Audioverwerking Four-pack (dit moet allemaal worden ingeschakeld)

  • AEC - Echo-onderdrukkingVerwijder de luidspreker om ongewenste geluiden te voorkomen, zoals een schelle toon die wordt veroorzaakt door een terugkerende echo.
  • NS ruisonderdrukkingOmgevingsgeluid (ventilator, toetsenbord, autogeluid)
  • AGC automatische versterking: Zorg ervoor dat mensen met een lage stem het volume lager zetten, zodat het niet te hard of te zacht wordt.
  • VAD stemdetectie (optioneel): De achtergrond op een slimmere manier samenpersen.

Als je een volwassen RTC-SDK gebruikt, hebben deze meestal een standaardbeleid. Wat je moet doen is:

  • Het voorzien van gebruikers van “De ruisonderdrukkingsschakelaar
  • Het aanbieden van een compensatie aan de huiseigenaar.“Alle deelnemers op stilte/ontmute
  • tegen “\nFrietjes”\n"Doe bescherming aan (hieronder meer details)

2 Bescherming tegen feedback/stemknarsen (dit moet je echt doen)

Het is vrij gebruikelijk dat er tijdens het opnemen van video's problemen met de microfoon optreden: de gebruiker staat te dichtbij, de microfoon van de telefoon is overbelast of de muziek staat te hard.

De mogelijke maatregelen zijn:

  • Beperk het maximale invoervolume (de invoerversterking).
  • AGC/Limiter (piekwaarde beperken) inschakelen.
  • UI-waarschuwing: “Ga verder van de microfoon staan/Zet het systeemvolume lager”
  • Detectie van een continue piek die de drempelwaarde overschrijdt → automatische verlaging van de versterking

3 Achtergrondmuziek (BGM) en geluidseffecten (optioneel, maar ze voegen veel toe)

De gebruikelijke activiteiten in een voicechatroom zijn: muziek afspelen, geluidseffecten gebruiken, je stem veranderen en je stemkleur aanpassen.

Er zijn twee manieren om dit te bereiken:

  • Klantenspecifieke lokale mix: Lage latentie, snelle implementatie (hoewel je moet letten op de consistentie tussen alle uiteinden)
  • Aan de serverkant mixenZe zijn zeer consistent (maar ook duurder en complexer).

MVP adviseert om eerst een client-side mix te maken en ervoor te zorgen dat:

  • Het volume van de achtergrondmuziek wordt automatisch verlaagd wanneer er een menselijke stem wordt opgenomen (de muziek wordt zachter als iemand aan het praten is).
  • Als je de kamer verlaat, wordt het afspelen gestopt om te voorkomen dat er op de achtergrond stroom wordt verbruikt.

Zwak netwerk en opnieuw verbinden: de sleutel tot het overleven van een voicechatroom.

Een zwakke internetverbinding is geen uitzondering, maar een normale situatie: in metro's, liften, 4G-netwerken en wanneer je van wifi-netwerk verandert.

1 Een lijst met strategieën die je moet hebben voor een zwak netwerk.

  • Melding van de netwerkkwaliteit: De UI toont rood, geel en groen (de huiseigenaar kan zien wie er vastzit)
  • Maatregelen tegen pakketverlies: Geef prioriteit aan de continuïteit van de spraak en sta een passende verlaging van de bitrate toe.
  • De trillingsbufferstrategieVerwijder de onderbrekingen
  • Het proces van wisselen tussen wifi en mobiele data.Het moet mogelijk zijn om korte onderbrekingen tijdens het schakelen zelfstandig te herstellen.
  • Verbinding verbroken, opnieuw verbinding maken: Automatische herverbinding + statusmelding van de UI tijdens de herverbinding.
  • Reservering behouden bij een onderbreking van de verbindingAls je binnen N seconden weer verbinding maakt, behoud je nog steeds je positie als spreker (een geweldige ervaring).

2 Aanbevelingen voor het opnieuw verbinden (de meest betrouwbare methode)

  1. Er is gedetecteerd dat de media is uitgeschakeld (of dat de netwerkkwaliteit onder de drempelwaarde is gedaald).
  2. De gebruikersinterface toont “Opnieuw verbinden...”
  3. Maak eerst opnieuw verbinding met de RTC-kamer (deelnemen).
  4. Laad de kamerfoto's (microfoonpositie/rol/muziekstilstand)
  5. Als de gebruiker eerder op de microfoon was en de reservering nog niet is verlopen, wordt de verbinding met de microfoon automatisch hersteld.
  6. Na voltooiing, vernieuw de ledenlijst en de volumeanimatie.

Hoofdpunten:Het opnieuw verbinden met de mediaHet herstellen van de statusWe moeten dit samen doen, anders “komt de stem terug, maar is de microfoonpositie nog steeds leeg of wordt deze door iemand anders ingenomen”.

Cadeau-beloningen: de minimale beschikbare gameplay + risicobeheerlijst

Het grootste probleem met het cadeausysteem in voice chatrooms zijn “betalingsconsistentie” en “geschillen over cadeaus/minderjarigen/terugbetalingen”.

1 MVP-geschenkensysteem. Je hebt hier alleen dit voor nodig.

  • Lijst met geschenken (ID, naam, prijs, pictogram)
  • Bestelling plaatsen (bestellingsnummer genereren)
  • Een betalingsterugroep (waarbij een derde partij je back-end aanroept)
  • De resultaten van de toekenning (succes/falen)
  • Er wordt een “geschenkboodschap” uitgezonden in de kamer (voor UI-animaties).
  • Eenvoudige lijst (bijdrage van vandaag/bijdrage van deze sessie)

De belangrijkste principes van MVP:
De succesvolle betaling wordt bepaald door de “achtergrond callback”.Vertrouw de client niet.

2 Risicobeheer en naleving (doe op zijn minst dit)

  • FrequentiebeperkingHet aantal cadeautjes dat binnen korte tijd met hetzelfde account/apparaat kan worden verzonden, is beperkt.
  • Anomaliedetectie: Hoge frequentie, kleine bedragen, onmiddellijke betalingen en ongewone transacties tussen verschillende accounts.
  • Het strategie voor het verwerken van terugbetalingen.Kunnen cadeaus worden ingetrokken? Hoe worden de ranglijsten teruggedraaid?
  • Bescherming van minderjarigen: Echte naam/limiet/pop-upmelding (volgens de regels van het platform en de regio waar je gevestigd bent)
  • Content governanceDe procedure voor het melden, verbieden of blokkeren van content met bijvoorbeeld seksuele of politieke ondertonen of beledigende taal (zelfs als dit eerst door een medewerker van de klantenservice wordt afgehandeld).

7 Vervuiling van de kamer: als jij het niet doet, zal de kamer zeker vies worden.

Een voicechatroom is geen technisch product, maar een “semi-gemeenschap”.

Geef de huiseigenaar/beheerder in ieder geval de volgende mogelijkheden:

  • Mute/unmute (persoonlijk/voor iedereen)
  • Uit de kamer gooien (optioneel: voor een bepaalde tijdsperiode verbannen)
  • Zwarte lijst/witte lijst (zeer belangrijk voor Airbnb-verhuurbedijven)
  • Keyword filtering (voor tekstberichten/kamer namen)
  • Meldingspunt + verwerking achter de schermen (op zijn minst moet dit worden vastgelegd)

8 Hoe kies je een landingsmethode?

Er zijn twee manieren om een spraakkamer te realiseren:

Route A: zelfgebouwd (WebRTC + SFU/mediaserver)

Voordelen: beheersbaar, aanpasbaar en op de lange termijn waarschijnlijk goedkoper op grote schaal.
Nadeel: ontwikkeling/beheer is tijdrovend, er zijn veel problemen met compatibiliteit/zwakke netwerken en het duurt lang om de site online te krijgen.

Route B: Gebruik de volwassen RTC SDK (de snelste manier om dit te implementeren)

Voordelen: het is gemakkelijk te leren, de verwerking van audio en zwakke netwerken is goed ontwikkeld en het is eenvoudiger om het op verschillende platforms te gebruiken.
Nadeel: je moet per gebruik betalen en bepaalde geavanceerde mogelijkheden zijn afhankelijk van de leverancier.

Als u de spraakruimte zo snel mogelijk wilt opzetten (met kant-en-klare mogelijkheden voor microfoonposities, ruisreductie, echo's en herverbinding bij een zwakke internetverbinding), kunt u direct gebruikmaken van een volwassen SDK voor realtime audio en video. Hieronder heb ik een snelstartgids samengesteld (inclusief een console en demo):De oplossing voor spraakchats van Tencent RTC.

Gerelateerde links