首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AudioSegment到Librosa

AudioSegment到Librosa
EN

Stack Overflow用户
提问于 2020-07-15 21:47:20
回答 1查看 542关注 0票数 0

我正在使用pydub模块编写代码来从音频文件中获取数据,但我想使用librosa模块执行相同的操作,如何转换我的代码并获得与librosa相同的结果这是我的代码:

代码语言:javascript
复制
import numpy as np
from pydub import AudioSegment

audiofile = AudioSegment.from_file(filename)
data = np.fromstring(audiofile._data,np.int16)

channels = []
for c in range(audiofile.channels):
    channels.append(data[c::audiofile.channels])

fs = audiofile.frame_rate

return channels, fs 
EN

回答 1

Stack Overflow用户

发布于 2020-08-02 01:17:27

您可以使用:

代码语言:javascript
复制
from pydub import AudioSegment

sound = AudioSegment.from_file("file.wav")
samples = sound.get_array_of_samples()
arr = np.array(samples).astype(np.float32)/32768 # 16 bit 
arr = librosa.core.resample(arr, sound.frame_rate, 22050, res_type='kaiser_best') 
print(arr)

输出:

代码语言:javascript
复制
array([-0.0065596 , -0.00243502,  0.00489785, ..., -0.04385557,
       -0.04421588, -0.05063475], dtype=float32)

在librosa中测试:

代码语言:javascript
复制
y, sr = librosa.load('file.wav', sr=22050)
print(y)

输出:

代码语言:javascript
复制
array([-0.0065596 , -0.00243502,  0.00489785, ..., -0.04385557,
       -0.04421588, -0.05063475], dtype=float32)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62916406

复制
相关文章

相似问题

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