gpt4 book ai didi

python | pydub : how to load wav sample into pydub from np. 数组而不是 wav 文件?

转载 作者:太空宇宙 更新时间:2023-11-03 11:18:29 25 4
gpt4 key购买 nike

如何将音频 np.array 文件加载到 PyDub 库中?目前,我使用 AudioSegment.from_wav(file_path),但如果我已经将 wav 文件加载为 numpy 数组,这并不方便:

sample_rate, wav_sample = scipy.io.wavfile.read(file_path)

更新:我的 wav 文件都是 16 位的,单 channel 的。

最佳答案

好吧,对这个答案持怀疑态度,因为我对 pydub 的了解还不足以查看它是否正常工作,但是您应该能够从提供所有它需要的参数:

sample_rate, wav_sample = scipy.io.wavfile.read(file_path) 
segment = AudioSegment(data=wav_sample.tobytes(),
sample_width=2,
frame_rate=sample_rate, channels=1)

假设是 16 位单 channel 样本,它似乎可以正常工作。

不同的样本宽度应该很容易从数组大小中推断出来(类似于 wav_sample.nbytes()/len(wav_sample) 应该可以)。

请自己做一些测试并告诉我们!

编辑:多 channel 有点棘手,据我所知,pydub 需要交织 channel ,而 scipy 将它们作为多列返回。但是使用 numpy 应该很容易以 pydub 想要的格式 reshape 数据,如下所示(未测试)?

np.vstack((wav_sample[:,0],wav_sample[:,1])).reshape((-1,), order='F') 

关于 python | pydub : how to load wav sample into pydub from np. 数组而不是 wav 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48054870/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com