Skip to content

CLI Reference

The package installs one command:

audio-prep

It has two independent subcommands:

  • convert: convert source audio files to WAV or FLAC, validate them, and optionally write a manifest.
  • chunk: split source audio files into speech-only chunks and optionally write a chunk manifest.

audio-prep convert

audio-prep convert \
    --input-dir data/raw_mp3 \
    --output-dir data/wav16k \
    --format wav \
    --sample-rate 16000 \
    --channels 1 \
    --workers 4 \
    --min-duration-sec 0.5 \
    --manifest data/manifest.jsonl
Flag Default Description
--input-dir required Directory scanned recursively for source audio files.
--output-dir required Directory where converted output is written.
--extensions common FFmpeg audio/video extensions Comma-separated source extensions, or all to pass every regular file to FFmpeg.
--format wav Output format, wav or flac.
--sample-rate 16000 Target sample rate in Hz.
--channels 1 Target channel count.
--workers 4 Number of parallel conversion workers.
--min-duration-sec 0.5 Minimum accepted output duration.
--overwrite off Rebuild even when an existing output is valid.
--normalize-loudness off Apply single-pass EBU R128 loudness normalization.
--manifest none Path to write conversion manifest JSONL.

Exit codes:

Code Meaning
0 Every discovered file converted and validated.
1 At least one file failed conversion or validation.
2 Argument parsing failed.

audio-prep chunk

audio-prep chunk \
    --input-dir data/raw_mp3 \
    --output-dir data/chunks \
    --format wav \
    --sample-rate 16000 \
    --min-duration-sec 5 \
    --max-duration-sec 20 \
    --workers 4 \
    --manifest data/chunk_manifest.jsonl
Flag Default Description
--input-dir required Directory scanned recursively for source audio files.
--output-dir <input-dir>/chunks Directory where chunks are written.
--extensions common FFmpeg audio/video extensions Comma-separated source extensions, or all to pass every regular file to FFmpeg.
--format wav Chunk format, wav or flac.
--sample-rate 16000 Resample before VAD and chunk writing.
--min-duration-sec 5.0 Drop chunks shorter than this duration.
--max-duration-sec 20.0 Split longer speech into windows no longer than this.
--workers 4 Number of parallel chunking workers.
--overwrite off Rebuild even when an existing chunk is valid.
--allow-energy-fallback off Use a lower-quality energy detector if Silero cannot load.
--manifest none Path to write chunk manifest JSONL.

Exit codes:

Code Meaning
0 Every discovered file produced one or more chunks.
1 At least one file failed or produced no chunks.
2 Argument parsing failed.