Commit Graph
32 Commits
Author SHA1 Message Date
Deniz Şafak 950eb317f0 Fixed all pytest errors, enhanced book parser with context management and resource cleanup, update tests for proper parser closure 2026-01-10 00:09:04 +03:00
JB 5b174737ad Merge upstream/main into main
Resolved conflicts:
- CHANGELOG.md: Kept Unreleased section + upstream version history
- README.md: Kept web-first documentation rewrite
- abogen/Dockerfile: Removed (replaced by webui/Dockerfile)
- abogen/{book_handler,conversion,gui,queue_manager_gui,voice_formula_gui}.py: Kept stubs (implementations in pyqt/)
- abogen/main.py: Kept web UI launcher
- abogen/utils.py: Kept version with optional chardet imports
- pyproject.toml: Merged dependencies (kept Flask, gpustat, httpx for web UI + pip from upstream)
2025-12-22 11:50:47 -08:00
JB e2b2f610a6 feat: Additive merge of webui branch with PyQt GUI support
- Add abogen/pyqt/ package with full PyQt6 desktop GUI
- Restore PyQt GUI files (gui.py, book_handler.py, queue_manager_gui.py, voice_formula_gui.py, conversion.py)
- Add new shared modules from webui: book_parser.py, subtitle_utils.py, spacy_utils.py
- Add Linux libraries (libxcb-cursor) for Qt platform plugin support
- Add new epub parsing tests from webui branch
- Update pyproject.toml with dual entry points:
  - abogen: PyQt6 desktop GUI
  - abogen-web: Flask Web UI
- Add PyQt6 to dependencies
- Re-export PyQt classes from root modules for backwards compatibility
- Merge CHANGELOG.md entries (1.2.0-1.2.5 from webui)
- Update README.md with dual interface documentation

Implements #26 - shared core with separate UI folders
2025-12-22 05:51:21 -08:00
JB 938e122166 feat: Refactor code structure to move web-related components to the webui module and update references accordingly 2025-12-21 08:12:48 -08:00
JB 95d5921e67 feat: Integrate Supertonic TTS provider with configuration options and UI updates; enhance voice handling and settings management 2025-12-20 06:20:33 -08:00
Deniz Şafak 66a97835f0 Update README.md and pyproject.toml for improved installation instructions and development dependencies 2025-12-13 23:03:51 +03:00
Deniz Şafak 56f81ef892 v1.2.5 2025-12-10 03:35:00 +03:00
Deniz Şafak e3cdd1a9ca Fixed Error "Could not load the Qt platform plugin "xcb" mentioned in #101 2025-12-09 04:24:38 +03:00
Deniz Şafak 0820c40b14 uv integration: add optional dependencies and index definitions for CUDA and ROCm configurations 2025-12-08 23:00:57 +03:00
Deniz Şafak e96c19ace6 Fixed the No module named pip error 2025-11-29 13:21:33 +03:00
Deniz Şafak 5ef2612df6 Add spaCy support for improved sentence segmentation, possible fix for #91 2025-11-28 00:49:36 +03:00
JB de0f17cd57 feat: Add Audiobookshelf and Calibre OPDS integration
- Implemented Audiobookshelf integration for uploading audiobooks with metadata, cover, chapters, and subtitles.
- Added configuration options for Audiobookshelf in the settings page, including base URL, API token, library ID, and upload preferences.
- Introduced Calibre OPDS integration for fetching and downloading resources from a Calibre OPDS catalog.
- Enhanced job processing to include post-completion hooks for Audiobookshelf uploads.
- Updated settings template to include new integration options and fields.
- Added utility functions for metadata normalization and chapter extraction.
- Included HTTP client functionality for both Audiobookshelf and Calibre OPDS interactions.
- Updated dependencies to include httpx for HTTP requests.
2025-10-27 17:10:48 -07:00
Deniz Şafak eedf347866 Upgraded Abogen's interface from PyQt5 to PyQt6, Added tooltip indicators in queue manager 2025-10-27 17:08:32 +03:00
JB 93fe48f601 feat: Implement pronunciation store with SQLite backend
- Added a new module for managing pronunciation overrides using SQLite.
- Implemented functions to load, save, search, and delete pronunciation overrides.
- Introduced schema for storing overrides and metadata.
- Added thread-safe access to the database with RLock.
- Created a utility for normalizing tokens for consistent storage and retrieval.

