Real-time audio visualization and voice-to-text chat interface with Gemini AI
Project description
Silent Speech 🎙️
Real-time audio visualization and voice-to-text chat interface powered by Google's Gemini AI.
Features ✨
- 🎯 Real-time Audio Capture - Live microphone input with visual waveform
- 🤖 Gemini AI Integration - Accurate speech-to-text transcription
- 📋 Auto Copy to Clipboard - Toggleable automatic clipboard copying
- 🎨 Rich Terminal UI - Beautiful, responsive interface with color coding
- ⌨️ Keyboard Controls - Intuitive hotkeys for all functions
- 🔇 Noise Filtering - Intelligent filtering of breathing sounds and filler words
- 🚀 Non-blocking Processing - Responsive UI during transcription
Installation 📦
Via pip (Recommended)
pip install silent-speech
From Source
git clone https://github.com/laspencer91/silent-speech.git
cd silent-speech
pip install -r requirements.txt
python -m silent_speech.main
Quick Start 🚀
-
Set up Gemini API Key:
export GEMINI_API_KEY="your-api-key-here"
-
Run the application:
silent-speech
-
Start using:
- Press SPACE to start recording
- Press SPACE again to stop and transcribe
- Press Q to quit
- Press A to toggle auto-copy
- Press C to copy the last response
System Requirements 🖥️
- Python 3.8+
- Microphone access
- Internet connection (for Gemini API)
- Audio system: PortAudio (usually pre-installed)
Platform Support
- ✅ Linux (Full support)
- ✅ macOS (Full support)
- ⚠️ Windows (Limited - requires WSL or compatible terminal)
Configuration ⚙️
Environment Variables
GEMINI_API_KEY- Your Google Gemini API key (required)
Audio Settings
The app automatically detects your default microphone. For advanced audio configuration, modify the AudioConfig class in silent_speech/main.py.
Controls 🎮
| Key | Function |
|---|---|
| SPACE | Start/Stop recording |
| Q | Quit application |
| C | Copy last response |
| A | Toggle auto-copy |
| ESC | Quit application |
API Key Setup 🔑
- Visit Google AI Studio
- Create a new API key
- Set the environment variable:
# Linux/macOS echo 'export GEMINI_API_KEY="your-key-here"' >> ~/.bashrc source ~/.bashrc # Or for current session only export GEMINI_API_KEY="your-key-here"
Troubleshooting 🔧
Common Issues
"No audio input detected"
- Check microphone permissions
- Verify microphone is connected and working
- Try running:
python -c "import sounddevice; print(sounddevice.query_devices())"
"Gemini API key not found"
- Ensure
GEMINI_API_KEYenvironment variable is set - Verify the API key is valid and active
"Module 'tty' has no attribute 'cbreak'"
- This typically occurs on Windows. Use WSL or a Unix-compatible terminal
Audio dependency issues
- Install system audio libraries:
# Ubuntu/Debian sudo apt-get install portaudio19-dev python3-pyaudio # macOS brew install portaudio
Development 🛠️
Local Development
git clone https://github.com/laspencer91/silent-speech.git
cd silent-speech
pip install -e .
silent-speech
Contributing
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
License 📄
This project is licensed under the MIT License - see the LICENSE file for details.
Acknowledgments 🙏
- Google Gemini AI for speech transcription
- Rich Library for beautiful terminal UI
- SoundDevice for audio capture
- All contributors and users!
Support 💬
- 🐛 Issues: GitHub Issues
- 💡 Feature Requests: GitHub Discussions
- 📧 Contact: info@silentspeech.dev
Made with ❤️ by the Silent Speech Team
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file silent_speech-0.1.0.tar.gz.
File metadata
- Download URL: silent_speech-0.1.0.tar.gz
- Upload date:
- Size: 12.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
90edce948c1a7bbc922b055c1b7f5298660de04cdc36bac646294f3db1952892
|
|
| MD5 |
29cae9ea34d50c3760ab02ef56062fbc
|
|
| BLAKE2b-256 |
cbb035d222b7aba21323cf55d23c799fe39b4df8353b81b0d713226568e1f8d8
|
File details
Details for the file silent_speech-0.1.0-py3-none-any.whl.
File metadata
- Download URL: silent_speech-0.1.0-py3-none-any.whl
- Upload date:
- Size: 10.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ca2f918e217b1a940c94145041689ffc24e85d13218631accfc0b4bd1fcc4852
|
|
| MD5 |
3fcfd1d7e548186ef2e1bf822dbc9cd5
|
|
| BLAKE2b-256 |
e7301620c76fb4e7dcd500fb8c80104f8137a5ef489c52bb81ab3fd722ff72f6
|