Spaces:
Sleeping
Sleeping
Update app.py
Browse files
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) #
|
22 |
-
english_headline = generate_headline_english(translated_text) #
|
23 |
-
arabic_headline = translate_en_to_ar(english_headline) # Translate headline
|
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()
|
|