微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么librosa加载会改变flac文件?

如何解决为什么librosa加载会改变flac文件?

我有一个原始文件 0.flac,我只是用 librosa 打开,然后用 SoundFile 保存为 1.flac

import soundfile as sf
import librosa

in_path = "0.flac"
out_path = "1.flac"

sampling_rate = 16000

wav,source_sampling_rate = librosa.load(in_path,sr=None)
assert(source_sampling_rate == sampling_rate)

# 16bit -> PCM_16
sf.write(out_path,wav,sampling_rate,format='flac',subtype='PCM_16')

但是文件大小和文件本身似乎发生了变化:

User@User-MacBook-Pro:~/check_librosa$ Metaflac --list 0.flac 
MetaDATA block #0
  type: 0 (STREAMINFO)
  is last: false
  length: 34
  minimum blocksize: 4096 samples
  maximum blocksize: 4096 samples
  minimum framesize: 107 bytes
  maximum framesize: 5961 bytes
  sample_rate: 16000 Hz
  channels: 1
  bits-per-sample: 16
  total samples: 225360
  MD5 signature: 41222a894966327db4f89afa74e5e1a1
MetaDATA block #1
  type: 3 (SEEKTABLE)
  is last: false
  length: 36
  seek points: 2
    point 0: sample_number=0,stream_offset=0,frame_samples=4096
    point 1: sample_number=159744,stream_offset=170830,frame_samples=4096
MetaDATA block #2
  type: 4 (VORBIS_COMMENT)
  is last: false
  length: 40
  vendor string: reference libFLAC 1.2.1 20070917
  comments: 0
MetaDATA block #3
  type: 1 (PADDING)
  is last: true
  length: 8192

User@User-MacBook-Pro:~/check_librosa$ Metaflac --list 1.flac 
MetaDATA block #0
  type: 0 (STREAMINFO)
  is last: false
  length: 34
  minimum blocksize: 4096 samples
  maximum blocksize: 4096 samples
  minimum framesize: 107 bytes
  maximum framesize: 6040 bytes
  sample_rate: 16000 Hz
  channels: 1
  bits-per-sample: 16
  total samples: 225360
  MD5 signature: 41222a894966327db4f89afa74e5e1a1
MetaDATA block #1
  type: 4 (VORBIS_COMMENT)
  is last: true
  length: 40
  vendor string: reference libFLAC 1.3.3 20190804
  comments: 0

元数据块较少,最大帧大小不同。 这可能是什么原因?通过 librosa 加载文件是否有损?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。