首页 > 其他分享 >scipy.io.wavfile.read, soundfile.read, librosa.load三种读取音频文件的方式的区别

scipy.io.wavfile.read, soundfile.read, librosa.load三种读取音频文件的方式的区别

时间:2022-12-02 20:45:23浏览次数:54  
标签:load soundfile read librosa print data wavfile

scipy.io.wavfile.read, soundfile.read, librosa.load三种读取音频文件的方式的区别

import scipy.io.wavfile as wavfile
import soundfile as sf
import librosa
import matplotlib.pyplot as plt

filename = 'bluesky.wav'

# wavfile.read读取 , 只有这一种未进行归一化,且fs和data的返回顺序相反
fs_wavfile, data_wavfile = wavfile.read(filename)
plt.subplot(311)
plt.plot(data_wavfile)
plt.title('wavfile')
print(data_wavfile.shape)
print(type(data_wavfile))
print(type(data_wavfile[0]))
print('----------------')


# soundfile.read 读取
data_soundfile, fs_soundfile = sf.read(filename)
plt.subplot(312)
plt.plot(data_soundfile)
plt.title('soundfile')
print(data_soundfile.shape)
print(type(data_soundfile))
print(type(data_soundfile[0]))
print('----------------')

# librosa.load 读取
# 如果 sr 缺省,librosa.load()会默认以22050的采样率读取音频文件,高于该采样率的音频文件会被下采样,低于该采样率的文件会被上采样。
# 因此,如果希望以原始采样率读取音频文件,sr 应当设为 None。具体做法为 y, sr = librosa(filename, sr=None)。
data_librosa, fs_librosa = librosa.load(filename, sr = None)
plt.subplot(313)
plt.plot(data_librosa)
plt.title('librosa')
print(data_librosa.shape)
print(type(data_librosa))
print(type(data_librosa[0]))
print('----------------')

运行结果:

(32000,)
<class 'numpy.ndarray'>
<class 'numpy.int16'>
----------------
(32000,)
<class 'numpy.ndarray'>
<class 'numpy.float64'>
----------------
(32000,)
<class 'numpy.ndarray'>
<class 'numpy.float32'>
----------------

波形:

图片名称
  • wavfile不会自动归一化,且两个返回值是先返回采样率fs,再返回声音数据data
  • librosa.load读取时,默认采样率为22050,高于该采样率的音频文件会被下采样,低于该采样率的文件会被上采样。因此,如果希望以原始采样率读取音频文件,sr 应当设为 None。具体做法为 :y, sr = librosa.load(filename, sr=None)。
  • soundfile.read 返回值为声音波形数据data和采样率fs

标签:load,soundfile,read,librosa,print,data,wavfile
From: https://www.cnblogs.com/znhung/p/16945554.html

相关文章

  • 手机端附件上传(FileReader / formData )
    ..<inputid="uploaderInput"class="input"type="file"accept="application/pdf"multiple=""> ..//-------------------------------------------------------......
  • iOS上架之App Uploader辅助工具激活码获取
    1. 点击图示的激活,获取激活码。2. 如图示,点击链接:​​http://www.applicationloader.net/purchase.html​​。会跳转购买激活码页面,购买成功即可生成激活码,购买的激活码越......
  • App Uploader下载安装
    ​1. 进入AppUploader官网下载。下载地址:​​http://www.applicationloader.net/​​2. 最新版本下载地址​​https://net-appuploader.oss-cn-qingdao.aliyuncs.com/app......
  • App Uploader下载安装
     进入AppUploader官网下载。下载地址:http://www.applicationloader.net/最新版本下载地址https://net-appuploader.oss-cn-qingdao.aliyuncs.com/appuploade......
  • Vue3中Echart挂在全局报错问题 dataSample.js:104 Uncaught TypeError: Cannot read p
    原因Proxy应用到了整个ECharts实例上的问题,不太建议把整个ECharts实例这样的对象放到ref里,容易影响到实例底层的运行。可以使用shallowRef替代,这样Proxy不会应......
  • APP Uploader-iOS APP上架到App Store的辅助工具
     APPUploaderAPP开发助手-iOSAPP上架到AppStore的辅助工具,解决iOSAPP上架繁琐费时的情况,帮助跨平台APP开发者上架苹果应用,在没有配置Mac苹果机的情况,实现iOS证......
  • html5 中的download属性
    在传统的html中,某个文件的下载,是这样的:<ahref="=/files/abc1234564545.pdf">report</a>而在HTML5浏览器中,可以支持download属性了,如下:<ahref="......
  • 使用echarts 报错[Vue warn]: Error in mounted hook: “TypeError: Cannot read prop
    出现以下问题是在mounted()中使用官方示例的时候报了以下错误:Errorinmountedhook:“TypeError:Cannotreadproperty‘init’ofundefined”或Cannotreadproper......
  • 互联网下载Python Downloader
    你们可能使用下载软件从Internet下载照片或视频,但现在你可以使用PythonIDM模块创建自己的下载器。#PythonDownloader#pipinstallinternetdownloadmanagerimpo......
  • OpenCV 解决 cv2.imread读取带中文路径图片问题
    原因:cv2.imread读到带中文路径图片,会报错。解决方法:先用np.fromfile()读取为np.uint8格式,再使用cv2.imdecode()解码对于代码,只需将image=cv2.imread(filepath)更改为......