Create a natural audiobook for any text content with one command.
- Converts PDFs, epub, txt, mobi, djvu, HTML, docx, and more
- All conversion is done offline and is entirely private
- Uses piper models; supports many languages
Listen to sample output here
-
Grab a prebuilt release
- (Or build from source using
go mod tidy && go build
)
- (Or build from source using
-
Download
ebook-convert
and make sure it is in your PATH. (This is often bundled with calibre)
Note
You don't need to have piper installed. This program manages piper and the associated models
- Pass in either a local file or a remote URL to generate an audiobook:
- i.e.
./QuickPiperAudiobook test.txt
- i.e.
- For a full list of options use the
--help
flag- i.e.
./QuickPiperAudiobook --help
- i.e.
- Grab a model for the language of choice (.onnx and .json) from the piper models
- i.e.
pl_PL-gosia-medium.onnx
and correspondingpl_PL-gosia-medium.onnx.json
(rename if needed)
- i.e.
- 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
- i.e.
Note
Consider specifying this model as the default in the configuration file if you plan to use it frequenlty
- A configuration file at
~/.config/QuickPiperAudiobook/config.yml
will be automatically created. - You can specify a default model and output path so you do not need to specify these args each time.
- You can use any arbitrary model by putting the associated
.onnx
and.onnx.json
file for it in~/.config/QuickPiperAudiobook/
# An example for `~/.config/QuickPiperAudiobook/config.yml`
# 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"
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 only been tested on Linux.