Spaces:
Running on CPU Upgrade
Running on CPU Upgrade
Update annotationToNoiseList algorithm
Browse files- sonogram.py +22 -7
sonogram.py
CHANGED
|
@@ -276,7 +276,7 @@ class Sonogram():
|
|
| 276 |
# For each timestep in current segment, check current speaker against previous speaker
|
| 277 |
for i in range(startI,endI+1):
|
| 278 |
# No active speaker yet, so apply self
|
| 279 |
-
if speakerAtStep[i]
|
| 280 |
speakerAtStep[i] = label
|
| 281 |
# If active speaker exists, check against hierarchy
|
| 282 |
else:
|
|
@@ -342,7 +342,7 @@ class Sonogram():
|
|
| 342 |
if sas[j] is not None:
|
| 343 |
memberSet.add(sas[i])
|
| 344 |
# Increase silence score if no speaker
|
| 345 |
-
if sas[j]
|
| 346 |
silenceCount += 1
|
| 347 |
# Increase group score for known group IDs
|
| 348 |
elif sas[j] == 'group' or sas[j] == 99:
|
|
@@ -372,15 +372,30 @@ class Sonogram():
|
|
| 372 |
|
| 373 |
# Iterate over aggregate scores for each window
|
| 374 |
for i,item in enumerate(timeStepAggregate):
|
| 375 |
-
|
| 376 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 377 |
timeStepClass.append(cat)
|
|
|
|
| 378 |
# For group decisions, members include all in window
|
| 379 |
if cat == 'group':
|
| 380 |
timeStepMembers[i] = '+'.join(timeStepMembers[i])
|
| 381 |
# Assume current speaker is the "individual" voice during window
|
| 382 |
elif cat == 'individual':
|
| 383 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 384 |
# Remove all members if silence
|
| 385 |
else:
|
| 386 |
timeStepMembers[i] = None
|
|
@@ -415,7 +430,7 @@ class Sonogram():
|
|
| 415 |
if start+duration > endTime:
|
| 416 |
endTime = start+duration
|
| 417 |
start = None
|
| 418 |
-
currMembers
|
| 419 |
duration = 0
|
| 420 |
tracking = False
|
| 421 |
start = timeIncrement
|
|
@@ -431,7 +446,7 @@ class Sonogram():
|
|
| 431 |
if start+duration > endTime:
|
| 432 |
endTime = start+duration
|
| 433 |
start = None
|
| 434 |
-
currMembers
|
| 435 |
duration = 0
|
| 436 |
tracking = False
|
| 437 |
# Exit case, if still tracking then generate final Segment
|
|
|
|
| 276 |
# For each timestep in current segment, check current speaker against previous speaker
|
| 277 |
for i in range(startI,endI+1):
|
| 278 |
# No active speaker yet, so apply self
|
| 279 |
+
if speakerAtStep[i] is None:
|
| 280 |
speakerAtStep[i] = label
|
| 281 |
# If active speaker exists, check against hierarchy
|
| 282 |
else:
|
|
|
|
| 342 |
if sas[j] is not None:
|
| 343 |
memberSet.add(sas[i])
|
| 344 |
# Increase silence score if no speaker
|
| 345 |
+
if sas[j] is None:
|
| 346 |
silenceCount += 1
|
| 347 |
# Increase group score for known group IDs
|
| 348 |
elif sas[j] == 'group' or sas[j] == 99:
|
|
|
|
| 372 |
|
| 373 |
# Iterate over aggregate scores for each window
|
| 374 |
for i,item in enumerate(timeStepAggregate):
|
| 375 |
+
cat = None
|
| 376 |
+
# Shortcut areas known to be group or silence, as these are more definite
|
| 377 |
+
if sas[i] == 'group':
|
| 378 |
+
cat = 'group'
|
| 379 |
+
elif sas[i] is None:
|
| 380 |
+
cat = 'silence'
|
| 381 |
+
else:
|
| 382 |
+
# Final classification is highest aggregate score
|
| 383 |
+
cat = max(item, key=item.get)
|
| 384 |
timeStepClass.append(cat)
|
| 385 |
+
|
| 386 |
# For group decisions, members include all in window
|
| 387 |
if cat == 'group':
|
| 388 |
timeStepMembers[i] = '+'.join(timeStepMembers[i])
|
| 389 |
# Assume current speaker is the "individual" voice during window
|
| 390 |
elif cat == 'individual':
|
| 391 |
+
# Individual is first one seen
|
| 392 |
+
firstIndividual = sas[i]
|
| 393 |
+
firstIndividualIndex = i
|
| 394 |
+
# If none currently (at/near end of silence) then find first individual instead
|
| 395 |
+
while firstIndividual is None or firstIndividual == 'group':
|
| 396 |
+
firstIndividual = firstIndividual[firstIndividualIndex+1]
|
| 397 |
+
firstIndividualIndex += 1
|
| 398 |
+
timeStepMembers[i] = firstIndividual
|
| 399 |
# Remove all members if silence
|
| 400 |
else:
|
| 401 |
timeStepMembers[i] = None
|
|
|
|
| 430 |
if start+duration > endTime:
|
| 431 |
endTime = start+duration
|
| 432 |
start = None
|
| 433 |
+
currMembers is None
|
| 434 |
duration = 0
|
| 435 |
tracking = False
|
| 436 |
start = timeIncrement
|
|
|
|
| 446 |
if start+duration > endTime:
|
| 447 |
endTime = start+duration
|
| 448 |
start = None
|
| 449 |
+
currMembers is None
|
| 450 |
duration = 0
|
| 451 |
tracking = False
|
| 452 |
# Exit case, if still tracking then generate final Segment
|