# import streamlit as st # import whisper # from tempfile import NamedTemporaryFile # import ffmpeg # st.title("MinuteBot App") # # upload audio file with streamlit # audio_file = st.file_uploader("Unggah Meeting Audio", type=["mp3", "wav", "m4a"]) # # model = whisper.load_model("base") # loading the base model # st.text("MinuteBot Model telah dimuat:") # def load_whisper_model(): # return model # if st.sidebar.button("Transkripsikan Audio"): # if audio_file is not None: # with NamedTemporaryFile() as temp: # temp.write(audio_file.getvalue()) # temp.seek(0) # model = whisper.load_model("large") # result = model.transcribe(temp.name) # st.write(result["text"]) # st.sidebar.header("Putar Berkas Audio") # st.sidebar.audio(audio_file) import streamlit as st from tempfile import NamedTemporaryFile import ffmpeg from transformers import Wav2Vec2ForCTC, Wav2Vec2Tokenizer import librosa st.title("TemplarX-Medium-Indonesian Transcription App") st.text("Model Whisper (TemplarX-medium-Indonesian) telah dimuat:") def load_whisper_model(): model_name = "jonnatakusuma/TemplarX-medium-Indonesian" tokenizer = Wav2Vec2Tokenizer.from_pretrained(model_name) model = Wav2Vec2ForCTC.from_pretrained(model_name) return tokenizer, model audio_file = st.file_uploader("Unggah Meeting Audio", type=["mp3", "wav", "m4a"]) if st.sidebar.button("Transkripsikan Audio"): if audio_file is not None: with NamedTemporaryFile() as temp: temp.write(audio_file.read()) temp.seek(0) tokenizer, model = load_whisper_model() # Read the audio file and transcribe using the fine-tuned model audio_path = temp.name audio_input, _ = librosa.load(audio_path, sr=16000) transcription = model.stt(text) st.write(transcription) st.sidebar.header("Putar Berkas Audio") st.sidebar.audio(audio_file, format='audio/wav')