音波を分析するアプリケーション(以下アプリと省略)は数多く存在し、高校物理の授業でも利用されているが、その分析手法はフーリエ変換など大学レベルの知識が必要となり、高校生には十分に理解されていない。我々は数値データから波形を作り、重ね合わせた波形をWAVやMP3などの音声ファイルに変換することで、大学レベルの知識を前提とせずに分析手法を理解できると考えた。そこで高校生が簡単に利用できるWebアプリを開発することにした。 まずはPython言語で振動数の異なる正弦波を重ね合わせた波形を可視化し、同時に音声ファイルも生成するコードを作成した。いくつかのモジュールを使うことで、非常に簡単に音声ファイルを作ることができた。次に、それらのプログラムをWebアプリとして使用するために、Streamlitと呼ばれるフレームワークを使用した。StreamlitはPythonのコードの中に命令を埋め込む形でアプリを開発可能で、上記のコードをWebアプリにすることができた。 また、Streamlitのサンプルコードを利用し、入力した音声データをフーリエ変換、パワースペクトルを求めるコードも作成した。このコードを授業で生徒に紹介した結果、総合的な探究の時間においてこのコードを探究活動に利用した生徒もいた。時系列の数値データの音声化については、細かな調整が残っており、まだ公開できる状況にはないが、基本的なコードは概ね完成させることができた。授業における実践が課題として残るが、今後の生徒実験やレポート課題などで生徒に使ってもらい、使用感などを聞きながら継続して修正をしていく予定である。
|