* Implement custom icon for Vocalinux (Closes #10) * Fix system tray icon display issue * Temp commit before purging * refactor: restructure project into proper vocalinux package * test: fix and improve audio_feedback and tray_indicator tests with proper mocking and isolation * test: update import paths in test files to use the new package structure * Remove icon background * fix: implement robust resource path discovery in audio_feedback module * fix: improve resource discovery across application for consistent icon and sound loading * chore: ensure uninstall script is compatible with new resource paths * Fix black formatting
154 lines
4.7 KiB
Markdown
154 lines
4.7 KiB
Markdown
# <img src="https://github.com/user-attachments/assets/56dabe5c-5c65-44d5-a36a-429c9fea0719" width="50" height="50"> Vocalinux
|
|
|
|
[](https://github.com/jatinkrmalik/vocalinux/actions?query=workflow%3A%22Vocalinux+CI%22)
|
|
[](https://codecov.io/gh/jatinkrmalik/vocalinux)
|
|
[](https://github.com/jatinkrmalik/vocalinux)
|
|
[](https://www.gnu.org/licenses/gpl-3.0)
|
|
[](https://www.python.org/downloads/)
|
|
[](https://github.com/jatinkrmalik/vocalinux/issues)
|
|
[](https://github.com/jatinkrmalik/vocalinux/issues)
|
|
[](https://github.com/jatinkrmalik/vocalinux/releases)
|
|
|
|

|
|
|
|
A seamless voice dictation system for Linux, comparable to the built-in solutions on macOS and Windows.
|
|
|
|
## Overview
|
|
|
|
Vocalinux provides a user-friendly speech-to-text solution for Linux users with:
|
|
|
|
- Activation via double-tap Ctrl keyboard shortcut
|
|
- Real-time transcription with minimal latency
|
|
- Universal compatibility across applications
|
|
- Offline operation for privacy and reliability
|
|
- Visual indicators for microphone status
|
|
- Audio feedback for recognition status
|
|
|
|
## Quick Start
|
|
|
|
### Prerequisites
|
|
|
|
- Ubuntu 22.04 or newer (may work on other Linux distributions)
|
|
- Python 3.8 or newer
|
|
- X11 or Wayland desktop environment
|
|
|
|
### Installation
|
|
|
|
```bash
|
|
# Clone the repository
|
|
git clone https://github.com/jatinkrmalik/vocalinux.git
|
|
cd vocalinux
|
|
|
|
# Run the installer script
|
|
./install.sh
|
|
```
|
|
|
|
The installer will set up everything you need, including system dependencies and a Python virtual environment.
|
|
|
|
For detailed installation instructions and options, see [docs/INSTALL.md](docs/INSTALL.md).
|
|
|
|
### Running Vocalinux
|
|
|
|
After installation:
|
|
|
|
```bash
|
|
# Activate the virtual environment
|
|
source activate-vocalinux.sh
|
|
|
|
# Run Vocalinux
|
|
vocalinux
|
|
```
|
|
|
|
## Usage
|
|
|
|
### Voice Dictation
|
|
|
|
1. Double-tap the Ctrl key to start recording
|
|
2. Speak clearly into your microphone
|
|
3. Double-tap Ctrl again or pause speaking to stop recording
|
|
|
|
### Voice Commands
|
|
|
|
| Command | Action |
|
|
|---------|--------|
|
|
| "new line" | Inserts a line break |
|
|
| "period" | Types a period (.) |
|
|
| "comma" | Types a comma (,) |
|
|
| "question mark" | Types a question mark (?) |
|
|
| "delete that" | Deletes the last sentence |
|
|
| "capitalize" | Capitalizes the next word |
|
|
|
|
For a complete user guide, see [docs/USER_GUIDE.md](docs/USER_GUIDE.md).
|
|
|
|
## Configuration
|
|
|
|
Configuration is stored in `~/.config/vocalinux/config.json`. You can customize:
|
|
|
|
- Recognition engine (VOSK or Whisper)
|
|
- Model size (small, medium, large)
|
|
- Keyboard shortcuts
|
|
- Audio feedback
|
|
- UI behavior
|
|
- And more
|
|
|
|
## Features
|
|
|
|
### Custom Icons
|
|
|
|
Vocalinux includes custom icons for system trays and application launchers that visually indicate:
|
|
- Microphone inactive state
|
|
- Microphone active state
|
|
- Speech processing state
|
|
|
|
### Custom Sounds
|
|
|
|
Audio feedback is provided for:
|
|
- Start of recording
|
|
- End of recording
|
|
- Error conditions
|
|
|
|
You can customize these sounds by replacing the files in `resources/sounds/`.
|
|
|
|
## Advanced Usage
|
|
|
|
```bash
|
|
# With debugging enabled
|
|
vocalinux --debug
|
|
|
|
# With a specific speech recognition engine
|
|
vocalinux --engine whisper
|
|
|
|
# With a specific model size
|
|
vocalinux --model medium
|
|
|
|
# Force Wayland compatibility mode
|
|
vocalinux --wayland
|
|
```
|
|
|
|
## Documentation
|
|
|
|
- [Installation Guide](docs/INSTALL.md) - Detailed installation instructions
|
|
- [User Guide](docs/USER_GUIDE.md) - Complete user documentation
|
|
- [Contributing](CONTRIBUTING.md) - Development setup and contribution guidelines
|
|
|
|
## Roadmap
|
|
|
|
Future development plans include:
|
|
|
|
1. ~~Custom icon design~~ ✅ (Implemented in v0.1.0)
|
|
2. Graphical settings dialog
|
|
3. Advanced voice commands for specific applications
|
|
4. Multi-language support
|
|
5. Better integration with popular applications
|
|
6. Improved model management
|
|
7. Customizable keyboard shortcuts via GUI
|
|
8. More audio feedback options
|
|
|
|
## Contributing
|
|
|
|
Contributions are welcome! Please see [CONTRIBUTING.md](CONTRIBUTING.md) for development setup instructions and contribution guidelines.
|
|
|
|
## License
|
|
|
|
This project is licensed under the GNU General Public License v3.0 - see the [LICENSE](LICENSE) file for details.
|