Spaces:
Sleeping
Sleeping
| import gradio as gr | |
| import torch | |
| from transformers import VitsModel, AutoTokenizer | |
| import scipy.io.wavfile as wavfile | |
| # α‘. ααΆααααααΌααα TTS ααΆααΆααααααααα Meta | |
| model_name = "facebook/mms-tts-khm" | |
| tokenizer = AutoTokenizer.from_pretrained(model_name) | |
| model = VitsModel.from_pretrained(model_name) | |
| def tts_khmer(text): | |
| # αααααα’ααααααααααα ααΆ Inputs αααααΆαααααΌααα | |
| inputs = tokenizer(text, return_tensors="pt") | |
| # αααααΎαααα‘αα | |
| with torch.no_grad(): | |
| output = model(**inputs).waveform | |
| # ααααΆααααααΌααααααααα ααΆ File ααα‘αα WAV | |
| sampling_rate = model.config.sampling_rate | |
| audio_data = output.numpy().squeeze() | |
| output_path = "khmer_output.wav" | |
| wavfile.write(output_path, rate=sampling_rate, data=audio_data) | |
| return output_path | |
| # α’. αααααΎαααααΆαα WebUI αααααΆααααΆααΆααααα | |
| interface = gr.Interface( | |
| fn=tts_khmer, | |
| inputs=gr.Textbox( | |
| label="ααΆαα’αααααααΆααΆααΆααααααα ααΈααα", | |
| value="αα½ααααΈ! ααααΆααααααααΆαααααααααααααααααα’ααααααα ααΆααα‘αααα·ααΆαα" | |
| ), | |
| outputs=gr.Audio(label="ααααααααα‘ααααααα"), | |
| title="Khmer TTS Demo (Meta MMS)", | |
| description="αααααα·ααΈαααααααΆααααααααααααα’ααααααααααα ααΆααα‘αα AI αααααααΎααααΆαα Meta MMS-TTS" | |
| ) | |
| if __name__ == "__main__": | |
| interface.launch(server_name="0.0.0.0") |