def load_pydub(filename):
""" Loads an MP3 or FLAC file.
"""
try:
from pydub import AudioSegment
data = AudioSegment.from_file(filename)
except ImportError:
logger.exception('"pydub" is a required Python dependency for '
'handling this audio file: %s.', filename)
raise
except FileNotFoundError:
if os.path.isfile(filename):
raise DependencyError()
else:
raise
if data.channels > 1:
data = functools.reduce(
lambda x, y: x.overlay(y),
data.split_to_mono()
)
raw = data.get_array_of_samples()
raw = numpy.frombuffer(raw, dtype=raw.typecode)
return {
'signal' : raw,
'sample_rate' : data.frame_rate,
'sample_width' : data.sample_width * 8,
'channels' : data.channels
}
###############################################################################
评论列表
文章目录