1. 学ぶ
  2. /
  3. コース
  4. /
  5. Pythonで学ぶ音声言語処理

Connected

演習

タイムスタンプを求める

今回は音声の周波数が 48 kHz だと分かっていますが、もし分からなかったらどうすればよいでしょうか。音声配列の長さを音声の継続時間で割れば求められます。ただし、Python の wave モジュールにはよりよい方法があります。波形オブジェクトに getframerate() を呼び出すと、そのオブジェクトのフレームレートが返ってきます。

次に、NumPy の linspace() メソッドを使って、音声配列中の各整数に対応するタイムスタンプを求めます。これは、今後サウンドウェーブを可視化するのに役立ちます。

linspace() メソッドは start、stop、num の各パラメータを取り、start から stop までを等間隔に分割した num 個の値を返します。

この課題では、start は 0、stop は音声配列の長さをフレームレートで割った値(すなわち音声ファイルの継続時間)、num は音声配列の長さにします。

指示

100 XP
  • サウンドウェーブのバイト列を整数に変換します。
  • getframerate() を使って、good morning の音声ファイルのフレームレートを取得します。
  • stop を、フレームレートで割った soundwave_gm の長さに設定します。
  • num を、soundwave_gm の長さに設定します。