web-tts

Convert webpages to audio speech

Usage no npm install needed!

<script type="module">
  import webTts from 'https://cdn.skypack.dev/web-tts';
</script>

README

Web TTS CLI

Command-line tool to convert webpages of any size to speech. Uses tts-cli and an automated Chrome browser behind the scenes.

Requirements / Installation

You can then install the package globally:

$ npm install web-tts -g

Usage

$ web-tts commandfile outputfile [options]

Examples:

# Reads commands from commands.txt and saves the speech in test.mp3
$ web-tts commands.txt test.mp3

# Sets the browser window to 3000 x 2000 pixels (default is 2000 x 1000)
$ web-tts commands.txt test.mp3 --width 3000 --height 2000

# Any additional options are passed to tts-cli as-is
$ web-tts commands.txt test.mp3 --engine neural

Standard arguments:

  • commandfile is a file that describes how to crawl and scrape the webpages. See the command file docs for details.
  • outfile is the filename to save the audio to.

Options:

  • --debug [true|false] -- Shows debugging info: the browser console logs are printed, and the devtools are opened when not headless (default false)
  • --delay TIME -- Amount of delay between executing browser commands (in milliseconds) (default 0)
  • --headless [true|false] -- Runs the browser hidden in the background (true, the default) or opens it up on the desktop (false)
  • --height SIZE -- Height of the browser in pixels (default 2000)
  • --width SIZE -- Width of the browser in pixels (default 3000)

See the tts-cli docs for text-to-speech options.

Troubleshooting

  • Run the tool with --debug to see the browser logs. (Note that there will likely be a lot of irrelevant logs included.)
  • Run the tool with --headless false and, if needed, a delay (e.g. --delay 250) to get a visual of what's happening in the browser.

Contributing

Although functional, this tool is still unfinished. Pull requests and suggestions are welcome. Create a new issue to report a bug or suggest a new feature.

Please add tests and maintain the existing styling when adding and updating the code. Run npm run lint to lint the code.

Small Print

Copyright 2020 Eric Heikes.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.