我在将自己录制的音频用Python转换格式并转换为16khz的文件保存时,显示了如下错误ParameterError: Audio data must be of type numpy.ndarray。
我对numpy的了解还不够深入想知道该怎么解决。
import torchaudio
from pydub import AudioSegment
import wave
import librosa
#open the file
filename="./MyVoice.m4a"
my_file="MyVoice.wav"
#with open(my_file,'rb') as M:
#content=M.read()
#print(content)
#convert .m4a into .wav
sound = AudioSegment.from_file(filename, format="m4a")
sound.export(my_file, format="wav")
#get the initial data
waveform, sampling_rate=torchaudio.load(my_file)
#print the basic size of waveform and sampling rate
print("The size of waveform:{}".format(waveform.size()))
print("The sampling rate :{}".format(sampling_rate))
#get the information of the file
f=wave.open(my_file,'rb')
params = f.getparams()
print(params)
nchannels, sampwidth, framerate, nframes = params[:4]
print(sampwidth)
#resampe and get new data with 16khz sampling rate and 16-bit depth
new_file="Re_MyVoice.wav"
resampler_16k = librosa.resample(y=waveform,orig_sr=sampling_rate,target_sr=16000)
librosa.output.write_wav(new_file, resampler_16k, 16000)