Yogya12 commited on
Commit
f647470
Β·
1 Parent(s): 0da3599

fixed code

Browse files
Files changed (1) hide show
  1. app.py +15 -10
app.py CHANGED
@@ -17,8 +17,7 @@ voice_characters = {
17
  "Guy": "en-US-GuyNeural",
18
  },
19
  "Hindi": {
20
- "Swara": "hi-IN-SwaraNeural",
21
- "Madhur": "hi-IN-MadhurNeural"
22
  }
23
  }
24
 
@@ -41,9 +40,14 @@ def tts_wrapper(text, language, character, translation_direction):
41
  elif translation_direction == "Hindi to English":
42
  text = GoogleTranslator(source='hi', target='en').translate(original_text)
43
 
44
- voice = voice_characters.get(language, {}).get(character)
 
 
 
 
 
45
  if not voice:
46
- return f"Voice '{character}' not found for language '{language}'", None
47
 
48
  filename = asyncio.run(generate_tts(text, voice))
49
  return text, filename
@@ -51,11 +55,13 @@ def tts_wrapper(text, language, character, translation_direction):
51
  except Exception as e:
52
  return f"Error: {str(e)}", None
53
 
54
- # βœ… FIXED: Voice character list updates properly now
55
  def get_characters(language):
56
- chars = list(voice_characters.get(language, {}).keys())
57
- default_char = chars[0] if chars else None
58
- return gr.update(choices=chars, value=default_char)
 
 
 
59
 
60
  # ===== CHATBOT PART USING BLENDERBOT =====
61
 
@@ -104,13 +110,12 @@ def create_app():
104
  with gr.Tab("TTS"):
105
  text_input = gr.Textbox(label="Enter Text", placeholder="Type something...", lines=4)
106
  language_dropdown = gr.Dropdown(choices=list(voice_characters.keys()), value="English - US", label="Language")
107
- character_dropdown = gr.Dropdown(choices=list(voice_characters["English - US"].keys()), value="Aria", label="Voice Character")
108
  translation_dropdown = gr.Dropdown(choices=["None", "English to Hindi", "Hindi to English"], value="None", label="Translation Direction")
109
  tts_button = gr.Button("πŸ”Š Generate Voice")
110
  output_text = gr.Textbox(label="Translated Text or Error")
111
  output_audio = gr.Audio(label="Generated Voice")
112
 
113
- # βœ… This updates the character dropdown dynamically based on selected language
114
  language_dropdown.change(fn=get_characters, inputs=language_dropdown, outputs=character_dropdown)
115
 
116
  tts_button.click(fn=tts_wrapper,
 
17
  "Guy": "en-US-GuyNeural",
18
  },
19
  "Hindi": {
20
+ "Swara": "hi-IN-SwaraNeural" # Only one voice will be used for Hindi
 
21
  }
22
  }
23
 
 
40
  elif translation_direction == "Hindi to English":
41
  text = GoogleTranslator(source='hi', target='en').translate(original_text)
42
 
43
+ # Hindi uses fixed voice "Swara"
44
+ if language == "Hindi":
45
+ voice = voice_characters["Hindi"]["Swara"]
46
+ else:
47
+ voice = voice_characters.get(language, {}).get(character)
48
+
49
  if not voice:
50
+ return f"No voice found for selected language and character", None
51
 
52
  filename = asyncio.run(generate_tts(text, voice))
53
  return text, filename
 
55
  except Exception as e:
56
  return f"Error: {str(e)}", None
57
 
 
58
  def get_characters(language):
59
+ if language == "Hindi":
60
+ return gr.update(choices=[], value=None, visible=False)
61
+ else:
62
+ chars = list(voice_characters.get(language, {}).keys())
63
+ default_char = chars[0] if chars else None
64
+ return gr.update(choices=chars, value=default_char, visible=True)
65
 
66
  # ===== CHATBOT PART USING BLENDERBOT =====
67
 
 
110
  with gr.Tab("TTS"):
111
  text_input = gr.Textbox(label="Enter Text", placeholder="Type something...", lines=4)
112
  language_dropdown = gr.Dropdown(choices=list(voice_characters.keys()), value="English - US", label="Language")
113
+ character_dropdown = gr.Dropdown(choices=list(voice_characters["English - US"].keys()), value="Aria", label="Voice Character", visible=True)
114
  translation_dropdown = gr.Dropdown(choices=["None", "English to Hindi", "Hindi to English"], value="None", label="Translation Direction")
115
  tts_button = gr.Button("πŸ”Š Generate Voice")
116
  output_text = gr.Textbox(label="Translated Text or Error")
117
  output_audio = gr.Audio(label="Generated Voice")
118
 
 
119
  language_dropdown.change(fn=get_characters, inputs=language_dropdown, outputs=character_dropdown)
120
 
121
  tts_button.click(fn=tts_wrapper,