tktcorporation /
cross-recorder
Cross-platform desktop audio recorder — record mic & system audio simultaneously into separate WAV tracks. Built with Electrobun, React, and ScreenCaptureKit.
Loading repository data…
Picovoice / repository
Cross-platform audio recorder designed for real-time speech audio processing
Made in Vancouver, Canada by Picovoice
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.
If you are interested in building PvRecorder from source or integrating it into an existing C project, the PvRecorder source code is located under the /project directory.
If using SSH, clone the repository with:
git clone --recurse-submodules git@github.com:Picovoice/pvrecorder.git
If using HTTPS, clone the repository with:
git clone --recurse-submodules https://github.com/Picovoice/pvrecorder.git
Install the demo package:
pip3 install pvrecorderdemo
To show the available audio devices run:
pv_recorder_demo --show_audio_devices
With a working microphone connected to your device run the following in the terminal:
pv_recorder_demo --output_wav_path {OUTPUT_WAV_PATH}
Replace {OUTPUT_WAV_PATH} with the path to save the audio data in wav format.
For more information about the Python demos go to demo/python.
From demo/dotnet/PvRecorderDemo run the following in the terminal to build the demo:
dotnet build
Make sure there is a working microphone connected to your device. From demo/dotnet/PvRecorderDemo run the following in the terminal:
dotnet run -- --output_wav_path ${OUTPUT_WAV_PATH}
For more information about the .NET demo, go to demo/dotnet.
Install the demo package:
yarn global add @picovoice/pvrecorder-node-demo
With a working microphone connected to your device run the following in the terminal:
pvrecorder-node-demo --output_wav_path ${OUTPUT_WAV_PATH}
Replace {OUTPUT_WAV_PATH} with the file path to save the audio data in wav format.
For more information about NodeJS demo, go to demo/nodejs.
Run the following commands to build the demo app:
cd demo/c
cmake -S . -B build -DPV_RECORDER_PLATFORM={PV_RECORDER_PLATFORM}
cmake --build build
The {PV_RECORDER_PLATFORM} variable will set the compilation flags for the given platform. Exclude this variable
to get a list of possible values.
Get a list of available audio recording devices:
./pv_recorder_demo --show_audio_devices
Record to a file with a given audio device index:
./pv_recorder_demo -o test.wav -d 2
Hit Ctrl+C to stop recording. If no audio device index (-d) is provided, the demo will use the system's default recording device.
For more information about the C demo, go to demo/c.
To start recording, initialize an instance and run start():
from pvrecorder import PvRecorder
recorder = PvRecorder(frame_length=512)
recorder.start()
Read frames of audio:
while recorder.is_recording:
frame = recorder.read()
# process audio frame
To stop recording, run stop() on the instance:
recorder.stop()
Once you are done, free the resources acquired by PvRecorder. You do not have to call stop() before delete():
recorder.delete()
For more information about the PvRecorder Python SDK, go to binding/python.
Install the .NET SDK using NuGet or the dotnet CLI:
dotnet add package PvRecorder
Initialize and begin recording:
using Pv;
PvRecorder recorder = PvRecorder.Create(frameLength: 512);
recorder.Start();
Read frames of audio:
while (recorder.IsRecording)
{
short[] frame = recorder.Read();
// process audio frame
}
To stop recording:
recorder.Stop();
Once you are done, free the resources acquired by PvRecorder. You do not have to call Stop() before Dispose():
recorder.Dispose();
For more information about the PvRecorder .NET SDK, go to binding/dotnet.
Install Node.js binding:
yarn add @picovoice/pvrecorder-node
To start recording, initialize the instance and run start():
const frameLength = 512;
const recorder = new PvRecorder(frameLength);
recorder.start()
Read frames of audio:
while (recorder.isRecording) {
const frame = await recorder.read();
// process audio frame
}
To stop recording, call stop() on the instance:
recorder.stop();
Once you are done, free the resources acquired by PvRecorder. You do not have to call stop() before release():
recorder.release();
For more information about the PvRecorder Node.js SDK, go to binding/nodejs.
Selected from shared topics, language and repository description—not editorial ratings.
tktcorporation /
Cross-platform desktop audio recorder — record mic & system audio simultaneously into separate WAV tracks. Built with Electrobun, React, and ScreenCaptureKit.
jonx /
A cross-platform audio recorder and real-time transcriber, ported from the https://github.com/moonshine-ai/MoonshineNoteTaker by Moonshine AI. Records speech, transcribes it in near real-time using on-device AI (Moonshine Voice models), and lets you edit the transcript. All offline, no cloud required.
allanjos /
Simple cross platform audio recorder/player.
Davilink /
Example project using OpenTK.OpenAL for recording audio using the default recording device in C# .netcore (Cross-platform)
AceBurgundy /
A minimal, distraction-free screen recording app built with Electron, allowing quick recording of entire screens or windows with audio. Lightweight, cross-platform, and easy to use, it saves recordings directly in a lightweight .webm format.