#频率 #FFT #声音 #音频样本

freq-det

使用FFT检测样本中最突出的频率

5个不稳定版本

0.3.1 2024年6月30日
0.3.0 2024年6月24日
0.2.0 2024年6月23日
0.1.1 2024年6月22日
0.1.0 2024年6月22日

286音频 类别中

Download history 330/week @ 2024-06-18 191/week @ 2024-06-25 23/week @ 2024-07-02

每月下载量222次

MIT/Apache

14KB
109

频率检测器

use freq_det::FreqDetector;

let detector = FreqDetector::new(44100, 4096).unwrap();
let freq: f32 = detector.detect(&samples).unwrap();

就这么简单!

参考 from_mic.rs 了解如何分析麦克风声音。

贡献

欢迎提交PR!


lib.rs:

使频率检测变得简单

use freq_det::FreqDetector;

let sample_count = 4096;

let sinusoid_440hz = (0..sample_count)
    .map(|i| {
        use std::f32::consts::TAU;
        (i as f32 / 44100.0 * 440.0 * TAU).sin()
        // noise
        + 0.9 * (i as f32 / 44100.0 * 100.0 * TAU).sin()
        + 0.9 * (i as f32 / 44100.0 * 120.0 * TAU).sin()
    })
    .collect::<Vec<_>>();

let freq_detector = FreqDetector::new(44100, sample_count).unwrap();
assert_eq!(freq_detector.detect(&sinusoid_440hz).unwrap().round(), 440.0);

依赖关系

~4MB
~74K SLoC