File size: 2,534 Bytes
ab58fb5 9d727e3 7117743 f3e24b8 b74cc3f ab58fb5 253b4e4 e7956b2 253b4e4 866ffb3 b74cc3f e7956b2 555a0ea 2ea7ea8 555a0ea 2ea7ea8 3e7fc84 2ea7ea8 253b4e4 c274bf0 01bea1f e7956b2 e3d61f6 e7956b2 01bea1f e3d61f6 c274bf0 b03d0c5 4ebf6a9 b03d0c5 97c3b7e 3277eaa e7956b2 5de52b7 b0e0272 e7956b2 4ebf6a9 4125ee2 2b98878 4125ee2 2040736 34b0634 2040736 |
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 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 |
import streamlit as st
import whisper
import os
import torch
from transformers import pipeline
from pydub import AudioSegment
def transcribe_audio(audiofile):
st.session_state['audio'] = audiofile
print(f"audio_file_session_state:{st.session_state['audio'] }")
st.info("Getting size of file")
#get size of audio file
audio_size = round(os.path.getsize(st.session_state['audio'])/(1024*1024),1)
print(f"audio file size:{audio_size}")
#determine audio duration
podcast = AudioSegment.from_mp3(st.session_state['audio'])
st.session_state['audio_segment'] = podcast
podcast_duration = podcast.duration_seconds
print(f"Audio Duration: {podcast_duration}")
st.info("Transcribing")
whisper_model = whisper.load_model("small.en")
transcription = whisper_model.transcribe(audiofile)
st.session_state['transcription'] = transcription
print(f"ranscription: {transcription['text']}")
st.info('Done Transcription')
return transcription
def summarize_podcast(audiotranscription):
st.info("Summarizing...")
summarizer = pipeline("summarization", model="philschmid/flan-t5-base-samsum", device=0)
summarized_text = summarizer(audiotranscription)
st.session_state['summary'] = summarized_text
return summarized_text
st.markdown("# Podcast Q&A")
st.markdown(
"""
This helps understand information-dense podcast episodes by doing the following:
- Speech to Text transcription - using OpenSource Whisper Model
- Summarizes the episode
- Allows you to ask questions and returns direct quotes from the episode.
"""
)
st.audio("marketplace-2023-06-14.mp3")
if st.button("Process Audio File"):
podcast_text = transcribe_audio("marketplace-2023-06-14.mp3")
#write text out
with st.expander("See Transcription"):
st.caption(podcast_text['text']})
#Summarize Text
podcast_summary = summarize_podcast(podcast_text)
st.markdown(
"""
##Summary of Text
"""
)
st.text(podcast_summary)
if st.button("Summarize Podcast"):
with open('transcription.txt', 'r') as file:
podcast_text = file.read().rstrip()
podcast_summary = summarize_podcast(podcast_text)
st.markdown(
"""
##Summary of Text
"""
)
st.text(podcast_summary)
#audio_file = st.file_uploader("Upload audio copy of file", key="upload", type=['.mp3'])
# if audio_file:
# transcribe_audio(audio_file)
|