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

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

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

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

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

 

ノック73 : 音データの一部を取得してみよう

サンプルの携帯電話着信音.mp3と音声.mp3のデータを1秒のデータに変換します。

 

offsetは取得するデータの開始位置、durationは何秒間のデータにしたいかを設定します。

import librosa


audio1,sr1 = librosa.load('data/音声.mp3',sr=None,offset=0,duration=1)
audio2,sr2 = librosa.load('data/携帯電話着信音.mp3',sr=None,offset=0,duration=1)

print(audio1)
print(sr1)
print(audio1.shape)

print(audio2)
print(sr2)
print(audio2.shape)

 

実行結果からサンプリング周波数が44100Hzで、データ数が44100(ちょうど1秒分のデータ)であることがわかります。

 

実行結果

[0.         0.         0.         ... 0.00201416 0.00253296 0.00250244]
44100
(44100,)
[0.0000000e+00 0.0000000e+00 0.0000000e+00 ... 9.1552734e-05 7.1716309e-04
 1.8005371e-03]
44100
(44100,)

 

 

ノック74 : 音データのサンプリングレートを変えてみよう

サンプリングレートは引数srで設定できます。44100の半分の22050Hzで読み込んでみます。

 

audio1,sr1 = librosa.load('data/音声.mp3',sr=22050,offset=0,duration=1)
print(audio1)
print(sr1)
print(audio1.shape)

 

 

実行結果

[0.         0.         0.         ... 0.00228435 0.00197504 0.00246046]
22050
(22050,)

 

audio1とsr1を読み込んでサンプリングレートを変更する記述例です。

audio1_sr8 = librosa.resample(audio1,sr1,8000)
print(audio1_sr8.shape)

 

実行結果

(8000,)

 

サンプリングレートのみを取得する場合はget_samplerateを使用します。

sample_rate = librosa.get_samplerate('data/音声.mp3')
print(sample_rate)

 

実行結果

44100

 

 

 

 

 

 

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