3个版本 (破坏性更新)
0.3.0 | 2022年6月30日 |
---|---|
0.2.0 | 2020年11月13日 |
0.1.0 | 2019年3月17日 |
在 音频 中排名第290
每月下载量301次
1MB
668 代码行
pitch_detection
使用方法
use pitch_detection::detector::mcleod::McLeodDetector;
use pitch_detection::detector::PitchDetector;
fn main() {
const SAMPLE_RATE: usize = 44100;
const SIZE: usize = 1024;
const PADDING: usize = SIZE / 2;
const POWER_THRESHOLD: f64 = 5.0;
const CLARITY_THRESHOLD: f64 = 0.7;
// Signal coming from some source (microphone, generated, etc...)
let dt = 1.0 / SAMPLE_RATE as f64;
let freq = 300.0;
let signal: Vec<f64> = (0..SIZE)
.map(|x| (2.0 * std::f64::consts::PI * x as f64 * dt * freq).sin())
.collect();
let mut detector = McLeodDetector::new(SIZE, PADDING);
let pitch = detector
.get_pitch(&signal, SAMPLE_RATE, POWER_THRESHOLD, CLARITY_THRESHOLD)
.unwrap();
println!("Frequency: {}, Clarity: {}", pitch.frequency, pitch.clarity);
}
实时演示
文档
在文档中可以使用LaTeX公式。这通过在rust-latex-doc-minimal-example中概述的方法启用。要构建文档,使用
cargo doc --no-deps
需要使用--no-deps
标志,因为包含特殊头文件来自动处理文档中的数学。此头文件使用相对路径指定,因此如果cargo
尝试为依赖项生成文档,则会产生错误。
依赖项
~3MB
~57K SLoC