gpt4 book ai didi

python - "pydub._data"和 "numpy.fromsting"如何在音频指纹中工作?

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

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

这是我正在开发的音频指纹软件的摘录。我不太确定几件事。

  1. tensec保存成什么样的格式
  2. ._data对tensec做了什么,tensec._data是什么格式
  3. fromstring 的目的是什么(我所理解的是 fromstring 获取 tensec._data 并返回一个数组)

请帮帮我

最佳答案

  1. 您可以对 AudioSegment 执行的几乎所有操作都会返回 AudioSegment(包括切片),这与切片字符串返回字符串的方式类似。

    但是,切片是在几毫秒内完成的,因此您应该编写 tensec = song[:10000]

  2. AudioSegment().raw_data(也可以作为 ._data 访问,但您不应使用私有(private)属性)是 AudioSegment。在 python 2 上,这是一个 bytestring,在 python 3 上,它是一个 bytes 对象。

  3. numpy.fromstring() 存在是因为在 python 2 中,原始字节数据通常存储为字符串,不适合进行数字运算。如果你想使用音频样本的数值,你也可以使用 `AudioSegment().get_array_of_samples()它的作用几乎相同,但会说明它是 8/16/32 位音频,还是单声道或立体声。

我使用 get_array_of_samples() 方法实现了一个低通滤波器 ( source on github ),作为示例您可能还会发现它很有用

关于python - "pydub._data"和 "numpy.fromsting"如何在音频指纹中工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35932636/

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