Skip to main content
Gaming Tools

Voice-Comms in CS2- und FACEIT-Demos hören

Voice-Comms in jeder CS2- oder FACEIT-Demo hören: welche Demos Voice enthalten, wie die Slot-Bitmaske funktioniert und wie der Textchat dazukommt.

Von 6 min read
Titelkarte des Artikels. Ein Lautsprechersymbol mit drei Bögen, der innerste in Bernstein, mit der Zeile: two commands, and the comms come back

Du schaust eine Demo und hörst nichts ausser Schritten. Voice ist in Counter-Strike-2-Demos standardmässig aus, und der Befehl, der sie einschaltet, verlangt eine Zahl, die die wenigsten je herleiten. Schlimmer: oft ist der Befehl gar nicht das Problem, weil in der Demo schlicht keine Sprache steckt.

Damit fängt man an, denn davon hängt ab, ob der Rest dieser Seite überhaupt helfen kann.

Nur die Befehle? Lade deine Demo in den CS2 Voice Comms Calculator , hake die Spieler an, die du hören willst, und kopiere die fertigen tv_listen_voice_indices-Befehle. Der Rest dieser Seite erklärt, warum sie funktionieren.

Welche CS2-Demos enthalten überhaupt Voice-Comms?

Valve-Matchmaking- und Premier-Demos enthalten keinerlei Sprachdaten. Nicht stummgeschaltet, nicht verschlüsselt, sondern gar nicht vorhanden. Das Werkzeug, das Sprachspuren aus Counter-Strike-Demos extrahiert, trägt die Warnung ganz oben in seiner README: aus einer MM-Demo gibt es nichts zu holen.1 Kein Konsolenbefehl kann Audio abspielen, das nie in die Datei geschrieben wurde.

Die zweite Hälfte überspringen die meisten Anleitungen. Voice auf einem SourceTV-Server ist ebenfalls nicht automatisch. In CS2 zeichnet SourceTV die Sprache der Spieler nur auf, wenn der Server das einschaltet, was historisch sv_alltalk 1 oder ein Plugin bedeutete.2 FACEIT nimmt Comms auf und sagt den Spielern, wie sie sie abspielen.5 Ein Pickup-Server, den jemand letzte Woche gemietet hat, sehr wahrscheinlich nicht.

Herkunft der DemoEnthält Voice?
FACEITJa
ESEA und andere LigenJa
Community-SourceTV-ServerNur wenn dieser Server es aktiviert hat
Valve-MatchmakingNein
Valve PremierNein

Bei einer stummen Demo lautet die Frage also nicht "was habe ich falsch getippt", solange nicht geklärt ist, ob überhaupt Sprache drin sein konnte.

Der Endbildschirm eines Premier-Matches in Counter-Strike 2 mit einer Wertung von 30.114 nach einem Sieg über 115 Punkte, darunter fünf Spieler des Gewinnerteams.
So endet ein Premier-Match, und die Demo, die dabei entsteht, enthält überhaupt keine Sprachspur. Schliesse den Modus aus, bevor du deine Tipparbeit ausschliesst. Screenshot: Valve.

Was macht tv_listen_voice_indices?

Der Befehl entscheidet, wessen Stimme du beim Zuschauen über SourceTV hörst. Standardwert ist 0, und 0 heisst niemand.2

Der Wert ist ein Bitfeld der Spieler-Slots:

  • -1 - alle hören, denn -1 setzt jedes Bit
  • 0 - niemand hören, der Standard und der Reset
  • jede andere Zahl - genau die Slots hören, deren Bits gesetzt sind

Der _h-Befehl ist keine Kopie, sondern die andere Hälfte

Das ist der meistmissverstandene Teil, und die meisten Anleitungen wiederholen den Fehler.

tv_listen_voice_indices und tv_listen_voice_indices_h sind die beiden Hälften eines einzigen 64-Bit-Felds. Der erste hält die unteren 32 Bit und adressiert die Spieler-Slots 0 bis 31. Der _h-Befehl hält die oberen 32 Bit für die Slots 32 bis 63.2 Der CS Demo Manager erzeugt sie genau so: eine Schleife, ein Bit pro Spieler-Id, der niedrige Wert für Ids unter 32 und der hohe für Ids ab 32.3

