Skip to main content

🎙️ Goobits STT

A pure speech-to-text engine with multiple operation modes and advanced text formatting. Features real-time transcription, WebSocket server capabilities, and comprehensive text processing with internationalization support. Built on Whisper models for accurate transcription across various languages and use cases.

📋 Table of Contents

📦 Installation

# Install globally with pipx (recommended)
pipx install .                     # Install globally, isolated environment
pipx install .[dev]               # Install with development dependencies

# Or with pip for development
pip install -e .[dev]              # Install editable with dev dependencies
stt --version                      # Verify installation
stt --listen-once                  # Test basic functionality

🎯 Basic Usage

stt --listen-once                  # Single utterance with VAD
stt --conversation                 # Always listening mode
stt --tap-to-talk=f8              # Tap F8 to start/stop recording
stt --hold-to-talk=space          # Hold spacebar to record
stt --server --port=8769          # Run WebSocket server

⚙️ Configuration

# Edit main configuration
nano config.json

# Configure Whisper model
stt --model large-v3-turbo --language en

# Audio settings
stt --device "USB Audio" --sample-rate 16000

# Output formats
stt --format json | jq -r '.text'
stt --format text --no-formatting

🎤 Operation Modes

# Quick transcription
stt --listen-once | llm-process

# Interactive conversation
stt --conversation | tts-speak

# Hotkey control
stt --tap-to-talk=f8              # Toggle recording with F8
stt --hold-to-talk=ctrl+space     # Push-to-talk mode

# Server mode for remote clients
stt --server --host 0.0.0.0 --port 8769

🚀 Performance Optimization

# GPU acceleration (if available)
stt --model base --device cuda

# CPU optimization
stt --model tiny --device cpu

# Model selection by speed/quality
stt --model tiny      # Fastest, lower quality
stt --model base      # Balanced (default)
stt --model large-v3-turbo  # Best quality

🎭 Text Formatting Features

# Advanced entity detection
stt --listen-once  # "Call me at 555-123-4567" → "Call me at (555) 123-4567"
stt --listen-once  # "Go to github dot com" → "Go to github.com"
stt --listen-once  # "Three point one four" → "3.14"

# Multilingual support
stt --language es  # Spanish formatting rules
stt --language en  # English formatting (default)

# Disable formatting
stt --no-formatting  # Raw transcription output

🔧 Server Deployment

# Basic server
stt --server

# Production with SSL
stt --server --port 443 --host 0.0.0.0

# Docker deployment
docker run -p 8080:8080 -p 8769:8769 sttservice/transcribe

🎯 Testing & Development

# Run test suite
pytest                             # All tests
pytest tests/text_formatting/     # Specific module
pytest -v -n auto                 # Parallel with verbose output

# Code quality
ruff check src/ tests/             # Linting
black src/ tests/ stt.py          # Formatting
mypy src/ stt.py                  # Type checking

# Test with real audio
pytest tests/__fixtures__/audio/

🔧 Model Comparison

Model Speed Quality Memory Best For
tiny ⚡ Fastest 🌟 Basic 💾 39MB Real-time, low resources
base 🔥 Fast 🌟🌟 Good 💾 74MB General use (default)
small ⚡ Quick 🌟🌟🌟 Better 💾 244MB Accuracy balance
medium 🔥 Moderate 🌟🌟🌟🌟 Great 💾 769MB High accuracy
large-v3-turbo 🔥 Fast 🏆 Best 💾 1550MB Production quality

Choose based on your speed/accuracy requirements and available system resources.

🎙️ Audio Features

  • Real-time streaming: Opus audio encoding for efficient transmission
  • Voice Activity Detection: Automatic speech detection and silence handling
  • Multiple input devices: Support for various microphones and audio interfaces
  • Hotkey integration: System-wide keyboard shortcuts for hands-free operation
  • Background operation: Run as daemon with minimal resource usage

🛠️ Tech Stack

Core Technologies

  • 🧠 AI/ML: OpenAI Whisper (faster-whisper), CTranslate2, PyTorch
  • 🎙️ Audio: OpusLib, NumPy, custom pipe-based audio capture
  • ⌨️ System: pynput for global hotkeys, cross-platform support

Text Processing

  • 📝 NLP: spaCy, deepmultilingualpunctuation
  • 🌍 i18n: Multi-language entity detection and formatting
  • 🔧 Parsing: pyparsing for complex text transformations
  • 📊 Output: JSON/text formatting with rich entity support

Development & Testing

  • 🧪 Testing: pytest with asyncio, xdist, custom plugins
  • 📊 Quality: ruff (linting), black (formatting), mypy (typing)
  • 🔍 Security: bandit for security analysis
  • 📦 Build: setuptools, pyproject.toml configuration

Deployment

  • 🐳 Containerization: Docker with CUDA 12.1 support
  • 🖥️ Interface: FastAPI admin dashboard (Docker), responsive web UI
  • 🔒 Security: JWT authentication, RSA+AES encryption (Docker)
  • 📈 Monitoring: Structured logging, health checks
  • ☁️ Cloud: Ready for production deployment with SSL/TLS

Metadata

Release files for goobits-stt 1.0.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 goobits-stt 1.0.0
File Size Uploaded
goobits_stt-1.0.0.tar.gz 143.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for goobits-stt 1.0.0
File Interpreter ABI Platform
goobits_stt-1.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 305.4 kB

Release files / goobits_stt-1.0.0.tar.gz

Download URL goobits_stt-1.0.0.tar.gz
Size 143.9 kB
Tags Source
SHA-256 checksum
How to use checksums
67756f1282532f9a2e29208e210dbbe3f8f3756b3f53f8bccc4c745179031cb4
BLAKE2b-256 checksum
How to use checksums
5eb5d3529f95e6fbc3d74c8f730e1bec77e43de7a022fb4ebe83c63ab36d5a8d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.9.6

Release files / goobits_stt-1.0.0-py3-none-any.whl

Download URL goobits_stt-1.0.0-py3-none-any.whl
Size 161.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
fcfbe0da5e8fc548ab9e3bc4139ac35eea210e09c3a413b4a274f6cc6f7ca857
BLAKE2b-256 checksum
How to use checksums
9954d1aa492e45fa3952e0746bb14a9469a584bf60c6270df8cade1e3d11e625
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.9.6

Release history Release notifications | RSS feed

This release

1.0.0 This release

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