始める無料で始める

wav データの読み込み

Dask bag で標準的でないデータを扱うには、自分で多くの関数を書く必要があります。今回のタスクでは音声データを分析するため、読み込み用のカスタム関数が必要です。

一部の録音は失敗しており、無音になっています。通常の音声データは波形で、振幅が大きな正負の値に変動します。したがって、録音が無音かどうかを確認するには、クリップ全体の振幅がとても小さいかどうかを確かめればよいです。

scipy.io.wavfile モジュールは wavfile として、numpynp として環境にインポート済みです。

この演習はコースの一部です

Pythonで学ぶDaskによる並列プログラミング

コースを見る

演習の手順

  • load_wav() 関数内で、wavfile.read() を使って音声データとサンプリング周波数を読み込みます。
  • load_wav() の中で、戻り値の辞書を作成します。
  • not_silent() 関数内で、入力の辞書にある 'audio' 配列の平均絶対値が 100 より大きいかどうかの真偽値を返します。これには numpyabs()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 ____
コードを編集して実行