废话不多说直接上代码
import array
import numpy as np
import soundfile as sf
from pydub import AudioSegment
from pydub.utils import get_array_type
def readMp3(filename):
sound = AudioSegment.from_mp3(filename)
left = sound.split_to_mono()[0]
right = sound.split_to_mono()[1]
bit_depth = left.sample_width * 8
array_type = get_array_type(bit_depth)
left_numeric_array = array.array(array_type, left._data)
right_numeric_array = array.array(array_type, right._data)
left_channel = np.array(left_numeric_array) / 32768
right_channel = np.array(right_numeric_array) / 32768
wave_data = np.vstack([left_channel, right_channel])
sf.write('Test.wav', wave_data.T, 44100)
return left_channel, right_channel
test_path = 'F:\\Test.mp3'
data = readMp3(test_path)
需要注意的是AudioSegment要预先安装ffmpeg并添加到path,参考https://blog.csdn/csm201314/article/details/83247566
更多推荐
Python读取mp3数据
发布评论