57762613a8e8d89095fe0bbda678e2ab14ffbd76
组装完整解码链路: 麦克风 PCM -> 重采样 3200Hz -> 20 秒滚动缓冲 -> 频谱图 -> ONNX 推理 -> 贪心 CTC -> 文本。 ICwDecoder 放 core:domain (纯 Kotlin, UI 可直接依赖), 实现放 core:data (需要 Android Context 读 assets 及 ONNX Runtime 原生库)。 关键设计: - decodedText 是替换语义不是追加: 模型会随上下文增加改写先前字符, 追加 会把中间态 (BM -> BG7 -> BG7NTA) 永久留在屏幕上 - 推理用 Mutex.tryLock 串行化: 上一次未完成时直接跳过本周期, 慢设备不会 堆积任务导致 OOM - 推理在 Dispatchers.Default, 不阻塞音频采集线程 - 模型元数据从 model.onnx.json 读取 (字符表/blank 索引/输入输出名), 不在 代码里硬编码, 模型更新时无需改代码 - lastInferenceMs 打点: 手机实际推理耗时需真机实测 (估算系数待验证) - estimatedPitch 由频谱峰值 bin 反算, 仅供 UI 显示 —— 模型 400-1200Hz 固定窗自带定频, 不需要频谱峰值跟踪参与解码 - 模型加载失败时 errorMessage 置位 (旧内核已删, 无兜底可退) - close() 释放 OrtSession, 否则原生内存泄漏 验证: ./gradlew :core:data:compileDebugKotlin => BUILD SUCCESSFUL
Look4Sat: Satellite tracker
Radio satellite tracker and pass predictor for Android, inspired by Gpredict
Track satellite passes with ease!
Thanks to Celestrak and SatNOGS you have access to over 9000 active satellites.
You can search the entire database by NORAD Catalog Number or the satellite's name.
Orbital positions and passes are calculated relative to your location.
To get reliable data make sure to set the station position via the app Settings.
The application is built using Kotlin, Coroutines, Jetpack Compose and Navigation.
It is now and always will be completely ad-free and open-source.
Main features:
- Predicting satellite positions and passes for up to 10 days
- Showing the list of currently active and upcoming satellite passes
- Showing the active pass progress, polar trajectory and transceivers info
- Showing the satellite positional data, footprint and ground track on the map
- Custom TLE satellite data import is available via Three Line Element .txt files
- Offline first: calculations are made offline. Weekly TLE data update is recommended.
Star History
Description
Satellite tracker and pass predictor for Android, inspired by Gpredict
https://play.google.com/store/apps/details?id=com.rtbishop.look4sat
55 MiB
0 Stars
1 Watchers
0 Forks





