| 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 | |
| from functions import * | |
| nltk.download('punkt') | |
| from nltk import sent_tokenize | |
| st.sidebar.header("Home") | |
| asr_model_options = ['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") | |
| 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. | |
| - 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 "url" not in st.session_state: | |
| st.session_state.url = "https://www.youtube.com/watch?v=iWobmXvCM0c" | |
| 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 FaceBiik Earnings Call 2022", key="url") | |
| st.markdown( | |
| "<h3 style='text-align: center; color: red;'>OR</h3>", | |
| 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("") | |