chiluka / hubconf.py
seemanthraju
Added streaming funciton
393129e
"""
PyTorch Hub configuration for Chiluka TTS.
Usage:
import torch
# Load Hindi-English model (default)
tts = torch.hub.load('Seemanth/chiluka', 'chiluka')
# Load Telugu model
tts = torch.hub.load('Seemanth/chiluka', 'chiluka_telugu')
# Generate speech
wav = tts.synthesize(
text="Hello, world!",
reference_audio="path/to/reference.wav",
language="en-us"
)
"""
dependencies = [
'torch',
'torchaudio',
'transformers',
'librosa',
'phonemizer',
'nltk',
'PyYAML',
'munch',
'einops',
'einops-exts',
'numpy',
'scipy',
'huggingface_hub',
]
def chiluka(pretrained: bool = True, device: str = None, **kwargs):
"""
Load Chiluka Hindi-English TTS model (default).
Args:
pretrained: If True, downloads pretrained weights from HuggingFace Hub.
device: Device to use ('cuda' or 'cpu'). Auto-detects if None.
**kwargs: Additional arguments passed to Chiluka constructor.
Returns:
Chiluka: Initialized TTS model ready for inference.
Example:
>>> import torch
>>> tts = torch.hub.load('Seemanth/chiluka', 'chiluka')
>>> wav = tts.synthesize("Hello!", "reference.wav", language="en-us")
"""
from chiluka import Chiluka
if pretrained:
return Chiluka.from_pretrained(model="hindi_english", device=device, **kwargs)
else:
return Chiluka(device=device, **kwargs)
def chiluka_telugu(pretrained: bool = True, device: str = None, **kwargs):
"""
Load Chiluka Telugu TTS model.
Args:
pretrained: If True, downloads pretrained weights from HuggingFace Hub.
device: Device to use ('cuda' or 'cpu'). Auto-detects if None.
**kwargs: Additional arguments passed to Chiluka constructor.
Returns:
Chiluka: Initialized TTS model ready for inference.
Example:
>>> import torch
>>> tts = torch.hub.load('Seemanth/chiluka', 'chiluka_telugu')
>>> wav = tts.synthesize("నమస్కారం", "reference.wav", language="te")
"""
from chiluka import Chiluka
if pretrained:
return Chiluka.from_pretrained(model="telugu", device=device, **kwargs)
else:
return Chiluka(device=device, **kwargs)
def chiluka_hindi_english(pretrained: bool = True, device: str = None, **kwargs):
"""
Load Chiluka Hindi-English TTS model (explicit name).
Same as `chiluka()` but with an explicit name.
Example:
>>> import torch
>>> tts = torch.hub.load('Seemanth/chiluka', 'chiluka_hindi_english')
"""
return chiluka(pretrained=pretrained, device=device, **kwargs)
def chiluka_from_hf(repo_id: str = "Seemanth/chiluka", model: str = "hindi_english", device: str = None, **kwargs):
"""
Load Chiluka TTS from a specific HuggingFace Hub repository.
Args:
repo_id: HuggingFace Hub repository ID
model: Model variant ('hindi_english' or 'telugu')
device: Device to use ('cuda' or 'cpu'). Auto-detects if None.
Example:
>>> import torch
>>> tts = torch.hub.load('Seemanth/chiluka', 'chiluka_from_hf',
... repo_id='myuser/my-custom-chiluka')
"""
from chiluka import Chiluka
return Chiluka.from_pretrained(repo_id=repo_id, model=model, device=device, **kwargs)