Senath commited on
Commit
9a5c6b0
·
verified ·
1 Parent(s): 39ab70a

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +7 -24
app.py CHANGED
@@ -18,40 +18,28 @@ def translate(text_input, audio_input, source_lang, target_lang, auto_detect):
18
  translated_text = None
19
  translated_audio = None
20
 
21
- # If text is provided
22
  if text_input:
23
  inputs = processor(text=text_input, src_lang=src, return_tensors="pt").to(device)
24
-
25
- # Generate speech
26
  speech = model.generate(**inputs, tgt_lang=target_lang)[0].cpu().numpy().squeeze()
27
-
28
- # Generate text
29
  text_tokens = model.generate(**inputs, tgt_lang=target_lang, generate_speech=False)
30
  translated_text = processor.decode(text_tokens[0].tolist()[0], skip_special_tokens=True)
31
-
32
  translated_audio = (16000, speech)
33
 
34
- # If audio is provided
35
  elif audio_input:
36
  waveform, sr = torchaudio.load(audio_input)
37
  waveform = torchaudio.functional.resample(waveform, sr, 16000)
38
  inputs = processor(audios=waveform, src_lang=src, return_tensors="pt").to(device)
39
-
40
- # Generate speech
41
  speech = model.generate(**inputs, tgt_lang=target_lang)[0].cpu().numpy().squeeze()
42
-
43
- # Generate text
44
  text_tokens = model.generate(**inputs, tgt_lang=target_lang, generate_speech=False)
45
  translated_text = processor.decode(text_tokens[0].tolist()[0], skip_special_tokens=True)
46
-
47
  translated_audio = (16000, speech)
48
 
49
  if translated_text or translated_audio:
50
  return translated_text or "", translated_audio
51
  return "No input provided.", None
52
 
53
- # Gradio Interface
54
- iface = gr.Interface(
55
  fn=translate,
56
  inputs=[
57
  gr.Textbox(label="Input Text (optional)"),
@@ -65,13 +53,8 @@ iface = gr.Interface(
65
  gr.Audio(label="Translated Speech")
66
  ],
67
  title="iVoice Translate (Text + Speech)"
68
- ).queue()
69
-
70
- # Launch server with API exposed
71
- if __name__ == "__main__":
72
- iface.launch(
73
- server_name="0.0.0.0",
74
- server_port=int(os.environ.get("PORT", 7860)),
75
- share=True,
76
- show_api=True # 🔥 This exposes /gradio_api/predict endpoint
77
- )
 
18
  translated_text = None
19
  translated_audio = None
20
 
 
21
  if text_input:
22
  inputs = processor(text=text_input, src_lang=src, return_tensors="pt").to(device)
 
 
23
  speech = model.generate(**inputs, tgt_lang=target_lang)[0].cpu().numpy().squeeze()
 
 
24
  text_tokens = model.generate(**inputs, tgt_lang=target_lang, generate_speech=False)
25
  translated_text = processor.decode(text_tokens[0].tolist()[0], skip_special_tokens=True)
 
26
  translated_audio = (16000, speech)
27
 
 
28
  elif audio_input:
29
  waveform, sr = torchaudio.load(audio_input)
30
  waveform = torchaudio.functional.resample(waveform, sr, 16000)
31
  inputs = processor(audios=waveform, src_lang=src, return_tensors="pt").to(device)
 
 
32
  speech = model.generate(**inputs, tgt_lang=target_lang)[0].cpu().numpy().squeeze()
 
 
33
  text_tokens = model.generate(**inputs, tgt_lang=target_lang, generate_speech=False)
34
  translated_text = processor.decode(text_tokens[0].tolist()[0], skip_special_tokens=True)
 
35
  translated_audio = (16000, speech)
36
 
37
  if translated_text or translated_audio:
38
  return translated_text or "", translated_audio
39
  return "No input provided.", None
40
 
41
+ # This exposes the endpoint correctly
42
+ gr.Interface(
43
  fn=translate,
44
  inputs=[
45
  gr.Textbox(label="Input Text (optional)"),
 
53
  gr.Audio(label="Translated Speech")
54
  ],
55
  title="iVoice Translate (Text + Speech)"
56
+ ).launch(
57
+ server_name="0.0.0.0",
58
+ server_port=int(os.environ.get("PORT", 7860)),
59
+ show_api=True
60
+ )