Das ändert den Rat, den man überall liest:

  • Für alle setzt du beide auf -1. Genau das gibt FACEIT aus,5 und es funktioniert, weil -1 jedes Bit beider Hälften füllt.
  • Für einzelne Spieler kommt die Maske in tv_listen_voice_indices, und _h bekommt 0. In einem 5v5 sitzt niemand auf Slot 32 oder höher, _h hat also niemanden zu adressieren. Dieselbe Zahl dort hineinzukopieren bringt nichts, und auf einem grossen SourceTV-Server würde es ein spiegelverkehrtes Set hoher Slots freischalten, das du nie ausgewählt hast.

_h auf 0 zu setzen löscht ausserdem, was vorher in der Sitzung darin stand. Das allein lohnt sich schon.

Wie die Slot-Bitmaske funktioniert

Jedes Bit steht für einen Slot. Slot 1 ist Bit 0, Slot 2 ist Bit 1, Slot 3 ist Bit 2, und jeder Slot ist doppelt so viel wert wie der vorige. Du addierst die Werte der Slots, die du hören willst:

SlotBit-Wert
11
22
34
48
516

Slots 1, 3 und 4 ergeben 1 + 4 + 8 = 13:

tv_listen_voice_indices 13
tv_listen_voice_indices_h 0

Der Voice Comms Calculator übernimmt die Addition. Wer lieber von einem Binärmuster ausgeht, wandelt es mit unserem Zahlensystem-Konverter in das Dezimal um, das CS2 erwartet.

Herausfinden, wer auf welchem Slot sitzt

Die Slot-Reihenfolge stammt aus der in der Demo aufgezeichneten Entity-Reihenfolge der Spieler. Sie ist also nicht die Scoreboard-Reihenfolge, und es gibt keinen Grund, warum sie deiner Intuition entsprechen sollte. Für diese eine Demo ist sie allerdings fest - dieselbe Datei spielt jedes Mal mit denselben Slots ab. Was nicht übertragbar ist, ist die Maske selbst: eine Zahl, die im Dienstagsmatch deinen IGL isoliert hat, trifft am Donnerstag eine fremde Person.

Von Hand geht es so:

spec_player 1
spec_player 2
spec_player 3

und notieren, wer erscheint. Schneller ist der Upload in den Calculator, der die Slot-Tabelle aus der Datei liest und jeden Eintrag mit Namen und Team beschriftet.

Ein ganzes Team hören

Wenn klar ist, welche Slots zu welcher Seite gehören, addierst du deren Werte. Der Calculator hat dafür All / All T / All CT, was du beim Casten oder beim Schneiden von Highlights willst, wo zehn überlappende Stimmen die Runde begraben.

Ein Hinweis, falls du stattdessen die Aliase voice_ct und voice_t des CS Demo Manager nutzt: sie beziehen sich auf die Startseite jedes Spielers, nicht auf die aktuelle.4 Nach der Halbzeit bedeuten sie nicht mehr, was ihre Namen nahelegen. Dasselbe Werkzeug bietet auch voice_STEAMID64 für einen einzelnen Spieler.4

Auch den Textchat mitlesen

Voice ist die halbe Aufzeichnung. Für den Ingame-Textchat:

tv_relaytextchat 2

2 leitet alles weiter, inklusive All-Chat, 0 blendet den Chat ganz aus. FACEIT nennt ihn als dritten der drei Befehle für die Demo-Auswertung.5 Seinen Wert zeigt er, sobald du zwar einen Call hörst, aber die Stimme nicht zuordnen kannst.

Sie werden bei jedem Spielende zurückgesetzt

Beide Convars fallen auf 0, sobald CS2 sich beendet. Das ist die "gestern ging es noch"-Falle: nichts ist kaputt, die Sitzung startete nur wieder beim Standardwert Stille. Halte die Befehle irgendwo bereit, statt die Zahl jedes Mal neu zu bauen.

