Skip to main content

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 model locally. 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 (e.g. ffmpeg, clipboard tools). See the main README.md for the complete list of system dependencies.

Service Installation

The service is available on PyPI and is typically installed into a per-user virtual environment by the extension’s installer.

pip install gnome-speech2text-service

PyPI Package: gnome-speech2text-service

Or from the source repository:

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)
# From the repo root
./src/install-service.sh --local
  1. Using the bundled installer (PyPI install)
# 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:

# 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 Whisper model locally for speech recognition. No API key is required. All processing happens on your local machine for complete privacy.

D-Bus Interface

The service provides the following D-Bus interface (stable; used by the GNOME extension):

Methods:

  • StartRecording(duration, copy_to_clipboard, preview_mode) → recording_id
  • StopRecording(recording_id) → success
  • CancelRecording(recording_id) → success
  • TypeText(text, copy_to_clipboard) → success
  • GetServiceStatus() → status
  • CheckDependencies() → all_available, missing_dependencies[]

Signals:

  • RecordingStarted(recording_id)
  • RecordingStopped(recording_id, reason)
  • TranscriptionReady(recording_id, text)
  • RecordingError(recording_id, error_message)
  • TextTyped(text, success)

Requirements

  • Python: 3.8–3.13 (Python 3.14+ not supported yet)
  • System: Linux with D-Bus support
  • Desktop: GNOME Shell (tested on GNOME 46+)

License

This project is licensed under the GPL-3.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

Metadata

Release files for gnome-speech2text-service 1.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for gnome-speech2text-service 1.1.0
File Size Uploaded
gnome_speech2text_service-1.1.0.tar.gz 25.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for gnome-speech2text-service 1.1.0
File Interpreter ABI Platform
gnome_speech2text_service-1.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 49.9 kB

Release files / gnome_speech2text_service-1.1.0.tar.gz

Download URL gnome_speech2text_service-1.1.0.tar.gz
Size 25.4 kB
Tags Source
SHA-256 checksum
How to use checksums
7e74112083ddf578518a1f1e381d66030dcc2dc5b1dfb09a24ea9f34b25c19f8
BLAKE2b-256 checksum
How to use checksums
639ce2151b50d55da42b5e9a9aae8c811ea3b5e0a86314793b000d1f42e058a2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.3

Release files / gnome_speech2text_service-1.1.0-py3-none-any.whl

Download URL gnome_speech2text_service-1.1.0-py3-none-any.whl
Size 24.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
5da33c284724a07416b3fe979a0409f120c4b4fdb7745cda072ac89b3f726eb7
BLAKE2b-256 checksum
How to use checksums
df43ed6bdb43aa8a0cfa7035d2c0d6a31ca4218175bb3ad05e8c9b208ff93f4d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.3

Release history Release notifications | RSS feed

This release

1.1.0 This release

2 release files

1.0.8

2 release files

1.0.7

1 release file

1.0.6

2 release files

1.0.5

2 release files

1.0.4

2 release files

1.0.3

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page