from __future__ import print_function import os import struct import wave from builtins import range def get_wave_array_str(filename, target_bits): wave_read = wave.open(filename, 'r') array_str = '' nchannels, sampwidth, framerate, nframes, comptype, compname = wave_read.getparams() sampwidth *= 8 for i in range(wave_read.getnframes()): val, = struct.unpack('', file=audio_table) print('const unsigned char audio_table[] = {', file=audio_table) for wav in wav_file_list: print('processing: {}'.format(wav)) print(get_wave_array_str(filename=wav, target_bits=scale_bits), file=audio_table) print('};\n', file=audio_table) print('Done...') if __name__ == '__main__': print('Generating audio array...') wav_list = [] for filename in os.listdir('./'): if filename.endswith('.wav'): wav_list.append(filename) gen_wave_table(wav_file_list=wav_list, target_file_name='audio_example_file.h')