"pydub._data" 和 "numpy.fromsting" 如何在音频指纹中工作?
how does "pydub._data" and "numpy.fromsting" work in audio fingerprint?
import numpy as np
from pydub import AudioSegment
song = AudioSegment.from_mp3("Music/Jimin/trap/_Revolution (Original Mix).mp3")
tensec = song[:10]
data = np.fromstring(tensec._data,np.int16)
print tensec
print data
这是我正在开发的音频指纹软件的摘录。我不太确定一些事情。
- tensec保存为什么格式
._data
对tensec做了什么以及tensec._data
在 中是什么格式
fromstring
的目的是什么(我所理解的是 fromstring
需要 tensec._data
和 returns 一个数组)
请帮帮我
您可以在 AudioSegment 上执行的几乎所有操作 return AudioSegment(包括切片)类似于切片字符串的方式 returns 字符串。
然而,切片是在毫秒内完成的,所以你应该写 tensec = song[:10000]
AudioSegment().raw_data
(也可以作为 ._data
访问,但您不应使用私有属性)是 AudioSegment
包含的原始字节数据。在 python 2 上这是一个 bytestring
,在 python 3 上它是一个 bytes
对象。
numpy.fromstring()
存在是因为在 python 2 中,原始字节数据通常存储为字符串,不适合进行数字运算。如果你想使用音频样本的数值,你也可以使用 `AudioSegment().get_array_of_samples() 做几乎相同的事情,但说明它是 8/16/32 位音频,以及它是单声道还是立体声。
我使用 get_array_of_samples()
方法实现了一个低通滤波器 (source on github),作为示例您可能也会发现它很有用
import numpy as np
from pydub import AudioSegment
song = AudioSegment.from_mp3("Music/Jimin/trap/_Revolution (Original Mix).mp3")
tensec = song[:10]
data = np.fromstring(tensec._data,np.int16)
print tensec
print data
这是我正在开发的音频指纹软件的摘录。我不太确定一些事情。
- tensec保存为什么格式
._data
对tensec做了什么以及tensec._data
在 中是什么格式
fromstring
的目的是什么(我所理解的是fromstring
需要tensec._data
和 returns 一个数组)
请帮帮我
您可以在 AudioSegment 上执行的几乎所有操作 return AudioSegment(包括切片)类似于切片字符串的方式 returns 字符串。
然而,切片是在毫秒内完成的,所以你应该写
tensec = song[:10000]
AudioSegment().raw_data
(也可以作为._data
访问,但您不应使用私有属性)是AudioSegment
包含的原始字节数据。在 python 2 上这是一个bytestring
,在 python 3 上它是一个bytes
对象。numpy.fromstring()
存在是因为在 python 2 中,原始字节数据通常存储为字符串,不适合进行数字运算。如果你想使用音频样本的数值,你也可以使用 `AudioSegment().get_array_of_samples() 做几乎相同的事情,但说明它是 8/16/32 位音频,以及它是单声道还是立体声。
我使用 get_array_of_samples()
方法实现了一个低通滤波器 (source on github),作为示例您可能也会发现它很有用