siviku commited on
Commit
edebd7a
·
verified ·
1 Parent(s): 891f504

Update src/streamlit_app.py

Browse files
Files changed (1) hide show
  1. src/streamlit_app.py +21 -16
src/streamlit_app.py CHANGED
@@ -1,28 +1,29 @@
1
  import streamlit as st
2
  from transformers import pipeline
3
- import whisper
4
  from gtts import gTTS
5
  import os
6
 
7
- # Load Whisper model for speech-to-text
8
- @st.cache_resource
9
  def load_whisper():
10
- return whisper.load_model("base")
 
11
 
12
  asr_model = load_whisper()
13
 
14
- # Load a small instruction-tuned model (for Hugging Face free GPU)
15
- @st.cache_resource
16
  def load_llm():
17
- return pipeline("text-generation",
18
- model="tiiuae/falcon-7b-instruct",
19
  tokenizer="tiiuae/falcon-7b-instruct",
20
  max_new_tokens=100,
21
  do_sample=True,
22
  temperature=0.7)
 
23
  llm = load_llm()
24
 
25
- # Convert text to speech using gTTS
26
  def speak(text, filename="response.mp3"):
27
  tts = gTTS(text)
28
  tts.save(filename)
@@ -35,15 +36,19 @@ def speak(text, filename="response.mp3"):
35
  st.set_page_config(page_title="AI Learning Buddy", page_icon="🧸")
36
  st.title("🧸 AI Learning Buddy for Kids (4–7)")
37
 
38
- input_type = st.radio("Choose how to ask your question:", ["Type", "Speak"])
 
 
 
 
39
 
40
- if input_type == "Type":
41
- user_input = st.text_input("Ask something fun or educational:")
42
  else:
43
- audio = st.file_uploader("Upload a voice file (wav/mp3)", type=["wav", "mp3"])
44
- if audio:
45
  with open("temp_audio.wav", "wb") as f:
46
- f.write(audio.read())
47
  result = asr_model.transcribe("temp_audio.wav")
48
  user_input = result["text"]
49
  st.success(f"You said: {user_input}")
@@ -54,4 +59,4 @@ if st.button("Ask the Buddy") and user_input:
54
  result = llm(prompt)[0]["generated_text"]
55
  answer = result.split("Answer:")[-1].strip()
56
  st.markdown(f"**AI Buddy says:** {answer}")
57
- speak(answer)
 
1
  import streamlit as st
2
  from transformers import pipeline
 
3
  from gtts import gTTS
4
  import os
5
 
6
+ # Load Whisper model (tiny for lower memory use)
7
+ @st.cache_data(show_spinner="Loading Whisper model...")
8
  def load_whisper():
9
+ import whisper
10
+ return whisper.load_model("tiny")
11
 
12
  asr_model = load_whisper()
13
 
14
+ # Load a small instruction-tuned model for child-safe answers
15
+ @st.cache_resource(show_spinner="Loading language model...")
16
  def load_llm():
17
+ return pipeline("text-generation",
18
+ model="tiiuae/falcon-7b-instruct",
19
  tokenizer="tiiuae/falcon-7b-instruct",
20
  max_new_tokens=100,
21
  do_sample=True,
22
  temperature=0.7)
23
+
24
  llm = load_llm()
25
 
26
+ # Convert AI response to speech
27
  def speak(text, filename="response.mp3"):
28
  tts = gTTS(text)
29
  tts.save(filename)
 
36
  st.set_page_config(page_title="AI Learning Buddy", page_icon="🧸")
37
  st.title("🧸 AI Learning Buddy for Kids (4–7)")
38
 
39
+ st.markdown("Ask a question by typing or uploading your voice.")
40
+
41
+ input_type = st.radio("Choose input method:", ["Text", "Voice"])
42
+
43
+ user_input = ""
44
 
45
+ if input_type == "Text":
46
+ user_input = st.text_input("Type your question here:")
47
  else:
48
+ audio_file = st.file_uploader("Upload a voice file (wav/mp3)", type=["wav", "mp3"])
49
+ if audio_file:
50
  with open("temp_audio.wav", "wb") as f:
51
+ f.write(audio_file.read())
52
  result = asr_model.transcribe("temp_audio.wav")
53
  user_input = result["text"]
54
  st.success(f"You said: {user_input}")
 
59
  result = llm(prompt)[0]["generated_text"]
60
  answer = result.split("Answer:")[-1].strip()
61
  st.markdown(f"**AI Buddy says:** {answer}")
62
+ speak(answer)