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
sampledirectory. - 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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7b040ea7c99509962736c534008e1ef654fa831071dddb9bd58530df7aadb294
|
|
| MD5 |
186d4f16e161bc1b398bf6823168bd81
|
|
| BLAKE2b-256 |
56756203d40130bde9f9323920eb983722069b2280452e70a0c1bfe961c82de0
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
79b32113c9bfc68e14fd56bd285c243c461a31b271bb65e18c8c3c7b81002a22
|
|
| MD5 |
f4611e5577c3be00d447fbd1236b9f5c
|
|
| BLAKE2b-256 |
a3f5941edd4a5f157acc05781197537d3660779927e255015c9987ed64ad5f06
|