Skip to content

Repository files navigation

EchoCompass 回声罗盘

A sound-direction radar for deaf and hard-of-hearing FPS players: it listens to the game's binaural (headphone) audio output and translates gunshots and footsteps into a visual compass — on your PC, on an ESP32 round LCD, or on your phone.

给听障 FPS 玩家的声音方向雷达。监听游戏发给耳机的双耳音频,把枪声和脚步的方向翻译成画面——电脑窗口、ESP32 圆屏、手机浏览器,三块屏任选。

项目定位,先说实话:这不是一个开箱即用的成品。它是一副经过实测验证的骨架——采集、方向解算、事件检测、三端显示的完整链路都通了,但实战表现还不稳定(详见"已知边界")。开源它是想把思路和踩过的坑留下来,希望有人接着把它做好。欢迎 PR,欢迎拿去改。

它做什么

  • 方向雷达:枪声显示为红色尖刺星形,脚步显示为蓝色圆点,左右方向(±90°)实时指示
  • 突发威胁警报:长时间安静后突然出现枪声,整屏红光爆闪三下,余光可及
  • 手机即雷达:无需任何硬件,手机浏览器打开即用,与圆屏画面同步

听得见的人用耳朵,听不见的人用眼睛。信息是同一份,谁也没多拿。

快速开始

pip install -r requirements.txt
python main.py

游戏内设置(以三角洲行动为例):声音输出模式选 耳机,HRTF 开 基于对象的双耳声,输出设备为系统默认播放设备。

手机雷达:手机与电脑同一局域网,浏览器打开 http://<电脑IP>:8090,点全屏。

硬件圆屏(可选)

  • 板子:ESP32-S3 + 1.28 寸 GC9A01 圆屏(240×240,如 Waveshare ESP32-S3-Touch-LCD-1.28)
  • 固件:echo_compass_fw/echo_compass_fw.ino,依赖 TFT_eSPI 库
  • 引脚在 TFT_eSPI 的 User_Setup.h 中配置:MOSI=11 SCLK=10 CS=9 DC=8 RST=12 BL=40,GC9A01_DRIVER + USE_HSPI_PORT
  • 烧录后插 USB,程序启动时自动识别串口(CH343);先插圆屏,再启动 main.py

工作原理

现代 FPS(三角洲行动、无畏契约等)并不输出真正的多声道环绕,方位信息全部编码在发给耳机的两个声道里。人耳分左右靠的是高频的双耳响度差(头影效应),低频绕过头部、两耳几乎无差。程序在声音起音的瞬间截取直达声小窗,滤掉低频后计算两耳响度差,换算成角度。纯信号处理,零模型、零训练数据、零联网。

已知边界(如实说)

  • 左右方向实战中经常不稳。合成信号上 ±90° 全程贴住,但真实游戏里,削顶(贴脸巨响)、墙壁反射、混响、多声源叠加都会把角度带偏,光点漂移和错边是常态,只能说"多数时候指对边",离可靠还有距离
  • 脚步/枪声分类经常出错。目前靠响度规则粗分(够响=枪),远处的枪会被标成脚步,响的脚步会被标成枪;频谱特征分类器在真实游戏音频上翻过车,已停用。正路大概是 1D-CNN 之类的轻量模型
  • 前后方向分不出来。两声道双耳信号里前后线索只剩微弱的频谱染色,这是物理边界,规则法无解,业内用模型也只做到约七成
  • 嘈杂野外的远处轻脚步检测不到。-38dB 的脚步泡在 -35dB 的风声鸟叫里,能量法原理上分不开
  • 多个声源同时发声只显示其中之一

一句话:能稳定兑现的是"附近有大动静时,大致哪边",再往上的精度目前都要打引号。

7.1 离散声道路径(遗留,但更准)

echo_compass/direction.py 里还保留着一套8 声道能量法(按声道方位角加权求和),配套的测试脚本(test_71_*.pygenerate_test_71.py 等)也都在。这条路在真正的离散多声道输入下方向相当准——问题在于实测主流 FPS(三角洲行动、无畏契约)根本不输出真环绕,喂进真 8 声道虚拟设备后,定向声源仍只落在前置左右两个声道,所以主线才转向了解双耳。如果你的游戏或音频链路能提供真离散环绕(部分老游戏、影音内容、自定义场景),这条路径值得优先用,代码按输入声道数自动选择算法。

它和外挂是两个物种

本工具不碰游戏进程、不读内存、不看画面、不碰输入,唯一的信息来源是操作系统的音频输出——也就是你耳机里正在播放的那份声音。它做的事情只有一件:把听力玩家本来就免费拥有的信息,还给听不见的玩家。

Roadmap

  • 前后方向:HRTF 高频频谱特征 + 轻量模型(业内已验证约 70% 可达)
  • 灵敏模式调优:安静场景轻脚步检测(代码中已有开关 SIMPLE_MODE=False)
  • 脚步/枪声分类升级:1D-CNN 替代响度规则

License

MIT

About

Sound-direction radar for deaf and hard-of-hearing FPS players | 给听障 FPS 玩家的声音方向雷达

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages