语音与一键通话(Push-to-Talk)
NextATC 有两个相互独立的语音功能。它们彼此独立,可以分别开启或关闭:
NextATC 有两个相互独立的语音功能。它们彼此独立,可以分别开启或关闭:
- TTS(文本转语音):管制员说话。您阅读或聆听。
- 语音识别(STT):您说话。管制员聆听。
您可以同时使用两者、只使用其中之一,或都不使用。即使两者均关闭,Radio Log 仍能正常工作。插件在纯文本模式下完全可玩。如果语音功能出现任何问题,请切换回文本模式(见最后一节),您的飞行可以正常继续。
TTS —— 让管制员说话#
打开 Plugins -> NextATC -> Options,启用:
Read ATC messages (TTS)—— 管制员会说话,而不仅在 Radio Log 中显示文字。
这就是您所需的全部设置。默认使用本地 X-Plane/操作系统语音。自定义语音(Azure、自定义 Windows 语音)需要单独配置。云端语音选项请参阅 Azure Setup。
在 Options -> Voice 中选择 Speech engine:Operating system(默认),Microsoft Azure,Kokoro (offline) 或 Piper (offline)。Azure 需要额外的设置,请参见 Azure 设置。Operating system 使用已安装的系统语音。Kokoro 与 Piper 在下载模型后可在本地合成语音。
Disable voice on readback 让您自己的飞行员语音保持静音,仅由 ATC 发声。大多数飞行员都保持启用。
本地语音:Kokoro 和 Piper#
NextATC 内置 Kokoro 和 Piper 语音引擎。与 X-ATC-Chatter 通过 VoiceBox 使用这些语音的方式不同,NextATC 不需要运行 VoiceBox 或其他独立应用。
- 打开
Options -> Voice并在Speech engine中选择Kokoro (offline)或Piper (offline)。语音目录会弹出;需要时可再次使用Voice roles / Download...打开。 - 勾选标记为
Download的语音,然后点击Download selected。推荐的语音已预先选中。下载需要网络连接,下载完成后合成在本地进行。若想取消下载可使用Cancel download,关闭目录后下载仍会继续。 - 安装完成后,点击任意语音即可选择并预览飞行员语音。
ATC复选框用于选择控制员/交通的语音池。 - 使用
Test current ATC或Test random ATC进行试听,然后点击Save voice roles保存。保持Read ATC messages (TTS)开启并在完成后保存 Options。
Disable voice on readback 同样适用于已选的飞行员语音。音量和无线电语音效果在 Azure、Kokoro 与 Piper 中均可调,在 Windows 上也适用于操作系统语音;在 macOS 和 Linux 上,操作系统语音则使用其原生音频通道。
Kokoro 或 Piper 发声时帧率下降#
本地语音在 CPU 上生成,因此每次通话都会短暂地与模拟器争用资源;在交通通话较多的繁忙机场,这一点更加明显。在 macOS 和 Windows 上,语音工作进程已经以低于 X-Plane 的优先级运行。最轻量的本地语音是在 Piper 目录中启用 Light models(默认设置)的 Piper 语音:它们所需的 CPU 约为高质量 Piper 模型的八分之一,并标记为 light。对于 Kokoro,请保持启用 Compact model (114 MB instead of 325 MB)(默认设置):与标准模型相比,它需要稍少的 CPU 和磁盘空间,语音质量略低。两者的语音都保持不变;请确保已使用 Download selected 下载所选模型。在安装完成之前,引擎会继续使用磁盘上已有的模型。Microsoft Azure 语音在云端生成,合成时不占用本地 CPU。
Radio Box 的两个活动 LED 表示什么?#
ATC/Ground Services 旁边的两个小 LED 分别显示两种无线电音频源。靠近按钮的绿色 LED 在 NextATC 占用无线电播放 TTS 时亮起。其左侧的琥珀色 LED 在 X-ATC-Chatter 报告正在播放语音片段时亮起。空心 LED 表示相应音源处于空闲状态;如果两个 LED 同时亮起,则表示两种音频正在重叠播放。
语音识别 —— 对管制员说话#
语音识别读取您说的内容,并将其转换为复诵或动作。这是一项实验性的 AI 辅助功能,但不是自由聊天机器人。当前流程被有意设计得很窄:
- ASR/STT 模型把麦克风音频转写成文本。
- 插件把这些文本与当前 ATC 流程正在等待的复诵、飞行员消息或动作选项进行比较。
- 只有重要的运行内容匹配时,ATC 流程才接受输入:呼号、跑道、高度、频率、应答机码、航向及类似项目。
这种设计让飞行流程保持确定性。它也意味着一句话即使被正确转写,如果运行内容不符合 ATC 当前等待的内容,仍然会被拒绝。
它需要:
- 已安装识别模型。打开 Options,在
Voice Models下点击缺失的模型进行下载。 - 在
Options -> Speech中选择一个可用的麦克风。 - 已为
NextATC/voice_push_to_talk绑定按键或操纵杆按钮。
在 X-Plane 的 Settings -> Keyboard 中绑定按键。搜索 NextATC,将 voice_push_to_talk 分配给一个您能舒适按住的键(许多用户选择小键盘 0、摇杆顶部按钮或 Tab 键)。
识别模型与预期#
Options 页面列出多个语音识别模型,方便你根据麦克风、口音、硬件和语言选择合适模型。这个区域仍处于实验阶段。较大的模型可能更慢、占用更多磁盘空间,或与基准模型表现不同。
请从 Whisper Base English 开始。对于英语 ATC readback,它是最可预期的选择。只有在需要更好的口音处理且可以接受更慢的本地转写时,再尝试 Whisper Small English 或 Whisper Medium English。如果所选模型运行太慢或返回的文本可用性较低,请切回 Whisper Base English。
默认情况下,识别使用英语 Whisper 模型。只有在需要更好识别非英语机场名、城市名或本地发音时,才启用 Multilingual model support。这会下载与当前模型大小匹配的多语言版本,并与英语模型分开保存。所选模型下载完成后,语音识别会自动启用,并显示 push-to-talk 提示。
如果下次启动插件时找不到当前选中的有效模型版本,语音识别会被禁用,而不会保留一个不存在的模型选择。
GPU 加速让 Whisper 更快地处理麦克风音频;它不负责生成管制员的 TTS 语音。使用相同的识别模型时,启用 CUDA 或 Metal 不保证转写更准确。如果识别似乎有所改善,也请检查所选模型、麦克风和录制的音频。
当 Options 中 Use GPU acceleration 可用时,它会在受支持的 Apple silicon Mac 上选择 Metal,在 Windows 上选择 NVIDIA CUDA。Windows 安装包包含 CUDA 模块,并要求 PC 安装 CUDA Toolkit 12.8 或 12.9。安装后请重启 X-Plane;Steam 版和独立版的工作方式相同。CUDA 作为单独的可选模块加载,因此缺少 GPU、驱动程序或运行时不会阻止 NextATC 启动。关闭此选项可强制使用 CPU。GPU 设置、模型初始化或推理发生可恢复错误时会改用 CPU 重试;上游 GPU 运行时内部的致命错误无法在同一进程内恢复。
多语言模式会让 Whisper 自动检测说话语言。它不会把 NextATC 变成非英语的 ATC 对话:NextATC 所期待的复诵用语仍然是英语。
最好把语音识别视为普通 Radio Log 之上的便利层。它有助于沉浸感,但文本按钮始终是可靠的 fallback。
两种 PTT 模式#
PTT 键有两种使用方式。请选一个并坚持使用。
Hold(按住)模式(电台模式)#
- 按住PTT 键。
- 在按住期间讲话。
- 讲完后释放按键。
这就是真实电台的工作方式。它是默认模式,对大多数用户而言也最可靠。
Toggle(切换)模式(按一次/再按一次)#
- 按一次 PTT 键开始监听。
- 讲话。
- 再按一次 PTT 键停止监听。
如果您的 PTT 键不便于按住(例如某个单一摇杆按钮还有其他用途),Toggle 模式很有用。在 Toggle 模式下,插件还可以在数秒静默后自动停止监听。
当前模式在 Options -> Speech 中配置。如果修改了模式,请在地面先测试一次,再在飞行中依赖它。
完整复诵流程,分步说明#
这是管制员期望的顺序:
- ATC 说了一句话,出现在 Radio Log 中(如启用 TTS 还会发声)。
- Radio Log 显示
Readback与Say Again按钮。 - 按住(或切换)您的 PTT 键。
- 念出复诵。例如:「Climbing flight level two zero zero, AAL67」。
- Radio Log 显示灰色预览,其中是识别到的词。
- 释放 PTT 键(在 Toggle 模式下则再按一次)。
- 预览会被提交。如果复诵匹配,ATC 会接受它,Radio Log 会高亮已接受的提示。
如果复诵未被接受,管制员会要求 Say again。请参阅下一节。
「转写正确,但 ATC 仍然 Say Again」#
这是最常见的混淆。灰色预览只表示麦克风识别到了那些词。它还不意味着管制员接受了它们。
可能的原因,按可能性顺序排列:
- 您过早或过晚释放了 PTT 键。识别器在释放时停止。请在最后一个字与释放之间留一个清晰的停顿后再试一次。
- **您使用的措辞与
Readback按钮期望的不同。**所需的精确措辞会以小提示形式出现在Readback按钮下方作为语音指南。请尽量匹配。无需逐字一致,但关键的数字(呼号、高度、跑道、频率)必须存在。 - 转写漏掉了一个数字(例如说 flight level 而不是 FL200)。请清晰地念出每一位数字:「two zero zero」,而非「two hundred」。
- 您在电台准备好之前就开口了。请等待
Readback按钮出现后再按 PTT。 - 背景噪音或游戏声音。插件使用在 Options 中选择的麦克风。在某些耳机、操作系统和驱动程序组合中,启用蓝牙麦克风可能会选择另一种音频配置;音质可能因此发生变化,也可能出现咔嗒声。NextATC 无法预测每种设备的这种行为。如果遇到此现象,请尝试有线麦克风或电脑内置麦克风。
如有疑问,您可以随时用鼠标点击 Readback 跳过语音。飞行会以完全相同的方式继续。
「我没法让语音工作。如何切换回文本模式?」#
这是安全且快捷的方式。您不会丢失飞行进度。
- 打开
Plugins -> NextATC -> Options。 - 在
Options -> Speech中关闭语音识别(输入端 —— STT)。 - 如果您也不想让管制员发声,可选关闭
Read ATC messages (TTS)。 - 确保
Radio Log为Enabled。这就是文本通信流。 - 关闭 Options。
Radio Log 现在以文字形式显示每一条 ATC 消息,您可以用鼠标或 NextATC/handoff 命令点击 Readback / Say Again。其余所有内容(放行、滑行、爬升、着陆)的工作方式保持不变。
「我关闭了语音,现在完全看不到任何消息」#
通常有两项被关闭:
- Options 中
Radio Log -> Enabled被关闭。 OSD flash messages被关闭且 TTS 也关闭,因此既不会发声也不会闪烁。
修复方法:
- 打开 Options。
- 将
Radio Log -> Enabled设为开。 - 将
Max visible lines设为至少 4。 - 保存并关闭。
下一条 ATC 消息出现时,Radio Log 会重新显示。如果启用了 Show anchor dot when hidden,您也可以点击小锚点将其手动调出。
如果语音识别一直失败#
按以下顺序检查:
- 麦克风:另一个应用(例如语音录音机)能听到您的声音。
- 已安装模型:所选识别模型已经下载。Options 页面会显示下载状态。
- 语言:默认使用英语 Whisper 模型。只有本地的非英语名称导致识别问题时,才启用多语言模型支持;必须另行下载对应的多语言版本。
- Runtime 支持:如果较大的实验模型不产生文本,请切回
Whisper Base English。 - PTT 键:X-Plane 命令
NextATC/voice_push_to_talk只绑定到一个键。 - Hold 或 Toggle:您使用的是您所配置的模式,而非另一种。
如果以上都无效,请切换到文本模式并报告机场和频率。使用内置报告器或将受影响的可读 X-Plane/Log.txt 附件随 Web 问题报告提交;详见 错误报告与功能请求。
Windows 上的 SAPI5 语音#
在 Windows 上,Operating system 语音引擎使用 WinRT 语音 API 以及该 API 报告的语音。NextATC 不使用 SAPI5。如需更多无需云账户的本地语音,请选择 Kokoro (offline) 或 Piper (offline):两者在下载语音模型后均在本地合成。
另见#
- Azure 设置 —— 让管制员的声音听起来不那么机械。
- 故障排查 —— 通用故障排查。
- 选项参考(Options Reference) —— 每一项语音相关选项的说明。