インターネット上で扱うメディアにはいくつかの種類があります。プログラミングで解析しやすいのはテキストでしょう。次に画像を解析するライブラリも多数あります。最近では機械学習が盛り上がっているので、動画解析を行うライブラリも増えています。意外と少ないのは音楽ファイルの解析ツールです。 essentia.jsはそんな中で数少ない音楽ファイルの解析ソフトウェアです。WebAssemblyを使うことで高速に動作します。

essentia.jsの使い方

デモです。Webブラウザの音声入力に合わせて波形が表示されます。

声や音の強さを表現しています。同じ声かどうか分析する際にこういったグラフを用いますよね。

別な表現です。

オフラインでも動作します。

essentia.jsは音声入力をリアルタイムに解析したり、指定した音楽ファイルを解析することもできます。Web Audioは低レイヤーなAPIなので、こういった機能をあらかじめ用意はしていません。自前で作る必要があります。たとえば音声がはじまったタイミングや、人によって異なる声紋を使って認証をするなんて仕組みでも使えるかもしれません。

essentia.jsはJavaScript製のオープンソース・ソフトウェア(GNU Affero General Public License)です。

essentia.js | JavaScript library for music/audio analysis and processing powered by WebAssembly MTG/essentia.js: JavaScript library for music/audio analysis and processing powered by WebAssembly