in simuleval/scorer/instance.py [0:0]
def send_src(self, segment_size=10):
if self.step == 0:
self.start_time = time.time()
self.load_audio_from_path(self.source)
assert segment_size >= 1, "instance size has to larger than 1 ms"
num_samples = math.ceil(segment_size / 1000 * self.sample_rate)
if self.step < len(self.samples):
if self.step + num_samples > len(self.samples):
# Pad zeros if the requested number of samples
# are more than available samples.
instance = (
self.samples[self.step:]
)
is_finished = True
else:
instance = self.samples[self.step: self.step + num_samples]
is_finished = False
self.step = min(self.step + num_samples, len(self.samples))
dict_to_return = {
"segment_id": self.len_sample_to_ms(self.step),
"segment": instance,
"sample_rate": self.audio_info.samplerate,
"dtype": "int16",
"finished": is_finished,
}
else:
# Finish reading this audio
dict_to_return = {
"segment_id": self.source_length(),
"segment": DEFAULT_EOS,
"sample_rate": self.audio_info.samplerate,
"dtype": "int16",
"finished": True,
}
return dict_to_return