一款面向 Android 的实时音频分析工具:展示麦克风输入的频谱、自相关函数、基频、周期与音高,并以响度-时间曲线记录实时收音与录音过程。
- 实时频谱:FFT + Hann 窗,对数频率轴(40 Hz – 16 kHz),幅度以 dB 显示。
- 自相关图 R(Δt):归一化自相关(Δt 0–20 ms),Δt=0 恒为 1,周期性声音在基频周期整数倍处出现峰。
- 基频 / 周期 / 音高:YIN 基频检测,十二平均律音高(如 A4、C#5)及音分偏差;置信度低时显示
--。 - 响度-时间曲线:横轴时间、纵轴响度(dBFS),定位指针始终水平居中,曲线在其下滚动;实时为绿色、录音为红色,转换点时间归零。
- 录音与回放:内存中保留最近一次录音;回放时可在曲线上拖动(scrub)调整播放位置。
- 收音设备选择:内置 / 外置(USB、蓝牙等)麦克风。
- 可配置采样率与刷新速度:采样率 8 / 16 / 44.1 / 48 kHz;刷新速度 慢 / 正常 / 快。
- minSdk 24(Android 7.0),targetSdk / compileSdk 35(Android 15)。
- 需要录音权限
RECORD_AUDIO。
使用 Gradle 构建 debug APK:
./gradlew assembleDebug
# 产物:app/build/outputs/apk/debug/app-debug.apk构建签名 release 需要提供 keystore.properties 与签名密钥库(默认不入库):
./gradlew assembleRelease最新 APK 见 Releases。Release 页面由 GitHub Actions 在推送 v* 标签时自动构建发布。
- 全自研 DSP:FFT、YIN 基频检测、归一化自相关,无第三方音频库。
- 响度采用 dBFS(手机麦克风未经校准,不测量绝对声压级 SPL)。
本项目仅供学习与个人使用。