在 Minecraft 里实现距离语音聊天:这个 Mod 让声音有了方向
在 Minecraft 里和朋友联机时,很多人会另外开 Discord 或 YY 语音。这样当然能交流,但也少了一层重要的空间信息:你在矿洞里挖矿,队友在地面基地盖房子,耳机里的声音却不会因为距离和位置发生变化。你听得见他说话,却不知道他在什么方向,更不知道他离自己有多远。
Simple Voice Chat 解决的正是这个问题。它把语音聊天直接放进 Minecraft 世界,根据玩家位置实现距离语音(proximity voice chat)。玩家靠近时,声音更清楚、更响亮;逐渐走远后,声音会变小,最后完全消失。声音还会根据方向从不同声道传来,因此你可以判断说话者大致位于左侧、右侧,还是身后。
Simple Voice Chat 是一个使用 Java 编写的开源项目,支持 Fabric、NeoForge、Forge、Quilt,以及 Bukkit、Spigot、Paper 服务端,同时兼容 Velocity 和 BungeeCord 等代理。GitHub 仓库目前已有 700 余个 Star,项目功能和支持平台可以参考官方仓库 README。
距离语音:多人交流终于有了空间感

Simple Voice Chat 的核心是位置音频(positional audio)。每个玩家的语音都会根据游戏中的实际距离和相对方向进行处理。离得近,声音更大;离得远,声音会逐渐减弱。对方站在左边,声音主要从左耳传来;对方移动到右侧,声场也会跟着变化。
这会直接改变多人服务器里的交流方式。
在生存服中,你必须走到队友身边才能正常交谈,离开之后自然听不清对方的声音,效果和现实中的面对面交流很接近。PVP 服务器则可以利用声音判断敌人大致所在的位置。对于 RP 服务器来说,玩家只有在角色真正面对面时才能听清对话,沉浸感也比单独开 Discord 更强。
语音距离可以由服务器管理员调整。默认距离通常是几十个方块,调大后,城镇范围内的玩家都可能听见彼此说话;调小之后,只有靠得很近才能交流。模组还提供低语(whisper)模式,可以把声音压缩到非常短的范围,适合进行私下交谈。
独立 UDP 连接与音频处理
Simple Voice Chat 的语音数据不会占用 Minecraft 的主连接。游戏本身通常使用 TCP 连接,而语音聊天会额外建立 UDP 连接。服务器默认需要开放 24454 UDP 端口,端口没有放行时,语音功能就无法正常工作。官方 README 也把这项配置单独列为重要提醒。
这一点很容易被服务器管理员忽略。很多人只开放了 Minecraft 常用的 25565 TCP 端口,却忘记防火墙还需要允许 UDP 流量。只有端口开放并且客户端、服务端都正确安装后,语音连接才会建立。
音频编码使用 Opus。它是面向实时通信设计的开源编解码器,特点是延迟较低、音质稳定,并且可以根据网络情况动态调整码率。Discord、Zoom、TeamSpeak 等语音软件也广泛使用 Opus,因此 Simple Voice Chat 不需要为了游戏语音重新设计一套编码方案。
降噪部分使用 RNNoise。这是一种基于循环神经网络(RNN)的实时降噪算法,能够降低键盘敲击、风扇运转以及周围环境声音带来的干扰。对于游戏语音而言,这个功能相当实用。毕竟队友的机械键盘声不应该盖过战斗中的指挥。
语音播放使用 OpenAL,并提供 3D 音频效果。配合 HRTF(Head-Related Transfer Function,头部相关传输函数)后,即使使用普通耳机,也能获得更明确的方向定位。语音数据会经过 AES 加密传输,不过开发者也明确表示,他们不对这套加密机制的绝对安全性作保证。
群组聊天:不受距离限制的第二条语音线路

