usmanayaz commited on
Commit
b145934
·
verified ·
1 Parent(s): 2ed91ba

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +9 -8
app.py CHANGED
@@ -1,7 +1,8 @@
1
  import streamlit as st
2
  from transformers import pipeline, AutoModelForSeq2SeqLM, AutoTokenizer
3
- import coqui_tts
4
  from tempfile import NamedTemporaryFile
 
5
 
6
  # Initialize models
7
  @st.cache_resource
@@ -10,7 +11,7 @@ def load_models():
10
  summarizer_tokenizer = AutoTokenizer.from_pretrained("google/flan-t5-base")
11
  question_generator = pipeline("text2text-generation", model="valhalla/t5-small-qg-hl")
12
  qa_model = pipeline("question-answering", model="deepset/roberta-base-squad2")
13
- tts = coqui_tts.TTS("tts_models/en/ljspeech/glow-tts") # Load voice model
14
  return summarizer_model, summarizer_tokenizer, question_generator, qa_model, tts
15
 
16
  summarizer_model, summarizer_tokenizer, question_generator, qa_model, tts = load_models()
@@ -21,10 +22,11 @@ def summarize_document(text):
21
  return summarizer_tokenizer.decode(summary_ids[0], skip_special_tokens=True)
22
 
23
  def generate_questions(summary):
24
- return question_generator(summary)
 
25
 
26
  def generate_audio(text, voice_gender):
27
- tts.voice = "male" if voice_gender == "male" else "female"
28
  audio_file = NamedTemporaryFile(delete=False, suffix=".wav")
29
  tts.tts_to_file(text=text, file_path=audio_file.name)
30
  return audio_file.name
@@ -43,10 +45,9 @@ def app():
43
 
44
  # Generate dialogue
45
  questions = generate_questions(summary)
46
- dialogue = [{"persona": "male", "text": q["generated_text"]} for q in questions]
47
- for idx, item in enumerate(dialogue):
48
- if idx % 2 == 1:
49
- dialogue[idx]["persona"] = "female"
50
 
51
  # Interactive simulation
52
  st.write("Simulating Conversation:")
 
1
  import streamlit as st
2
  from transformers import pipeline, AutoModelForSeq2SeqLM, AutoTokenizer
3
+ from TTS.api import TTS
4
  from tempfile import NamedTemporaryFile
5
+ import os
6
 
7
  # Initialize models
8
  @st.cache_resource
 
11
  summarizer_tokenizer = AutoTokenizer.from_pretrained("google/flan-t5-base")
12
  question_generator = pipeline("text2text-generation", model="valhalla/t5-small-qg-hl")
13
  qa_model = pipeline("question-answering", model="deepset/roberta-base-squad2")
14
+ tts = TTS(model_name="tts_models/en/ljspeech/tacotron2-DDC", progress_bar=False, gpu=False)
15
  return summarizer_model, summarizer_tokenizer, question_generator, qa_model, tts
16
 
17
  summarizer_model, summarizer_tokenizer, question_generator, qa_model, tts = load_models()
 
22
  return summarizer_tokenizer.decode(summary_ids[0], skip_special_tokens=True)
23
 
24
  def generate_questions(summary):
25
+ questions = question_generator(summary)
26
+ return [q["generated_text"] for q in questions]
27
 
28
  def generate_audio(text, voice_gender):
29
+ voice = "ljspeech" # Use default LJSpeech voice for both genders
30
  audio_file = NamedTemporaryFile(delete=False, suffix=".wav")
31
  tts.tts_to_file(text=text, file_path=audio_file.name)
32
  return audio_file.name
 
45
 
46
  # Generate dialogue
47
  questions = generate_questions(summary)
48
+ dialogue = []
49
+ for idx, question in enumerate(questions):
50
+ dialogue.append({"persona": "male" if idx % 2 == 0 else "female", "text": question})
 
51
 
52
  # Interactive simulation
53
  st.write("Simulating Conversation:")