Realtime Audio Processing
This is the open source component of Magic Mic, an app created by the folks at audo.ai to provide easy access to a realtime version of our custom machine learning based noise removal tool. Just run the app, switch the microphone in whatever audio consuming app you are using (zoom, discord, google meet) to Magic Mic and you're off! This is still in early alpha and so is only available for pulseaudio on linux right now. This is still in active development and so bug fixes and new features will be coming, along with OS X and Windows support in the future.
You can get a prebuilt version of magic mic from our releases.
Using Magic Mic should pretty much be as simple as executing the AppImage. First download the AppImage from our releases then either make it executable in your file manager or run the following command in the terminal
chmod a+x /path/to/MagicMic.appimage
Then to run the AppImage you can either execute it from your file manager (for example by double clicking) or from the terminal
/path/to/MagicMic.appimage
We are still working on a more automated installation.
After executing the AppImage, Magic Mic should open and you should see an icon in your systray. From the magic mic window you can select your microphone, enable and disable denoising, and select your denoising engine. Once that is set up you can test that everythng is working by clicking on the "Mic Check" button. You can feel free to close the Magic Mic window whenever. It will continue to run in the background. If you did not move the Magic Mic AppImage, you can reopen the Magic Mic window by clicking on the icon in the systray and selecting "Open". You can also completely quit all of Magic Mic by clicking on "Quit."
To use Magic Mic in an app that listens to your microphone, all you have to do is configure the app to use "Magic Mic" as the listening microphone.
We don't have auto update implemeted yet, so please check back here every once in a while to check out new releases with new features!
Our custom denoising model is proprietary. Only us at Audo can create builds using it as the denoising engine. If you would like to build Magic Mic yourself, we support using rnnoise as the Audio Processor.
We imagine Magic Mic providing a common interface for realtime audio processing on many platforms. We want Magic Mic to be an open source tool that enables all developers to build proprietary or free real time audio processing tools. Right now, implementing a custom audio processor is just a matter of writing some c++ (we should have a guide soon), but the interface is quite immature and we're still quite far from realizing this vision, so reach out if you want to help! Contact us in the github discussions tab or the issues.
This project has esentially 3 components. First, there is the code in
src-native
which interacts with the audio system and actually creates the
virtual microphone and does the denoising. Then there is the
tauri code in src-tauri
which deals with creating
the system webview and interacting with the frontend code. The naming of these
directories is somewhat misleading, because both the code in src-native
and
the code in src-tauri
are compiled to native code. Additionaly, there is
src-web
which contains a create-react-app
project which is displayed by
tauri.
Run
DOCKER_BUILDKIT=1 docker build --output . .
and the appimage should be copied into your working directory.
Run
mkdir build
cd build
cmake -DVIRTMIC_ENGINE="PIPESOURCE" -DAUDIOPROC_CMAKES="$PWD/../src-native/RNNoiseAP.cmake" ..
make build_tauri
This should place an appimage in src-tauri/target/release/bundle/appimage
.
PIPESOURCE
is the only virtmic engine available at the moment; in the future
this may change to support other platforms or if we implement other virtual microphones.
There is support for building with custom audio processors, and the
documentation will be coming soon. For the meantime you could look at
src-native/RNNoiseAP.cmake
(and the files it references) as an example. Audio
processors are added to the build by adding there cmake files to the semicolon
seperated list AUDIOPROC_CMAKES
when configuring the build.