加载 wav 数据
要在 Dask bag 中处理任何非标准数据,您通常需要自己编写不少函数。本任务中,您要分析音频数据,因此需要一个自定义函数来加载音频。
有些录音失败了,结果是静音。正常的音频数据看起来像波形,振幅会在较大的正值和负值之间变化。因此,若要判断录音是否为静音,可以检查音频片段的整体振幅是否非常小。
scipy.io.wavfile 模块已作为 wavfile 导入到您的环境中,numpy 已作为 np 导入。
本练习是课程的一部分
Python 中的 Dask 并行编程
练习说明
- 在
load_wav()函数中,使用wavfile.read()加载音频数据和采样频率。 - 在
load_wav()中,构造返回的字典。 - 在
not_silent()函数中,返回一个布尔值:输入字典中'audio'数组的平均绝对值是否大于 100,可使用numpy的abs()和mean()函数实现。
交互式实操练习
通过完成这段示例代码来试试这个练习。
def load_wav(filename):
# Load in the audio data
sampling_freq, audio = ____
# Add the filename, audio data, and sampling frequency to the dictionary
data_dict = {
'filename': ____,
'audio': ____,
'sample_frequency': ____,
}
return data_dict
def not_silent(data_dict):
# Check if the audio data is silent
return ____