from transformers import VitsModel, AutoTokenizer
import torch
import scipy 

model = VitsModel.from_pretrained("facebook/mms-tts-hin")
tokenizer = AutoTokenizer.from_pretrained("facebook/mms-tts-hin")

text  = '''

प्रकृति हमारे जीवन का अभिन्न हिस्सा है। 
यह हमें शुद्ध वायु, जल, भोजन और जीवन जीने के लिए आवश्यक 
सभी संसाधन प्रदान करती है। पेड़-पौधे, नदियाँ, पर्वत और वन्य जीव –
ये सभी मिलकर हमारे पर्यावरण को संतुलित बनाते हैं। यदि हम प्रकृति की रक्षा करेंगे, तो वह बदले में हमें स्वास्थ्य और समृद्धि देगी।
इसलिए हमें पेड़ लगाने चाहिए, जल की बचत करनी चाहिए और प्रदूषण से बचना चाहिए।
'''
inputs = tokenizer(text, return_tensors="pt")

with torch.no_grad():
    output = model(**inputs).waveform


import soundfile as sf
import numpy as np

# Convert tensor to numpy float32
output_np = output.cpu().numpy().astype(np.float32)

# If output is shape (1, samples), squeeze to (samples,)
if output_np.ndim == 2 and output_np.shape[0] == 1:
    output_np = output_np.squeeze(0)

# Save the wav file with the correct sampling rate 16kHz
sf.write("techno1.wav", output_np, samplerate=16000)
