torchaudio.load() 和 librosa.load() 的返回值区别

问题

之前都在使用librosa加载音频数据,今天看到一段代码是用torchaudio加载的音频,发现torchaudio加载的数据和librosa返回的结果不一致。
查看资料后做出以下对比:
torchaudio.load 函数返回一个包含两个张量的元组:

  • 音频数据张量,形状为 (channels, samples)
  • 采样率

而 librosa.load 函数返回:

  • 音频数据numpy数组,形状为 (samples,)
  • 采样率

主要的区别有:

  • torchaudio 返回的是多通道数据,而 librosa 返回的是单通道数据。如果原始音频是多通道的,librosa 会自动将其转换为单通道。
  • torchaudio 返回的音频数据是一个张量,而 librosa 返回的是numpy数组。
import librosa
import torch
import torchaudio

audio_path = "../data/audio/4324107e-56bc-5ef4-b78b-d524d192b3fc/4324107e-56bc-5ef4-b78b-d524d192b3fc.mp3"
audio, sr = librosa.load(audio_path, sr=16000)
audio1, sr1 = torchaudio.load(audio_path, format='mp3')
print(audio.shape)
print(audio1.shape)

# 处理后数据一致
transform = torchaudio.transforms.Resample(sr1, 16000)
audio1 = transform(torch.mean(audio1, dim=0, keepdim=True))
print(audio.shape)
print(audio1.shape)
(11448320,) 16000
torch.Size([2, 34344959]) 48000

(11448320,)
torch.Size([1, 11448320])
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
torchaudio.loadload_wav函数是用于加载音频文件的函数。它们都可以用于读取音频文件的数据,并返回一个Tensor对象。两者的参数和功能几乎相同,但存在一些细微的差异。 torchaudio.load函数可以加载多种音频文件格式,包括wav、mp3、flac等。它可以设置frame_offset和num_frames参数来指定读取音频的起始帧和要读取的帧数。此外,normalize参数可以控制是否对音频数据进行归一化处理。最终返回的Tensor对象的形状是[channel, time]或[time, channel],取决于channels_first参数的设置。 而load_wav函数torchaudio.load函数的一个特例,专门用于加载wav格式的音频文件。它的功能和参数与torchaudio.load函数几乎相同,但它始终返回一个Tensor对象,并且不支持channels_first参数的设置。 总的来说,torchaudio.loadload_wav函数都可以用于加载音频文件,但torchaudio.load函数具有更广泛的适用性,可以加载多种音频文件格式,并且支持更多的参数设置。而load_wav函数则专门用于加载wav格式的音频文件。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [【PYTHON】soundfile.read / torchaudio.load / librosa.load](https://blog.csdn.net/iris_is_coding/article/details/123734010)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [torchaudio.load() 和 librosa.load() 的区别](https://blog.csdn.net/weixin_45226820/article/details/124808934)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值