# 音频导航
这是一个 Minecraft 模组,用于添加音频导航功能,主要目的是为了让视力障碍的玩家更容易地玩游戏。它旨在补充,而不是取代 [Minecraft Access](https://github.com/minecraft-access/minecraft-access) 模组。此模组中的一些功能灵感来自 [Microsoft Soundscape](https://github.com/microsoft/soundscape)。
它可以在 Fabric 和 NeoForge 上运行(服务器和客户端),并且服务器端组件也可以在 Paper 和 Purpur 上运行。
## 依赖项
此模组运行在 Fabric、NeoForge 或 Paper/Purpur 上,并依赖于以下模组:
* Fabric API (仅 Fabric)
* Fabric Language Kotlin (仅 Fabric)
* Kotlin for Forge (仅 NeoForge)
* Architectury API (仅 Fabric 和 NeoForge)
* Fzzy Config (仅 Fabric 和 NeoForge)
* Eclipse (仅 Paper 和 Purpur)
此外,它使用一个 [本地库](https://github.com/emassey0135/audio-navigation-tts) 用于语音合成,该库将在首次启动时自动下载。该库已针对 Windows、MacOS 和 Linux 以及 x86_64 和 aarch64 编译。如果您使用不受支持的操作系统或架构,请提出问题,我会尝试添加它。模组会验证下载文件的哈希值,以确保正确下载。本地库不会在专用服务器上下载或使用。
您还可以从 [发布页面](https://github.com/emassey0135/audio-navigation-tts/releases/tag/0.3.1) 手动下载该库。下载适用于您的操作系统和架构的文件,将其放在您的 .minecraft 文件夹中,然后从 espeak-ng-data.zip 中提取 espeak-ng-data 文件夹并将其复制到您的 .minecraft 文件夹中。
## 注意事项
此模组必须同时在客户端和服务器端安装,因此如果您在服务器上玩游戏,则必须同时在您的客户端和服务器上安装它。此外,除非您使用安装此模组的世界生成来生成世界,否则树和其他功能的兴趣点将不会被创建。如果您进入未生成的区块,它会在那里保存兴趣点,但一旦区块生成,就为时已晚了。兴趣点存储在您的 .minecraft 文件夹中的 poi.db 文件中,或者如果您在专用服务器上玩游戏,则存储在 Minecraft 服务器根目录中。删除此文件将删除所有兴趣点。
## 当前功能
* 您将以配置的半径、垂直距离限制和最大公告数量为准,在通过时听到兴趣点公告。您将听到来自兴趣点方向的公告,并且在说话公告之前会播放声音,具体取决于兴趣点的类型。
* 当兴趣点被宣布时,它的名称始终会被说出来,并且可以选择说出它与您的距离和方向。方向也可以包含垂直分量,并且可以使用时钟手、方向和角度、仅方向、仅角度或指南针方向来说出水平分量。垂直分量可以作为方向和角度、仅方向或仅角度来说出,相对于您面向的方向或绝对方向。
* 当世界生成时,或者当您进入未生成的区块或以其他方式触发区块生成时,将为诸如树木、冰锥、末地岛屿、矿脉脉络等功能创建兴趣点。建筑物,如村庄,即将推出。
* 您可以通过按 F7 来宣布所有附近的兴趣点。此功能具有比默认自动公告更大的半径、垂直限制和最大 POI 数量。
* 您可以通过按 F9 随时停止语音。
* 您可以通过按 F6 打开菜单并按“添加地标”按钮来创建地标。它们被保存为兴趣点,并且在您通过时会宣布它们。您可以选择新的地标是否对其他玩家可见。
* 要删除地标,请打开菜单(按 F6),按“地标”,找到您想要删除的地标,然后按“删除”按钮。
* 您可以通过打开地标列表、找到您想要的地标并按“开始信标”来启动地标上的音频信标。这将从地标的方向开始发出持续的声音,您可以跟随它来找到地标。如果您面对它、背对它或朝相反方向时,声音会发生变化。
* 默认情况下,信标的距离和方向每 30 秒宣布一次。您可以在设置中更改时间、禁用距离或方向,或完全禁用此功能。
* 要停止音频信标,请打开菜单(按 F6)并按“停止信标”。
* 要宣布当前信标的距离和/或方向,请按 F8。
* 地标列表按半径过滤。要增加显示地标的半径,请按当前半径上的 Enter 键。
* 此模组具有极高的可配置性。要打开设置,请按 F6 打开菜单,然后选择“设置”。从那里,配置屏幕应该非常直观易于使用。
* 此模组可以使用多个语音合成器。 eSpeak NG 始终包含在内。在 Windows 上,还支持 SAPI 5,在 MacOS 上,该模组可以使用 AVSpeechSynthesizer 来使用所有 Apple TTS 语音以及暴露给系统 TTS 的第三方语音。
* 由于如果包含所有语音,语音列表会非常长,因此它按合成器和语言过滤。当您在语音设置中打开合成器或语言列表时,您可以选择一个或多个选项,这将更改语音列表的过滤方式。默认情况下,选择了所有语音合成器,但仅选择了当前 Minecraft 语言。
* 此模组中的信标声音取自 Soundscape,因此如果您熟悉 Soundscape 的信标名称,它们就是相同的声音。如果不是,您可以在信标运行时更改声音,并且在您更改设置时声音会发生变化。
# 服务器配置
在专用服务器上,您可以设置兴趣点将发送到客户端的最大半径。您还可以阻止将某些功能(例如矿脉)发送到客户端,无论客户端是否在客户端设置中启用了这些功能。在 Fabric 和 NeoForge 服务器上,这些可以在 config/audio_navigation/server_config.toml 中更改。在 Paper 和 Purpur 上,请在 plugins/AudioNavigation/config.yml 中更改它们。您还可以使用设置 UI 在 Fabric 和 NeoForge 服务器上更改服务器设置,方法是加入世界,按 F6,按“设置”,然后按“服务器设置”。