File size: 2,771 Bytes
31defb6
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
04d5d81
 
31defb6
979d3c4
964d470
5b6b68a
9c357bf
adbb180
31defb6
 
bc67d8d
 
 
 
cc0a2f2
 
31defb6
 
 
04d5d81
31defb6
4896ebd
04d5d81
63a0440
31defb6
 
 
 
 
a2934a4
 
 
08a4021
a11f33b
 
3bf7ebf
 
6a7b968
31defb6
 
6a50b6a
 
7e709b3
6a29b7c
957ac20
 
 
31defb6
 
 
 
 
 
698009d
31defb6
08fa659
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 whisper
import os
import pandas as pd
import plotly_express as px
import nltk
import plotly.graph_objects as go
from optimum.onnxruntime import ORTModelForSequenceClassification
from transformers import pipeline, AutoTokenizer, AutoModelForSequenceClassification, AutoModelForTokenClassification
from sentence_transformers import SentenceTransformer, CrossEncoder, util
import streamlit as st
import en_core_web_lg

nltk.download('punkt')

from nltk import sent_tokenize

auth_token = os.environ.get("auth_token")

st.sidebar.header("Home")

asr_model_options = ['tiny.en','base.en','small.en']
    
asr_model_name = st.sidebar.selectbox("Whisper Model Options", options=asr_model_options, key="sbox")

st.markdown("## Earnings Call Analysis Whisperer")

twitter_link = """
[![](https://img.shields.io/twitter/follow/nickmuchi?label=@nickmuchi&style=social)](https://twitter.com/nickmuchi)
"""

st.markdown(twitter_link)

st.markdown(
    """
    This app assists finance analysts with transcribing and analysis Earnings Calls by carrying out the following tasks:
    - Transcribing earnings calls using Open AI's Whisper API, takes approx 3mins to transcribe a 1hr call less than 25mb in size.
    - Analysing the sentiment of transcribed text using the quantized version of [FinBert-Tone](https://huggingface.co/nickmuchi/quantized-optimum-finbert-tone).
    - Summarization of the call with [philschmid/flan-t5-base-samsum](https://huggingface.co/philschmid/flan-t5-base-samsum) model with entity extraction
    - Question Answering Search engine powered by Langchain and [Sentence Transformers](https://huggingface.co/sentence-transformers/all-mpnet-base-v2).
    - Knowledge Graph generation using [Babelscape/rebel-large](https://huggingface.co/Babelscape/rebel-large) model.
    
    **πŸ‘‡ Enter a YouTube Earnings Call URL below and navigate to the sidebar tabs** 
    
"""
)

if 'sbox' not in st.session_state:
    st.session_state.sbox = asr_model_name
    
if "earnings_passages" not in st.session_state:
    st.session_state["earnings_passages"] = ''
    
if "sen_df" not in st.session_state:
    st.session_state['sen_df'] = ''
        
url_input = st.text_input(
        label="Enter YouTube URL, example below is McDonalds Earnings Call Q1 2023",
        value="https://www.youtube.com/watch?v=4p6o5kkZYyA")

if 'url' not in st.session_state:
    st.session_state['url'] = ""

st.session_state['url'] = url_input
        
st.markdown(
    "<h3 style='text-align: center; color: red;'>OR</h3>",
    unsafe_allow_html=True
)

upload_wav = st.file_uploader("Upload a .wav/.mp3/.mp4 audio file ",key="upload",type=['.wav','.mp3','.mp4'])

st.markdown("![visitor badge](https://visitor-badge.glitch.me/badge?page_id=nickmuchi-earnings-call-whisperer)")