SarahMarzouq commited on
Commit
23e65ea
·
verified ·
1 Parent(s): 5994e19

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +34 -21
app.py CHANGED
@@ -2,48 +2,64 @@ import gradio as gr
2
  from transformers import pipeline
3
  import torch
4
  from diffusers import DiffusionPipeline
5
- from transformers import pipeline, AutoTokenizer
6
-
7
 
8
  headline_gen = pipeline("text2text-generation", model="Michau/t5-base-en-generate-headline")
9
  ar_to_en_translator = pipeline("translation", model="Helsinki-NLP/opus-mt-ar-en")
10
  en_to_ar_translator = pipeline("translation", model="Helsinki-NLP/opus-mt-en-ar")
11
 
12
- pipe_image = DiffusionPipeline.from_pretrained("runwayml/stable-diffusion-v1-5")
 
 
 
 
 
 
13
 
14
  def generate_headline(selected_language, text):
15
  if selected_language == "Arabic":
16
  translated_text = translate_ar_to_en(text) # Translate Arabic to English
17
  english_headline = generate_headline_english(translated_text) # Generate headline in English
18
  arabic_headline = translate_en_to_ar(english_headline) # Translate headline back to Arabic
19
- image = generate_image(english_headline) # Generate image based on English headline
20
- return arabic_headline, image
21
-
22
  elif selected_language == "English":
23
  english_headline = generate_headline_english(text)
24
- image = generate_image(english_headline)
25
- return english_headline, image
26
 
27
  def translate_ar_to_en(text):
28
- var_ar_to_en = ar_to_en_translator(text)[0]['translation_text']
29
- return var_ar_to_en
30
 
31
  def translate_en_to_ar(text):
32
- var_en_to_ar - en_to_ar_translator(text)[0]['translation_text']
33
- return var_en_to_ar
34
 
35
  def generate_headline_english(text):
36
  result1 = headline_gen(text, max_length=100, truncation=True)
37
  result2 = result1[0]['generated_text']
38
  return result2
39
 
40
- def generate_image(text):
41
- my_image = pipe_image(text).images[0]
42
- return my_image
 
 
 
 
 
 
 
 
 
 
43
 
44
  examples = [
45
  #First parameter is for the dropdown menu, and the second parameter is for the starter of the poem
46
- ["Arabic", "تعتبر انبعاثات الغازات الدفيئة، مثل ثاني أكسيد الكربون (CO2) والميثان (CH4)، من الأسباب الرئيسية لتغير المناخ العالمي. تؤدي الأنشطة البشرية، مثل حرق الوقود الأحفوري لإنتاج الطاقة وإزالة الغابات والعمليات الصناعية، إلى زيادة كبيرة في تركيز هذه الغازات في الغلاف الجوي. وفقًا للهيئة الحكومية الدولية المعنية بتغير المناخ (IPCC)، ارتفعت مستويات ثاني أكسيد الكربون بأكثر من 50٪ منذ عصر ما قبل الصناعة، مما ساهم في ارتفاع درجات الحرارة العالمية."]
 
47
  ]
48
 
49
  interface = gr.Interface(
@@ -54,12 +70,9 @@ interface = gr.Interface(
54
  ],
55
  outputs=[
56
  gr.Textbox(label="Generated Headline"),
57
- gr.Image(label="Generated Image")
58
  ],
59
 
60
  examples=examples
61
  )
62
- interface.launch()
63
-
64
- if __name__ == "__main__":
65
- app.run(host="0.0.0.0", port=7860)
 
2
  from transformers import pipeline
3
  import torch
4
  from diffusers import DiffusionPipeline
5
+ from datasets import load_dataset
 
6
 
7
  headline_gen = pipeline("text2text-generation", model="Michau/t5-base-en-generate-headline")
8
  ar_to_en_translator = pipeline("translation", model="Helsinki-NLP/opus-mt-ar-en")
9
  en_to_ar_translator = pipeline("translation", model="Helsinki-NLP/opus-mt-en-ar")
10
 
