RanAlh443 commited on
Commit
d41f118
1 Parent(s): d487a82

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +40 -26
app.py CHANGED
@@ -1,56 +1,70 @@
1
  import gradio as gr
2
- import whisper
3
  from transformers import pipeline
4
  import pandas as pd
5
 
 
 
6
  whisper_model = whisper.load_model("base")
7
 
 
8
  summarization = pipeline("summarization", model="google/pegasus-large")
9
 
10
  def process_audio(audio_file, min_length, max_length):
11
  try:
 
 
 
12
 
13
- # Ensure audio_file is not None and has valid content
14
- if audio_file is None:
15
- raise ValueError("The audio file is missing or invalid.")
16
 
17
- result = whisper_model.transcribe(audio_file)
18
- text = result['text']
19
- if not text:
20
  raise ValueError("Failed to transcribe the audio. The transcription result is empty.")
21
 
22
- summary_result = summarization(text, min_length=min_length, max_length=max_length)
23
- summary = summary_result[0]['summary_text']
24
- if not summary:
 
 
 
25
  raise ValueError("Failed to summarize the transcript. The summary result is empty.")
26
 
27
- df_results = pd.DataFrame({
28
- "Audio File": [audio_file],
29
- "Transcript": [text],
30
- "Summary": [summary]
31
- })
 
 
 
 
32
 
33
- df_results.to_csv("results.csv", index=False)
 
34
 
35
- return text, summary
36
  except Exception as e:
37
  # General error handling
38
  error_message = f"An error occurred: {str(e)}"
39
  return error_message, error_message
40
 
 
41
  iface = gr.Interface(
42
- fn=process_audio,
43
  inputs=[
44
- gr.Audio(sources="upload", type="filepath", label="Upload your audio file"),
45
- gr.Slider(minimum=5, maximum=50, value=30, label="Minimum Summary Length"),
46
- gr.Slider(minimum=50, maximum=500, value=150, label="Maximum Summary Length")
47
  ],
48
  outputs=[
49
- gr.Textbox(label="Transcript"),
50
- gr.Textbox(label="Summary")
51
  ],
52
- title="Audio to Summarized Transcript",
53
- description="Upload an audio file and adjust summary length to get both the transcript and summary."
54
  )
55
 
56
- iface.launch()
 
 
1
  import gradio as gr
2
+ import whisper # Library for speech recognition
3
  from transformers import pipeline
4
  import pandas as pd
5
 
6
+
7
+ # Load the Whisper model for speech recognition
8
  whisper_model = whisper.load_model("base")
9
 
10
+ # Load the summarization model from Hugging Face
11
  summarization = pipeline("summarization", model="google/pegasus-large")
12
 
13
  def process_audio(audio_file, min_length, max_length):
14
  try:
15
+ # Ensure audio_file is not None and has valid content
16
+ if audio_file is None:
17
+ raise ValueError("No audio file provided.")
18
 
19
+ # Use the Whisper model to transcribe the audio file into text
20
+ result = whisper_model.transcribe(audio_file)
21
+ text = result['text']
22
 
23
+ # Check if transcription was successful
24
+ if not text:
 
25
  raise ValueError("Failed to transcribe the audio. The transcription result is empty.")
26
 
27
+ # Use the summarization pipeline to summarize the transcribed text
28
+ summary_result = summarization(text, min_length=min_length, max_length=max_length)
29
+ summary = summary_result[0]['summary_text']
30
+
31
+ # Check if summarization was successful
32
+ if not summary:
33
  raise ValueError("Failed to summarize the transcript. The summary result is empty.")
34
 
35
+ # Create a DataFrame to store the audio file, transcript, and summary
36
+ df_results = pd.DataFrame({
37
+ "Audio File": [audio_file], # Store the path to the audio file
38
+ "Transcript": [text], # Store the transcribed text
39
+ "Summary": [summary] # Store the generated summary
40
+ })
41
+
42
+ # Save the results to a CSV file named "results.csv"
43
+ df_results.to_csv("results.csv", index=False)
44
 
45
+ # Return the transcript and summary to be displayed in the Gradio interface
46
+ return text, summary
47
 
 
48
  except Exception as e:
49
  # General error handling
50
  error_message = f"An error occurred: {str(e)}"
51
  return error_message, error_message
52
 
53
+ # Create a Gradio interface
54
  iface = gr.Interface(
55
+ fn=process_audio, # The function to be called when processing the input
56
  inputs=[
57
+ gr.Audio(sources="upload", type="filepath", label="Upload your audio file"), # Audio input field for file upload
58
+ gr.Slider(minimum=10, maximum=50, value=30, label="Minimum Summary Length"), # Slider for setting minimum summary length
59
+ gr.Slider(minimum=50, maximum=150, value=100, label="Maximum Summary Length") # Slider for setting maximum summary length
60
  ],
61
  outputs=[
62
+ gr.Textbox(label="Transcript"), # Textbox for displaying the transcript
63
+ gr.Textbox(label="Summary") # Textbox for displaying the summary
64
  ],
65
+ title="Audio to Summarized Transcript", # Title of the app
66
+ description="Upload an audio file and adjust summary length to get both the transcript and summary." # Description of the app
67
  )
68
 
69
+ # Launch the app
70
+ iface.launch()