Summary
Add aprender::native::audio module for cross-platform audio capture to support whisper-apr CLI commands (stream, command, record).
Blocking
This feature blocks the following whisper-apr CLI commands:
whisper-apr stream - Real-time microphone transcription
whisper-apr command - Voice command recognition
whisper-apr record - Audio capture to file
See: whisper-cli-parity.md §15.2.1
Required API
pub mod native {
pub mod audio {
/// List available audio input devices
pub fn list_devices() -> Result<Vec<AudioDevice>, AudioError>;
/// Open audio capture stream at specified sample rate
pub fn open_capture(
device: Option<&str>,
sample_rate: u32,
) -> Result<AudioCapture, AudioError>;
/// Audio capture handle for streaming input
pub struct AudioCapture {
/// Read samples into buffer, returns samples read
pub fn read(&mut self, buffer: &mut [f32]) -> Result<usize, AudioError>;
/// Close the capture stream
pub fn close(self) -> Result<(), AudioError>;
}
/// Audio device information
pub struct AudioDevice {
pub id: String,
pub name: String,
pub sample_rates: Vec<u32>,
pub channels: u8,
}
}
}
Implementation Requirements
- Sample Rate: Must support 16kHz (Whisper requirement)
- Cross-Platform: Linux (ALSA/PulseAudio), macOS (CoreAudio), Windows (WASAPI)
- Low-Latency: Configurable buffer sizes for real-time streaming
- Pure Ecosystem: No external crate dependencies (pure Rust or FFI to system APIs)
Acceptance Criteria
Labels
enhancement, whisper-apr-dependency
Summary
Add
aprender::native::audiomodule for cross-platform audio capture to support whisper-apr CLI commands (stream,command,record).Blocking
This feature blocks the following whisper-apr CLI commands:
whisper-apr stream- Real-time microphone transcriptionwhisper-apr command- Voice command recognitionwhisper-apr record- Audio capture to fileSee: whisper-cli-parity.md §15.2.1
Required API
Implementation Requirements
Acceptance Criteria
list_devices()returns available audio input devicesopen_capture()opens capture stream at 16kHzAudioCapture::read()streams audio samples in f32 formatLabels
enhancement,whisper-apr-dependency