Files
Labview-Program/hex to wave/New folder/py/H28cTest.py

61 lines
1.9 KiB
Python
Raw Normal View History

2025-09-10 13:40:11 +08:00
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)