Eli Schwartz ee2e5374ce
TTS: gracefully handle missing piper support
Third party redistributors might choose to skip distributing this for a
couple reasons:
- missing dependencies
- lack of interest in TTS as a feature

Lay some groundwork for handling this with fewer error message popups.
In particular note that speechd / flite depend on PyQt6 being built with
it, so support *may* appear dynamically after calibre is installed, and
available_engines queries Qt to see what is available. Piper is built
as part of calibre though, and if it has been patched out or skipped
via `setup.py build --only=xxx` we can at least avoid claiming it's
there.

Entrypoints into TTS eventually tend to consolidate into creating the
backend. This gives us one consistent place to raise errors for missing
backends... which however doesn't handle forcing a backend name. A
forced backend that is unavailable ended up hitting the "no prefs"
fallback code to use the default engine, which returned a different
backend than the one which is *forced*, and later a KeyError when
tweak_book attempted to access the backend name it forced but which
didn't exist.

Instead, raise an immediate "TTS engine piper is not available" error
dialog box, preventing any further confusing tracebacks.
2025-08-08 01:46:07 -04:00
...
2025-03-11 15:19:51 +05:30
2025-08-06 11:32:28 +01:00
2025-08-08 06:49:08 +05:30
2025-07-31 07:32:19 +05:30
2024-11-24 22:01:57 +05:30
2025-03-21 08:09:41 +05:30
...
2025-08-08 06:50:30 +05:30
2025-03-25 09:30:01 +01:00
2025-01-02 11:27:45 +02:00
2021-01-24 19:53:30 +09:00
2021-01-24 19:53:30 +09:00
2025-07-16 08:55:16 +02:00
2025-01-24 11:14:21 +01:00
2025-05-09 19:10:59 +05:30

calibre

calibre is an e-book manager. It can view, convert, edit and catalog e-books in all of the major e-book formats. It can also talk to e-book reader devices. It can go out to the internet and fetch metadata for your books. It can download newspapers and convert them into e-books for convenient reading. It is cross platform, running on Linux, Windows and macOS.

For more information, see the calibre About page.

Build Status

Screenshots

Screenshots page

Usage

See the User Manual.

Development

Setting up a development environment for calibre.

A tarball of the source code for the current calibre release.

Bugs

Bug reports and feature requests should be made in the calibre bug tracker at Launchpad. GitHub is only used for code hosting and pull requests.

Support calibre

calibre is a result of the efforts of many volunteers from all over the world. If you find it useful, please consider contributing to support its development. Donate to support calibre development.

Building calibre binaries

See Build instructions for instructions on how to build the calibre binaries and installers for all the platforms calibre supports.

calibre package versions in various repositories

Packaging Status

Description
The official source code repository for the calibre ebook manager
Readme GPL-3.0 365 MiB
Languages
Python 92.5%
C 3.3%
C++ 3.1%
HTML 0.4%
Shell 0.2%
Other 0.2%