Skip to main content

Crate audio_analysis_core

Crate audio_analysis_core 

Source
Expand description

§audio-analysis-core

Shared audio frame conversion, whole-buffer clip editing primitives, windowing, and streaming helpers for moritzbrantner-video-analysis.

§Feature flags

  • No optional feature flags today.

§Example

use audio_analysis_core::{AudioClip, ConcatPolicy, FrameSpec, StreamingFrameBuffer};
use video_analysis_core::{AudioBuffer, OwnedAudioFrame, Timebase, Timestamp};

let frame = OwnedAudioFrame::new(
    Timestamp::new(0, Timebase::new(1, 48_000)),
    48_000,
    1,
    AudioBuffer::F32(vec![0.0; 4_096]),
)?;

let spec = FrameSpec::new(2_048, 512)?;
let mut windows = StreamingFrameBuffer::new(spec);
let frames = windows.push_frame(&frame.as_frame()?)?;

let clip = AudioClip::from_frames(&[frame])?;
let parts = clip.split_at_seconds(&[0.025, 0.05])?;
let joined = AudioClip::concat(&parts, ConcatPolicy::RequireSameFormat)?;

assert!(!frames.is_empty());
assert_eq!(joined.channels, 1);

§Whole-Buffer Editing

AudioClip stores validated interleaved f32 audio with sample rate and channel metadata. It supports sample/second slicing, timeline splitting, concat, and mixing. Format-changing concat is explicit through ConcatPolicy::ResampleToFirst; mixing still requires matching sample rate and channels.

§Package surface

Primary workflow: audio.levels.

Workflow operations:

  • audio.levels: Returns deterministic level metrics for normalized audio samples.
  • audio.frames: Summarizes fixed-size analysis frames over normalized samples.
  • audio.timestamps: Converts between seconds, samples, and timestamp ticks for a sample rate.

Debug operations:

  • describe: inspect package metadata and runtime support.

Runtime support: library, CLI, server, and WASM wrappers expose these operations.

Run the primary workflow through the CLI:

cargo run -p moritzbrantner-audio-analysis-core-cli -- run \
  --operation audio.levels \
  --json '{"channels":1,"sampleRate":48000,"samples":[0.0,0.5,-0.5]}'

Successful responses use the shared package-surface shape with operation, title, message, summary, and result. Default surface calls are deterministic, local-first, and do not download models, write persistent files, or execute external tools unless an operation explicitly documents native or external-tool execution.

  • video-analysis-core
  • audio-analysis-fourier
  • audio-analysis-processing

Modules§

surface
Library-owned runtime surface for audio-analysis-core.

Structs§

AudioClip
Owned interleaved f32 clip for whole-buffer editing.
AudioFeaturePoint
One window of generic audio feature values.
AudioFeatureSeries
A windowed series of generic audio features.
AudioFeatureSummary
Summary metrics for an audio feature series.
AudioFormatSpec
Data type for audio format spec.
AudioFrames
Data type for audio frames.
AudioWaveformBatchView
Data type for audio waveform batch view.
AudioWindow
Data type for audio window.
BiquadCoefficients
Re-exports the math signal core API. Data type for biquad coefficients.
FirKernel1d
Re-exports the math signal core API. Data type for fir kernel1d.
FrameSpec
Data type for frame spec.
FrameStride
Re-exports the math signal core API. Data type for frame stride.
MonoSamples
Data type for mono samples.
OwnedAudioWaveformBatch
Data type for owned audio waveform batch.
ResampleRatio
Re-exports the math signal core API. Data type for resample ratio.
ResampleSpec
Re-exports the math signal core API. Data type for resample spec.
SampleRate
Re-exports the math signal core API. Data type for sample rate.
StreamingFrameBuffer
Data type for streaming frame buffer.
StreamingFrameConfig
Data type for streaming frame config.
WindowSpec
Re-exports the math signal core API. Data type for window spec.

Enums§

BiquadDesign
Re-exports the math signal core API. Variants describing biquad design.
ChannelMix
Variants describing channel mix.
ConcatPolicy
Policy for concatenating clips with different formats.
FadeCurve
Fade curve shape.
InterpolationMode
Re-exports the math signal core API. Variants describing interpolation mode.
MixPolicy
Policy for mixing clips with different lengths.
WindowFunction
Re-exports the math signal core API. Variants describing window function.

Functions§

interleaved_to_mono
Returns interleaved to mono.
mean_absolute
Returns mean absolute.
mono_samples
Returns mono samples.
mono_samples_with_mix
Returns mono samples with mix.
normalized_samples
Returns normalized samples.
peak
Returns peak.
rms
Returns rms.
sample_to_timestamp
Returns sample to timestamp.
samples_to_seconds
Returns samples to seconds.
seconds_to_samples
Returns seconds to samples.
summarize_feature_series
Summarizes a windowed audio feature series.
timestamp_to_sample
Returns timestamp to sample.
windowed_level_series
Converts mono samples into a windowed level feature series.
zero_crossing_rate
Returns zero crossing rate for adjacent sample pairs.
zero_pad_to
Returns zero pad to.