スポンサーリンク

PythonとAIで作った「音声解析ツール audioforge」を無料公開しました

Python

音楽を聴いているとき、「この曲のBPMって何?」「この音の成分はどうなっているんだろう?」と気になったことはありませんか?

今回、Pythonと音声解析ライブラリを組み合わせて、音声ファイルを解析してくれるWebツール「audioforge」を開発し、無料で公開しました。

ブラウザから音声ファイルをアップロードするだけで、BPM・波形・スペクトログラムが即座に表示されます。インストール不要で誰でも使えます。


Rakuten

audioforgeでできること

audioforgeは以下の3つの情報を自動で解析・表示します。

1. BPM(テンポ)の自動推定

アップロードした音声ファイルのテンポを自動で計算します。DTMや音楽制作をしている方が「サンプル音源のBPMを調べたい」というときに活用できます。手作業でタップテンポを取る必要がなくなります。

2. 波形(Waveform)の可視化

音声の時間軸に対する振幅変化をグラフで表示します。どの時間帯に音が大きいか、無音区間がどこにあるかが一目でわかります。ポッドキャスト編集や収録チェックにも使えます。

3. スペクトログラムの表示

時間と周波数の関係を色で表したグラフです。低音・中音・高音の成分がそれぞれいつ、どのくらいの強さで含まれているかがわかります。音色の分析や、ノイズ除去の参考にも役立ちます。


実際に使ってみる

以下のデモから試せます。wavまたはmp3ファイルをアップロードしてください。

audioforge を無料で試す

※ Hugging Face Spacesが別タブで開きます

対応フォーマットはwavとmp3です。ファイルサイズは小さめ(1〜5MB程度)のものが解析が速くて快適です。


開発の背景

もともと趣味で音楽を聴いたり、音声データをPythonで扱うコードを書いていました。librosaというPythonライブラリを使うと、音声の特徴量をかなり簡単に取り出せることがわかり、「それならWebから使えるツールにしてしまおう」と思ったのがきっかけです。

GradioというPython用のUI構築ライブラリを組み合わせることで、Pythonのコードをそのままブラウザで動くWebアプリにできました。公開にはHugging Face Spacesを使っており、無料で世界中から使えるようになっています。


使った技術スタック

技術用途
Python 3.12メイン開発言語
librosa音声読み込み・BPM推定・スペクトログラム生成
matplotlib波形・スペクトログラムの描画
GradioWebUIの構築
Hugging Face Spaces無料ホスティング・公開

開発環境はWindows11 + WSL(Ubuntu)です。venvで仮想環境を作り、ローカルで動作確認してからHugging Face Spacesにgit pushで公開しました。


今後追加したい機能

現在のバージョンはBPM・波形・スペクトログラムの3機能ですが、今後は以下の機能も追加していく予定です。

  • 音声の文字起こし(OpenAI Whisperを使用)
  • 楽器・音色の自動分類(機械学習モデルを活用)
  • 複数ファイルの一括解析
  • 解析結果のCSVダウンロード

追加されたらまたこのブログでお知らせします。


おわりに

音声解析はPythonを使うと意外と手軽に始められます。librosaのドキュメントは充実していて、BPM推定なら数行のコードで実装できます。

「Pythonで何か作ってみたいけどネタがない」という方には、音声・画像・テキストの処理系ツールを作って公開するのがおすすめです。手を動かして公開まで持っていくことで、技術的な理解が一気に深まります。

audioforgeは引き続き機能追加していくので、ぜひブックマークしておいていただけると嬉しいです。フィードバックや「こんな機能がほしい」というリクエストがあればコメント欄からお気軽にどうぞ。


関連記事(今後公開予定)

  • Pythonとlibrosaで音声解析を始める方法
  • Gradioで自作ツールをWebアプリにする手順
  • Hugging Face Spacesへのデプロイ完全ガイド

開発・運営:hitoiri-sekai

コメント

タイトルとURLをコピーしました