读取.wav fi的标记

2024-10-01 15:35:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我想在.wav文件中使用标记。在

它似乎受getmarkers():http://docs.python.org/2/library/aifc.html#aifc.aifc.getmarkers(用于.aiff文件)的aifc模块支持,但不支持wave模块(http://docs.python.org/2/library/wave.html?highlight=wave#wave.Wave_read.getmarkers)。在

我们如何读取.wav文件的标记?在


Tags: 模块文件标记orghttpdocshtmllibrary
2条回答

编辑:这里是scipy.io.wavfile的更新版本,它添加了许多功能(24位.wav文件支持读/写、提示标记、提示标记标签和其他一些元数据,如音高(如果已定义)等:

wavfile.py (enhanced)

请随意分享!在


我终于找到了一个解决方案(它使用了scipy.io.wav文件)公司名称:

def readmarkers(file, mmap=False):
    if hasattr(file,'read'):
        fid = file
    else:
        fid = open(file, 'rb')
    fsize = _read_riff_chunk(fid)
    cue = []
    while (fid.tell() < fsize):
        chunk_id = fid.read(4)
        if chunk_id == b'cue ':
            size, numcue = struct.unpack('<ii',fid.read(8))
            for c in range(numcue):
              id, position, datachunkid, chunkstart, blockstart, sampleoffset = struct.unpack('<iiiiii',fid.read(24))
              cue.append(position)
        else:
            _skip_unknown_chunk(fid)
    fid.close()
    return cue

如果有人感兴趣,可以随意添加到Scipy的wavfile.py。在

它在里面wave.wave_读模块,称为Wave_read.getmarkers() 详见文件: http://docs.python.org/2/library/wave.html?highlight=wave#wave.Wave_read.getmarkers

相关问题 更多 >

    热门问题