import streamlit as st
import datetime
import os
# Initialize session state for transcript history if not exists
if 'transcript_history' not in st.session_state:
st.session_state.transcript_history = ""
# Create a container for the transcript history
history_container = st.empty()
text_area = st.empty()
html = """
Continuous Speech Demo
Continuous Speech Recognition
Ready
"""
# Function to save transcript to file
def save_transcript(text):
if not os.path.exists('transcripts'):
os.makedirs('transcripts')
timestamp = datetime.datetime.now().strftime('%Y%m%d_%H%M%S')
filename = f"transcripts/transcript_{timestamp}.md"
with open(filename, 'a', encoding='utf-8') as f:
f.write(text + '\n')
# Main app
st.title("Speech Recognition with Transcript History")
# Create custom component
st.components.v1.html(html, height=600)
# Handle form data
if st.session_state.get('form_submitted', False):
transcript = st.session_state.get('transcript', '')
if transcript:
# Update the transcript history
st.session_state.transcript_history += transcript + '\n'
# Save to file
save_transcript(transcript)
# Update the display
history_container.markdown(st.session_state.transcript_history)
text_area.text_area("Full Transcript", st.session_state.transcript_history, height=200)
# Add a download button for the full transcript
if st.session_state.transcript_history:
st.download_button(
label="Download Full Transcript",
data=st.session_state.transcript_history,
file_name=f"transcript_{datetime.datetime.now().strftime('%Y%m%d_%H%M%S')}.md",
mime="text/markdown"
)
# Reset form_submitted state
if 'form_submitted' in st.session_state:
st.session_state.form_submitted = False