Skip to main content

A powerful and easy-to-use Python Text-to-Speech library with multiple engine support

Project description

๐ŸŽฏ PyTTSLib

๐Ÿ”Š A powerful and easy-to-use Python Text-to-Speech library that supports multiple TTS engines.

โœจ Features

  • ๐ŸŽ™๏ธ Multiple TTS engine support:
    • ๐Ÿ–ฅ๏ธ pyttsx3 (offline, default) - Works without internet
    • ๐ŸŒ Google TTS - High-quality online TTS
  • ๐ŸŽ›๏ธ Voice customization:
    • ๐Ÿƒโ€โ™‚๏ธ Adjustable speech rate
    • ๐Ÿ“Š Volume control
    • ๐Ÿ‘ฅ Multiple voice options
  • ๐Ÿ’พ Save audio to multiple formats (MP3, WAV)
  • ๐Ÿ”„ Smart file management with auto-cleanup
  • ๐Ÿ–ฅ๏ธ Cross-platform compatibility (Windows, Linux, macOS)
  • ๐Ÿ›ก๏ธ Robust error handling
  • ๐Ÿ“ Well-documented API

๐Ÿš€ Installation

pip install pyttslib

๐Ÿ“– Quick Start

from pyttslib import TextToSpeech

# Create a TTS instance (default: pyttsx3 engine)
tts = TextToSpeech()

# Basic text-to-speech
tts.speak("Hello, world!")

# Use Google TTS instead
gtts = TextToSpeech(engine="google")
gtts.speak("Hello from Google Text-to-Speech!")

# Save speech to a file
tts.save_to_file("This will be saved as audio.", "output.mp3")

๐ŸŽฎ Advanced Usage

๐ŸŽ›๏ธ Voice Configuration

# Configure pyttsx3 engine
tts = TextToSpeech(engine="pyttsx3", engine_config={
    "rate": 150,    # Words per minute
    "volume": 0.8,  # Volume level (0.0 to 1.0)
})

# Configure Google TTS
tts = TextToSpeech(engine="google", engine_config={
    "lang": "en",    # Language code
    "tld": "com",    # Top-level domain
    "slow": False    # Normal speed
})

๐ŸŽญ Voice Selection

# List available voices
voices = tts.list_voices()
for voice in voices:
    print(f"Voice: {voice['name']} (ID: {voice['id']})")

# Set a specific voice
tts.set_voice("en_female_1")  # Voice ID from list_voices()

โš™๏ธ Speech Properties

# Adjust speech rate (pyttsx3 only)
tts.set_rate(150)  # Words per minute

# Adjust volume (pyttsx3 only)
tts.set_volume(0.8)  # 80% volume

๐ŸŒŸ Examples

The package includes example scripts in the examples/ directory:

  • ๐Ÿ“ basic_usage.py: Demonstrates fundamental features
  • ๐Ÿ”ง advanced_usage.py: Shows advanced functionality

Run the examples:

python examples/basic_usage.py
python examples/advanced_usage.py

๐Ÿ” Supported Audio Formats

  • ๐ŸŽต MP3 (Google TTS)
  • ๐Ÿ”Š WAV (pyttsx3)
  • ๐ŸŽผ OGG (platform-dependent)
  • ๐ŸŽน AIFF (platform-dependent)

๐Ÿ› ๏ธ Technical Details

File Management

  • ๐Ÿ“ Temporary files are stored in a dedicated folder
  • ๐Ÿงน Automatic cleanup after playback
  • ๐Ÿ’ซ Robust retry mechanism for file operations
  • ๐Ÿ”’ Safe file handling with proper resource cleanup

Error Handling

  • โš ๏ธ Custom exception classes for better error management
  • ๐Ÿ”„ Automatic retries for transient failures
  • ๐Ÿ“ข Clear error messages and logging
  • ๐Ÿ›ก๏ธ Graceful fallbacks for playback methods

๐Ÿค Contributing

Contributions are welcome! Here's how you can help:

  1. ๐Ÿด Fork the repository
  2. ๐ŸŒฟ Create your feature branch (git checkout -b feature/amazing-feature)
  3. ๐Ÿ’พ Commit your changes (git commit -m 'Add amazing feature')
  4. ๐Ÿ“ค Push to the branch (git push origin feature/amazing-feature)
  5. ๐ŸŽฏ Open a Pull Request

๐Ÿ“„ License

MIT License - feel free to use this in your projects!

๐Ÿ™ Acknowledgments

  • ๐ŸŽค pyttsx3 for offline TTS
  • ๐ŸŒ gTTS for Google TTS support
  • ๐Ÿ”Š playsound for cross-platform audio playback

๐Ÿ“ž Support

  • ๐Ÿ“ง Report issues on GitHub
  • ๐Ÿ’ญ Submit feature requests
  • ๐Ÿค Pull requests are welcome

Made with โค๏ธ for the Python community

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyttslib-0.1.0.tar.gz (15.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pyttslib-0.1.0-py2.py3-none-any.whl (11.0 kB view details)

Uploaded Python 2Python 3

File details

Details for the file pyttslib-0.1.0.tar.gz.

File metadata

  • Download URL: pyttslib-0.1.0.tar.gz
  • Upload date:
  • Size: 15.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.4

File hashes

Hashes for pyttslib-0.1.0.tar.gz
Algorithm Hash digest
SHA256 06e38157ae214775fda544299381979ae9eed06dcf5f585920bbcff161c2ee82
MD5 947aef4d88c5ae86469e77e2ef09154a
BLAKE2b-256 156d32228528a7dfa669e28cbdedaf2cab715f542c04199e101158884f0528b1

See more details on using hashes here.

File details

Details for the file pyttslib-0.1.0-py2.py3-none-any.whl.

File metadata

  • Download URL: pyttslib-0.1.0-py2.py3-none-any.whl
  • Upload date:
  • Size: 11.0 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.4

File hashes

Hashes for pyttslib-0.1.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 a284016281913e801fcbd14638d0c6048c04dd0701ae3b8b342599615e4bb5c2
MD5 4633470e8c5c0aed00951180813c78b4
BLAKE2b-256 e6b79b798644a781589bc87577d8a946810069cdc532a0c16f448552adcd45a9

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page