""" 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)