Python 実践 データ加工/可視化 100本ノック に挑戦 ノック71 ノック72

Python 実践 データ加工/可視化 100本ノック」を購入したので、

一通りやっているところです。今日はノック71を行います。

資料は以下から入手できます。

Python実践 データ加工/可視化 100本ノック|サポート|秀和システム

 

ノック71 : 音データを再生してみよう

 

音声データの再生を行います。

私の環境はWindow10、VSCodeで実行しています。

ダウンロードした資料から音声.mp3を取得して以下を実行します。

 

import IPython.display as disp

disp.Audio('data/音声.mp3')

 

以下のようなエラーメッセージが表示されました。

ModuleNotFoundError: No module named 'resource'

 

playsoundで実行してみます。

pip install playsound でインストール後、

from playsound import playsound
playsound('data/音声.mp3')

 

よろしく頼む が聞こえました。

 

Anacondaのjyupyterで実行してみるとIpython.displayからも正しく聞こえました。

Jupyter

 

 

ノック72 : 音データを読み込んでみよう

 

音声データ読み込んで戻り値を確認します。

librosaがない場合は pip install librosa を実行すればよいです。

第1引数はファイル名、第2引数はサンプリング周波数です。

Noneを指定すると、元データのサンプリング周波数でデータがサンプリングされます。

 

import librosa
audio1,sr1=librosa.load('data/音声.mp3',sr=None)
print(audio1)
print(sr1)

 

 

実行結果

[ 0.          0.          0.         ... -0.00418091 -0.00415039
 -0.00401306]
44100

 

最初のデータが音声データです。

44100はサンプリング周波数を表しています。44100Hz(44.1KHz)

 

例えばsr=4096と設定すると4096Hz(4KHz)でサンプリングされるので、結果は以下となります。

audio1,sr1=librosa.load('data/音声.mp3',sr=4096)
print(audio1)
print(sr1)

 

実行結果

[ 0.          0.          0.         ... -0.00344674 -0.00364081
  0.        ]
4096

 

第2引数srを省略するとデフォルトの22,050Hzになります。

 

データ形状の確認します。

print(audio1.shape)
print(audio1.max())
print(audio1.min())

 

実行結果

(46080,)
0.7146759
-0.55914307

 

46080件のデータ数であることがわかります。

サンプルレートが44100Hzなので46080のデータはおおよそ1秒であることがわかります。

また、振動データは+1から-1の範囲におさまります。結果もその範囲で

おさまっていることが確認できました。 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

/* -----codeの行番号----- */