Fastbook: Listen to Audiobooks Faster

Aaron Mayer aims to listen to 100 audiobooks in a single month. He intends to listen to these audiobooks at 2x - 3x speed. Intense!

For the last few weeks, I’ve been working on automatic video editing tools. And one of the core features I’ve been working with is automatic speed adjustments to videos to eliminate silent airtime and make the videos more engaging. This seems like a perfect fit for Aaron’s challenge.

I’ve adapted this tooling into a new tool I’m calling Fastbook. It accepts audiobooks in the form of .wav files, and can apply speed adjustments to the silence and the spoken word independently, even removing silence entirely if desired.

If Aaron can already comfortably (with great focus) listen to a book at 2.5x speed, he can listen to a 10 hour book in 4 hours. If 20% of that book is actually silence, then the 10 hour book becomes an 8 hour book with silence removed, and the total listen time drops to just 3h12. I think 20% may actually be a conservative estimate for silent time, though it will vary from narrator to narrator.

Estimating 45 minutes saved per book, this tool can save over 3 days total time across 100 books. Or, alternatively, Aaron could drop the playback speed down from 2.5x to 2x without increasing his total listening time at all, but potentially helping out his comprehension substantially.

This tool won’t be appropriate for all audiobook listeners. For many, the silences matter, and removing them would degrade the quality of the book. For many, listening at 2.5x would also degrade the quality of the book. So use this tool with caution.

For those of you who are intersted, however, here’s how to use Fastbook.

Installing Fastbook

I’ve made Fastbook available for free on GitHub. You can access it here.

To use it, save it to your computer as fastbook.py.

Next, make sure you have all the dependencies installed. See the dependencies section for what is required.

Pre-work: Converting Your Book to .wav

You need your audiobook in wav format to use Fastbook.

To convert an audiobook to wav, use ffmpeg.

Install ffmpeg. Then, run ffmpeg -i book.aax book.wav to convert an Audible audiobook to a wav file. There may be an additional step if your aax file is DRM protected.

Using Fastbook

Now you can use Fastbook like this:

python fastbook.py \
--audio_path=/path/to/book.wav \
--output_path=/path/to/book-fast.wav \
--loud_speed=1 \
--quiet_speed=5

--audio_path should point to an existing wav file that you downloaded or generated in the pre-work section. --output_path is the path to the file that Fastbook will generate. Finally, --loud_speed is how much to speed up the normal spoken text of the book by, and --quiet_speed is how much to speed up the silence in the book by. You can remove silence by setting --quiet_speed=99999 or any other similarly large number.

Dependencies

Here are the dependencies you need to use Fastbook.

First, you need Python 3. You can follow these instructions to set up Python 3 if you don’t already have it installed.

Then, you need these Python dependencies: fire, scipy, tqdm, numpy, and audiotsm. Install these with pip install fire scipy tqdm numpy audiotsm or use your favorite Python package manager.

Finally, to do the pre-work, you will likely need ffmpeg. Installation instructions are available here.

Read quick!

I recommend for Aaron to use the default speed settings of --loud_speed=1 --quiet_speed=5. This won’t eliminate the silence entirely, but will reduce the audio time considerably. Then, for the remaining speed-up, I suggest using whatever media player you were already using, such as VLC which supports arbitrary speed adjustments in real time. Hpy rdng!

Demo

This blog post, narrated slowly:

This blog post again, now with just the silence accelerated:

Discussion 💬

Related