ghostai1 commited on
Commit
dafe604
·
verified ·
1 Parent(s): 2c7bd07

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +32 -13
app.py CHANGED
@@ -1,24 +1,43 @@
1
  import tempfile
2
  from gtts import gTTS
 
3
  import gradio as gr
4
 
5
- def speak(text: str):
 
 
6
  if not text.strip():
7
- return None
8
- # Generate speech via Google Translate TTS
9
- tts = gTTS(text)
10
- # Write to a temp file and return its path
 
 
 
 
11
  tmp = tempfile.NamedTemporaryFile(suffix=".mp3", delete=False)
12
  tts.write_to_fp(tmp)
13
  tmp.flush()
14
- return tmp.name
15
-
16
- with gr.Blocks(title="🗣️ Simple TTS (gTTS)") as demo:
17
- gr.Markdown("# 🗣️ Text-to-Speech\nType any text below and click **Speak**.")
18
- inp = gr.Textbox(lines=3, placeholder="Enter text here...")
19
- btn = gr.Button("Speak 🔈", variant="primary")
20
- out = gr.Audio(label="Output audio", type="filepath")
21
- btn.click(speak, inp, out)
 
 
 
 
 
 
 
 
 
 
 
 
22
 
23
  if __name__ == "__main__":
24
  demo.launch(server_name="0.0.0.0")
 
1
  import tempfile
2
  from gtts import gTTS
3
+ from googletrans import Translator
4
  import gradio as gr
5
 
6
+ translator = Translator()
7
+
8
+ def translate_and_speak(text: str, target: str):
9
  if not text.strip():
10
+ return "", None
11
+
12
+ # 1️⃣ translate text
13
+ dest = "es" if target == "Spanish" else "en"
14
+ translated = translator.translate(text, dest=dest).text
15
+
16
+ # 2️⃣ speak translated text
17
+ tts = gTTS(translated, lang=dest)
18
  tmp = tempfile.NamedTemporaryFile(suffix=".mp3", delete=False)
19
  tts.write_to_fp(tmp)
20
  tmp.flush()
21
+
22
+ return translated, tmp.name
23
+
24
+ with gr.Blocks(title="🌐💬 Translate & Speak") as demo:
25
+ gr.Markdown(
26
+ "# 🗣️ Translate & Speak\n"
27
+ "Type text below, choose your target language, and hear it spoken!"
28
+ )
29
+
30
+ text_in = gr.Textbox(lines=3, placeholder="Enter text here…")
31
+ lang_sel = gr.Radio(["Spanish", "English"], value="Spanish", label="Translate to")
32
+ btn = gr.Button("Translate & Speak 🔈", variant="primary")
33
+ txt_out = gr.Textbox(label="Translated text", interactive=False)
34
+ audio_out = gr.Audio(label="Speech output", type="filepath")
35
+
36
+ btn.click(
37
+ fn=translate_and_speak,
38
+ inputs=[text_in, lang_sel],
39
+ outputs=[txt_out, audio_out]
40
+ )
41
 
42
  if __name__ == "__main__":
43
  demo.launch(server_name="0.0.0.0")