Skip to main content

jmes-tts

Generate audio books from text documents

Installation

pip install jmes-tts

Development

This project requires Python 3.12 and uses uv to manage dependencies.

You can create a virtual environment with all the necessary dependencies by running:

uv sync --all-extras --dev

This will install all necessary dependencies and install this project in editable mode.

You can activate the venv with:

. .venv/bin/activate

Testing

Poe the Poet is the task runner used for this project, it's automatically installed as part of the dev dependencies. To see a list of available tasks, run the poe command with no args.

To run the tests for this project run:

poe test

Before submitting a PR, ensure the prcheck task runs successfully:

poe prcheck

Usage

The jmes-tts command is the main interface for converting text to speech. It offers several options to customize the conversion process.

Basic Usage

jmes-tts --text "Hello, world!" --output hello.mp3

This will convert the text "Hello, world!" to speech and save it as "hello.mp3".

Command Options

  • --filename: Input file to convert to speech
  • --text: Text to convert to speech
  • --bucket: S3 bucket for long-form text (optional)
  • --output: Output audio file (default: output.mp3)
  • --language: Language of phrase (default: english)
  • --language-code: Language code override (optional)
  • --voice: Voice to use for text-to-speech (optional)
  • --engine: TTS engine (optional)
  • --list-languages: List language presets and Polly language codes

Supported --language values:

  • english (default)
  • french
  • spanish
  • cantonese
  • mandarin

Run jmes-tts --list-languages to see all presets and the full list of supported language codes.

Converting a File

For longer texts, you can specify an S3 bucket and the path to a local file:

jmes-tts --filename long_text.txt --bucket my-s3-bucket --output long_audio.mp3

Notes

  • You must provide either --filename or --text, but not both.
  • If your text is larger than 3000 (billable) characters, you need to provide the --bucket argument. Otherwise synchronous TTS will be used.
  • If no output file is specified, the audio will be saved as output.mp3 in the current directory.

Metadata

Release files for jmes-tts 0.0.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for jmes-tts 0.0.2
File Size Uploaded
jmes_tts-0.0.2.tar.gz 54.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for jmes-tts 0.0.2
File Interpreter ABI Platform
jmes_tts-0.0.2-py3-none-any.whl Python 3 none any Details

Total release size: 66.3 kB

Release files / jmes_tts-0.0.2.tar.gz

Download URL jmes_tts-0.0.2.tar.gz
Size 54.3 kB
Tags Source
SHA-256 checksum
How to use checksums
7049c4e93ad4898f70f28e59bf00202a05e042b355448c11e4959284f6840cf9
BLAKE2b-256 checksum
How to use checksums
80816ef0b07bbd2f55dbe6785ed9e51523f54947e4271335f910a9629289c86b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jan 21, 2026.

Transparency log

Release files / jmes_tts-0.0.2-py3-none-any.whl

Download URL jmes_tts-0.0.2-py3-none-any.whl
Size 12.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
20e0da750d8d04ca81bd1eca6e4dcba1694f020daf384f523d94e609a39fd3e5
BLAKE2b-256 checksum
How to use checksums
9225bdf90d4ccfebbf831eae1c9bd72ed18324df9802ed5f9715dcea087cb423
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jan 21, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.0.2 This release

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page