#重采样 #声音 #sox #soxr

libsoxr

libsoxr的包装器(用于声音的重采样库)

12个版本

0.2.9 2023年4月12日
0.2.8 2022年2月1日
0.2.7 2021年5月23日
0.2.5 2021年2月24日
0.1.6 2020年12月24日

#138音频

Download history 43/week @ 2024-04-22 8/week @ 2024-05-13 19/week @ 2024-05-20 9/week @ 2024-05-27 10/week @ 2024-06-03 12/week @ 2024-06-10 16/week @ 2024-06-17 12/week @ 2024-06-24 10/week @ 2024-07-08 9/week @ 2024-07-15 4/week @ 2024-07-22 176/week @ 2024-07-29 423/week @ 2024-08-05

每月613次下载
用于 3 个crate(2个直接使用)

LGPL-2.0

1MB
737

包含 (WOFF字体,190KB) docs/FiraSans-Medium.woff,(WOFF字体,185KB) docs/FiraSans-Regular.woff,(WOFF字体,94KB) docs/SourceSerifPro-Bold.ttf.woff,(WOFF字体,89KB) docs/SourceSerifPro-Regular.ttf.woff,(WOFF字体,56KB) docs/SourceCodePro-Regular.woff,(WOFF字体,56KB) docs/SourceCodePro-Semibold.woff 和更多

libsoxr-rs

此库是对libsoxr的薄包装,libsoxr是一个“高质量的一维采样率转换库”。

crates.io API documentation license

要直接访问原生libsoxr函数,可以使用libsoxr-sys crate。文档包括示例,可以在此找到这里

此包装库的许可证与libsoxr本身相同:LGPLv2。


lib.rs:

libsoxr-rs

此库是对libsoxr的薄包装,libsoxr是一个“高质量的一维采样率转换库”。

要直接访问libsoxr函数,可以使用libsoxr-sys crate。

此包装库的许可证与libsoxr本身相同:LGPLv2。

文档可以在此找到这里

安装

在您的Cargo.toml中添加以下内容

[dependencies]
libsoxr = "0.2"

示例

// upscale factor 2, one channel with all the defaults
let soxr = Soxr::create(1.0, 2.0, 1, None, None, None).unwrap();

// source data, taken from 1-single-block.c of libsoxr examples.
let source: [f32; 48] = [0.0, 1.0, 0.0, -1.0, 0.0, 1.0, 0.0, -1.0, 0.0, 1.0, 0.0, -1.0, 0.0,
                         1.0, 0.0, -1.0, 0.0, 1.0, 0.0, -1.0, 0.0, 1.0, 0.0, -1.0, 0.0, 1.0,
                         0.0, -1.0, 0.0, 1.0, 0.0, -1.0, 0.0, 1.0, 0.0, -1.0, 0.0, 1.0, 0.0,
                         -1.0, 0.0, 1.0, 0.0, -1.0, 0.0, 1.0, 0.0, -1.0];

// create room for 2*48 = 96 samples
let mut target: [f32; 96] = [0.0; 96];

// Two runs. First run will convert the source data into target.
// Last run with None is to inform resampler of end-of-input so it can clean up
soxr.process(Some(&source), &mut target).unwrap();
soxr.process::<f32,_>(None, &mut target[0..]).unwrap();

// just print the values in target
for s in target.iter() {
  print!("{:?}\t", s)
}

依赖项