from gtts import gTTS from transformers import pipeline import soundfile as sf import gradio as gr narrator_en = pipeline("text-to-speech", model="facebook/mms-tts-eng" ) narrator_fr = pipeline("text-to-speech", model="facebook/mms-tts-fra") # Créer les blocs demo = gr.Blocks(theme='shivi/calm_seafoam') import soundfile as sf # gtts fonction def gtts_func(text, lang): myobj = gTTS(text=text, lang=lang, slow=False) myobj.save("narrated_audio1.wav") return 'narrated_audio1.wav' # MMS TTS english fonction def MMS_en_func(text): narrated_text = narrator_en(text) sf.write("narrated_audio2.wav", narrated_text["audio"][0], narrated_text["sampling_rate"]) return 'narrated_audio2.wav' # MMS TTS french fonction def MMS_fr_func(text): narrated_text = narrator_fr(text) sf.write("narrated_audio3.wav", narrated_text["audio"][0], narrated_text["sampling_rate"]) return 'narrated_audio3.wav' import joblib # loading de la liste des langues languages = joblib.load('languages.joblib') # gtts interface gtts_iface = gr.Interface(fn = gtts_func, inputs = [gr.Textbox(label="Text", lines=6), gr.Dropdown(choices = languages, label="language")], outputs = 'audio', cache_examples=True, title = 'Text-to-speech avec gtts', description = 'Cette application vous permet de faire une narration d\'une texte dans plusieurs langues.' ) # MMS TTS english interface mms_en_iface = gr.Interface(fn = MMS_en_func, inputs = gr.Textbox(label="Text", lines=6), outputs = 'audio', title = 'Application Text-to-speech en anglais avec MMS', description = 'Cette application vous permet de faire une narration d\'une texte en anglais.' ) # MMS TTS french interface mms_fr_iface = gr.Interface(fn = MMS_fr_func, inputs = gr.Textbox(label="Text", lines=6), outputs = 'audio', title = 'Application Text-to-speech en français avec MMS ', description = 'Cette application vous permet de faire une narration d\'une texte en français.' ) with demo: gr.TabbedInterface( [gtts_iface, mms_en_iface, mms_fr_iface], ["gtts narrator", "MMS english narrator", "MMS french narrator"]) demo.launch()