Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/279.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.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检索MusicBrainz指纹_Python_Audio Fingerprinting_Musicbrainz - Fatal编程技术网

用python检索MusicBrainz指纹

用python检索MusicBrainz指纹,python,audio-fingerprinting,musicbrainz,Python,Audio Fingerprinting,Musicbrainz,我很难找到一种从给定歌曲中检索音频指纹数据的方法。我以前用MusicBrainz标记过这些歌曲,现在我想直接从音频文件中读取它们。我用musicbrainzngs找到的唯一方法是在musicbrainzngs库中搜索musicbrainzngs.search_艺术家的歌曲,以找到指纹数据,这是相当低效的,因为我的文件中已经有了这些数据 是否有一个库,我可以从任何给定的音频文件中读取它?存储在音频文件中,是的,如果您使用标记文件。具体的标签取决于音频文件: MP3/ID3V2:TXX:AudioI

我很难找到一种从给定歌曲中检索音频指纹数据的方法。我以前用MusicBrainz标记过这些歌曲,现在我想直接从音频文件中读取它们。我用musicbrainzngs找到的唯一方法是在musicbrainzngs库中搜索musicbrainzngs.search_艺术家的歌曲,以找到指纹数据,这是相当低效的,因为我的文件中已经有了这些数据

是否有一个库,我可以从任何给定的音频文件中读取它?

存储在音频文件中,是的,如果您使用标记文件。具体的标签取决于音频文件:

MP3/ID3V2:TXX:AudioID指纹 Vorbis FLAC、ogg和APE:声学指纹 iTunes MP4:--:com.apple.iTunes:auscousID指纹 看

您可以使用读取音频文件标签,这也是Picard使用的:

import mutagen

tagnames = {
    'audio/mp3': 'TXXX:Acoustid Fingerprint',
    'audio/vorbis': 'ACOUSTID_FINGERPRINT',
    'audio/mp4': '----:com.apple.iTunes:Acoustid Fingerprint'
}

mfile = mutagen.File(musicfile_filename)
if mfile and mfile.mime[0] in tagnames:
    fingerprint = mfile.get(tagnames[mfile.mime[0]])
    if fingerprint is not None:
        try:
            # ID3v2 tag
            fingerprint = fingerprint.text[0]
        except AttributeError:
            # Vorbis
            fingerprint = fingerprint[0]

您正在使用哪个Python模块?@KristopherIves:musicbrainzngs是一个Python模块。