A single, complete audio input buffer.
This struct holds static audio data along with its format parameters. The default format is PCM16 at 24kHz mono, which is the standard format for OpenAI's voice APIs.
Summary
Functions
Create a new audio input from binary data.
Convert audio to WAV file format.
Encode audio data to base64.
Types
@type t() :: %Codex.Voice.Input.AudioInput{ channels: pos_integer(), data: binary(), frame_rate: pos_integer(), sample_width: pos_integer() }
Functions
Create a new audio input from binary data.
Options
:frame_rate- Sample rate in Hz (default: 24000):sample_width- Bytes per sample (default: 2):channels- Number of audio channels (default: 1)
Examples
iex> data = <<0, 0, 255, 127>>
iex> input = Codex.Voice.Input.AudioInput.new(data)
iex> input.frame_rate
24000
Convert audio to WAV file format.
Returns a tuple of {filename, wav_data, mime_type} suitable for
multipart uploads or file operations.
Examples
iex> data = <<0, 0, 255, 127>>
iex> input = Codex.Voice.Input.AudioInput.new(data)
iex> {filename, _wav_data, mime} = Codex.Voice.Input.AudioInput.to_audio_file(input)
iex> {filename, mime}
{"audio.wav", "audio/wav"}
Encode audio data to base64.
This is useful when sending audio data to APIs that expect base64-encoded audio.
Examples
iex> data = <<0, 0, 255, 127>>
iex> input = Codex.Voice.Input.AudioInput.new(data)
iex> Codex.Voice.Input.AudioInput.to_base64(input)
"AAD/fw=="