首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >音频到数组与torchaudio和librosa在python中不同。

音频到数组与torchaudio和librosa在python中不同。
EN

Stack Overflow用户
提问于 2022-04-14 12:03:43
回答 1查看 1.1K关注 0票数 0

我用torchaudiolibrosa在python中加载了librosa文件

代码语言:javascript
复制
import torchaudio
import librosa

filename='example.mp3'
array_tor, sample_rate_tor = torchaudio.load(filename,format='mp3')
array_lib, sample_rate_lib = librosa.load(filename, sr=sample_rate_tor)
print( len(array_tor.numpy()[0]) , len(array_lib)) # get different value

两个数组的长度是不同的,为什么使它们不同,以及如何使它们相同?

如果我将example.mp3转换为wav文件

代码语言:javascript
复制
from pydub import AudioSegment
audSeg = AudioSegment.from_mp3('example.mp3')
audSeg.export('example.wav', format="wav")

并使用torchaudiolibrosasoundfile加载wav文件

代码语言:javascript
复制
import torchaudio
import librosa
import soundfile as sf
filename='example.wav'
array_tor_w, sample_rate_tor_w = torchaudio.load(filename,format='wav')
array_lib_w, sample_rate_lib_w = librosa.load(filename, sr=sample_rate_tor_w)
array_sfl_w, sample_rate_sfl_w = sf.read(filename)
print( len(array_tor_w.numpy()[0]) , len(array_lib_w), len(array_sfl_w)) # get same value

len(array_lib)文件中,三个数组长度和内容是相同的,也是相同的。

torchaudio.load()在mp3文件中似乎是特殊的。

EN

回答 1

Stack Overflow用户

发布于 2022-07-19 16:54:20

这是由于底层解码器库torchaudio的使用。

Up util v0.11,torchaudio使用libmad,它在解码MP3时不移除额外的填充。

有关细节,请参见https://github.com/pytorch/audio/issues/1500

在v0.12中,torchaudio将MP3译码器切换到FFmpeg,并解决了填充问题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71871315

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档