englissi commited on
Commit
20d2b2c
ยท
verified ยท
1 Parent(s): 9e5e3bf

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +45 -31
app.py CHANGED
@@ -1,39 +1,53 @@
1
  import gradio as gr
2
- from transformers import pipeline
 
 
3
 
4
- # Hugging Face TTS pipelines
5
- korean_tts = pipeline("text-to-speech", model="facebook/mms-tts-ko")
6
- us_english_tts = pipeline("text-to-speech", model="facebook/mms-tts-en-US")
7
- uk_english_tts = pipeline("text-to-speech", model="facebook/mms-tts-en-GB")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8
 
9
- # Function to generate audio from text
10
- def generate_audio(text, language):
11
- if language == "Korean":
12
- audio = korean_tts(text)
13
- elif language == "US English":
14
- audio = us_english_tts(text)
15
- elif language == "UK English":
16
- audio = uk_english_tts(text)
17
- else:
18
- return "Invalid language selection."
19
- return audio["audio"]
20
-
21
- # Gradio Interface
22
  with gr.Blocks() as demo:
23
- gr.Markdown("## Multilingual TTS Application")
24
-
25
  with gr.Row():
26
- text_input = gr.Textbox(label="Enter text to convert to speech")
27
- language_selector = gr.Dropdown(
28
- choices=["Korean", "US English", "UK English"], label="Select language"
29
- )
30
-
31
- audio_output = gr.Audio(label="Generated Speech")
32
- generate_button = gr.Button("Generate")
33
-
34
  generate_button.click(
35
- fn=generate_audio, inputs=[text_input, language_selector], outputs=audio_output
 
 
36
  )
37
 
38
- # Launch the app
39
- demo.launch()
 
 
1
  import gradio as gr
2
+ from gtts import gTTS
3
+ from pydub import AudioSegment
4
+ from io import BytesIO
5
 
6
+ # Step 1: Define a function to generate and merge TTS audio for multiple languages
7
+ def multilingual_tts(korean_text, british_english_text, american_english_text):
8
+ # Language mapping
9
+ texts = {
10
+ "ko": korean_text,
11
+ "en-gb": british_english_text, # British English
12
+ "en-us": american_english_text, # American English
13
+ }
14
+
15
+ combined_audio = AudioSegment.silent(duration=0) # Empty audio to start
16
+
17
+ for lang, text in texts.items():
18
+ if text.strip(): # Process only if text is provided
19
+ tld = 'co.uk' if lang == "en-gb" else 'com'
20
+ tts = gTTS(text, lang="en" if lang.startswith("en") else lang, tld=tld)
21
+ audio_file = BytesIO()
22
+ tts.write_to_fp(audio_file)
23
+ audio_file.seek(0)
24
+ tts_audio = AudioSegment.from_file(audio_file, format="mp3")
25
+ combined_audio += tts_audio + AudioSegment.silent(duration=500) # Add silence between languages
26
+
27
+ # Save combined audio to a file
28
+ output_file = "combined_output.mp3"
29
+ combined_audio.export(output_file, format="mp3")
30
+
31
+ return output_file
32
 
33
+ # Step 2: Create Gradio interface
 
 
 
 
 
 
 
 
 
 
 
 
34
  with gr.Blocks() as demo:
35
+ gr.Markdown("## Multilingual TTS: Generate a Single Audio File")
36
+
37
  with gr.Row():
38
+ korean_input = gr.Textbox(label="Enter Korean Text:", placeholder="์•ˆ๋…•ํ•˜์„ธ์š”")
39
+ british_english_input = gr.Textbox(label="Enter British English Text:", placeholder="Hello (British)")
40
+ american_english_input = gr.Textbox(label="Enter American English Text:", placeholder="Hello (American)")
41
+
42
+ output_audio = gr.Audio(label="Generated Speech", type="filepath")
43
+ generate_button = gr.Button("Generate Speech")
44
+
 
45
  generate_button.click(
46
+ multilingual_tts,
47
+ inputs=[korean_input, british_english_input, american_english_input],
48
+ outputs=output_audio
49
  )
50
 
51
+ # Run the app
52
+ if __name__ == "__main__":
53
+ demo.launch()