jonghhhh commited on
Commit
ae7f82d
Β·
verified Β·
1 Parent(s): ed1263d

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +21 -12
app.py CHANGED
@@ -1,5 +1,9 @@
1
  import streamlit as st
2
- import pyttsx3
 
 
 
 
3
 
4
  # 학생 리슀트
5
  student_list = ["홍길동", "κΉ€μ² μˆ˜", "이영희", "λ°•μ˜μˆ˜"]
@@ -11,16 +15,15 @@ attendance_status = {student: "미확인" for student in student_list}
11
  # Streamlit UI
12
  st.title("μΆœμ„ 확인 μ‹œμŠ€ν…œ")
13
 
14
- # TTS μ—”μ§„ μ΄ˆκΈ°ν™”
15
- engine = pyttsx3.init()
16
-
17
  if 'current_index' not in st.session_state:
18
  st.session_state.current_index = 0
19
 
20
- # TTS둜 이름 μ½μ–΄μ£ΌλŠ” ν•¨μˆ˜
21
- def speak_text(text):
22
- engine.say(text)
23
- engine.runAndWait()
 
 
24
 
25
  # 학생 이름 뢈러였기
26
  if st.button("λ‹€μŒ 학생"):
@@ -28,9 +31,13 @@ if st.button("λ‹€μŒ 학생"):
28
 
29
  # 화면에 ν˜„μž¬ 학생 이름 ν‘œμ‹œ
30
  st.subheader(f"ν˜„μž¬ 학생: {current_student}")
31
-
32
- # 학생 이름을 TTS둜 읽기
33
- speak_text(current_student + " 학생")
 
 
 
 
34
 
35
  # μΆœμ„ μ—¬λΆ€ 선택
36
  attendance = st.radio(f"{current_student} μΆœμ„ μ—¬λΆ€", ("μΆœμ„", "결석"))
@@ -49,6 +56,9 @@ if st.button("λ‹€μŒ 학생"):
49
  st.session_state.current_index += 1
50
  else:
51
  st.write("λͺ¨λ“  ν•™μƒμ˜ 이름을 λΆˆλ €μŠ΅λ‹ˆλ‹€.")
 
 
 
52
 
53
  # κ²°μ„μž 리슀트 보여주기
54
  st.subheader("κ²°μ„μž 리슀트")
@@ -56,4 +66,3 @@ if absentees:
56
  st.write(absentees)
57
  else:
58
  st.write("κ²°μ„μžκ°€ μ—†μŠ΅λ‹ˆλ‹€.")
59
-
 
1
  import streamlit as st
2
+ from gtts import gTTS
3
+ from pydub import AudioSegment
4
+ from pydub.playback import play
5
+ import tempfile
6
+ import os
7
 
8
  # 학생 리슀트
9
  student_list = ["홍길동", "κΉ€μ² μˆ˜", "이영희", "λ°•μ˜μˆ˜"]
 
15
  # Streamlit UI
16
  st.title("μΆœμ„ 확인 μ‹œμŠ€ν…œ")
17
 
 
 
 
18
  if 'current_index' not in st.session_state:
19
  st.session_state.current_index = 0
20
 
21
+ # μ˜€λ””μ˜€ 파일 생성 ν•¨μˆ˜
22
+ def create_audio_for_student(student):
23
+ tts = gTTS(text=f"{student} 학생", lang='ko')
24
+ temp_file = tempfile.NamedTemporaryFile(delete=False, suffix='.mp3')
25
+ tts.save(temp_file.name)
26
+ return temp_file.name
27
 
28
  # 학생 이름 뢈러였기
29
  if st.button("λ‹€μŒ 학생"):
 
31
 
32
  # 화면에 ν˜„μž¬ 학생 이름 ν‘œμ‹œ
33
  st.subheader(f"ν˜„μž¬ 학생: {current_student}")
34
+
35
+ # 학생 이름을 TTS둜 읽기 (gTTS μ‚¬μš©)
36
+ audio_file = create_audio_for_student(current_student)
37
+
38
+ # μ˜€λ””μ˜€ νŒŒμΌμ„ μž¬μƒ
39
+ audio_segment = AudioSegment.from_mp3(audio_file)
40
+ play(audio_segment)
41
 
42
  # μΆœμ„ μ—¬λΆ€ 선택
43
  attendance = st.radio(f"{current_student} μΆœμ„ μ—¬λΆ€", ("μΆœμ„", "결석"))
 
56
  st.session_state.current_index += 1
57
  else:
58
  st.write("λͺ¨λ“  ν•™μƒμ˜ 이름을 λΆˆλ €μŠ΅λ‹ˆλ‹€.")
59
+
60
+ # μž„μ‹œ 파일 μ‚­μ œ
61
+ os.remove(audio_file)
62
 
63
  # κ²°μ„μž 리슀트 보여주기
64
  st.subheader("κ²°μ„μž 리슀트")
 
66
  st.write(absentees)
67
  else:
68
  st.write("κ²°μ„μžκ°€ μ—†μŠ΅λ‹ˆλ‹€.")