PvRecorder is an easy-to-use, cross-platform audio recorder designed for real-time speech audio processing. It allows developers access to an audio device's input stream, broken up into data frames of a given size.
- Rust 1.54+
- Linux (x86_64)
- macOS (x86_64 and arm64)
- Windows (x86_64)
- Raspberry Pi:
- Zero
- 3 (32 and 64 bit)
- 4 (32 and 64 bit)
- 5 (32 and 64 bit)
To add the pvrecorder library into your app, add pv_recorder
to your app's Cargo.toml
manifest:
[dependencies]
pv_recorder = "*"
Getting the list of input devices does not require an instance:
use pv_recorder::PvRecorderBuilder
let audio_devices = PvRecorderBuilder::default().get_audio_devices()?;
To start recording, initialize an instance using the builder and call start()
:
use pv_recorder::PvRecorderBuilder;
let frame_length = 512;
let recorder = PvRecorderBuilder::new(frame_length).init()?;
recorder.start()?
Read frames of audio:
while recorder.is_recording() {
let frame = recorder.read()?;
// process audio frame
}
To stop recording, call stop()
on the instance:
recorder.stop()?;
The PvRecorder Rust demo is a Rust command-line application that demonstrates how to use PvRecorder to record audio to a file.