def findVoicedSegments(arrT, arrFo, timeStep, minSegLength = 3):
	"""
	find voiced segments (identified by consecutive fo analysis data points)
	within a time series of fo data
	:param arrT: a numpy array containing the time offset information [s]
	:param arrFo: a numpy array containing the fo information [Hz]
	:param timeStep: the analysis time step [s]
	:param minSegLength: the minimum number of consecutive data points required
		to qualify as a sequence
	:return: a list containing the start and end offsets of each found sequence
	"""
	arrVoicedSegments = []
	segCnt = 0
	segStart = None
	for i, t in enumerate(arrT):
		fo = arrFo[i]
		if fo > 0:
			if segCnt == 0:
				segStart = i
				segCnt = 1
			else:
				segCnt += 1
		else:
			if segCnt > minSegLength:
				arrVoicedSegments.append([segStart, i])
			segCnt = 0
		if i > 0:
			if t - arrT[i - 1] > timeStep * 1.5:
				if segCnt > minSegLength:
					arrVoicedSegments.append(
						[segStart, i - 1])
				segCnt = 0
	if segCnt > minSegLength:
		arrVoicedSegments.append([segStart, len(arrT) - 1])
	return arrVoicedSegments