File size: 2,148 Bytes
ab58fb5
9d727e3
 
7117743
f3e24b8
b74cc3f
ab58fb5
253b4e4
 
 
 
 
e7956b2
253b4e4
 
 
 
866ffb3
 
 
 
 
b74cc3f
e7956b2
555a0ea
 
2ea7ea8
555a0ea
2ea7ea8
3e7fc84
2ea7ea8
253b4e4
c274bf0
e7956b2
e3d61f6
e7956b2
e3d61f6
c274bf0
 
b03d0c5
4ebf6a9
b03d0c5
 
 
 
 
 
 
 
 
 
97c3b7e
3277eaa
e7956b2
 
 
 
 
 
 
 
 
 
 
 
 
4ebf6a9
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
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):
    summarizer = pipeline("summarization", model="philschmid/flan-t5-base-samsum", device=0)

    summarized_text = summarizer(audiotranscription)
    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
    st.expander("See Transcription"):
        st.caption(podcast_text)
    
    #Summarize Text
    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)