# GNOME Speech2Text Service
A D-Bus service that provides speech-to-text functionality for the GNOME Shell Speech2Text extension.
## Overview
This service handles the actual speech recognition processing using OpenAI's Whisper API. It runs as a D-Bus service and communicates with the GNOME Shell extension to provide seamless speech-to-text functionality.
## Features
- **Real-time speech recognition** using OpenAI Whisper
- **D-Bus integration** for seamless desktop integration
- **Audio recording** with configurable duration
- **Multiple output modes** (clipboard, text insertion, preview)
- **Error handling** and recovery
- **Session management** for multiple concurrent recordings
## Installation
### System Dependencies
This service requires several system packages to be installed:
```bash
# Ubuntu/Debian
sudo apt update && sudo apt install -y \
python3 python3-pip python3-venv python3-dbus python3-gi \
ffmpeg xdotool xclip wl-clipboard
```
### Service Installation
The service can be installed via pip:
```bash
pip install gnome-speech2text-service
```
Or from the source repository:
```bash
cd service/
pip install .
```
### D-Bus Registration
After installation, you need to register the D-Bus service:
```bash
# Run the provided install script
./install.sh
```
This will:
- Set up the Python virtual environment
- Install the service in the correct location
- Register the D-Bus service files
- Configure the desktop integration
## Usage
### Starting the Service
The service is automatically started by D-Bus when needed. You can also start it manually:
```bash
gnome-speech2text-service
```
### Configuration
The service uses OpenAI's API for speech recognition. You'll need to:
1. Get an OpenAI API key from [OpenAI Platform](https://platform.openai.com/)
2. Configure it through the GNOME Shell extension preferences
### D-Bus Interface
The service provides the following D-Bus methods:
- `StartRecording(duration, copy_to_clipboard, preview_mode)` → `recording_id`
- `StopRecording(recording_id)` → `success`
- `GetRecordingStatus(recording_id)` → `status, progress`
- `CancelRecording(recording_id)` → `success`
Signals:
- `TranscriptionReady(recording_id, text)`
- `RecordingProgress(recording_id, progress)`
- `RecordingError(recording_id, error_message)`
## Development
### Local Development
```bash
# Clone the repository
git clone https://github.com/kavehtehrani/gnome-speech2text.git
cd gnome-speech2text/service/
# Install in development mode
pip install -e .
# Run the service
gnome-speech2text-service
```
### Testing
```bash
# Install development dependencies
pip install -e .[dev]
# Run tests
pytest
```
## Requirements
- **Python**: 3.8 or higher
- **System**: Linux with D-Bus support
- **Desktop**: GNOME Shell (tested on GNOME 46+)
- **API**: OpenAI API key for speech recognition
## License
This project is licensed under the GPL-2.0-or-later license. See the LICENSE file for details.
## Contributing
Contributions are welcome! Please see the main repository for contribution guidelines:
https://github.com/kavehtehrani/gnome-speech2text
Raw data
{
"_id": null,
"home_page": null,
"name": "gnome-speech2text-service",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": "Kaveh Tehrani <codemonkey13x@gmail.com>",
"keywords": "gnome, speech-to-text, dbus, voice-recognition, accessibility",
"author": null,
"author_email": "Kaveh Tehrani <codemonkey13x@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/97/08/e9edbc3cd8c13353b76dad9032866c361f2399d94e0d3d541daaa128c44e/gnome_speech2text_service-1.0.2.tar.gz",
"platform": null,
"description": "# GNOME Speech2Text Service\n\nA D-Bus service that provides speech-to-text functionality for the GNOME Shell Speech2Text extension.\n\n## Overview\n\nThis service handles the actual speech recognition processing using OpenAI's Whisper API. It runs as a D-Bus service and communicates with the GNOME Shell extension to provide seamless speech-to-text functionality.\n\n## Features\n\n- **Real-time speech recognition** using OpenAI Whisper\n- **D-Bus integration** for seamless desktop integration\n- **Audio recording** with configurable duration\n- **Multiple output modes** (clipboard, text insertion, preview)\n- **Error handling** and recovery\n- **Session management** for multiple concurrent recordings\n\n## Installation\n\n### System Dependencies\n\nThis service requires several system packages to be installed:\n\n```bash\n# Ubuntu/Debian\nsudo apt update && sudo apt install -y \\\n python3 python3-pip python3-venv python3-dbus python3-gi \\\n ffmpeg xdotool xclip wl-clipboard\n```\n\n### Service Installation\n\nThe service can be installed via pip:\n\n```bash\npip install gnome-speech2text-service\n```\n\nOr from the source repository:\n\n```bash\ncd service/\npip install .\n```\n\n### D-Bus Registration\n\nAfter installation, you need to register the D-Bus service:\n\n```bash\n# Run the provided install script\n./install.sh\n```\n\nThis will:\n\n- Set up the Python virtual environment\n- Install the service in the correct location\n- Register the D-Bus service files\n- Configure the desktop integration\n\n## Usage\n\n### Starting the Service\n\nThe service is automatically started by D-Bus when needed. You can also start it manually:\n\n```bash\ngnome-speech2text-service\n```\n\n### Configuration\n\nThe service uses OpenAI's API for speech recognition. You'll need to:\n\n1. Get an OpenAI API key from [OpenAI Platform](https://platform.openai.com/)\n2. Configure it through the GNOME Shell extension preferences\n\n### D-Bus Interface\n\nThe service provides the following D-Bus methods:\n\n- `StartRecording(duration, copy_to_clipboard, preview_mode)` \u2192 `recording_id`\n- `StopRecording(recording_id)` \u2192 `success`\n- `GetRecordingStatus(recording_id)` \u2192 `status, progress`\n- `CancelRecording(recording_id)` \u2192 `success`\n\nSignals:\n\n- `TranscriptionReady(recording_id, text)`\n- `RecordingProgress(recording_id, progress)`\n- `RecordingError(recording_id, error_message)`\n\n## Development\n\n### Local Development\n\n```bash\n# Clone the repository\ngit clone https://github.com/kavehtehrani/gnome-speech2text.git\ncd gnome-speech2text/service/\n\n# Install in development mode\npip install -e .\n\n# Run the service\ngnome-speech2text-service\n```\n\n### Testing\n\n```bash\n# Install development dependencies\npip install -e .[dev]\n\n# Run tests\npytest\n```\n\n## Requirements\n\n- **Python**: 3.8 or higher\n- **System**: Linux with D-Bus support\n- **Desktop**: GNOME Shell (tested on GNOME 46+)\n- **API**: OpenAI API key for speech recognition\n\n## License\n\nThis project is licensed under the GPL-2.0-or-later license. See the LICENSE file for details.\n\n## Contributing\n\nContributions are welcome! Please see the main repository for contribution guidelines:\nhttps://github.com/kavehtehrani/gnome-speech2text\n",
"bugtrack_url": null,
"license": "GPL-2.0-or-later",
"summary": "D-Bus service providing speech-to-text functionality for GNOME Shell",
"version": "1.0.2",
"project_urls": {
"Documentation": "https://github.com/kavehtehrani/gnome-speech2text/blob/main/README.md",
"Homepage": "https://github.com/kavehtehrani/gnome-speech2text",
"Issues": "https://github.com/kavehtehrani/gnome-speech2text/issues",
"Repository": "https://github.com/kavehtehrani/gnome-speech2text"
},
"split_keywords": [
"gnome",
" speech-to-text",
" dbus",
" voice-recognition",
" accessibility"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "fc90fed6d330fce38247fb9cc526b4d3e75bb75139c292e702b53ed6fb5c95df",
"md5": "4e4a3230298dfd55f539312e00bc61e7",
"sha256": "9ecfbf5875efbeffdfb3a08933518a225098db7427e52ff0d1ff3b5575c67039"
},
"downloads": -1,
"filename": "gnome_speech2text_service-1.0.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "4e4a3230298dfd55f539312e00bc61e7",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 9470,
"upload_time": "2025-08-15T09:22:04",
"upload_time_iso_8601": "2025-08-15T09:22:04.551978Z",
"url": "https://files.pythonhosted.org/packages/fc/90/fed6d330fce38247fb9cc526b4d3e75bb75139c292e702b53ed6fb5c95df/gnome_speech2text_service-1.0.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "9708e9edbc3cd8c13353b76dad9032866c361f2399d94e0d3d541daaa128c44e",
"md5": "1166322b0c3aed623c1154e2fd308573",
"sha256": "af4d9820ba1b565daff0461d2828b5c3a3a72cf8fa3540db630c1d306137af97"
},
"downloads": -1,
"filename": "gnome_speech2text_service-1.0.2.tar.gz",
"has_sig": false,
"md5_digest": "1166322b0c3aed623c1154e2fd308573",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 10214,
"upload_time": "2025-08-15T09:22:07",
"upload_time_iso_8601": "2025-08-15T09:22:07.810771Z",
"url": "https://files.pythonhosted.org/packages/97/08/e9edbc3cd8c13353b76dad9032866c361f2399d94e0d3d541daaa128c44e/gnome_speech2text_service-1.0.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-15 09:22:07",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "kavehtehrani",
"github_project": "gnome-speech2text",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "gnome-speech2text-service"
}