# 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 and desktop entry. Recommended options:
1. Using the repository (local source install)
```bash
# From the repo root
./src/install-service.sh --local
```
2. Using the bundled installer (PyPI install)
```bash
# From the repo root
./src/install-service.sh --pypi
```
The installer will:
- Create a per-user virtual environment under `~/.local/share/gnome-speech2text-service/venv`
- Install the `gnome-speech2text-service` package
- Register the D-Bus service at `~/.local/share/dbus-1/services/org.gnome.Shell.Extensions.Speech2Text.service`
- Create a desktop entry at `~/.local/share/applications/gnome-speech2text-service.desktop`
## Usage
### Starting the Service
The service is D-Bus activated and starts automatically when requested by the extension. You can also start it manually:
```bash
# If the entry point is on PATH (pip install)
gnome-speech2text-service
# Or via the per-user wrapper created by the installer
~/.local/share/gnome-speech2text-service/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)`
## Requirements
- **Python**: 3.8 or higher
- **System**: Linux with D-Bus support
- **Desktop**: GNOME Shell (tested on GNOME 46+)
## 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/b2/51/09a99cd6a2773af768697eb4bac7cd7d031b21497e4fa5474d3e1d2919ba/gnome_speech2text_service-1.0.4.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 and desktop entry. Recommended options:\n\n1. Using the repository (local source install)\n\n```bash\n# From the repo root\n./src/install-service.sh --local\n```\n\n2. Using the bundled installer (PyPI install)\n\n```bash\n# From the repo root\n./src/install-service.sh --pypi\n```\n\nThe installer will:\n\n- Create a per-user virtual environment under `~/.local/share/gnome-speech2text-service/venv`\n- Install the `gnome-speech2text-service` package\n- Register the D-Bus service at `~/.local/share/dbus-1/services/org.gnome.Shell.Extensions.Speech2Text.service`\n- Create a desktop entry at `~/.local/share/applications/gnome-speech2text-service.desktop`\n\n## Usage\n\n### Starting the Service\n\nThe service is D-Bus activated and starts automatically when requested by the extension. You can also start it manually:\n\n```bash\n# If the entry point is on PATH (pip install)\ngnome-speech2text-service\n\n# Or via the per-user wrapper created by the installer\n~/.local/share/gnome-speech2text-service/gnome-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## Requirements\n\n- **Python**: 3.8 or higher\n- **System**: Linux with D-Bus support\n- **Desktop**: GNOME Shell (tested on GNOME 46+)\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.4",
"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": "b32f402d220b96926893a15f4bcdd58f64f517046888e6fcb5b1c85a293ec88d",
"md5": "a82eb1211a99c4b95fec74621a787833",
"sha256": "a289fa54992cd7913e8ba56961956d0145438b9d58c3c49fc0c305e4708b4435"
},
"downloads": -1,
"filename": "gnome_speech2text_service-1.0.4-py3-none-any.whl",
"has_sig": false,
"md5_digest": "a82eb1211a99c4b95fec74621a787833",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 10439,
"upload_time": "2025-08-19T07:11:32",
"upload_time_iso_8601": "2025-08-19T07:11:32.844366Z",
"url": "https://files.pythonhosted.org/packages/b3/2f/402d220b96926893a15f4bcdd58f64f517046888e6fcb5b1c85a293ec88d/gnome_speech2text_service-1.0.4-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "b25109a99cd6a2773af768697eb4bac7cd7d031b21497e4fa5474d3e1d2919ba",
"md5": "0ac75a5efac02c10957e4e71604db37f",
"sha256": "2a92eb1298729678868203e33c977e9d8bda08bce97cc6a12027c7e70301905b"
},
"downloads": -1,
"filename": "gnome_speech2text_service-1.0.4.tar.gz",
"has_sig": false,
"md5_digest": "0ac75a5efac02c10957e4e71604db37f",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 11302,
"upload_time": "2025-08-19T07:11:35",
"upload_time_iso_8601": "2025-08-19T07:11:35.649205Z",
"url": "https://files.pythonhosted.org/packages/b2/51/09a99cd6a2773af768697eb4bac7cd7d031b21497e4fa5474d3e1d2919ba/gnome_speech2text_service-1.0.4.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-19 07:11:35",
"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"
}