https://github.com/c-loftus/quickpiperaudiobook
With one command, create a natural-sounding audiobook from a variety of input formats (epub, mobi, txt, PDF, HTML and more!)
https://github.com/c-loftus/quickpiperaudiobook
audiobooks piper productivity tts
Last synced: about 1 year ago
JSON representation
With one command, create a natural-sounding audiobook from a variety of input formats (epub, mobi, txt, PDF, HTML and more!)
- Host: GitHub
- URL: https://github.com/c-loftus/quickpiperaudiobook
- Owner: C-Loftus
- License: agpl-3.0
- Created: 2024-07-27T01:06:28.000Z (almost 2 years ago)
- Default Branch: master
- Last Pushed: 2025-03-21T01:28:21.000Z (about 1 year ago)
- Last Synced: 2025-05-12T02:18:36.880Z (about 1 year ago)
- Topics: audiobooks, piper, productivity, tts
- Language: Go
- Homepage:
- Size: 9.45 MB
- Stars: 651
- Watchers: 7
- Forks: 35
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
QuickPiperAudiobook
Create a natural audiobook for any text content with one command.
- Converts [PDFs, epub, txt, mobi, djvu, HTML, docx, and more](https://manual.calibre-ebook.com/generated/en/ebook-convert.html)
- All conversion is done offline and is entirely private
- Uses [piper models](https://rhasspy.github.io/piper-samples/); supports many languages
Listen to sample output [ here ](./examples/)
## Installing
1. Grab a prebuilt [release](https://github.com/C-Loftus/QuickPiperAudiobook/releases/)
* (Or build from source using `go mod tidy && go build`)
2. Download `ebook-convert` and make sure it is in your PATH. (This is bundled with [calibre](https://calibre-ebook.com/))
3. _(Optional)_ Download `ffmpeg` for mp3 and chapter support
> [!NOTE]
> You don't need to have piper installed. This program manages piper and the associated models
## Usage
* Pass in either a local file or a remote URL with the proper extension
* i.e. `./QuickPiperAudiobook test.txt`
* Specify the `--chapters` flag to generate mp3 chapters for epub files
* i.e. `./QuickPiperAudiobook --chapters test.epub`
* For a full list of options use the `--help` flag
* i.e. `./QuickPiperAudiobook --help`
### Non-English / UTF-8
* Grab a model for your language of choice (.onnx and .json) from the [piper models](https://rhasspy.github.io/piper-samples/)
* i.e. `pl_PL-gosia-medium.onnx` and corresponding `pl_PL-gosia-medium.onnx.json` (rename if needed)
* Put them in `~/.config/QuickPiperAudiobook/`
* Use the `--speak-utf-8` and `--model=` flags to specify you want utf characters to be spoken with a specific model
* i.e. `./QuickPiperAudiobook --speak-utf-8 --model=pl_PL-gosia-medium.onnx MaszynaTuringa_Wikipedia.pdf`
> [!NOTE]
> Consider specifying this model as the default in the configuration file if you plan to use it frequently
### Configuring
* You can create a config file at `~/.config/QuickPiperAudiobook/` to specify preferred values if you do not want to specify these as cli args each time
* i.e. you can use any arbitrary model by putting the associated `.onnx` and `.onnx.json` file for it in `~/.config/QuickPiperAudiobook/`
* A full example config can be found [here](./examples/config.yaml)
```yml
# An example for `~/.config/QuickPiperAudiobook/config.yaml`
# the default output directory to use if the user does not specify --output in the cli args
output: ~/Audiobooks
# the default model to use if the user does not specify --model in the cli args
model: "en_US-hfc_female-medium.onnx"
# output the audiobook as an mp3 file (requires ffmpeg in your PATH)
mp3: false
# generate chapter metadata when outputting mp3s (requires an epub input and ffmpeg in your PATH)
chapters: false
```
## Notes
- Piper does not support progress output. Long audiobooks may take a long time to generate since all computation is being done locally.
- This repo has been tested on Linux but can also work on MacOS once an upstream bug is fixed with Piper
## Support
Thank you for considering supporting this project.
I accept donations on Github or Paypal. If you would like to sponsor this project or reach out to me for business reasons, you can contact me via [email](mailto:github@colton.place) or [my website](https://colton.place/contact/)