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 ____