ifile = wave.open("input.wav")
Run Code Online (Sandbox Code Playgroud)
我怎么能把这个文件写成一个numpy浮点数组呢?
Jor*_*ley 17
>>> from scipy.io.wavfile import read
>>> a = read("adios.wav")
>>> numpy.array(a[1],dtype=float)
array([ 128., 128., 128., ..., 128., 128., 128.])
Run Code Online (Sandbox Code Playgroud)
通常它会是字节然后是int ...这里我们只是将它转换为float类型
你可以阅读这里阅读https://docs.scipy.org/doc/scipy/reference/tutorial/io.html#module-scipy.io.wavfile
Mat*_*ker 12
问这个问题七年后......
import wave
import numpy
# Read file to get buffer
ifile = wave.open("input.wav")
samples = ifile.getnframes()
audio = ifile.readframes(samples)
# Convert buffer to float32 using NumPy
audio_as_np_int16 = numpy.frombuffer(audio, dtype=numpy.int16)
audio_as_np_float32 = audio_as_np_int16.astype(numpy.float32)
# Normalise float32 array so that values are between -1.0 and +1.0
max_int16 = 2**15
audio_normalised = audio_as_np_float32 / max_int16
Run Code Online (Sandbox Code Playgroud)
sam*_*man 10
使用librosa包并将 wav 文件加载到 numpy 数组:
y, sr = librosa.load(filename)
Run Code Online (Sandbox Code Playgroud)
将音频加载并解码为时间序列 y,表示为一维 NumPy 浮点数组。变量sr包含y的采样率,即音频每秒的样本数。默认情况下,所有音频都会混合为单声道,并在加载时重新采样为 22050 Hz。可以通过向 librosa.load() 提供附加参数来覆盖此行为。
更多信息请参阅Librosa 库文档
| 归档时间: |
|
| 查看次数: |
19133 次 |
| 最近记录: |