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

问题

之前都在使用librosa加载音频数据,今天看到一段代码是用torchaudio加载的音频,发现torchaudio加载的数据和librosa返回的结果不一致。

查看资料后做出以下对比:

torchaudio.load 函数返回一个包含两个张量的元组:

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

而 librosa.load 函数返回:

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

主要的区别有:

  • torchaudio 返回的是多通道数据,而 librosa 返回的是单通道数据。如果原始音频是多通道的,librosa 会自动将其转换为单通道。
  • torchaudio 返回的音频数据是一个张量,而 librosa 返回的是numpy数组。
python 复制代码
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])
相关推荐
爱喝白开水a13 分钟前
基于Transformer的图像处理预训练模型
图像处理·人工智能·深度学习·transformer·预训练·ai大模型·计算机技术
只怕自己不够好21 分钟前
OpenCV 图像轮廓查找与绘制全攻略:从函数使用到实战应用详解
人工智能·opencv·计算机视觉
小厂程序猿23 分钟前
opencv读写文件操作
人工智能·opencv·计算机视觉
2的n次方_32 分钟前
丹摩|丹摩智算平台深度评测
人工智能
智慧化智能化数字化方案36 分钟前
解读 144页 汽车企业数智化战略规划PPT方案,学习车企数智化战略规划
人工智能·学习·汽车
倔强的石头1061 小时前
DAMODEL丹摩|《ChatGLM-6B 在丹摩智算平台的部署与使用指南》
人工智能·ai
小嗷犬1 小时前
【论文笔记】Improved Baselines with Visual Instruction Tuning
论文阅读·人工智能·语言模型·大模型·多模态
抓哇能手2 小时前
机器学习基础
人工智能·opencv·算法·机器学习·计算机视觉·机器视觉
乐呦刘、6 小时前
nature communications论文 解读
人工智能·深度学习·机器学习
自不量力的A同学9 小时前
微软发布「AI Shell」
人工智能·microsoft