Expand description
AeroSieve: a batch audio curation pipeline.
Audio files go in; WebDataset shards of clean speech clips come out. The stages follow Emilia-Pipe:
- Decode (
decode): any supported container to monof32at one sample rate, loudness-normalized. - Segment (
segment): a hysteresis VAD cuts the audio into variable-length speech clips. - Score (
acoustic): each clip is measured and judged against aFilterPolicy. - Shard (
shard): accepted clips are written to tar shards with a manifest.
use aerosieve::{Pipeline, PipelineConfig};
let config = PipelineConfig::new("data/staging", "data/clean");
let mut pipeline = Pipeline::new(config)?;
pipeline.process_file("recording.wav".as_ref(), Some("hello world"))?;
let stats = pipeline.finish()?;
println!("retention {:.1}%", stats.retention_rate() * 100.0);Re-exports§
pub use aerosieve_acoustic as acoustic;pub use aerosieve_decode as decode;pub use aerosieve_lexical as lexical;pub use aerosieve_segment as segment;pub use aerosieve_shard as shard;
Structs§
- Decode
Config - Decoded
Audio - Mono audio at a known rate, with provenance about its source.
- Energy
Detector - Level-based detector with no model and no dependencies.
- File
Outcome - What happened to one input.
- Filter
Policy - Thresholds a buffer must meet to be kept.
- Inspector
- Decodes, segments, and scores audio without writing anything.
- Pipeline
- The curation pipeline: an
Inspectorwhose accepted clips are written to shards. - Pipeline
Config - Pipeline
Stats - Corpus-level totals.
- Quality
Metrics - Measurements for one buffer.
- Segment
- A half-open range of samples,
[start_sample, end_sample). - Segment
Config - Tuning for
Segmenter. - Segment
Outcome - What happened to one segment.
- Shard
Config - Shard
Stats
Enums§
- Pipeline
Error - Reject
Reason - Why a buffer was rejected.
Traits§
- Speech
Detector - Scores consecutive windows of audio with a speech probability.