"""This module is responsible for wav file generation.""" import struct import random import io import wave def generate_wav(sample_length): large_wav_file = wave.open('large_wav_file.wav', 'w') large_wav_file.setparams((2, 2, 44100, 0, 'NONE', 'not compressed')) values = [] b = io.BytesIO() for i in range(0, sample_length): value = random.randint(-32767, 32767) packed_value = struct.pack('h', value) values.append(packed_value) if (i % 200000) == 0: values_bytes = b''.join(values) b.write(values_bytes) values = [] b.seek(0) while True: chunk = b.read(200000) if chunk == b'': break large_wav_file.writeframes(b.read()) large_wav_file.close() if __name__ == '__main__': generate_wav(500000000)