Alles zusammen

  1. Prüfen, ob die Demo Voice enthalten kann - FACEIT oder Liga, nicht MM oder Premier.
  2. Herausfinden, welche Spieler auf welchen Slots sitzen, oder den Calculator lesen lassen.
  3. Die Bit-Werte der gewünschten Spieler addieren.
  4. tv_listen_voice_indices auf diese Zahl setzen und tv_listen_voice_indices_h auf 0. Für alle beide auf -1.
  5. tv_relaytextchat 2 dazu, wenn du den Chat willst, dann die Demo abspielen.

Rechnerei und spec_player-Schleife sparst du dir mit dem CS2 Voice Comms Calculator : Demo hochladen, Spieler anhaken, Befehle kopieren.

Quellen

Jede Zahl in diesem Artikel lässt sich auf eine Quelle unten zurückführen. Behauptungen ohne Beleg wurden gestrichen, nicht abgeschwächt.

  1. BegutachtetAkiVer

    Dass Valve-Matchmaking-Demos keinerlei Sprachdaten enthalten, als stehende Warnung des Werkzeugs, das Sprachspuren aus CS:GO- und CS2-Demos extrahiert.

  2. Begutachtetb0ink

    Die wörtlichen Convar-Beschreibungen, dass tv_listen_voice_indices ein Bitfeld der Slots 0 bis 31 ist und tv_listen_voice_indices_h die oberen 32 Bit für die Slots 32 bis 63, beide mit Standardwert keine, sowie dass CS2-SourceTV Sprache nur aufzeichnet, wenn der Server das aktiviert.

  3. PrimärquelleCS Demo Manager

    Dass der Wert eine Bitmap ist, die in zwei 32-Bit-Hälften zerfällt, niedrig für die Ids 0 bis 31 und hoch für 32 bis 63, so implementiert im Werkzeug, das diese Befehle erzeugt.

  4. PrimärquelleCS Demo Manager

    Die Aliase voice_ct, voice_t und voice_STEAMID64, und dass sich die Team-Aliase auf die Startseite beziehen, nicht auf die aktuelle.

  5. PrimärquelleFACEIT

    Die drei Befehle, die FACEIT Spielern für die Demo-Auswertung nennt, und dass FACEIT-Demos Voice-Comms enthalten.

Themen

In diesem Artikel erwähnte Tools

Neue Tools per E-Mail

Neue Tools und gelegentlich ein ausführlicher Artikel, etwa einmal im Monat. Kein Spam, deine Adresse bekommt niemand, Abmeldung mit einem Klick.

Ähnliche Artikel

Titelkarte des Artikels. Ein Lautsprechersymbol, durchgestrichen von einer dicken bernsteinfarbenen Linie, mit der Zeile: the demo has no voice in it
Gaming Tools

Warum du in deiner CS2-Demo keine Stimmen hörst (Lösungen)

Keine Voice-Comms in einer CS2- oder FACEIT-Demo? Die echten Gründe - keine Sprache in MM/Premier-Demos, tv_listen_voice_indices ungesetzt, Resets - und die Fixes.

Titelkarte des Artikels. Zehn senkrechte Balken in einer Reihe, der vierte in Bernstein hervorgehoben, mit der Zeile: one slot out of ten
Gaming Tools

Die Stimme eines einzelnen Spielers in einer CS2-Demo hören

Einzelne Spieler in einer CS2-Demo hören: tv_listen_voice_indices Schritt für Schritt, wie die Slot-Bitmaske entsteht und wie du ein ganzes Team isolierst.

Article title card. Two columns of five dots either side of a dashed dividing line, the left column amber and the right grey, with the line: the server decides who was recorded
Gaming Tools

How to Hear the Enemy Team's Voice in a CS2 Demo

Whether you can hear the enemy in a CS2 demo depends on what the server recorded, not on your console. Which demos carry it, and the mask for one side.