2个不稳定版本
0.2.0 | 2021年10月1日 |
---|---|
0.1.0 | 2021年9月29日 |
#914 in 音频
18KB
361 行
描述
Ridgeline是一个用于简化流信号频谱分析的crate。
更多信息,请参阅文档。
用法
SignalSource
特质定义了信号的行为。《SystemAudio
》是《SignalSource
》的一个实现,可以从系统音频设备流式传输音频样本。
Spectrometer
是一个迭代器,它包装了《SignalSource
》并产生《Spectrum
》。
Spectrum
包含信号在某一时刻的频率数据。可以使用《Spectrum::amplitude
》查询给定频率的幅度。
示例:获取主频率
use std::{thread::sleep, time::Duration};
use ridgeline::*;
// Stream audio from the default input device
let audio_input = SystemAudio::from_default_device().unwrap();
// Create a `Spectrometer` from the audio input stream with 5000 FFT buckets
// The actual FFT buffer uses SIZE * 2 buckets, but only the lower half is usable
let spectrometer = audio_input.analyze::<5000>();
// Print the frequency with the highest amplitude
for spectrum in spectrometer {
println!("{} Hz", spectrum.dominant());
sleep(Duration::from_millis(10));
}
依赖关系
~3–7.5MB
~133K SLoC