Python×医療事務(×トロント)

#医療 / #医療事務 / #IT / #トロント / #歯科助手 / #のんびり / #備忘録 / #趣味

Paiza で期間限定で Python×AI 機械学習入門が無料だったのでしてみた チャプター3

librosaという音声ライブラリを使っていく

#import文の記述

import  librosa

import  librosa.display 

import  matplotlib.pyplot as plt

(ここでも mataplotlibを使うようです)

 #再生した音声の波形を描画する  loadで受け取った2つの変数(a,sr)をwaveplotに渡すと描画できる

a,sr=librosa.load('voiceset/kirishima_b01.wav'<音声ファイルの名前を()内に記載>)

librosa.display.waveplot(a,sr)

f:id:chocolate22554:20200918145104p:plain

#縦軸が音の大きさの振幅、横軸は時間(Time)

#波形を表すデータ;振幅の数値の列    変数(a,sr)の数値の値を確認していく

print(a)

print(len(a))

#サンプリングレート->1秒間のフレーム数

print(sr)

#aは 波形を表すデータのナムパイの配列  波形の並びは振幅の並びで表されている 

f:id:chocolate22554:20200918154047p:plain

1行目はaの振幅の並びを表しているe-06は指数表記と呼ばれ 数値の頭に0が6個続く少数であることを表す

2行目はaの要素数  13万2千個の振幅でaが構成されていることが分かる

srはサンプリングレート。 波形のデータが1秒にいくつの振幅を持つか表している

波形のaには時間の情報がないので サンプリングレートのsrを使ってaの各要素に対応する時間を計算

 

#6秒の音声なので 次がlen(a) (サンプリングレートのsrに6をかけた値は波形のaの要素数に)と一致するはず

print(sr*6)

f:id:chocolate22554:20200918154932p:plain

#高音が多く含まれた女性の歌声と低音が多く含まれた男性のデータを比べていく

#2つのファイルを描画

a,sr=librosa.load('sample/hi.wav' <sample フォルダ(ディレクトリ)に入っている hi.wavというファイルのこと>)

librosa.display.waveplot(a,sr)

plt.show()

#低音

a,sr=librosa.load('sample/lo.wav' <sample フォルダ(ディレクトリ)に入っている lo.wavというファイルのこと>)

librosa.display.waveplot(a,sr)

plt.show()

f:id:chocolate22554:20200918155659p:plain

f:id:chocolate22554:20200918155644p:plain

#lowのほうがhighよりも波形が若干荒い

#aの100番目の要素までをplotするようにする 先ほどのセルをコピーしてペースト

a,sr=librosa.load('sample/hi.wav')

librosa.display.waveplot(a[0:100],sr)

plt.show()

#低音

a,sr=librosa.load('sample/lo.wav')

librosa.display.waveplot(a[0:100],sr)

plt.show()

 

f:id:chocolate22554:20200918160039p:plain

 

f:id:chocolate22554:20200918160125p:plain

#high は lowよりも細かく振動している lowはhighより緩やかに振動している
#時間当たりの振動数が大きいと高くなり 小さいと低くなる性質がある

 

#波形データは振幅の並びである

 

<チャプター3は結構見る場面が多く チャプター2より簡単だったような気がします。時々知らない単語が出ると違うものに聞こえてしまうのでそういう時は画面に単語を出してくれると親切だなぁと思いました

演習課題は今回も易しめでした>