wustho / epy

CLI Ebook (epub2, epub3, fb2, mobi) Reader
GNU General Public License v3.0
928 stars 52 forks source link

Add support for Speech Dispatcher (speechd) and other engines #100

Open tkapias opened 6 months ago

tkapias commented 6 months ago

TTS support on Linux is growing strong and there is currently many high-quality solutions but most of them are too slow for epy purpose.

I used Mimic3 but it's slow on some devices, Coqui would require even more hardware, so I used Mimic1 for some time.

But, I recently tried Piper wich is smooth even on some 15 years old mid-level hardware.

On linux the best way to setup any engine is to use Speech Dispatcher, it's available in every distro and with a simple module/engine conf file you get defaults and specific settings for every engines (voice, pitch, rate, language...) with the same command lines.

For those interested in Piper, I shared my setup and module configuration in this thread : Speechd: module request: piper

You can setup .config/epy/configuration.json for speechd like that:

    "PreferredTTSEngine": "speechd",
    "TTSEngineArgs": ["--voice-type=male1", "--language=en", "--rate=10"]

An empty "TTSEngineArgs": [] would use speechd defaults.

THOUSAND-SKY commented 4 months ago

I am using this w/ piper, and it works.

The keybind for ! says "toggle TTS" in source but for me it only starts. I don't know if that's related to this pr or not (and frankly I don't mind it).