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])
相关推荐
happyprince16 分钟前
2026年04月07日热门模型
人工智能
IT_陈寒21 分钟前
Vue的这个响应式问题,坑了我整整两小时
前端·人工智能·后端
HIT_Weston23 分钟前
41、【Agent】【OpenCode】本地代理分析(五)
javascript·人工智能·opencode
万添裁44 分钟前
pytorch的张量数据结构以及各种操作函数的底层原理
人工智能·pytorch·python
盘古开天16661 小时前
Gemma4本地部署,零成本打造私有 AI 助手
人工智能·本地部署·智能体·gemma4·ai私有助理
夜影风1 小时前
算力租赁产业链全景分析:解构AI时代的“算力电厂”
人工智能·算力租赁
MediaTea1 小时前
AI 术语通俗词典:矩阵乘法
人工智能·线性代数·矩阵
NHuan^_^1 小时前
SpringBoot3 整合 SpringAI 实现ai助手(记忆)
java·人工智能·spring boot
Binary_ey1 小时前
光刻技术第22期 | 贝叶斯压缩感知光源优化的优化技术及对比分析
人工智能·深度学习·机器学习