🚧[WIP/TEST] Model : 文字起こし機能の終了時にキャッシュクリアを追加

This commit is contained in:
misyaguziya
2024-02-14 00:00:14 +09:00
parent 7cdd9d19d7
commit bc0d2f246b

View File

@@ -1,3 +1,4 @@
import gc
import tempfile import tempfile
from zipfile import ZipFile from zipfile import ZipFile
from subprocess import Popen from subprocess import Popen
@@ -336,7 +337,7 @@ class Model:
) )
# self.mic_audio_recorder.recordIntoQueue(mic_audio_queue, mic_energy_queue) # self.mic_audio_recorder.recordIntoQueue(mic_audio_queue, mic_energy_queue)
self.mic_audio_recorder.recordIntoQueue(mic_audio_queue, None) self.mic_audio_recorder.recordIntoQueue(mic_audio_queue, None)
mic_transcriber = AudioTranscriber( self.mic_transcriber = AudioTranscriber(
speaker=False, speaker=False,
source=self.mic_audio_recorder.source, source=self.mic_audio_recorder.source,
phrase_timeout=phase_timeout, phrase_timeout=phase_timeout,
@@ -346,13 +347,19 @@ class Model:
whisper_weight_type=config.WHISPER_WEIGHT_TYPE, whisper_weight_type=config.WHISPER_WEIGHT_TYPE,
) )
def sendMicTranscript(): def sendMicTranscript():
mic_transcriber.transcribeAudioQueue(mic_audio_queue, config.SOURCE_LANGUAGE, config.SOURCE_COUNTRY) self.mic_transcriber.transcribeAudioQueue(mic_audio_queue, config.SOURCE_LANGUAGE, config.SOURCE_COUNTRY)
message = mic_transcriber.getTranscript() message = self.mic_transcriber.getTranscript()
try: try:
fnc(message) fnc(message)
except Exception: except Exception:
pass pass
def endMicTranscript():
mic_audio_queue.queue.clear()
# mic_energy_queue.queue.clear()
del self.mic_transcriber
gc.collect()
# def sendMicEnergy(): # def sendMicEnergy():
# if mic_energy_queue.empty() is False: # if mic_energy_queue.empty() is False:
# energy = mic_energy_queue.get() # energy = mic_energy_queue.get()
@@ -363,7 +370,7 @@ class Model:
# pass # pass
# sleep(0.01) # sleep(0.01)
self.mic_print_transcript = threadFnc(sendMicTranscript) self.mic_print_transcript = threadFnc(sendMicTranscript, end_fnc=endMicTranscript)
self.mic_print_transcript.daemon = True self.mic_print_transcript.daemon = True
self.mic_print_transcript.start() self.mic_print_transcript.start()
@@ -439,7 +446,7 @@ class Model:
) )
# self.speaker_audio_recorder.recordIntoQueue(speaker_audio_queue, speaker_energy_queue) # self.speaker_audio_recorder.recordIntoQueue(speaker_audio_queue, speaker_energy_queue)
self.speaker_audio_recorder.recordIntoQueue(speaker_audio_queue ,None) self.speaker_audio_recorder.recordIntoQueue(speaker_audio_queue ,None)
speaker_transcriber = AudioTranscriber( self.speaker_transcriber = AudioTranscriber(
speaker=True, speaker=True,
source=self.speaker_audio_recorder.source, source=self.speaker_audio_recorder.source,
phrase_timeout=phase_timeout, phrase_timeout=phase_timeout,
@@ -449,13 +456,19 @@ class Model:
whisper_weight_type=config.WHISPER_WEIGHT_TYPE, whisper_weight_type=config.WHISPER_WEIGHT_TYPE,
) )
def sendSpeakerTranscript(): def sendSpeakerTranscript():
speaker_transcriber.transcribeAudioQueue(speaker_audio_queue, config.TARGET_LANGUAGE, config.TARGET_COUNTRY) self.speaker_transcriber.transcribeAudioQueue(speaker_audio_queue, config.TARGET_LANGUAGE, config.TARGET_COUNTRY)
message = speaker_transcriber.getTranscript() message = self.speaker_transcriber.getTranscript()
try: try:
fnc(message) fnc(message)
except Exception: except Exception:
pass pass
def endSpeakerTranscript():
speaker_audio_queue.queue.clear()
# speaker_energy_queue.queue.clear()
del self.speaker_transcriber
gc.collect()
# def sendSpeakerEnergy(): # def sendSpeakerEnergy():
# if speaker_energy_queue.empty() is False: # if speaker_energy_queue.empty() is False:
# energy = speaker_energy_queue.get() # energy = speaker_energy_queue.get()
@@ -466,7 +479,7 @@ class Model:
# pass # pass
# sleep(0.01) # sleep(0.01)
self.speaker_print_transcript = threadFnc(sendSpeakerTranscript) self.speaker_print_transcript = threadFnc(sendSpeakerTranscript, end_fnc=endSpeakerTranscript)
self.speaker_print_transcript.daemon = True self.speaker_print_transcript.daemon = True
self.speaker_print_transcript.start() self.speaker_print_transcript.start()