refactor: Overhaul entities step in the preparation wizard

- Renamed Step 3 from "Speakers" to "Entities" across all templates and routes.
- Introduced sub-navigation with tabs for "People", "Entities", and "Manual Overrides".
- Enhanced UI to display detected entities and allow manual overrides for pronunciations.
- Implemented search functionality for manual overrides with AJAX support.
- Updated frontend logic to manage tab interactions and voice selections.

docs: Add detailed plan for entities step overhaul

- Documented requirements, implementation strategies, and testing plans for the entities step.
- Outlined the integration of POS tagging and entity recognition using spaCy.
- Provided a comprehensive overview of the manual overrides workflow and data persistence strategies.
2025-10-11 14:14:19 -07:00
JB be37f03109 Add number normalization and enhance UI for voice preview
- Implemented number conversion to words for grouped numbers in text normalization.
- Added configuration options for number conversion in ApostropheConfig.
- Updated the normalize_apostrophes function to include number normalization.
- Enhanced the dashboard UI with new sections for manuscript and narrator defaults.
- Improved voice preview functionality with better handling of audio playback and status updates.
- Refactored HTML templates for cleaner structure and added new fields for speaker settings.
- Updated CSS styles for improved layout and responsiveness.
- Added tests to ensure correct spelling of grouped numbers in the normalization process.
- Included num2words as a new dependency in pyproject.toml.
2025-10-10 16:12:51 -07:00
JB 02da72434b feat: Implement chapter embedding in m4b files using mutagen and update dependencies 2025-10-07 08:47:18 -07:00
JB e76701ab32 feat: Add allow-direct-references setting to hatch metadata 2025-10-06 16:23:57 -07:00
JB 0d74171bb5 feat: Update en-core-web-sm dependency to use direct URL for installation 2025-10-06 16:19:28 -07:00
JB 477c5055b4 feat: Update environment variables and Docker configuration for cache management and temporary directory settings 2025-10-06 16:14:49 -07:00
JB 2e402f6b5b feat: Enhance voice mixer functionality with language filtering and improved directory management 2025-10-06 06:00:17 -07:00
JB 338ff104e8 feat: Implement conversion service with job management and logging
- Added `ConversionService` class to handle job queuing, processing, and cancellation.
- Introduced `Job`, `JobLog`, and `JobResult` data classes to manage job details and results.
- Implemented job status tracking with enums for better state management.
- Created a web interface with HTML templates for job submission and monitoring.
- Developed CSS styles for a modern UI layout and responsive design.
- Added functionality for voice profile management in the voice mixer.
- Implemented a Docker Compose configuration for GPU support.
- Wrote unit tests for the conversion service to ensure job processing works as expected.
2025-10-05 15:53:33 -07:00
Deniz Şafak 219e2fc6ae Improved the markdown logic 2025-09-17 03:32:13 +03:00
Deniz Şafak 37db948d2f Include Mandarin Chinese (misaki[zh]) by default 2025-07-29 17:14:59 +03:00
Juraj Borza 1ca4d0d5f9 Merge branch 'main' of https://github.com/jborza/abogen 2025-05-03 19:26:46 +02:00
Juraj Borza e09535fa83 Add chapter metadata - added m4b format, generating chapters info and converting via ffmpeg 2025-05-03 19:26:19 +02:00
Deniz Şafak 3a3f6e34e5 Better EPUB handling, improvements in code and docs 2025-05-02 17:33:15 +03:00
Deniz Şafak 04e16722e2 Use platformdirs for finding the desktop path 2025-04-30 16:29:47 +03:00
Deniz Şafak a6bdc9c086 Fixed "'utf-8' codec can't decode byte" error 2025-04-27 11:56:28 +03:00
Deniz Şafak b7c1862651 Added changelog, cli for errors, fixes and improvements in code 2025-04-27 01:21:16 +03:00
Deniz Şafak 8ce1c0e586 switched to hatchling 2025-04-26 19:36:52 +03:00
Deniz Şafak 21034cb48f Add missing information 2025-04-26 02:13:23 +03:00
Deniz Şafak 20da35a137 Initial commit 2025-04-26 01:50:03 +03:00