import wave import os from mods.log_control import VoiceChangaerLogger logger = VoiceChangaerLogger.get_instance().getLogger() class IORecorder: def __init__(self, inputFilename: str, outputFilename: str, inputSamplingRate: int, outputSamplingRate: int): self._clearFile(inputFilename) self._clearFile(outputFilename) self.fi = wave.open(inputFilename, "wb") self.fi.setnchannels(1) self.fi.setsampwidth(2) self.fi.setframerate(inputSamplingRate) self.fo = wave.open(outputFilename, "wb") self.fo.setnchannels(1) self.fo.setsampwidth(2) self.fo.setframerate(outputSamplingRate) def _clearFile(self, filename: str): if os.path.exists(filename): logger.info(f"[IORecorder] delete old analyze file. {filename}") os.remove(filename) else: logger.info(f"[IORecorder] old analyze file not exist. {filename}") def writeInput(self, wav): self.fi.writeframes(wav) def writeOutput(self, wav): self.fo.writeframes(wav) def close(self): self.fi.close() self.fo.close()