Files
Labview-Program/hex to wave/New folder/py/H28cTest.py
chanweehewsonos 2f26b992a2 Initial
2025-09-10 13:40:11 +08:00

61 lines
1.9 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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)