Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
|
@@ -210,35 +210,29 @@ def analyze_audio(audio_file: str,
|
|
| 210 |
diarize_output = None
|
| 211 |
else:
|
| 212 |
warn(results, "DIAR_SKIP", "HF_TOKEN not set. Skipping speaker diarization.")
|
| 213 |
-
print("Assigning speakers to words...")
|
| 214 |
-
|
| 215 |
try:
|
| 216 |
diarize_segments_for_assignment = []
|
| 217 |
-
if diarize_output is not None:
|
| 218 |
-
|
| 219 |
-
for segment, _, label in diarize_output.itertracks(yield_label=True):
|
| 220 |
-
diarize_segments_for_assignment.append({
|
| 221 |
-
"start": float(segment.start),
|
| 222 |
-
"end": float(segment.end),
|
| 223 |
-
"speaker": normalize_speaker(label)
|
| 224 |
-
})
|
| 225 |
-
else:
|
| 226 |
-
diarize_segments_for_assignment = diarize_output
|
| 227 |
-
else:
|
| 228 |
-
diarize_segments_for_assignment = []
|
| 229 |
-
for seg in aligned.get("segments", []):
|
| 230 |
diarize_segments_for_assignment.append({
|
| 231 |
-
"start":
|
| 232 |
-
"end":
|
| 233 |
-
"speaker":
|
| 234 |
})
|
| 235 |
-
|
| 236 |
if diarize_segments_for_assignment:
|
| 237 |
final = whisperx.assign_word_speakers(diarize_segments_for_assignment, aligned)
|
| 238 |
else:
|
|
|
|
| 239 |
final = aligned
|
| 240 |
for seg in final.get("segments", []):
|
| 241 |
-
seg["speaker"] = "Speaker_1"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 242 |
except Exception as e:
|
| 243 |
warn(results, "ASSIGN_SPEAKERS_ERROR", f"Error assigning speakers: {e}. Falling back to unassigned segments.")
|
| 244 |
final = aligned
|
|
|
|
| 210 |
diarize_output = None
|
| 211 |
else:
|
| 212 |
warn(results, "DIAR_SKIP", "HF_TOKEN not set. Skipping speaker diarization.")
|
| 213 |
+
print("Assigning speakers to words...")
|
|
|
|
| 214 |
try:
|
| 215 |
diarize_segments_for_assignment = []
|
| 216 |
+
if diarize_output is not None and hasattr(diarize_output, "itertracks"):
|
| 217 |
+
for segment, _, label in diarize_output.itertracks(yield_label=True):
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 218 |
diarize_segments_for_assignment.append({
|
| 219 |
+
"start": float(segment.start),
|
| 220 |
+
"end": float(segment.end),
|
| 221 |
+
"speaker": normalize_speaker(label)
|
| 222 |
})
|
| 223 |
+
print(f"DEBUG: Converted {len(diarize_segments_for_assignment)} diarization segments.")
|
| 224 |
if diarize_segments_for_assignment:
|
| 225 |
final = whisperx.assign_word_speakers(diarize_segments_for_assignment, aligned)
|
| 226 |
else:
|
| 227 |
+
warn(results, "ASSIGN_FAIL", "Diarization segments were empty or unavailable. Defaulting all to Speaker_1.")
|
| 228 |
final = aligned
|
| 229 |
for seg in final.get("segments", []):
|
| 230 |
+
seg["speaker"] = "Speaker_1"
|
| 231 |
+
except Exception as e:
|
| 232 |
+
warn(results, "ASSIGN_SPEAKERS_ERROR", f"Error assigning speakers: {e}. Falling back to unassigned segments.")
|
| 233 |
+
final = aligned
|
| 234 |
+
for seg in final.get("segments", []):
|
| 235 |
+
seg["speaker"] = "Speaker_1"
|
| 236 |
except Exception as e:
|
| 237 |
warn(results, "ASSIGN_SPEAKERS_ERROR", f"Error assigning speakers: {e}. Falling back to unassigned segments.")
|
| 238 |
final = aligned
|