czyoung commited on
Commit
4249b90
·
verified ·
1 Parent(s): a865f85

Update annotationToNoiseList to include names

Browse files
Files changed (1) hide show
  1. sonogram.py +31 -6
sonogram.py CHANGED
@@ -164,6 +164,7 @@ class Sonogram():
164
  sas, st, sh = self.activeSpeaker(inAnnotation,step=stepSize)
165
  timeStepAggregate = []
166
  timeStepClass = []
 
167
  categories = ['group','individual','silence']
168
  for i in st:
169
  timeStepAggregate.append({'individual':0,'group':0,'silence':0})
@@ -188,6 +189,20 @@ class Sonogram():
188
  decision = 'individual'
189
  for j in range(i,end):
190
  timeStepAggregate[j][decision] += 1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
191
  for item in timeStepAggregate:
192
  timeStepClass.append(max(item, key=item.get))
193
 
@@ -196,24 +211,34 @@ class Sonogram():
196
  for c in categories:
197
  currList = []
198
  start = None
 
199
  duration = 0
200
  tracking = False
201
- for stepClass,timeIncrement in zip(timeStepClass,st):
202
  if stepClass == c:
203
- if start == None:
204
- start = timeIncrement
205
  duration += stepSize
206
- tracking = True
207
  else:
 
 
 
 
 
 
 
 
 
208
  duration += stepSize
 
209
  else:
210
  if tracking:
211
- currList.append((start,duration))
212
  start = None
 
213
  duration = 0
214
  tracking = False
215
  if tracking:
216
- currList.append((start,duration))
217
  categorySegmentList.append(currList)
218
  return categorySegmentList, st
219
 
 
164
  sas, st, sh = self.activeSpeaker(inAnnotation,step=stepSize)
165
  timeStepAggregate = []
166
  timeStepClass = []
167
+ timeStepMembers = []
168
  categories = ['group','individual','silence']
169
  for i in st:
170
  timeStepAggregate.append({'individual':0,'group':0,'silence':0})
 
189
  decision = 'individual'
190
  for j in range(i,end):
191
  timeStepAggregate[j][decision] += 1
192
+ # For group decisions, members include all in window
193
+ if decision == 'group':
194
+ memberSet = set()
195
+ for j in range(i,end):
196
+ memberSet.add(sas[i])
197
+ # Convert to list and sort for convenience
198
+ memberSet = list(memberSet)
199
+ memberSet.sort()
200
+ timeStepMembers.append('+'.join(memberSet))
201
+ elif decision == 'individual':
202
+ timeStepMembers.append(sas[i])
203
+ else:
204
+ timeStepMembers.append(None)
205
+
206
  for item in timeStepAggregate:
207
  timeStepClass.append(max(item, key=item.get))
208
 
 
211
  for c in categories:
212
  currList = []
213
  start = None
214
+ currMembers = None
215
  duration = 0
216
  tracking = False
217
+ for stepClass,timeIncrement,members in zip(timeStepClass,st,timeStepMembers):
218
  if stepClass == c:
219
+ if currMembers == members:
 
220
  duration += stepSize
 
221
  else:
222
+ if tracking:
223
+ currList.append((currMembers,Segment(start,start+duration)))
224
+ start = None
225
+ currMembers == None
226
+ duration = 0
227
+ tracking = False
228
+
229
+ start = timeIncrement
230
+ currMembers = members
231
  duration += stepSize
232
+ tracking = True
233
  else:
234
  if tracking:
235
+ currList.append((currMembers,Segment(start,start+duration)))
236
  start = None
237
+ currMembers == None
238
  duration = 0
239
  tracking = False
240
  if tracking:
241
+ currList.append((currMembers,Segment(start,start+duration)))
242
  categorySegmentList.append(currList)
243
  return categorySegmentList, st
244