![見出し画像](https://assets.st-note.com/production/uploads/images/107684904/rectangle_large_type_2_df089817ecb4d32985bdba363cdd8b0e.png?width=1200)
友だちPython ep3. librosa
はじめに
友だちPython シリーズのご紹介
友だちPython シリーズは、Python の小ネタを短文でお届けします。
小さなエピソードを重ねてPythonと仲良しになれたら、と願ってシリーズ名を付けました。
話題
AI・データサイエンスのための 図解でわかる数学プログラミング
この記事は、書籍「AI・データサイエンスのための 図解でわかる数学プログラミング 初版」(ソーテック社)のコードで生じた問題対処を取り扱います。
今回の友だち
■ librosa (リブロサ)
音楽・オーディオ分析に力を発揮するパッケージです。
公式サイトのリンクはこちらです。
問題の概要
第9章、9-6「音の分類のために必要なデータの前処理をしてみよう」の「チェロの音を読み込んで再生する」コード(409ページ)で問題が生じました。
librosa (リブロサ)の実行時にエラーが発生して、コードが動きません。
実行環境
・librosa のバージョン: 0.10.0
・Anaconda 環境
・VS code の Jupyter Notebook で実行
問題の詳細
エラーメッセージの嵐がノートブックのセルを激しく叩きのめします。
![](https://assets.st-note.com/img/1686202982007-Kb5QP79k9h.png)
![](https://assets.st-note.com/img/1686203300551-dxNbIoPKm3.png?width=1200)
![](https://assets.st-note.com/img/1686203321227-TpP8RkHXye.png)
何か sound 関係のファイルが見つからない、そんなエラーのようです。
原因
こちらのサイトで解決策を見つけることができました。
ありがとうございます!
librosa の処理内部で呼び出す soundfile ライブラリを読み込めないのがエラーの直接的な原因です。
実行環境には soundfile ライブラリに相当する pysoundfile (バージョン 0.12.1 ) がインストールされています。
conda コマンドで librosa をインストールしたときに、一緒に pysoundfile がインストールされたのでした。
しかし、librosa は pysoundfile を読み込めなかったのです。
Anacondaのライブラリ依存関係って・・・。
対策の実施
pysoundfile を削除して、soundfile を「pip」でインストールします。
(Anaconda環境が・・・、嗚呼)
conda remove pysoundfile --force-remove
pip install SoundFile
改善後
次のコードを無事に実行できました!
# チェロの音声データのうちの1つを読み込む
data, rate = librosa.load(train_data_dir +
train_df[train_df['label']=='Cello'].index[0])
# 読み込んだデータを再生する
ipd.Audio(data=data, rate=rate)
![](https://assets.st-note.com/img/1686204235519-1foguLYUwF.png?width=1200)
Jupyter Notebook に再生画面が表示されます。
▶ボタンを押すと、チェロを鳴らす音が5秒間流れました。
めでたしめでたし、???
後日談
少し後ろの節、9-7「LSTMを使って音の分類をしてみよう」で、記憶をもつディープラーニングアルゴリズム「LSTM」で楽器の分類モデルを構築します。
ただし、40エポックの訓練に20時間以上かかる見通しです(GPU無し)。
終わりが見えないので、伝家の宝刀、Google Colab を抜きました。
GPUのおかげで「15分」で訓練完了です!
ちなみに、Google Colab 環境には動ける librosa がインストール済みなので、エラーが発生せず、確実に実行できました。
最初から Google Colab を使っていたら、この記事は生まれなかったでしょう。
偶然の出会いに感謝です。
ありがとう、librosa !
おわり
ブログの紹介
noteで3つのシリーズ記事を書いています。
ぜひ覗いていってくださいね!
1.のんびり統計
統計検定2級の問題集を手がかりにして、確率・統計をざっくり掘り下げるブログです。
雑談感覚で大丈夫です。ぜひ覗いていってくださいね。
統計検定2級公式問題集CBT対応版に対応しています。
2.Python機械学習プログラミング実践記
書籍「Python機械学習プログラミング PyTorch & scikit-learn編」を学んだときのさまざまな思いを記事にしました。
この書籍は、scikit-learnとPyTorchの教科書です。
よかったらぜひ、お試しくださいませ。
3.データサイエンスっぽいことを綴る
統計、データ分析、AI、機械学習、Pythonのコラムを不定期に綴っています。
「統計」「Python」「数学とPython」「R」のシリーズが生まれています。