SarahMarzouq commited on
Commit
1ca780b
·
verified ·
1 Parent(s): 2ccf05c

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +16 -8
app.py CHANGED
@@ -4,8 +4,13 @@ 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", tokenizer="t5-base")
 
 
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
@@ -16,27 +21,31 @@ 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']
@@ -111,5 +120,4 @@ interface = gr.Interface(
111
  css=custom_css
112
  )
113
 
114
- interface.launch()
115
-
 
4
  from diffusers import DiffusionPipeline
5
  from datasets import load_dataset
6
 
7
+ #Headline Generator Pipeline
8
  headline_gen = pipeline("text2text-generation", model="Michau/t5-base-en-generate-headline", tokenizer="t5-base")
9
+
10
+ #Arabic to English translator Pipeline
11
  ar_to_en_translator = pipeline("translation", model="Helsinki-NLP/opus-mt-ar-en")
12
+
13
+ #English to Arabic translator Pipeline
14
  en_to_ar_translator = pipeline("translation", model="Helsinki-NLP/opus-mt-en-ar")
15
 
16
  # Arabic: text-to-speech
 
21
  embeddings_dataset_english = load_dataset("Matthijs/cmu-arctic-xvectors", split="validation")
22
  speaker_embedding_english = torch.tensor(embeddings_dataset_english[7306]["xvector"]).unsqueeze(0)
23
 
24
+ #main function
25
  def generate_headline(selected_language, text):
26
  if selected_language == "Arabic":
27
+ translated_text = translate_ar_to_en(text) #Translate Arabic text to English (so the headlines pipeline will understand the input)
28
+ english_headline = generate_headline_english(translated_text) #Generate headline in English based on the translated text
29
+ arabic_headline = translate_en_to_ar(english_headline) # Translate headline to Arabic (output will be arabic)
30
+ sampling_rate, audio_data = text_to_speech_arabic(arabic_headline) #Arabic headline will be passed to the text-to-speech pipeline (arabic)
31
  return arabic_headline, (sampling_rate, audio_data)
32
 
33
  elif selected_language == "English":
34
+ english_headline = generate_headline_english(text) #Generate headline in English based on the text
35
+ sampling_rate, audio_data = text_to_speech_english(english_headline) #English headline will be passed to the text-to-speech pipeline (english)
36
  return english_headline, (sampling_rate, audio_data)
37
 
38
+ #function to translate Arabic Text to English
39
  def translate_ar_to_en(text):
40
  var_ar_to_en = ar_to_en_translator(text)[0]['translation_text']
41
  return var_ar_to_en
42
 
43
+ #function to translate English Headline to Arabic
44
  def translate_en_to_ar(text):
45
  var_en_to_ar = en_to_ar_translator(text)[0]['translation_text']
46
  return var_en_to_ar
47
 
48
+ #function to generate headline in english
49
  def generate_headline_english(text):
50
  result1 = headline_gen(text, max_length=100, truncation=True)
51
  result2 = result1[0]['generated_text']
 
120
  css=custom_css
121
  )
122
 
123
+ interface.launch()