2024-05-16 20:39:08 发布
网友
我知道以下问题: How to create a pydub AudioSegment using an numpy array?
我的问题正好相反。如果我有一个pydub音频段,如何将其转换为numpy数组?
我想使用scipy过滤器等等。 我不太清楚音频段原始数据的内部结构是什么。
Pydub有一个获取audio data as an array of samples的工具,它是一个array.array实例(不是numpy数组),但是您应该能够相对容易地将它转换为numpy数组:
array.array
from pydub import AudioSegment sound = AudioSegment.from_file("sound1.wav") # this is an array samples = sound.get_array_of_samples()
不过,您可以创建实现的numpy变体。该方法的实现非常简单:
def get_array_of_samples(self): """ returns the raw_data as an array of samples """ return array.array(self.array_type, self._data)
从(已修改?)创建新音频段也可以使用样本阵列:
new_sound = sound._spawn(samples)
上面的代码有点老套,它是为AudioSegment类内部使用而编写的,但它主要是计算出您正在使用的音频数据类型(样本数组、样本列表、字节、bytestring等)。尽管有下划线前缀,使用还是安全的。
您可以从AudioSegment中获取array.array,然后将其转换为numpy.ndarray:
AudioSegment
numpy.ndarray
from pydub import AudioSegment import numpy as np song = AudioSegment.from_mp3('song.mp3') samples = song.get_array_of_samples() samples = np.array(samples)
Pydub有一个获取audio data as an array of samples的工具,它是一个
array.array
实例(不是numpy数组),但是您应该能够相对容易地将它转换为numpy数组:不过,您可以创建实现的numpy变体。该方法的实现非常简单:
从(已修改?)创建新音频段也可以使用样本阵列:
上面的代码有点老套,它是为AudioSegment类内部使用而编写的,但它主要是计算出您正在使用的音频数据类型(样本数组、样本列表、字节、bytestring等)。尽管有下划线前缀,使用还是安全的。
您可以从
AudioSegment
中获取array.array
,然后将其转换为numpy.ndarray
:相关问题 更多 >
编程相关推荐