diff --git a/LICENSE b/LICENSE index 8f07d4d..1553f60 100644 --- a/LICENSE +++ b/LICENSE @@ -1,7 +1,7 @@ GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 - Copyright (C) 2025 Vocalinux Team + Copyright (C) 2025 Vocalinux Team | @jatinkrmalik Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. diff --git a/README.md b/README.md index 3bea461..e0a2c17 100644 --- a/README.md +++ b/README.md @@ -41,9 +41,9 @@ vocalinux/ │ └── USER_GUIDE.md # User guide with command reference ├── resources/ # Resource files │ └── sounds/ # Audio notification sounds -│ ├── start_recording.mp3 # Sound when recording starts -│ ├── stop_recording.mp3 # Sound when recording stops -│ └── error.mp3 # Sound when an error occurs +│ ├── start_recording.wav # Sound when recording starts +│ ├── stop_recording.wav # Sound when recording stops +│ └── error.wav # Sound when an error occurs ├── src/ # Source code │ ├── __init__.py # Package initialization │ ├── main.py # Main entry point @@ -61,7 +61,17 @@ vocalinux/ │ ├── keyboard_shortcuts.py # Keyboard shortcut handling │ └── tray_indicator.py # System tray UI ├── tests/ # Test suite -│ └── test_basic.py # Basic unit tests +│ ├── conftest.py # Pytest configuration +│ ├── test_audio_feedback.py +│ ├── test_command_processor.py +│ ├── test_config_manager.py +│ ├── test_keyboard_shortcuts.py +│ ├── test_main.py +│ ├── test_recognition_manager.py +│ ├── test_speech_recognition.py +│ ├── test_text_injector.py +│ └── test_tray_indicator.py +├── activate-vocalinux.sh # Script to activate the environment ├── install.sh # Installation script ├── LICENSE # GPLv3 license ├── README.md # This file @@ -74,7 +84,7 @@ vocalinux/ ### Prerequisites - Ubuntu 22.04 or newer (may work on other Linux distributions) -- Python 3.6 or newer +- Python 3.8 or newer - X11 or Wayland desktop environment ### Quick Install @@ -114,6 +124,9 @@ vocalinux --engine whisper # With a specific model size vocalinux --model medium + +# Force Wayland compatibility mode +vocalinux --wayland ``` ### Using Voice Dictation @@ -171,11 +184,11 @@ Configuration is stored in `~/.config/vocalinux/config.json` and includes: You can customize the audio feedback by replacing the sound files in the `resources/sounds/` directory: -- `start_recording.mp3` - Played when recording starts -- `stop_recording.mp3` - Played when recording stops -- `error.mp3` - Played when an error occurs +- `start_recording.wav` - Played when recording starts +- `stop_recording.wav` - Played when recording stops +- `error.wav` - Played when an error occurs -Both MP3 and WAV formats are supported, with MP3 being the primary format. +WAV format is used for all audio notifications. ## Development @@ -186,6 +199,10 @@ Both MP3 and WAV formats are supported, with MP3 being the primary format. git clone https://github.com/jatinkrmalik/vocalinux.git cd vocalinux +# Create a virtual environment (recommended) +python3 -m venv venv +source venv/bin/activate + # Install development dependencies pip install -e ".[dev]" @@ -235,7 +252,7 @@ The following checks are performed by pre-commit: 4. **Audio Feedback** (`src/ui/audio_feedback.py`) - Provides audio cues for application states - - Supports both MP3 and WAV formats + - Uses WAV format for sound files - Uses system audio players (PulseAudio/ALSA) 5. **Tray Indicator** (`src/ui/tray_indicator.py`) @@ -275,6 +292,8 @@ Future development plans include: Contributions are welcome! Please feel free to submit a Pull Request. +For contribution guidelines, please see [CONTRIBUTING.md](CONTRIBUTING.md). + ## License This project is licensed under the GNU General Public License v3.0 - see the [LICENSE](LICENSE) file for details. diff --git a/resources/sounds/error.mp3 b/resources/sounds/error.mp3 deleted file mode 100644 index 6a86ef0..0000000 Binary files a/resources/sounds/error.mp3 and /dev/null differ diff --git a/resources/sounds/start_recording.mp3 b/resources/sounds/start_recording.mp3 deleted file mode 100644 index 889779c..0000000 Binary files a/resources/sounds/start_recording.mp3 and /dev/null differ diff --git a/resources/sounds/stop_recording.mp3 b/resources/sounds/stop_recording.mp3 deleted file mode 100644 index e3e69b9..0000000 Binary files a/resources/sounds/stop_recording.mp3 and /dev/null differ diff --git a/setup.py b/setup.py index 0681db3..0aed182 100644 --- a/setup.py +++ b/setup.py @@ -9,7 +9,7 @@ setup( name="vocalinux", version="0.1.0", description="A seamless voice dictation system for Linux", - author="Vocalinux Team", + author="@jatinkrmaik", author_email="jatinkrmalik@gmail.com", packages=find_packages(where="src"), package_dir={"": "src"}, diff --git a/src/ui/audio_feedback.py b/src/ui/audio_feedback.py index cb8c539..0e28dd5 100644 --- a/src/ui/audio_feedback.py +++ b/src/ui/audio_feedback.py @@ -18,7 +18,7 @@ PACKAGE_DIR = os.path.dirname(MODULE_DIR) RESOURCES_DIR = os.path.join(os.path.dirname(PACKAGE_DIR), "resources") SOUNDS_DIR = os.path.join(RESOURCES_DIR, "sounds") -# Sound file paths - prioritize WAV files +# Sound file paths START_SOUND = os.path.join(SOUNDS_DIR, "start_recording.wav") STOP_SOUND = os.path.join(SOUNDS_DIR, "stop_recording.wav") ERROR_SOUND = os.path.join(SOUNDS_DIR, "error.wav") @@ -70,11 +70,6 @@ def _play_sound_file(sound_path): if not player: return False - file_ext = os.path.splitext(sound_path)[1].lower().lstrip(".") - if file_ext not in formats: - logger.warning(f"Format {file_ext} not supported by {player}") - return False - try: if player == "paplay": subprocess.Popen( diff --git a/src/ui/tray_indicator.py b/src/ui/tray_indicator.py index 0346b48..129925d 100644 --- a/src/ui/tray_indicator.py +++ b/src/ui/tray_indicator.py @@ -216,7 +216,8 @@ class TrayIndicator: about_dialog = Gtk.AboutDialog() about_dialog.set_program_name("Vocalinux") about_dialog.set_version("0.1.0") - about_dialog.set_copyright("© 2025 Vocalinux Team") + about_dialog.set_copyright("© 2025 | @jatinkrmalik") + about_dialog.set_authors(["Jatin K Malik"]) about_dialog.set_comments("A seamless voice dictation system for Ubuntu") about_dialog.set_website("https://github.com/jatinkrmalik/vocalinux") about_dialog.set_website_label("GitHub Repository")