15 个版本
0.7.1 | 2023 年 1 月 5 日 |
---|---|
0.7.0 | 2022 年 10 月 4 日 |
0.6.2 | 2022 年 4 月 9 日 |
0.6.0 | 2022 年 2 月 6 日 |
0.3.0 | 2019 年 4 月 19 日 |
241 在 图像
每月 34 次下载
1.5MB
857 行
Sonogram
从波形创建声谱图*,或导入 .wav
文件。
频谱图可以保存为 .png
文件、.csv
文件或在内存中。包含一个示例命令行应用程序,该应用程序将 .wav
文件转换为 .png
频谱图。
示例输出 .png
*注意:声谱图、频谱仪、频谱图或功率谱密度图是类似事物的常见名称。
构建和运行命令行应用程序
cargo build --release --bin sonogram --features=build-binary
./target/release/sonogram --wav samples/trumpet.wav --png output.png
保存到 .png
文件
let waveform: Vec<i16> = vec![/* ... some data ... */];
// Build the model
let spectrograph = SpecOptionsBuilder::new(2048)
.load_data_from_memory(waveform)
.build().unwrap();
// Compute the spectrogram giving the number of bins and the window overlap.
spectrograph.compute();
// Specify a colour gradient to use (note you can create custom ones)
let mut gradient = ColourGradient::create(ColourTheme::from(args.gradient));
// Save the spectrogram to PNG.
let png_file = std::path::Path::new("path/to/file.png");
spectrograph.to_png(&png_file,
FrequencyScale::Linear,
&mut gradient,
512, // Width
512, // Height
).unwrap();
自定义颜色渐变
对于 .png
图像,您可以自定义颜色渐变
let mut gradient = ColourGradient::new();
gradient.add_colour(RGBAColour::new(0, 0, 0, 255)); // Black
gradient.add_colour(RGBAColour::new(55, 0, 110, 255)); // Purple
gradient.add_colour(RGBAColour::new(0, 0, 180, 255)); // Blue
gradient.add_colour(RGBAColour::new(0, 255, 255, 255)); // Cyan
gradient.add_colour(RGBAColour::new(0, 255, 0, 255)); // Green
spec_builder.set_gradient(gradient);
或使用内置的颜色渐变主题
let mut gradient = ColourGradient::rainbow_theme();
spec_builder.set_gradient(gradient);
许可证
此源代码根据 GPLv3 许可证发布。阅读 LICENSE 文件以获取法律信息。
依赖项
~6MB
~101K SLoC