import serial import binascii as ba import wave import os import time from time import sleep #from command import testcommandodelist, commandresultlist import struct import soundfile as sf import numpy as np import sys def audio_dump_to_wav_3Mics_32bit(path,new_audio_path,wav_name): binData = bytearray() hexfile = open(path,encoding='utf-8') #print(hexfile) for textLine in hexfile.readlines(): binFile = [] #print(textLine) textLine = textLine.upper().strip() textline = textLine.encode('utf-8','ignore').decode('utf-8') if (textLine[0] != ':'):continue textLine = textLine[1:] #print(textLine) textLine = textLine.replace('0X', '').replace(',', '').replace(' ', '') binBytes = ba.unhexlify(textLine) #print(binBytes) if binFile: binFile.write(binBytes) binData += binBytes endianness = sys.byteorder crc32 = ba.crc32(binData) & 0xFFFFFFFF numBytes = len(binData) print('%d bytes, CRC32: 0x%08X' % (numBytes, crc32)) print(' ') numSamples = numBytes // struct.calcsize('>f') dataFormat = ('<%df' % numSamples) if endianness == 'little' else ('>%df' % numSamples) audio = np.array(struct.unpack(dataFormat, binData)) audio = audio.reshape(int(len(audio)/1),1) TOP_Data = audio[:,0] #Top_data = audio[:,0] #Error_data = audio[:,2] sf.write(new_audio_path + wav_name +'.wav',TOP_Data,48000,subtype='PCM_32') #sf.write(new_audio_path + wav_name +'_'+'32bit.wav',Top_data,48000,subtype='PCM_32') #sf.write(new_audio_path + wav_name +'_'+'Error_32bit.wav',Error_data,16000,subtype='PCM_32') print("audio dump to wav 黑化肥发灰 灰化肥发黑 !!!") datapath = '/Users/h3637_h716454/Desktop/py/' # save here fpmic = datapath + '/' try: os.makedirs(fpmic) except OSError: print('File Exists') fp1 = fpmic + '1.txt' wav_name='1' audio_dump_to_wav_3Mics_32bit(fp1,fpmic,wav_name)