Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python pydub访问mp3文件中的采样率(Hz)和音频信号_Python_Audio_Mp3_Wav_Pydub - Fatal编程技术网

Python pydub访问mp3文件中的采样率(Hz)和音频信号

Python pydub访问mp3文件中的采样率(Hz)和音频信号,python,audio,mp3,wav,pydub,Python,Audio,Mp3,Wav,Pydub,刚刚发现了这个有趣的python包pydub,它可以将任何音频文件转换为mp3、wav等 就我所阅读的文件而言,流程如下: 使用from_mp3()读取mp3音频文件 使用export()创建wav文件 只是好奇是否有一种方法可以直接从mp3文件访问采样率和音频信号(假设是单声道的,则为一维阵列),而无需将其转换为wav文件。我正在处理数千个音频文件,将它们全部转换为wav文件可能会很昂贵。如果您对文件的实际音频内容不感兴趣,您可以使用pydub.utils.mediainfo(): 它使用av

刚刚发现了这个有趣的python包pydub,它可以将任何音频文件转换为mp3、wav等

就我所阅读的文件而言,流程如下:

  • 使用from_mp3()读取mp3音频文件
  • 使用export()创建wav文件
    只是好奇是否有一种方法可以直接从mp3文件访问采样率和音频信号(假设是单声道的,则为一维阵列),而无需将其转换为wav文件。我正在处理数千个音频文件,将它们全部转换为wav文件可能会很昂贵。

    如果您对文件的实际音频内容不感兴趣,您可以使用
    pydub.utils.mediainfo()

    它使用avlib的
    avprobe
    实用程序,并返回各种信息。我建议试一试:)


    应该比使用音频片段打开每个mp3要快得多。除了采样率和识别文件是单声道还是立体声之外,我还想以数组的形式获取音频内容。我该怎么做?@bnopaul如果不解码mp3,就无法访问音频数据–您必须使用
    AudioSegment.from_mp3(…)
    来获取音频数据。原始数据是
    AudioSegment
    实例的一个属性,如
    my_audio_segment.\u data
    在我的例子中,audio.\u data返回一个由空字符组成的长字符串“/x00”这是一个bytestring-大多数音频以大量零开始(开始时静音)-如果您想要一个数字数组,您可以非常轻松地转换它(以下是我在EQ过滤器中执行此操作的示例:)
    >>> from pydub.utils import mediainfo
    >>> info = mediainfo("/path/to/file.mp3")
    >>> print info['sample_rate']
    44100
    >>> print info['channels']
    1