Sửa: đây là một phiên bản cập nhật của scipy.io.wavfile
có thêm nhiều điều (24 bit file .wav hỗ trợ cho đọc/ghi, đánh dấu gợi ý, gợi ý đánh dấu nhãn, và một số siêu dữ liệu khác như sân (nếu định nghĩa), vv):
wavfile.py (enhanced)
Hãy chia sẻ nó!
cuối cùng tôi đã tìm thấy một giải pháp (nó sử dụng một số chức năng của scipy.io.wavfile):
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
Hãy để thêm nó vào wavfile.py
scipy nếu ai đó đang quan tâm.
Tốt! Cảm ơn bạn đã chia sẻ – goncalopp
Điểm đánh dấu của tôi thuộc loại 'dải ô' (id, bắt đầu, kết thúc, thời lượng?). Với chức năng của bạn, tôi chỉ có thể đọc vị trí bắt đầu của mỗi phạm vi. Làm thế nào tôi có thể sửa đổi chức năng của bạn để làm cho nó hoạt động cho phạm vi quá? – Eric
Đây là tài liệu tham khảo mà tôi đã sử dụng: http://www.sonicspot.com/guide/wavefiles.html ... Nơi lưu trữ các điểm đánh dấu của bạn thuộc loại 'dải ô'? Trong 'Cue Chunk' (http://www.sonicspot.com/guide/wavefiles.html#cue) hoặc' Playlist Chunk' (http://www.sonicspot.com/guide/wavefiles.html#plst)? – Basj