diff --git a/voice_recognition.py b/voice_recognition.py index d6e385b..cda8a00 100644 --- a/voice_recognition.py +++ b/voice_recognition.py @@ -101,8 +101,8 @@ class SRBuffer(voice_recv.AudioSink): if user: self.wavewriter[str(user.id)][0].writeframes(data.pcm) self.wavewriter[str(user.id)][1] = time.time_ns() - self.wavewriter[str(user.id)][2] = True #no writes - self.wavewriter[str(user.id)][3] = False #ready to rotate + self.wavewriter[str(user.id)][2] = True #still transmiting + self.wavewriter[str(user.id)][3] = True #there is data to write def cleanup(self) -> None: try: @@ -149,12 +149,13 @@ class Transcriber(commands.Cog): async def check_data(self): for item in self.wsink.wavewriter.values(): logger.info("Item %s", item) - if not item[2] and not item[3]: - if time.time_ns() - item[1] > 34000000: - item[3] = True - elif not item[2] and item[3]: - item[0].rotate() - item[3] = False + if not item[2]: + timediff = time.time_ns() - item[1] + if timediff > 50000000 and item[3]: #timeout occured data to transmit exists + logger.info("File rotation at %s", timediff) + item[3] = False #buffer rotated + item[0].rotate() + #ensure only files with minimum length are sent to transcription item[2] = False logger.info("Diff : %s", time.time_ns() - item[1])