小型コンピュータ「Raspberry Pi3」には、さまざまな計算やグラフ表示ができる、「Mathematica」というソフトがインストールされています。
今回はこのソフトを使って、「音の波形」をキャプチャしてから、「統計データ」をとってみます。

■ 君島 武志

「オーディオ・ファイル」を作る

 「Raspberry Pi」は、デフォルトで「ライン入力」や「マイク録音」をすることはできませんが、「USBデバイス」を接続することで、可能になります。

 デバイスを接続し、「Menu」の設定からオーディオ設定を選択して、「ボリューム」などを変更します。そして設定したあと、「メイクデフォルト」のボタンを押すと、「録音」や「出力」がデバイスからできるようになります。
 また、「Mathematica」を使うと、「音」を作ることができます。

■ 「サイン波のWave」をエクスポート

 「サイン波」を表示して、「WAVEファイル」にエクスポートします。

 エンターキーで「改行」、シフトキーとエンターキーで「結果」を表示します。上記のプログラムでは、「ラ」の音が2秒作られます。

●プログラム解説

 「Play[ ]」の「t」が、「時間」を表わします。また、「Export[ ]」で「出力先のディレクトリ」を指定します。
 「%」は、ひとつ上の式から数値を受け取るときに使います。

■ 「Waveform」でファイルのエクスポート

 「三角波」で周波数440Hz、2秒の音を作ります。

 「Waveform[ ]」が、出力するパターンです。

■ 「Waveファイル」を開く

 「ファイル・ダイアログ」からファイルを開くことができます。

 「Waveファイル」を開くと、「波形」が表示されます。

音の統計

 プログラムを組みながら、統計の仕組みを見ていきましょう。まとめたものを「サンプルプログラム」として末尾に掲載しています。
 
◆「ファイル・ダイアログ」から「Waveファイル」を開いて、いったん左右のチャンネルから音を取ります。
 「;」を付けると結果の表示を省略しますが、数値は入力されます。

◆1から100の間でデータの数値を抽出します。

◆「フーリエ変換」を行なって、極座標形式の振幅を取ります。

◆「離散サイン変換」と「離散コサイン変換」です。

◆「フーリエ変換」後の数値をプロットします。

◆「フーリエ変換」のデータから、「線形モデル」を構築します。
 データと最もフィットする直線をプロットします(因子分析のひとつです)。