Spaces:
Build error
Build error
File size: 2,593 Bytes
f427fe9 ae8fbd2 f427fe9 ae8fbd2 b4406d3 b815c4a ae8fbd2 f427fe9 ae8fbd2 6d2ca12 ae8fbd2 6d2ca12 ae8fbd2 6d2ca12 353faef 6d2ca12 ae8fbd2 353faef 6d2ca12 e564472 353faef e564472 ae8fbd2 6d2ca12 e564472 6d2ca12 e564472 353faef ae8fbd2 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
import streamlit as st
import pickle
from io import BytesIO
import pyperclip
from audio_processing import detect_language, process_long_audio, load_and_resample_audio
from model_utils import load_models
from config import SAMPLING_RATE
# from llm_utils import generate_answer, summarize_transcript
# Load models at startup
load_models()
# Title of the app
st.title("Audio Player with Live Transcription and Q&A")
# ... (previous code remains the same)
def copy_to_clipboard(text):
pyperclip.copy(text)
st.success("Copied to clipboard!")
# Display uploaded files and options
if 'audio_files' in st.session_state and st.session_state.audio_files:
for i, uploaded_file in enumerate(st.session_state.audio_files):
col1, col2 = st.columns([1, 3])
with col1:
st.write(f"**File name**: {uploaded_file.name}")
st.audio(uploaded_file, format=uploaded_file.type)
st.write(f"**Detected Language**: {st.session_state.detected_languages[i]}")
with col2:
if st.button(f"Transcribe {uploaded_file.name}"):
with st.spinner("Transcribing..."):
transcription = process_long_audio(st.session_state.waveforms[i], SAMPLING_RATE)
st.session_state.transcriptions[i] = transcription
if st.session_state.transcriptions.get(i):
st.write("**Transcription**:")
st.write(st.session_state.transcriptions[i])
if st.button("Copy Transcription", key=f"copy_transcription_{i}"):
copy_to_clipboard(st.session_state.transcriptions[i])
# ... (summarization and Q&A code remains the same)
if st.button(f"Translate {uploaded_file.name}"):
with st.spinner("Translating..."):
with open('languages.pkl', 'rb') as f:
lang_dict = pickle.load(f)
detected_language_name = lang_dict[st.session_state.detected_languages[i]]
translation = process_long_audio(st.session_state.waveforms[i], SAMPLING_RATE, task="translate",
language=detected_language_name)
st.session_state.translations[i] = translation
if st.session_state.translations.get(i):
st.write("**Translation**:")
st.write(st.session_state.translations[i])
if st.button("Copy Translation", key=f"copy_translation_{i}"):
copy_to_clipboard(st.session_state.translations[i]) |