import whisper import os from pytube import YouTube 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 st.set_page_config( page_title="Home", page_icon="📞", ) st.sidebar.header("Home") st.markdown("## Earnings Call Analysis Whisperer") 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](https://github.com/openai/whisper). - 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 [FaceBook-Bart-Large-CNN](https://huggingface.co/facebook/bart-large-cnn) model with entity extraction - Semantic search engine with [Sentence-Transformers](https://huggingface.co/sentence-transformers/all-mpnet-base-v2) and reranking results with a Cross-Encoder. **👇 Enter a YouTube Earnings Call URL below and navigate to the sidebar tabs** """ ) if "url" not in st.session_state: st.session_state.url = '' 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_def'] = '' url_input = st.text_input( label='Enter YouTube URL, e.g "https://www.youtube.com/watch?v=8pmbScvyfeY"', key="url") st.markdown( "

OR

", unsafe_allow_html=True ) upload_wav = st.file_uploader("Upload a .wav sound file ",key="upload") auth_token = os.environ.get("auth_token") st.markdown("![visitor badge](https://visitor-badge.glitch.me/badge?page_id=nickmuchi-earnings-call-whisperer)") from functions import *