Skip to main content

A Text-to-Speech and Podcast generation library using Chatterbox Turbo TTS

Project description

OneLab TTS Library

OneLab is a powerful Python library for Text-to-Speech (TTS) and Podcast generation, built on top of ChatterboxTurboTTS. It allows you to easily convert text to speech using various voices and create multi-speaker podcasts with custom logging and progress tracking.

Features

  • Text-to-Speech Conversion: Convert individual text segments to audio using specific voices.
  • Podcast Generation: Create full conversations with multiple speakers.
  • Dynamic Voice Loading: Automatically detects available voices from the package's sample directory.
  • Custom Logging: Detailed logging and progress tracking during generation.
  • Modular Design: Clean and extensible architecture.

Installation

You can install the package using pip:

pip install onelab

Or install directly from the source:

git clone https://github.com/satadeep3927/onelab.git
cd onelab
pip install .

Usage

Initialization

To use the library, simply initialize the OneLab class. The library automatically locates the bundled voice samples.

from onelab import OneLab

# Initialize OneLab
onelab = OneLab(device="cpu") 

Listing Available Voices

You can list all voices detected in the sample directory:

voices = onelab.tts.list_voices()
print("Available voices:", voices)

Converting Text to Speech

To convert a single line of text:

wav = onelab.tts.convert("Hello, world!", voice="charlie")
# Save the output
import torchaudio
torchaudio.save("output.wav", wav, onelab.tts.model.sr)

Creating a Podcast

To create a multi-speaker podcast, define your conversation segments and use the podcast.create method:

from onelab import ConversationInput

data: ConversationInput = {
    "segments": [
        {"voice": "charlie", "text": "Hello Emilia!"},
        {"voice": "emilia", "text": "Hi Charlie! How are you?"},
    ]
}

# Generate the podcast
podcast_wav = onelab.tts.podcast.create(data)

# Save the podcast
torchaudio.save("podcast.wav", podcast_wav, onelab.tts.model.sr)

API Reference

OneLab

The main entry point for the library.

  • __init__(device: str = "cpu"): Initializes the library.

TextToSpeech (accessed via onelab.tts)

Handles TTS operations.

  • list_voices() -> List[str]: Returns a list of available voice names.
  • convert(text: str, voice: str) -> torch.Tensor: Generates audio for the given text and voice.

Podcast (accessed via onelab.tts.podcast)

Handles podcast generation.

  • create(args: ConversationInput) -> torch.Tensor: Generates a concatenated audio waveform for the entire conversation.

License

MIT

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

onelab_tts-0.3.0.tar.gz (32.2 MB view details)

Uploaded Source

Built Distribution

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

onelab_tts-0.3.0-py3-none-any.whl (32.2 MB view details)

Uploaded Python 3

File details

Details for the file onelab_tts-0.3.0.tar.gz.

File metadata

  • Download URL: onelab_tts-0.3.0.tar.gz
  • Upload date:
  • Size: 32.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.9

File hashes

Hashes for onelab_tts-0.3.0.tar.gz
Algorithm Hash digest
SHA256 7b040ea7c99509962736c534008e1ef654fa831071dddb9bd58530df7aadb294
MD5 186d4f16e161bc1b398bf6823168bd81
BLAKE2b-256 56756203d40130bde9f9323920eb983722069b2280452e70a0c1bfe961c82de0

See more details on using hashes here.

File details

Details for the file onelab_tts-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: onelab_tts-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 32.2 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.9

File hashes

Hashes for onelab_tts-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 79b32113c9bfc68e14fd56bd285c243c461a31b271bb65e18c8c3c7b81002a22
MD5 f4611e5577c3be00d447fbd1236b9f5c
BLAKE2b-256 a3f5941edd4a5f157acc05781197537d3660779927e255015c9987ed64ad5f06

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