Skip to main content

openai-tts-tool Logo

openai-tts-tool

Python Version License: MIT Code style: ruff Type checked: mypy Built with Claude Code

A command-line interface for OpenAI Text-to-Speech API.

Features

  • Convert text to natural-sounding speech
  • Six high-quality voices with different characteristics
  • Two TTS models (tts-1 and tts-1-hd) for speed vs quality
  • Multiple audio formats: mp3, opus, aac, flac
  • Stream to speakers or save to files
  • Adjustable speech speed (0.25 to 4.0)
  • Multi-level verbosity logging
  • Shell completion support

Installation

# Prerequisites
# - Python 3.14+
# - uv package manager

# Clone and install globally
git clone https://github.com/dnvriend/openai-tts-tool.git
cd openai-tts-tool
uv tool install .

# Verify installation
openai-tts-tool --version

Configuration

Set the OpenAI API key:

export OPENAI_API_KEY="your-api-key-here"

# Add to shell profile for persistence
echo 'export OPENAI_API_KEY="your-api-key-here"' >> ~/.bashrc  # or ~/.zshrc
source ~/.bashrc  # or ~/.zshrc

Usage

# Basic synthesis (stream to speakers)
openai-tts-tool synthesize "Hello, world!"

# Save to file with specific voice
openai-tts-tool synthesize "Hello, world!" --voice nova --output hello.mp3

# High-quality synthesis with custom settings
openai-tts-tool synthesize "Welcome" \
    --voice alloy \
    --model tts-1-hd \
    --output welcome.mp3 \
    --format mp3 \
    --speed 1.2

# Read from stdin
echo "Hello from stdin" | openai-tts-tool synthesize --stdin --output hello.mp3

# List available voices and models
openai-tts-tool list-voices
openai-tts-tool list-models

# Multi-level verbosity for debugging
openai-tts-tool -v synthesize "Test"           # INFO level
openai-tts-tool -vv synthesize "Test"          # DEBUG level
openai-tts-tool -vvv synthesize "Test"         # TRACE with library logs

Options

Synthesize Command

Option Short Description
--voice -v Voice to use (alloy, echo, fable, onyx, nova, shimmer)
--model -m TTS model (tts-1, tts-1-hd)
--output -o Output file path (default: stream to speakers)
--format -f Audio format (mp3, opus, aac, flac)
--speed -s Speech speed (0.25 to 4.0)
--stdin Read text from stdin

Global Options

Option Short Description
--verbose -v Verbose output: -v (INFO), -vv (DEBUG), -vvv (TRACE with library logs)
--version Show version information
--help -h Show help message

Voices and Models

Voices

Voice Description
alloy Balanced, natural voice (default)
echo Deeper, authoritative voice
fable Warm, engaging storyteller
onyx Deep, confident voice
nova Clear, professional voice
shimmer Softer, expressive voice

Models

Model Quality Speed Use Case
tts-1 Standard Fast Real-time applications
tts-1-hd High Slower High-quality audio production

Audio Formats

Format Quality Use Case
mp3 Good Maximum compatibility
opus Excellent Streaming, low bandwidth
aac Very Good Apple devices
flac Lossless High-fidelity production

Library Usage

from openai_tts_tool import TTSClient

client = TTSClient(api_key="your-key")

# Stream to speakers
client.synthesize("Hello, world!", voice="alloy")

# Save to file
client.synthesize(
    "Hello, world!",
    voice="nova",
    model="tts-1-hd",
    output="hello.mp3",
    speed=1.2
)

Development

make install          # Install dependencies
make format           # Format code with ruff
make lint             # Run linting with ruff
make typecheck        # Run type checking with mypy
make test             # Run tests with pytest
make security         # Run all security checks
make check            # Run all checks (lint, typecheck, test, security)
make pipeline         # Run full pipeline
make build            # Build package
make run ARGS="..."   # Run openai-tts-tool locally

License

MIT License - see the LICENSE file for details.

Author

Dennis Vriend - GitHub

Metadata

Release files for openai-tts-tool 0.1.0

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

Source distribution (sdist)

Source distribution for openai-tts-tool 0.1.0
File Size Uploaded
openai_tts_tool-0.1.0.tar.gz 70.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for openai-tts-tool 0.1.0
File Interpreter ABI Platform
openai_tts_tool-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 99.3 kB

Release files / openai_tts_tool-0.1.0.tar.gz

Download URL openai_tts_tool-0.1.0.tar.gz
Size 70.8 kB
Tags Source
SHA-256 checksum
How to use checksums
deb8b76bbd6e2977cc3bfcaedbe67960812f5b8464053de9f8360373d0fc33a6
BLAKE2b-256 checksum
How to use checksums
0dd56887a09504af658391c363d81d9bcf72fd5a98bfd71414c58d24a7ced7f2
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 Dec 5, 2025.

Transparency log

Release files / openai_tts_tool-0.1.0-py3-none-any.whl

Download URL openai_tts_tool-0.1.0-py3-none-any.whl
Size 28.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
175cec4289ddb3ec57ca98464db0ec893936b523d1252d5c3b95976e8e1e35cd
BLAKE2b-256 checksum
How to use checksums
8ffab5dc45c8ffea3be528ab8cda214d8209ce1b0725c33ff70954b95522d73d
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 Dec 5, 2025.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.0 This release

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