HeyListen is a lightweight macOS menu bar app that transcribes your voice into text and injects it into any application. It supports both local (on-device) and Azure cloud speech recognition, making it fast, private, and reliable.
- 🎙️ Menu Bar App: Runs quietly in your menu bar, always ready to transcribe.
- 🗣️ Voice-to-Text: Hold a configurable key, speak, and have your words typed into any app.
- 🔒 Privacy First: Uses on-device speech recognition when available; falls back to Azure only if needed.
- ☁️ Azure Integration: Supports Microsoft Azure Speech-to-Text for high-accuracy transcription.
- ⚡ Quick Setup: Easy configuration for API keys and preferences.
- 🛠️ Customizable: Choose your activation key and tweak settings to fit your workflow.
- 📝 Logging: Built-in logging for troubleshooting and transparency.
- macOS 12.0 or later
- Xcode 14+ (for building from source)
- An Azure Speech API key (for cloud transcription)
- Releases (coming soon)
- Clone the repository:
git clone https://github.com/yourusername/listenman.git cd listenman/Sources - Open
Listen.xcodeprojin Xcode. - Build and run the app.
- Launch Listenman. A microphone icon 🎙️ will appear in your menu bar.
- Open the setup window from the menu to enter your Azure API key (optional, for cloud transcription).
- Select your preferred activation key in settings.
- Hold the activation key, speak, and release to transcribe. The text will be injected into your current app.
- API Key: Enter your Azure Speech API key in the setup window or place it in a
secrets.txtfile in your home directory. - Region: Set your Azure region in the setup window or as the second line in
secrets.txt. - Activation Key: Choose which key triggers voice recording in the settings.
YOUR_AZURE_API_KEY
YOUR_AZURE_REGION # e.g., germanywestcentral
- SwiftUI for UI components and menu bar integration.
- Cocoa for macOS-specific features.
- LocalSpeechRecognizer for on-device transcription.
- AzureSpeechRecognizer and AzureService for cloud transcription.
- TextInjector for injecting transcribed text into any app.
- Logger for logging and troubleshooting.
- Local transcription is used by default when available.
- Azure transcription only sends audio to Microsoft if local recognition fails or is unavailable.
- No audio or transcription data is stored or sent to third parties except Azure (if enabled).
- Check the log file from the menu for detailed error messages.
- Ensure microphone permissions are granted.
- For Azure, verify your API key and region.
Contributions are welcome! Please open issues or pull requests for bug fixes, features, or documentation improvements.

