Skip to content

Export Voice

unicbm edited this page Jul 4, 2026 · 5 revisions

Export Voice and Chat

DemoTracer 会处理两类 demo-backed 交流数据:

  • Voice 语音:可选导出,写成每回合 .dtv sidecar。
  • Chat 文字聊天:默认导出,写进 manifest.json,不需要额外开关。

它们都来自 demo 本身。Demo 没有对应数据时,DemoTracer 不会凭空生成语音或聊天内容。

GUI 导出

GUI 中 Export voice if present 默认启用。常规流程是选择 .dem、Analyze、Convert。

如果 demo 中存在可用游戏内语音,输出目录会包含 voice/roundXX.dtv。如果 demo 没有 可用 voice frame,路线 replay 仍会正常导出,只是不会生成 voice/

文字聊天不需要 GUI 选项。可用聊天事件会随 manifest.json 自动写入 rounds[].chat_messages

CLI 导出语音

CLI 默认不会导出语音。要导出 demo 自带游戏内语音,在正常 convert 命令后加 --export-voice

cs2-demotracer.exe convert --demo "<demo.dem>" --output "<output-dir>" --export-voice

转换后应该看到类似结构:

<output-dir>/
  <demo-id>/
    manifest.json
    round00/t/*.dtr
    round00/ct/*.dtr
    voice/
      round00.dtv
      round01.dtv

voice/roundXX.dtv 就是语音 sidecar。只复制 .dtr 不会带上语音。

聊天不在单独文件中。它在:

manifest.json -> rounds[].chat_messages

因为聊天是低频短文本 metadata,通常体积很小,默认放在 manifest 中更合适。

不是所有 demo 都有语音

更可能包含语音:

  • 社区服 demo。
  • FACEIT demo。
  • 5E demo。
  • 其他保留游戏内 voice netmessage 的服务器录像。

没有生成 voice/ 时,先检查:

  • 转换命令有没有传 --export-voice
  • demo 本身是否录到了游戏内语音。
  • 玩家是不是实际使用了游戏内语音。
  • 平台是否剥离了 voice data。

同时导出饰品

语音和饰品互相独立。要同时导出语音和 demo-backed 饰品证据:

cs2-demotracer.exe convert --demo "<demo.dem>" --output "<output-dir>" --export-voice --export-cosmetics --acknowledge-cosmetic-gslt-risk --accept-cosmetic-export-disclaimer

贴纸和挂件也需要时:

cs2-demotracer.exe convert --demo "<demo.dem>" --output "<output-dir>" --export-voice --export-cosmetics --export-stickers --export-charms --acknowledge-cosmetic-gslt-risk --accept-cosmetic-export-disclaimer

服务器播放

在服务器控制台开启自动语音,然后播放 manifest:

dtr_voice_auto on
dtr_chat_auto on
dtr_go seq "<manifest.json>" 0

dtr_chat_auto 默认就是 on,显式写出来只是方便测试链路更清楚。

完整本地测试 preset:

dtr_replay_identity steam; dtr_align full; dtr_match full; dtr_cosmetics full; dtr_partial 1; dtr_handoff death_contact_c4 slot; dtr_voice_auto on; dtr_chat_auto on; dtr_go seq "<manifest.json>" 0

如果你在观察者位置测试原生玩家文字聊天,需要先设置:

sv_full_alltalk 1

单独 sv_allchat 1 不足以保证 spectator 看到 replay bot 发出的 native text chat。

如果听不到声音,优先看:

dtr_voice_auto status
dtr_chat_auto status
dtr_runtime
dtr_status

常见问题:

  • voice_auto=unavailable:更新完整 server bundle,尤其是 BotController。
  • voice_auto=map_failed:sidecar speaker 没有映射到当前 loaded replay bot。
  • voice_auto=no_human_recipients:服务器里没有可接收语音的 live human client。
  • 文字聊天没有出现:确认 manifest.json 中存在 rounds[].chat_messages,且 dtr_chat_auto statuson。观察者看不到 native text chat 时先设置 sv_full_alltalk 1

更完整的语音/聊天机制、多人同时说话、freezetime 和队伍听音说明见 Voice and Chat Replay

Clone this wiki locally