距离语音适合身边交流,但团队行动时,队友可能分散在地图各处。比如多人挑战副本、分头寻找资源,或者在 PVP 战场上分别占据不同位置,此时单靠附近语音就不够用了。
Simple Voice Chat 提供了群组聊天功能。玩家可以在语音菜单中输入群组名称创建频道,也可以设置密码,限制其他人加入。进入群组后,成员之间不再受到游戏距离限制,无论相隔多远都能保持通话,同时仍然可以听见附近非群组玩家的距离语音。
群组成员的头像会显示在屏幕左上角。有人说话时,对应头像会被高亮或描边,玩家可以快速知道当前是谁在发言。这个设计在大型服务器中很方便:朋友可以创建一个只有自己人知道密码的群组,在地图不同区域活动时继续保持联系;PVP 队伍也能用它进行战术沟通,不必额外切换到 Discord。
跨加载器与跨服务端兼容
Simple Voice Chat 的另一个特点,是它没有把语音功能绑定到某一个 Mod 加载器。Fabric、NeoForge、Forge、Quilt 客户端,以及 Bukkit、Spigot、Paper 服务端,都可以通过统一的语音协议进行通信。对 Minecraft Mod 生态来说,这种跨平台兼容并不常见,因为 Fabric Mod 和 Forge Mod 通常并不能直接互通。
它的实现思路是把语音协议独立出来。客户端负责采集麦克风声音和播放接收到的音频,服务端则负责处理连接并把语音数据转发给对应玩家。协议层不依赖某一个加载器的专用 API,因此客户端使用哪一种加载器,不会直接影响语音通信。
Velocity、BungeeCord 和 Waterfall 代理也在支持范围内。对于拥有多个子服务器的网络来说,玩家从生存服切换到小游戏服后,语音连接可以重新连接到新的服务器,不需要像使用外部语音软件那样手动更换频道。
安装与配置
客户端安装流程比较直接。下载与游戏版本和加载器相匹配的 Mod 文件,将其放入 mods 目录。首次进入安装了 Simple Voice Chat 的服务器后,可以按 V 键打开语音菜单,设置麦克风、扬声器和其他音频选项。
服务端需要额外完成端口配置。除了安装对应的 Mod 或插件,还必须开放默认的 24454 UDP 端口。端口开放之后,管理员可以在服务端配置文件中修改语音距离、同时说话人数、群组功能以及其他服务器级选项。
客户端设置可以通过 V 键菜单进入,常用选项包括麦克风灵敏度、降噪、3D 音效强度和单独玩家音量。某个队友声音太小或太大时,也可以单独调整,不会影响其他玩家。
按键说话与语音激活
Simple Voice Chat 支持按键说话(Push to Talk)和语音激活(Voice Activation)两种模式。
按键说话需要按住指定按键才能传输声音,适合房间里有较多背景噪音的环境。键盘声、风扇声或者家人交谈都不会在没有按键时被传进游戏。
语音激活则会检测麦克风输入音量。当声音超过设定阈值,系统才会开始传输,适合相对安静的环境或直播场景。它还提供自动麦克风增益调节,会根据说话音量调整麦克风灵敏度;自动语音活动检测(VAD)则负责区分说话声和普通噪音,减少误触发。
两种模式都可以在设置菜单中随时切换,不需要重启游戏,也不必重新连接服务器。
API 与扩展生态
Simple Voice Chat 提供了 API,其他 Mod 和插件可以在此基础上开发扩展。现有扩展方向包括 Discord 桥接、语音录制、自定义音效、语音转文字,以及通过语音命令触发游戏操作等。
其中,语音录制可以把游戏内的语音保存为多轨音频文件。后期制作视频时,不同玩家的声音能够分别放在独立音轨中,剪辑会方便很多。语音转文字则可以把玩家说话内容转成游戏内聊天文字,适合记录指挥或辅助听障玩家交流。
项目维护者还提供了扩展列表,开发者可以通过 API 创建自己的功能。这样一来,Simple Voice Chat 不只是一个负责传输声音的 Mod,也成为其他开发者构建语音功能的基础。
创建和管理群组
创建群组的操作很简单。打开语音菜单,点击群组按钮,输入群组名称,并根据需要设置密码,确认后即可建立频道。
其他玩家可以从群组列表加入开放群组,也可以通过 /voicechat invite <playername> 邀请指定玩家。群组界面会显示成员头像,正在说话的玩家会被突出标记。点击头像后,还可以调整该成员的单独音量,或者直接屏蔽对方语音。
Minecraft 原本的多人交流主要依靠文字聊天,外部语音软件虽然解决了“听不见”的问题,却无法表达玩家在游戏世界中的距离和方向。Simple Voice Chat 将这部分空间信息重新放回游戏里,让声音随着玩家的位置变化。
它使用 Opus 编码、RNNoise 降噪、OpenAL 3D 音频和独立 UDP 传输,组成了一套完整的距离语音系统。跨加载器兼容让 Fabric、Forge 等不同平台的玩家可以一起交流,群组功能则弥补了远距离协作时的不足。
对于生存、RP、PVP 或副本服务器来说,Simple Voice Chat 带来的变化并不只是“多了一个麦克风入口”。当你必须走到队友身边才能听清他说话,或者在黑暗矿洞里先听见声音再判断来者方向时,Minecraft 的多人体验会变得完全不同。
项目地址:github.com/henkelmax/simple-voice-chat
评论与互动
条评论登录后发表观点、使用图片表情并回复其他玩家。
登录参与讨论正在加载评论
还没有评论
分享你的第一条真实体验