Audio

Struct Audio 

Source
pub struct Audio {
    pub audio_array: Array1<f32>,
    pub sampling_rate: usize,
    pub format: String,
}
Expand description

Represents audio data with metadata.

This struct holds audio waveform data along with its sampling rate and format. It provides methods for loading, processing, and converting audio data.

§Fields

  • audio_array - Audio waveform as a 1D array of f32 samples
  • sampling_rate - Sampling rate in Hz
  • format - Audio format string (e.g., “wav”)

Fields§

§audio_array: Array1<f32>§sampling_rate: usize§format: String

Implementations§

Source§

impl Audio

Source

pub fn new( audio_array: Array1<f32>, sampling_rate: usize, format: String, ) -> Self

Creates a new Audio instance.

§Arguments
  • audio_array - Audio waveform data as a 1D array
  • sampling_rate - Sampling rate in Hz
  • format - Audio format string
§Returns

A new Audio instance.

Source

pub fn from_file<P: AsRef<Path>>(path: P) -> Result<Self>

Loads audio data from a WAV file.

§Arguments
  • path - Path to the audio file
§Returns

A new Audio instance with the loaded data.

§Errors

Returns an error if:

  • File cannot be opened
  • File format is not supported
  • Audio data cannot be read
§Examples
use tekken::audio::Audio;

let audio = Audio::from_file("audio.wav")?;
println!("Loaded audio: {} samples at {} Hz", audio.audio_array.len(), audio.sampling_rate);
Source

pub fn from_base64(data: &str) -> Result<Self>

Loads audio data from a base64-encoded string.

§Arguments
  • data - Base64-encoded audio data
§Returns

A new Audio instance with the decoded data.

§Errors

Returns an error if decoding or parsing fails.

Source

pub fn from_bytes(bytes: &[u8]) -> Result<Self>

Loads audio data from raw bytes.

§Arguments
  • bytes - Raw audio file data
§Returns

A new Audio instance parsed from the bytes.

§Errors

Returns an error if the bytes cannot be parsed as audio.

Source

pub fn duration(&self) -> f64

Calculates the duration of the audio in seconds.

§Returns

Audio duration in seconds.

Source

pub fn resample(&mut self, target_rate: usize) -> Result<()>

Resamples the audio to a target sampling rate.

§Arguments
  • target_rate - Target sampling rate in Hz
§Errors

Currently returns an error as resampling is not yet implemented.

§Note

This is a placeholder implementation that needs proper resampling logic.

Source

pub fn pad(&mut self, config: &AudioConfig) -> Result<()>

Pads the audio to meet minimum length requirements.

This method ensures the audio is long enough for processing by padding with zeros if necessary. Padding is applied based on chunk length or minimum window size requirements.

§Arguments
  • config - Audio configuration specifying padding requirements
§Errors

Returns an error if configuration is invalid.

Trait Implementations§

Source§

impl Clone for Audio

Source§

fn clone(&self) -> Audio

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Audio

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl Freeze for Audio

§

impl RefUnwindSafe for Audio

§

impl Send for Audio

§

impl Sync for Audio

§

impl Unpin for Audio

§

impl UnwindSafe for Audio

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.