Spaces:
Sleeping
Sleeping
Cryptic
commited on
Commit
·
6440aaf
1
Parent(s):
10cfa3b
test
Browse files
app.py
CHANGED
|
@@ -30,35 +30,33 @@ def load_and_convert_audio(audio_path):
|
|
| 30 |
def process_audio(audio_path):
|
| 31 |
"""Process audio file and return transcription and summary"""
|
| 32 |
results = {}
|
| 33 |
-
temp_wav_path = load_and_convert_audio(audio_path)
|
| 34 |
-
|
| 35 |
-
# Transcription
|
| 36 |
-
transcription = models['transcriber'](temp_wav_path, return_timestamps=True)
|
| 37 |
-
if isinstance(transcription, dict):
|
| 38 |
-
results['transcription'] = transcription['text']
|
| 39 |
-
else:
|
| 40 |
-
results['transcription'] = ' '.join([chunk['text'] for chunk in transcription])
|
| 41 |
-
|
| 42 |
-
# Summarization
|
| 43 |
-
text = results['transcription']
|
| 44 |
-
words = text.split()
|
| 45 |
-
chunk_size = 1000
|
| 46 |
-
chunks = [' '.join(words[i:i + chunk_size]) for i in range(0, len(words), chunk_size)]
|
| 47 |
|
| 48 |
-
|
| 49 |
-
|
| 50 |
-
|
| 51 |
-
|
| 52 |
-
|
| 53 |
-
|
| 54 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 55 |
|
| 56 |
-
|
| 57 |
-
|
| 58 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 59 |
|
| 60 |
return results
|
| 61 |
|
|
|
|
| 62 |
@app.route('/process-audio', methods=['POST'])
|
| 63 |
def process_audio_endpoint():
|
| 64 |
"""API endpoint to process audio file"""
|
|
|
|
| 30 |
def process_audio(audio_path):
|
| 31 |
"""Process audio file and return transcription and summary"""
|
| 32 |
results = {}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 33 |
|
| 34 |
+
try:
|
| 35 |
+
temp_wav_path = load_and_convert_audio(audio_path)
|
| 36 |
+
|
| 37 |
+
# Transcription
|
| 38 |
+
transcription = models['transcriber'](temp_wav_path, return_timestamps=True)
|
| 39 |
+
results['transcription'] = transcription['text'] if isinstance(transcription, dict) else ' '.join([chunk['text'] for chunk in transcription])
|
| 40 |
+
|
| 41 |
+
# Summarization
|
| 42 |
+
text = results['transcription']
|
| 43 |
+
words = text.split()
|
| 44 |
+
chunk_size = 1000
|
| 45 |
+
chunks = [' '.join(words[i:i + chunk_size]) for i in range(0, len(words), chunk_size)]
|
| 46 |
|
| 47 |
+
summaries = [models['summarizer'](chunk, max_length=200, min_length=50, truncation=True)[0]['summary_text'] for chunk in chunks]
|
| 48 |
+
results['summary'] = ' '.join(summaries)
|
| 49 |
+
|
| 50 |
+
except Exception as e:
|
| 51 |
+
return {'error': str(e)}, 500 # Return error message if something goes wrong
|
| 52 |
+
|
| 53 |
+
finally:
|
| 54 |
+
if os.path.exists(temp_wav_path):
|
| 55 |
+
os.unlink(temp_wav_path)
|
| 56 |
|
| 57 |
return results
|
| 58 |
|
| 59 |
+
|
| 60 |
@app.route('/process-audio', methods=['POST'])
|
| 61 |
def process_audio_endpoint():
|
| 62 |
"""API endpoint to process audio file"""
|