Spaces:
Runtime error
Runtime error
File size: 2,027 Bytes
fa61d0b | 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 | import streamlit as st
from transformers import Wav2Vec2ForCTC, Wav2Vec2Tokenizer
import torchaudio
import torch
import spacy
from transformers import pipeline
nlp_ner = spacy.load("en_core_web_sm")
def ner(text):
doc = nlp_ner(text)
entities = [(ent.text, ent.label_) for ent in doc.ents]
return entities
def main():
st.title("Text and Speech Analysis")
option = st.radio("Choose an option:", ("Upload Audio", "Enter Text"))
if option == "Upload Audio":
audio_file = st.file_uploader("Upload an audio file", type=["mp3", "wav"])
if audio_file is not None:
text_result = process_input(audio_file)
st.success("Audio processed successfully!")
st.text(text_result)
process_and_display_text(text_result)
elif option == "Enter Text":
text_input = st.text_area("Enter your text here:")
if st.button("Submit"):
if text_input:
process_and_display_text(text_input)
def process_input(audio_input):
model = Wav2Vec2ForCTC.from_pretrained("facebook/wav2vec2-base-960h")
tokenizer = Wav2Vec2Tokenizer.from_pretrained("facebook/wav2vec2-base-960h")
audio_input, _ = torchaudio.load(audio_input)
input_values = tokenizer(audio_input.squeeze().numpy(), return_tensors="pt").input_values
with torch.no_grad():
logits = model(input_values).logits
prediction_ids = torch.argmax(logits, dim=-1)
transcription = tokenizer.batch_decode(prediction_ids)[0]
return transcription
def process_and_display_text(input_text):
summarization_pipeline = pipeline("summarization", model="facebook/bart-large-cnn")
ner_results = dict(set(ner(input_text)))
summary = summarization_pipeline(
input_text, max_length=150, min_length=50, length_penalty=2.0, num_beams=4, temperature=0.7
)
st.write("Named Entities")
st.table(ner_results)
st.write("Summary")
st.write(summary[0]["summary_text"])
if __name__ == "__main__":
main()
|