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])
相关推荐
21光年16 分钟前
2024-2025年AI领域重大事件深度解析:技术革命、产业重构与未来挑战
人工智能·重构
无声旅者24 分钟前
低代码AI开发新趋势:Dify平台化开发实战
人工智能·低代码·agent·dify
Tech Synapse24 分钟前
基于Scikit-learn与Flask的医疗AI糖尿病预测系统开发实战
人工智能·flask·scikit-learn
加百力30 分钟前
微软CTO:AI已经“能力过剩”,行业需要努力缩小模型能力与实际产品交付之间的差距
人工智能
缘友一世39 分钟前
PyTorch图像建模(图像识别、分割和分类案例)
人工智能·pytorch·分类
hongdou1991 小时前
AI 多 Agent 图形化开发深度解析:iVX IDE 与主流产品技术架构对比研究
ide·人工智能·架构
电极限1 小时前
一个实际电路的原理图是怎样设计出来的?附带案例流程图!
人工智能·单片机·嵌入式硬件·支持向量机·动态规划
jndingxin2 小时前
OpenCV CUDA 模块图像过滤------创建一个高斯滤波器函数createGaussianFilter()
人工智能·opencv·计算机视觉
搞IT的放牛娃2 小时前
AI人工智能——Matplotlib绘制各种数据可视化图表的基础方法
人工智能·python·机器学习
鸭鸭鸭进京赶烤2 小时前
第六届电子通讯与人工智能国际学术会议(ICECAI 2025)
大数据·图像处理·人工智能·hadoop·机器学习·数据挖掘