pub struct AudioBuffer { /* private fields */ }Expand description
Audio buffer for batch processing.
Provides utilities for normalization, resampling, and format conversion.
§Example
use speech_prep::buffer::AudioBuffer;
let samples = vec![0.1, 0.2, -0.1, -0.2];
let buffer = AudioBuffer::from_samples(samples, 16000)?;
assert_eq!(buffer.sample_rate(), 16000);
assert_eq!(buffer.len(), 4);Implementations§
Source§impl AudioBuffer
impl AudioBuffer
Sourcepub fn from_samples(samples: Vec<f32>, sample_rate: u32) -> Result<Self>
pub fn from_samples(samples: Vec<f32>, sample_rate: u32) -> Result<Self>
Create AudioBuffer from f32 samples
§Arguments
samples- Audio samples (will be validated)sample_rate- Sample rate in Hz
§Errors
Returns error if samples are empty or sample rate is invalid
§Example
use speech_prep::buffer::AudioBuffer;
let samples = vec![0.1, 0.2, -0.1];
let buffer = AudioBuffer::from_samples(samples, 16000)?;
assert_eq!(buffer.len(), 3);Sourcepub fn from_chunk(chunk: AudioChunk) -> Result<Self>
pub fn from_chunk(chunk: AudioChunk) -> Result<Self>
Create AudioBuffer from AudioChunk (zero-copy data)
Converts a streaming AudioChunk into an owned AudioBuffer.
§Example
use speech_prep::buffer::AudioBuffer;
use speech_prep::types::AudioChunk;
let chunk = AudioChunk::new(vec![0.1, 0.2], 0, 0.0, 16000);
let buffer = AudioBuffer::from_chunk(chunk)?;
assert_eq!(buffer.len(), 2);Sourcepub fn sample_rate(&self) -> u32
pub fn sample_rate(&self) -> u32
Get sample rate in Hz
Sourcepub fn duration(&self) -> AudioDuration
pub fn duration(&self) -> AudioDuration
Get duration as AudioDuration
§Example
use speech_prep::buffer::AudioBuffer;
use speech_prep::time::AudioDuration;
let buffer = AudioBuffer::from_samples(vec![0.0; 16000], 16000)?;
let duration = buffer.duration();
assert_eq!(duration.as_secs(), 1);Sourcepub fn samples_mut(&mut self) -> &mut [f32]
pub fn samples_mut(&mut self) -> &mut [f32]
Get mutable slice of samples
Sourcepub fn into_samples(self) -> Vec<f32>
pub fn into_samples(self) -> Vec<f32>
Consume buffer and return samples
Sourcepub fn normalize(&mut self)
pub fn normalize(&mut self)
Normalize samples to [-1.0, 1.0] range
Applies peak normalization to ensure samples are within valid range.
§Example
use speech_prep::buffer::AudioBuffer;
let mut buffer = AudioBuffer::from_samples(vec![2.0, -2.0, 1.0], 16000)?;
buffer.normalize();
// Samples now scaled to [-1.0, 1.0]
assert!(buffer.samples().iter().all(|&s| s >= -1.0 && s <= 1.0));Sourcepub fn validate_samples(&self) -> Result<()>
pub fn validate_samples(&self) -> Result<()>
Validate sample values are within expected range
Checks that all samples are finite and within reasonable bounds.
Sourcepub fn metadata(&self) -> Option<&AudioBufferMetadata>
pub fn metadata(&self) -> Option<&AudioBufferMetadata>
Get metadata
Sourcepub fn set_metadata(&mut self, metadata: AudioBufferMetadata)
pub fn set_metadata(&mut self, metadata: AudioBufferMetadata)
Set metadata
Trait Implementations§
Source§impl Clone for AudioBuffer
impl Clone for AudioBuffer
Source§fn clone(&self) -> AudioBuffer
fn clone(&self) -> AudioBuffer
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for AudioBuffer
impl RefUnwindSafe for AudioBuffer
impl Send for AudioBuffer
impl Sync for AudioBuffer
impl Unpin for AudioBuffer
impl UnsafeUnpin for AudioBuffer
impl UnwindSafe for AudioBuffer
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more