mirror of
https://github.com/w-okada/voice-changer.git
synced 2025-01-23 13:35:12 +03:00
39 lines
1.1 KiB
Python
39 lines
1.1 KiB
Python
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()
|