11
+ # Arabic: text-to-speech
12
+ synthesiser_arabic = pipeline("text-to-speech", model="facebook/mms-tts-ara")
13
+
14
+ # English: text-to-speech
15
+ synthesiser_english = pipeline("text-to-speech", model="microsoft/speecht5_tts")
16
+ embeddings_dataset_english = load_dataset("Matthijs/cmu-arctic-xvectors", split="validation")
17
+ speaker_embedding_english = torch.tensor(embeddings_dataset_english[7306]["xvector"]).unsqueeze(0)
18
 
19
  def generate_headline(selected_language, text):
20
  if selected_language == "Arabic":
21
  translated_text = translate_ar_to_en(text) # Translate Arabic to English
22
  english_headline = generate_headline_english(translated_text) # Generate headline in English
23
  arabic_headline = translate_en_to_ar(english_headline) # Translate headline back to Arabic
24
+ sampling_rate, audio_data = text_to_speech_arabic(arabic_headline)
25
+ return arabic_headline, (sampling_rate, audio_data)
26
+
27
  elif selected_language == "English":
28
  english_headline = generate_headline_english(text)
29
+ sampling_rate, audio_data = text_to_speech_english(english_headline)
30
+ return english_headline, (sampling_rate, audio_data)
31
 
32
  def translate_ar_to_en(text):
33
+ var_ar_to_en = ar_to_en_translator(text)[0]['translation_text']
34
+ return var_ar_to_en
35
 
36
  def translate_en_to_ar(text):
37
+ var_en_to_ar = en_to_ar_translator(text)[0]['translation_text']
38
+ return var_en_to_ar
39
 
40
  def generate_headline_english(text):
41
  result1 = headline_gen(text, max_length=100, truncation=True)
42
  result2 = result1[0]['generated_text']
43
  return result2
44
 
45
+ # Text-to-speech conversion for Arabic
46
+ def text_to_speech_arabic(text):
47
+ speech = synthesiser_arabic(text)
48
+ audio_data = speech["audio"][0] # Flatten to 1D
49
+ sampling_rate = speech["sampling_rate"]
50
+ return (sampling_rate, audio_data)
51
+
52
+ # Text-to-speech conversion for English
53
+ def text_to_speech_english(text):
54
+ speech = synthesiser_english(text, forward_params={"speaker_embeddings": speaker_embedding_english})
55
+ audio_data = speech["audio"]
56
+ sampling_rate = speech["sampling_rate"]
57
+ return (sampling_rate, audio_data)
58
 
59
  examples = [
60
  #First parameter is for the dropdown menu, and the second parameter is for the starter of the poem
61
+ ["Arabic", "تعتبر انبعاثات الغازات الدفيئة، مثل ثاني أكسيد الكربون (CO2) والميثان (CH4)، من الأسباب الرئيسية لتغير المناخ العالمي. تؤدي الأنشطة البشرية، مثل حرق الوقود الأحفوري لإنتاج الطاقة وإزالة الغابات والعمليات الصناعية، إلى زيادة كبيرة في تركيز هذه الغازات في الغلاف الجوي. وفقًا للهيئة الحكومية الدولية المعنية بتغير المناخ (IPCC)، ارتفعت مستويات ثاني أكسيد الكربون بأكثر من 50٪ منذ عصر ما قبل الصناعة، مما ساهم في ارتفاع درجات الحرارة العالمية."],
62
+ ["English", "Greenhouse gas emissions, primarily carbon dioxide (CO2) and methane (CH4), are the main drivers of global climate change. Human activities, such as burning fossil fuels for energy, deforestation, and industrial processes, have significantly increased the concentration of these gases in the atmosphere. According to the Intergovernmental Panel on Climate Change (IPCC), CO2 levels have risen by over 50% since the pre-industrial era, contributing to rising global temperatures."]
63
  ]
64
 
65
  interface = gr.Interface(
 
70
  ],
71
  outputs=[
72
  gr.Textbox(label="Generated Headline"),
73
+ gr.Audio(label="Generated Audio", type="numpy")
74
  ],
75
 
76
  examples=examples
77
  )
78
+ interface.launch()