⚡ 超低延迟音频传输
技术实现
- AudioWorklet播放器:使用Web Audio API的AudioWorklet降低主线程抖动,实现低延迟音频播放
- 区间缓冲:16/32帧配置,平衡延迟与稳定性
- PTT防抖机制:50ms防抖延迟,防止重复命令
- 缓冲区清除优化:TX释放时立即清除RX缓冲区
- Int16编码:相比Float32减少50%带宽
优化对比
| 指标 |
传统方案 |
MRRC优化后 |
| TX→RX切换 |
2-3秒 |
<100ms |
| PTT可靠性 |
95% |
99%+ |
| 音频带宽 |
256kbps |
128kbps |
🔧 WDSP专业降噪处理
集成Warren Pratt's Digital Signal Processing库,这是OpenHPSDR项目的高性能DSP库,广泛应用于Thetis、piHPSDR等专业业余无线电软件。
核心功能
🔇
NR2 频谱降噪
基于谱减法的降噪算法,15-20dB降噪深度,语音保真度极高,专门针对SSB语音优化
⚡
NB 噪声抑制
消除脉冲干扰,有效抑制电器火花、雷电等突发噪声
🎯
ANF 自动陷波
自动消除单频干扰,适用于CW报音、载波干扰等场景
📊
AGC 自动增益
4种模式可选:LONG/SLOW/MED/FAST,适应不同信号环境
与RNNoise对比
| 特性 |
WDSP (NR2) |
RNNoise |
| 降噪深度 |
15-20 dB |
10-15 dB |
| 语音保真度 |
⭐⭐⭐⭐⭐ |
⭐⭐⭐ |
| SSB优化 |
✅ 专门优化 |
❌ 通用语音 |
| 延迟 |
< 20ms |
30-50ms |
📱 移动端深度优化
触摸优化
- 大尺寸PTT按钮:底部居中设计,适配拇指操作区域
- 触摸增强:300ms防误触,长按/短按区分
- 触觉反馈:PTT按钮震动反馈(iOS/Android支持)
- 安全区域适配:自动适配刘海屏和底部指示器
PWA支持
- 添加到主屏幕:支持作为独立应用运行
- 离线访问:Service Worker缓存关键资源
- 快速启动:优化的启动流程,秒开应用
设备兼容性
📱
iPhone 15系列
✓ 完美支持
📱
iPhone 12/13/14
✓ 完美支持
📱
Android旗舰
✓ 完美支持
📱
iPad/平板
✓ 支持
📊 ATR-1000 功率计/天调集成
实时监测
- 功率显示:0-200W实时前向功率显示
- SWR监测:1.0-9.99实时驻波比显示
- 继电器状态:LC/CL网络、电感/电容值显示
- 显示延迟:<200ms实时更新
智能天调学习
学习条件
- 按实测前向功率判定发射(≥ 3W)——面板直发/外部软件路径同样可学习(V5.8.5)
- SWR 在 1.0 ~ 1.8 之间
- 继电器/调谐稳定后(1s 忽略窗口)连续 4 个稳定样本(SWR 波动 ≤ 0.08)
- 分级去重:恶化跳过、不变 5s 冷却、改善立即学习
快速调谐
- 切换频率时自动应用已学习的天调参数
- ±10kHz容差范围查找
- 参数持久化到JSON文件
SWR>2 自动完整调谐守卫(V5.8.0)
- 发射期间 SWR > 2.0 持续 ≥1.5s 自动触发 ATR-1000 完整调谐
- 30s 冷却 + 同一频率连续 3 次失败保护
- 调谐后的更优参数自动学习并持久化
协议细节
通信协议:WebSocket + JSON
数据帧格式:FF CMD LEN DATA...
响应示例:ff050701031b1e000e01
→ SW=CL, IND=30(0.3uH), CAP=27(270pF)
🎙️ AI语音助手
语音识别 (ASR)
- Whisper本地模型:OpenAI Whisper base模型,150MB,完全本地运行
- 实时识别:电台接收语音实时转文字
- 多语言支持:中文、英文、日文等
- 呼号识别:自动识别呼号格式
语音合成 (TTS)
- Qwen3-TTS集成:阿里巴巴1.7B模型,真正男中音
- 字母解释法:呼号自动转换为国际字母解释法发音
- 智能切换:中英文自动选择最佳语音
- PTT联动:按住发射按钮自动合成并发射
使用场景
接收识别:对方语音 → 文字显示在对话框
回复合成:输入文字 → 合成语音 → 按住PTT发射
呼号优化:"BG1SB" → "BG1SB (Bravo Golf One Sierra Bravo)"
🎚️ RagChew TX 音频处理链
V5.1 引入了完整的基于 Web Audio API 的发射音频处理链 — 为业余无线电打造的录音室级语音优化。
处理链 (V5.1+)
| 阶段 |
参数 |
数值 |
作用 |
| 4段均衡器 |
低切 / 中切 / 临场 / 高切 |
150Hz / -2dB@500Hz / +3dB@2.4kHz / 3kHz |
塑造 SSB 语音清晰度 |
| 动态压缩器 |
压缩比 / 启动 / 释放 |
3:1 / 5ms / 50ms |
稳定调制电平 |
| 噪声门 |
阈值 |
-50dB |
不说话时静音背景噪声 |
TX 均衡器预设 (传统三频段)
| 预设 |
低频 (<100Hz) |
中频 (1500Hz) |
高频 (>2700Hz) |
适用场景 |
| 短波语音 |
-20dB |
+6dB |
-20dB |
标准 SSB 通信 |
| 手机优化 |
-15dB |
+8dB |
-24dB |
手机麦克风 |
| 弱信号 |
-20dB |
+10dB |
-25dB |
DX / 竞赛 |
📶 实时网络监控
V5.3 引入了实时网络带宽与延迟监控,让操作者全面了解连接质量。
- 带宽显示:实时上下行吞吐量 (kbps)
- 延迟监控:WebSocket ping-pong 往返时间显示
- 视觉增强:发光效果、大字号、颜色分级阈值
- 状态栏精简:移除冗余的 CTL/RX/TX 连接指示器
📈 实时频谱显示
- WebGL加速:GPU渲染,流畅显示
- 瀑布图:时间-频率-强度三维显示
- 可配置参数:采样率、中心频率、增益
- RTL-SDR支持:支持RTL-SDR设备
📉 NanoVNA矢量网络分析仪
- Web界面:内置NanoVNA Web控制界面
- 独立PWA:可添加到主屏幕作为独立应用
- 实时测量:S11、S21参数实时显示
- 史密斯圆图:支持史密斯圆图显示
🛡️ PTT 安全防护系统 (V5.6+)
三层 TX 保护架构,专门防止远程电台操控中最危险的故障模式:电台卡在发射状态。每层提供独立保护,并具有冗余回退路径。
第一层:客户端守护 (浏览器)
👆
触屏滑动自动释放
手指滑出发射按钮 → 通过 touchmove/touchcancel 立即停止 PTT
🪟
页面隐藏强制停发
页面进入后台或窗口失焦且 TX 激活中 → 强制释放 PTT,最多防止 30 秒意外发射
⏱️
30 秒看门狗定时器
硬件看门狗:TX 状态激活超过 30 秒且无确认 → 强制释放
🔒
处理锁泄漏检测
处理锁持有超过 3 秒 → 自动释放,防止静默停发失败导致 TX 卡死
第二层:释放 ACK 协议
| 机制 | 描述 |
| ACK 重试 | 发送 setPTT:false 后,等待最多 1 秒服务端确认。若未确认,最多重传 3 次 |
| 冗余音频通路回退 | 每次重试时,同时通过 TX 音频 WebSocket 发送 s: 作为冗余释放路径 — 即使控制 WebSocket 半开也能工作 |
| 连接断开触发 | 3 次 ACK 重试失败后,强制通过 onControlConnectionDead() 重建控制通道 |
第三层:服务端保护
| 机制 | 描述 |
| 120 秒 TOT 硬限制 | 超时定时器:PTTSafetyMonitor 线程强制执行绝对 120 秒最大发射时长 |
| 持续重试 | PTT 释放每 2 秒重试一次,直到硬件确认状态变化 |
| 故障广播 | pttError:release_failed 或 pttError:tot_timeout 广播给所有连接的客户端 |