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])
相关推荐
2501_941623323 分钟前
人工智能赋能智慧农业互联网应用:智能种植、农业数据分析与产量优化实践探索》
大数据·人工智能
不爱吃糖的程序媛11 分钟前
华为 CANN:昇腾 AI 的异构计算架构核心与开源生态解析
人工智能·华为·架构
AKAMAI32 分钟前
从客户端自适应码率流媒体迁移到服务端自适应码率流媒体
人工智能·云计算
jinxinyuuuus32 分钟前
GTA 风格 AI 生成器:跨IP融合中的“视觉语义冲突”与风格适配损失
人工智能·网络协议
如何原谅奋力过但无声34 分钟前
TensorFlow 1.x常用函数总结(持续更新)
人工智能·python·tensorflow
翔云 OCR API37 分钟前
人脸识别API开发者对接代码示例
开发语言·人工智能·python·计算机视觉·ocr
咚咚王者1 小时前
人工智能之数据分析 numpy:第十三章 工具衔接与迁移
人工智能·数据分析·numpy
咚咚王者1 小时前
人工智能之数据分析 numpy:第九章 数组运算(二)
人工智能·数据分析·numpy
YangYang9YangYan1 小时前
网络安全专业职业能力认证发展路径指南
大数据·人工智能·安全·web安全
aitoolhub1 小时前
精选AI设计工具测评:创新性、易用性及行业应用
人工智能·在线设计