Tải dữ liệu wav
Để làm việc với bất kỳ dữ liệu không chuẩn nào bằng Dask bag, bạn sẽ cần tự viết khá nhiều hàm. Trong bài này, bạn đang phân tích dữ liệu âm thanh, vì vậy bạn cần một hàm tùy chỉnh để tải dữ liệu.
Một số bản ghi âm bị lỗi, và trong các bản này âm thanh bị im lặng. Dữ liệu âm thanh bình thường trông như một sóng, nơi biên độ dao động tới các giá trị dương và âm lớn. Do đó, để kiểm tra xem một bản ghi có im lặng hay không, bạn có thể kiểm tra xem toàn bộ đoạn âm thanh có biên độ rất nhỏ hay không.
Mô-đun scipy.io.wavfile đã được nhập vào môi trường của bạn dưới tên wavfile, và numpy đã được nhập dưới tên np.
Bài tập này là một phần của khóa học
Lập trình song song với Dask trong Python
Hướng dẫn bài tập
- Bên trong hàm
load_wav(), dùngwavfile.read()để tải dữ liệu âm thanh và tần số lấy mẫu. - Bên trong
load_wav(), xây dựng dict trả về. - Bên trong hàm
not_silent(), trả về một giá trị boolean cho biết mảng'audio'trong dict đầu vào có giá trị tuyệt đối trung bình lớn hơn 100 hay không, bằng cách dùng các hàmabs()vàmean()củanumpy.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
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 ____