chidiwilliams/buzz
52.7
Weak · 19 September 2026
21.5k
lines of production code
Python
primary language
1
measurement over time
What this system is
Buzz is a desktop application for audio transcription that leverages local models like Whisper.cpp and external APIs to convert speech to text. It provides a comprehensive interface for managing transcription tasks, including live recording, URL import, and folder watching, with support for GPU acceleration and speaker identification. The system allows users to edit transcripts, assign speakers, and export results in various formats, while a plugin architecture enables extensible features such as AI summarization and automatic subtitle resizing.
How it got here
2022–2023 — Initial scaffolding and core feature development
16 changes.
This period established the foundational build infrastructure and dependency management for the Buzz application, followed by the implementation of its core desktop interface and transcription engine. Key developments included integrating GPU acceleration, persisting data via SQLite, and introducing advanced features such as speaker identification, keyboard shortcuts, and secure credential storage. The work was accompanied by the creation of a comprehensive test suite to validate the new widgets and backend logic.
2024 — Transcription engine refactoring and localization expansion
13 changes.
The transcription backend was restructured into a modular package with robust CUDA detection, Vulkan support, and DOCX export capabilities, while migrating persistent storage from JSON to SQLite. Concurrently, comprehensive test coverage was added for the new architecture, and the application expanded its internationalization support by adding complete UI translations for Spanish, Italian, Polish, Chinese, Latvian, Ukrainian, and Japanese.
2025–2026 — plugin architecture and localization expansion
19 changes.
The project introduced a comprehensive plugin system enabling extensible transcription pipelines with bundled tools for summarization, export, and processing. This period also significantly expanded internationalization support by adding complete locale files for multiple languages and improved deployment options through Flatpak and AppImage packaging.
Features
Add Flatpak launcher script
A new shell script (run-buzz.sh) has been added to the flatpak directory to serve as the entry point for the application. This script executes the Buzz application via Python and includes a note informing users that ffmpeg errors can be safely ignored.
flatpak · high confidence
Add Japanese language support
The application now includes a complete Japanese (ja\_JP) translation file, enabling Japanese language support for the user interface, including menus, settings, and dialog boxes.
_buzz/locale/ja\JP · high confidence
Added Brazilian Portuguese (pt\_BR) translation
Users can now see the application interface in Brazilian Portuguese. This change adds the complete translation file for the pt\_BR locale, covering UI strings from the main window, preferences, import dialogs, and transcription settings.
_buzz/locale/pt\BR · high confidence
Added Dutch language support
The application now includes a complete Dutch translation for the user interface, allowing users to select Dutch as their display language in the preferences. This update covers UI elements across various components, including import dialogs, settings panels, and transcription tools.
buzz/locale/nl · high confidence
Added French language support
Users can now select French as the interface language in the application settings. This change adds the complete French translation file (buzz.po) for the Buzz application, covering UI strings for preferences, dialogs, and transcription features.
buzz/locale/fr · high confidence
Added German and English (US) locale files
The application now includes dedicated translation files for German (de\_DE) and English (US) locales. The German file provides full translations for UI elements such as preferences, import dialogs, and live transcript presentation, while the English file serves as the base locale with empty translation strings for the same set of interface components.
_buzz/locale/de\_DE, buzz/locale/en\US · high confidence
Added Latvian language support
The application now includes a complete Latvian (lv\_LV) translation file, enabling users to switch the user interface to Latvian. This update translates key UI elements, including menu items, dialog buttons (such as 'Ok' and 'Cancel'), settings labels (like 'Font Size' and 'OpenAI API key'), and the list of available transcription languages.
_buzz/locale/lv\LV · high confidence
Added Russian language support
Users can now select Russian as the application interface language. This change adds the complete Russian translation file (buzz/locale/ru/LC\_MESSAGES/buzz.po), covering UI strings for menus, preferences, dialogs, and transcription settings, enabling a fully localized experience for Russian-speaking users.
buzz/locale/ru · high confidence
Added Simplified and Traditional Chinese language support
The application now includes complete UI translations for Simplified Chinese (zh\_CN) and Traditional Chinese (zh\_TW). Users can switch the interface language to Chinese via the preferences dialog, with translations covering core features such as URL import, live recording, speaker identification, and model settings.
_buzz/locale/zh\CN · high confidence
Added Ukrainian (uk\_UA) language support
Users can now select Ukrainian as the interface language. This change adds the complete Ukrainian translation file (buzz/locale/uk\_UA/LC\_MESSAGES/buzz.po), covering UI strings for the main window, preferences, import dialogs, and transcription settings.
_buzz/locale/uk\UA · high confidence
Danish language support added
The application now includes a complete Danish (da\_DK) translation file, enabling users to switch the user interface to Danish via the language preferences. This addition covers UI strings for core features such as import dialogs, settings, and live transcription presentation.
_buzz/locale/da\DK · high confidence
Initial project scaffolding and build configuration
This change introduces the foundational build and development infrastructure for the Buzz application. It adds a PyInstaller specification file (Buzz.spec) to bundle the application, a Makefile to automate the compilation of whisper.cpp binaries and translation files, and a custom hatch build hook (hatch\_build.py) to integrate these steps into the Python package build process. Additionally, it establishes a uv.lock dependency manifest, a .python-version file specifying Python 3.13, and various configuration files for testing (pytest.ini, .coveragerc), linting (.pylintrc, .pre-commit-config.yaml), and macOS code signing (entitlements.plist).
(repo-wide) · high confidence
Initial release of the Buzz desktop application
This entry introduces the complete user interface for the Buzz transcription application. It includes the main window with task management, an audio player with playback controls, a recording transcriber widget, and an import dialog for URLs and folders. The application also features an about dialog with update checking, a CUDA installation wizard for GPU acceleration, and a preferences system for managing settings and plugins.
buzz/widgets · high confidence
Introduces TranscriptionService for managing transcription and segment data
A new TranscriptionService class has been added to the application to centralize the logic for creating, updating, and retrieving transcriptions and their associated segments. This service acts as an intermediary between the business logic and the data access layer, providing methods to handle transcription lifecycle states (such as starting, failing, canceling, and completing), manage file and name updates, and perform detailed segment operations like inserting, replacing, and updating translations or speaker assignments.
buzz/db/service · high confidence
Introduces configurable keyboard shortcuts and recording transcriber modes
This change adds a new settings infrastructure for keyboard shortcuts and recording transcriber behavior. Users can now customize keyboard shortcuts for actions such as opening the record window, importing files, searching transcripts, and editing segment timestamps, with defaults provided and custom mappings saved in settings. Additionally, a new recording transcriber mode setting allows users to choose how new transcriptions are appended: below existing text, above, or with correction capabilities. These settings are persisted using the application's QSettings backend.
buzz/settings · high confidence
Italian localization added for UI and settings
The application now includes a complete Italian (it\_IT) translation file, enabling users to switch the interface language to Italian via the General preferences. This update covers translations for core UI elements, the language selection list, and settings related to API keys, export folders, and live recording modes.
_buzz/locale/it\IT · high confidence
Linux AppImage packaging and offline deployment support
Linux users can now download and run Buzz as a self-contained AppImage, enabling offline deployment without system-level installation. The build process bundles the application, the \uv\ tool (required for in-app CUDA environment setup), and desktop integration files (icon, desktop entry, AppStream metadata). It also includes a fix for modern Linux kernels (e.g., Ubuntu 26.04) that reject executable stack flags in shared libraries by automatically clearing the flag in bundled binaries.
appimage · high confidence
New AI Summary and Enhanced Language Detection plugins
Two new plugins are now available: the AI Summary plugin generates a summary of transcriptions using an OpenAI-compatible API, allowing users to save the result to the Notes field and/or a file; the Enhanced Language Detection plugin runs a pre-transcription language detection pass using whisper.cpp (using the largest available model or downloading a tiny model if needed) to improve accuracy for auto-detect tasks and ensure the detected language is used in exported file names. Both plugins include full localization support for Catalan, Danish, German, Spanish, French, Italian, Japanese, Latvian, Dutch, Polish, Portuguese (Brazil), Russian, Ukrainian, Simplified Chinese, and Traditional Chinese.
_buzz/plugins/ai\_summary, buzz/plugins/enhanced\_language\detection · high confidence
New Automatic Transcript Resizer plugin
A new plugin has been added that automatically regroups word-level transcription segments into properly sized subtitles after every transcription. It mirrors the manual merge options of the existing transcript resizer widget, allowing users to configure merging by silence gaps, splitting by punctuation, and splitting by maximum subtitle length. The plugin includes localization files for Catalan, Danish, German, Spanish, French, Italian, Japanese, Latvian, Dutch, Polish, Portuguese (Brazil), Russian, Ukrainian, Simplified Chinese, and Traditional Chinese.
_buzz/plugins/transcript\resizer · high confidence
New DOCX export plugin for transcripts
A new plugin allows users to export transcriptions to Microsoft Word (.docx) files. The export can be configured to save the file in a specific folder or next to the source media, and includes an optional toggle to include per-segment timestamps. The plugin is built using only standard library components to ensure compatibility with the frozen application environment, and includes localization strings for multiple languages.
_buzz/plugins/export\docx · high confidence
New Polish language support
Added a new Polish (pl\_PL) translation file, enabling the application interface to be displayed in Polish for users who select this language in their preferences.
_buzz/locale/pl\PL · high confidence
New Preferences dialog with General, Models, Shortcuts, and Folder Watch tabs
The application now features a unified Preferences dialog that consolidates settings into four tabs. The General tab allows users to configure the UI language, font size, OpenAI API key (with a test button), custom OpenAI base URL, model selection, default export file name, and live recording export options. The Models tab provides a centralized interface to manage transcription models, including downloading, deleting, and adding custom Whisper.cpp or Faster Whisper models via local files or URLs. The Shortcuts tab enables users to view and customize keyboard shortcuts with a reset-to-defaults option. Finally, the Folder Watch tab introduces automated transcription for watched directories, allowing users to enable the feature, specify input/output folders, configure speaker identification (including diarizer selection and speaker count), and set options to delete processed files.
_buzz/widgets/preferences\dialog · high confidence
New plugin system for extending transcription
Buzz now supports a plugin architecture that allows users to extend the transcription pipeline without modifying the core application. Users can manage plugins via the Help → Plugins menu, where they can add plugins from URLs, enable or disable them, reorder their execution, and edit settings. Bundled plugins (such as AI summary, transcript resizer, and export to DOCX) are automatically installed and updated, while user-installed plugins can declare pip dependencies that are installed into a shared cache. Plugins can process audio before transcription, modify results after transcription, or perform side effects after completion, with configuration fields (including secure password storage) and localization support.
buzz/plugins · high confidence
New plugin to skip transcription of already processed audio files
A new 'Skip Already Transcribed' plugin has been added, allowing users to avoid redundant processing. The plugin checks for existing transcription results (in .txt, .srt, or .vtt formats) on disk or in the local database before running a new transcription. Users can enable these checks via configuration, with disk checking enabled by default and database checking disabled by default. This change includes localization support for multiple languages.
_buzz/plugins/skip\_already\transcribed · high confidence
New plugins management dialog for installing and configuring extensions
A new Plugins dialog has been added to the application, providing a user interface to manage third-party plugins. Users can now view a list of available plugins, enable or disable them via checkboxes, reorder their execution priority using Move Up/Down buttons, and remove installed plugins. The dialog also supports adding new plugins by URL and configuring individual plugin settings through a dedicated settings editor that dynamically generates input fields based on the plugin's configuration schema.
_buzz/widgets/plugins\dialog · high confidence
New transcriber widget components and advanced settings dialog
The transcriber UI has been restructured with new PyQt6 widgets, including an Advanced Settings dialog for configuring AI translation, initial prompts, and live recording parameters, alongside dedicated form widgets for file transcription and model selection options.
buzz/widgets/transcriber · high confidence
New transcription viewer with speaker identification, resizing, and DOCX export
The transcription viewer widget has been replaced with a new implementation that adds structured speaker identification, the ability to resize and merge subtitle segments, and the option to export transcriptions with speaker labels as DOCX files. The viewer now supports viewing text, translations, timestamps, and speakers, and includes a dedicated tool button to switch between these modes. Speaker identification is performed via a background worker that handles batch processing and error fallbacks, while the resizer uses stable\_whisper to adjust segment boundaries. The export menu has been updated to include a 'DOCX – Speakers' option that allows users to include timestamps for each speaker turn.
_buzz/widgets/transcription\viewer · high confidence
Persistent transcription storage via SQLite
The application now saves transcription tasks and their associated segments to a local SQLite database, ensuring that transcription history is retained across sessions. This change introduces a data-access layer (DAO) that manages the persistence of transcription metadata (such as file path, language, model type, and status) and segment details (including speaker and translation data), allowing users to view and manage previously processed audio files.
buzz/db/dao · high confidence
Secure API key storage via keyring and local fallback
The application now stores sensitive credentials, such as the OpenAI API key, using a dedicated keyring store. This implementation prioritizes system keyrings or the XDG Desktop Portal (on Linux) for secure storage, falling back to an encrypted local JSON file if native keyring services are unavailable. This change ensures that API keys are no longer stored in plain text, improving security for user credentials across different operating environments.
buzz/store · high confidence
Spanish (Spain) localization added
The application now includes a complete Spanish (Spain) translation file, enabling users to switch the interface language to Spanish. This update covers UI strings for core features such as URL import, preferences, model management, and speaker identification, ensuring a localized experience for Spanish-speaking users.
_buzz/locale/es\ES · high confidence
Support for offline model downloads and local C++ extension builds
Users can now prepare the application for offline or air-gapped environments by using the new \scripts/download-models.py\ utility to pre-download model files to a specified directory. Additionally, the \scripts/build\_ctc\_forced\_aligner.py\ script allows for building the underlying C++ forced-aligner extension directly from source, applying necessary patches to submodules and compiling the extension in-place without requiring a full wheel build.
scripts · high confidence
Transcription tasks are now persisted in a local SQLite database
Buzz now saves transcription tasks and their segments to a local SQLite database instead of temporary files. This change enables structured speaker editing, persistent history of completed transcriptions, and the ability to export results to DOCX. The database schema includes entities for transcriptions and segments, supporting features like speaker identification, folder watch processing, and plugin hooks that modify or inspect transcription results.
buzz-captions · high confidence
Behavioural changes
5 commits (1 fix) modifying testdata
A change to existing behaviour in testdata — 5 commits (1 fix), 4 files.
testdata · medium confidence · unverified
Buzz version 1.4.6 release with comprehensive runtime and GPU infrastructure
Buzz has been updated to version 1.4.6, introducing a robust runtime environment for the application. The release includes a new CLI interface for command-line transcription tasks, a dedicated CUDA manager and setup module to handle GPU acceleration and library loading across Windows, Linux, and sandboxed environments (Snap/Flatpak), and a new sleep inhibitor to prevent the system from sleeping during active transcriptions. Additionally, the application now features a JSON-based task cache for persistent state, a new SQLite database schema for storing transcription records, and improved audio handling via a sounddevice-based player and ffmpeg utilities.
buzz · high confidence
Migrate transcription storage from JSON cache to SQLite
The application now stores transcriptions in a local SQLite database instead of the previous JSON-based cache. This change introduces a new database layer in the \buzz/db\ module that handles schema migrations, copies existing transcription data from the old JSON format into the new SQLite tables, and ensures that any in-progress or queued tasks are marked as canceled during the migration process to prevent data inconsistency.
buzz/db · high confidence
Restructured transcription engine with robust CUDA detection and DOCX export
The transcription backend has been reorganized into a modular package under buzz/transcriber, introducing a dedicated cuda\_device module that performs a runtime smoke test to verify CUDA availability before offloading work, preventing silent failures on misconfigured systems. File and recording transcribers now share a common base class that standardizes URL imports, folder watching, and speaker identification, while a new docx\_writer module enables structured Microsoft Word exports with speaker labels and timestamps. The whisper.cpp integration has been updated to support Vulkan acceleration and includes a VAD model to reduce hallucinations during audio silences.
buzz/transcriber · high confidence
Updated Catalan (ca\_ES) translations
The Catalan language pack has been updated with new and revised translations for the user interface, including labels for the URL import dialog, preferences settings (such as UI language, font size, and OpenAI API configuration), and live recording modes. This ensures that Catalan-speaking users see accurate and current terminology across the application's widgets and dialogs.
_buzz/locale/ca\ES · high confidence
Updated application icons and toolbar assets
The application's visual assets have been refreshed, introducing a new main logo (buzz.svg) and replacing the toolbar icons with a consistent set of Material Design-style SVGs (48px variants for actions like add, cancel, delete, undo, redo, and visibility). New specific icons have been added to support recent features, including a URL import icon for the main toolbar, a speaker identification icon, and a resize icon for subtitle adjustments.
buzz/assets · high confidence
Fixes
Fixes for Windows crashes, heap corruption, and known speaker count support
This update applies three patches to improve stability and functionality. First, it resolves Windows crashes on newer GitHub Actions runners by adding the /D\_DISABLE\_CONSTEXPR\_MUTEX\_CONSTRUCTOR compiler flag to the C++ extension build. Second, it fixes heap corruption and invalid alignment paths in the CTC forced aligner by replacing an estimated back-pointer buffer size with a precise pre-pass calculation. Third, it allows users to specify the number of speakers (1–8) during diarization, passing this value through to the underlying model configuration instead of leaving it null.
patches · high confidence
Test coverage
Added comprehensive test coverage for the transcriber module; Added comprehensive test coverage for widgets and store components; Added tests for settings keys and custom Whisper.cpp model registry; Added tests for the Preferences dialog and its sub-widgets; Added tests for the plugin loader and plugin system; Added tests for transcription data persistence and database migrations; Added tests for transcription viewer speaker editing, resizing, and translation features; Initial test suite for Buzz application.
Dependencies
Initial dependency manifests for Buzz and documentation site
The project now includes formal dependency manifests for the main application and its documentation site. The Python application (buzz-captions) is defined in pyproject.toml, specifying Python 3.13 support and dependencies such as PyQt6 6.11.0, OpenAI Whisper, Faster Whisper, and PyTorch 2.8.0 (with platform-specific CPU/GPU configurations). The documentation site uses Docusaurus 2.4.1 with React 17.0.2, managed via a new package.json and package-lock.json in the docs directory.
(dependencies) · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Baseline
- First survey — no prior run to compare against. CAI 53.
Lenses
- Code Health 88
- Architecture 100
- Maturity 65
- Readiness 36
- Security 58
Changes since last survey
- 300 commits — 188 feature/other, 112 fixes
By area
- buzz/locale — 72 commits
- (root) — 67 commits
- buzz/widgets — 46 commits
- buzz/transcriber — 31 commits
- .github/workflows — 14 commits
- buzz/model_loader.py — 12 commits
- docs/docs — 9 commits
- buzz/plugins — 7 commits
- buzz/file_transcriber_queue_worker.py — 5 commits
- demucs/demucs — 4 commits
- buzz/cli.py — 3 commits
- buzz/db — 3 commits
- docs/i18n — 3 commits
- share/metainfo — 3 commits
- share/screenshots — 3 commits
- tests/widgets — 3 commits
- buzz/ffmpeg_video_player.py — 2 commits
- buzz/transformers_whisper.py — 2 commits
- snap/snapcraft.yaml — 2 commits
- (repo) — 1 commit
Notable commits
- fix: 1205 fix windows (#1210)
- fix: 1292 fix speech dependencies (#1302)
- fix: 1329 fix folder watch (#1333)
- fix: 1329 fix folder watch (#1335)
- fix: 1450 fix corporate ssl (#1457)
- fix: 1509 fix windows memory leak (#1510)
- fix: 1509 fix windows memory leak (#1511)
- fix: 1562 fix stop kill (#1568)
- fix: Adding default en_US locale and fix for locale generation (#1105)
- fix: Adding latvian translations and fix for documentation pages (#1231)
- fix: Crash fixes and library updates (#1188)
- fix: Fix Snap Store authentication (#1577)
- fix: Fix URL downloads with trailing-dot titles on Windows (#1602)
- fix: Fix chinease word level timestamps (#1355)
- fix: Fix dark themes (#1217)
- fix: Fix folder watch and add speaker identification option (#1617)
- fix: Fix folder watcher duplicate filename handling (#1556)
- fix: Fix for API key check (#1041)
- fix: Fix for CI caches (#1582)
- fix: Fix for CUDA on Windows (#1133)
- …and 280 more
Architecture
- 0 containers · 1 bounded contexts · 0 dependency edges (baseline)
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
chidiwilliams/buzz was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 19 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit 7d1929c58868bbcc9803b0df180fa3701103c040 — the exact code this score is about.
- Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-13a154b7f5d1.