Converter API¶
SUPPORTED_SOURCE_EXTENSIONS¶
Tuple of common FFmpeg-readable source extensions discovered by default.
DEFAULT_SOURCE_EXTENSIONS¶
Alias for the default source extension tuple used by CLI discovery.
ConversionResult¶
Result dataclass returned by conversion functions.
| Field | Type |
|---|---|
source |
Path |
output |
Optional[Path] |
success |
bool |
error |
Optional[str] |
find_audio_files(input_dir, extensions=DEFAULT_SOURCE_EXTENSIONS)¶
Recursively finds source audio files under input_dir.
Pass extensions=None to return every regular file and let FFmpeg decide
whether each input is decodable.
convert_file(source, dest, config)¶
Converts one source file to one destination path.
Returns ConversionResult instead of raising for file-level failures such as:
- missing source file
- missing FFmpeg binary
- FFmpeg conversion failure
- invalid existing output that cannot be replaced
convert_batch(input_dir, output_dir, config=None, source_files=None)¶
Converts all discovered or supplied source files and mirrors the input directory
structure under output_dir.
Example:
from pathlib import Path
from audio_prep import ConversionConfig, build_manifest, convert_batch, validate_output, write_manifest
config = ConversionConfig(num_workers=4)
results = convert_batch(
Path("data/raw_mp3"),
Path("data/wav16k"),
config,
)
validations = {
result.output: validate_output(result.output, config)
for result in results
if result.success and result.output is not None
}
records = build_manifest(results, validations)
write_manifest(records, Path("data/manifest.jsonl"))