A macOS application that records audio from both microphone and system audio (browser, applications, etc.) and provides real-time transcription.
- Record from microphone
- Record system audio (requires BlackHole audio driver)
- Real-time audio transcription
- Clean, modern user interface
- Automatic file management
- macOS 11.0 or later
- Xcode 14.0 or later (for development)
- BlackHole 2ch audio driver (for system audio recording)
- Docker Desktop for Mac (for running the transcription backend)
First, set up the transcription backend:
# Install Docker Desktop for Mac if you haven't already
# Download from https://www.docker.com/products/docker-desktop/
# Pull the transcription backend image
docker pull nlemoff/audio-transcription:latest
# Run the backend container
docker run -d -p 8000:8000 nlemoff/audio-transcription:latest- Clone this repository:
git clone https://github.com/nlemoff/audio-transcriber.git
cd audio-transcriber- Open
MicAudioRecorder.xcodeprojin Xcode - Build and run the project
To enable system audio recording:
- Install BlackHole audio driver:
- Visit https://github.com/ExistentialAudio/BlackHole
- Follow installation instructions
- Restart the app after installation
The app will automatically detect BlackHole and enable system audio recording.
- Make sure the Docker container is running:
# Check if container is running
docker ps | grep audio-transcription
# If not running, start it
docker run -d -p 8000:8000 nlemoff/audio-transcription:latest- Launch the application
- Grant microphone permissions when prompted
- Click "Record" to start recording
- Click "Stop Recording" to stop
- Click "Transcribe" to generate transcription
The project uses:
- SwiftUI for the user interface
- AVFoundation for audio recording
- Core Audio for device management
- Docker container for transcription backend
MIT License
- Check if the backend is running:
docker ps | grep audio-transcription- Check backend logs:
docker logs $(docker ps | grep audio-transcription | awk '{print $1}')- If the backend isn't responding:
# Stop existing container
docker stop $(docker ps | grep audio-transcription | awk '{print $1}')
# Remove container
docker rm $(docker ps -a | grep audio-transcription | awk '{print $1}')
# Pull latest image
docker pull nlemoff/audio-transcription:latest
# Start fresh container
docker run -d -p 8000:8000 nlemoff/audio-transcription:latest-
If you get a "Microphone access required" message:
- Click "Open System Settings"
- Go to Privacy & Security -> Microphone
- Enable access for MicAudioRecorder
-
If the app won't open:
- Right-click the app and select "Open"
- In System Settings -> Privacy & Security, allow the app to run
-
If system audio recording isn't working:
- Verify BlackHole is installed and configured
- Check System Settings > Sound for proper device setup
For optimal quality:
- In Audio MIDI Setup, set all devices to the same sample rate (48000 Hz recommended)
- Keep the Multi-Output Device as your system output even when not recording
MicAudioRecorder.app