danthelion / doc2audiobook

Convert text documents to high fidelity audio(books).
MIT License
203 stars 32 forks source link
audiobook googlecloudplatform python3 text-to-speech textract

doc2audiobook.py

Extract text from a document (textract) and convert it into a natural sounding synthesised speech (Cloud Text-To-Speech), which is able to leverage Deepminds Wavenet models.

Example

Input Output

Available source formats (from textract)

Prerequisites

GCP

  1. Select or create a Google Cloud Platform project.
  2. Enable billing for your project.
  3. Enable the Cloud Text-to-Speech API.
  4. Setup Authentication using a Service Account.

Host Machine

  1. Docker
  2. /doc2audiobook/data/input: directory to hold all input files.
  3. /doc2audiobook/data/output: directory to store all output files.
  4. /doc2audiobook/.secrets/client_secret.json: GCP authentication token.

Build

git clone git@github.com:danthelion/doc2audiobook.git
cd doc2audiobook
docker build -t doc2audiobook .

Run

Make sure to put your documents in the folder that is mapped to /data before running!

List available voices

docker run \
-v /doc2audiobook/data:/data:rw \
-v /doc2audiobook/.secrets/client_secret.json:/.secrets/client_secret.json:ro \
doc2audiobook -list-voices

Convert all documents in the mapped input folder to audiobooks using the en-GB-Standard-C voice.

docker run \
-v /doc2audiobook/data:/data:rw \
-v /doc2audiobook/.secrets/client_secret.json:/.secrets/client_secret.json:ro \
doc2audiobook --voice en-GB-Standard-C

Convert a single document in the mapped input folder to an audiobook using the en-GB-Standard-C voice.

docker run \
-v /doc2audiobook/data:/data:rw \
-v /doc2audiobook/.secrets/client_secret.json:/.secrets/client_secret.json:ro \
doc2audiobook --voice en-GB-Standard-C --input test_input.txt