Skip to main content

Crate aerosieve

Crate aerosieve 

Source
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:

  1. Decode (decode): any supported container to mono f32 at one sample rate, loudness-normalized.
  2. Segment (segment): a hysteresis VAD cuts the audio into variable-length speech clips.
  3. Score (acoustic): each clip is measured and judged against a FilterPolicy.
  4. 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§

DecodeConfig
DecodedAudio
Mono audio at a known rate, with provenance about its source.
EnergyDetector
Level-based detector with no model and no dependencies.
FileOutcome
What happened to one input.
FilterPolicy
Thresholds a buffer must meet to be kept.
Inspector
Decodes, segments, and scores audio without writing anything.
Pipeline
The curation pipeline: an Inspector whose accepted clips are written to shards.
PipelineConfig
PipelineStats
Corpus-level totals.
QualityMetrics
Measurements for one buffer.
Segment
A half-open range of samples, [start_sample, end_sample).
SegmentConfig
Tuning for Segmenter.
SegmentOutcome
What happened to one segment.
ShardConfig
ShardStats

Enums§

PipelineError
RejectReason
Why a buffer was rejected.

Traits§

SpeechDetector
Scores consecutive windows of audio with a speech probability.