第6章. 音への旅
この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com
ディープラーニングの最も成功したアプリケーションのひとつは、私たちが毎日持ち歩いているものだ。SiriにしてもGoogle Nowにしても、両システムやAmazonのAlexaを動かしているエンジンはニューラルネットワークだ。この章では、PyTorchのtorchaudio 。このライブラリを使って、畳み込みベースのモデルで音声データを分類するパイプラインを構築する方法を学ぶ。その後、画像で学んだトリックのいくつかを使って、ESC-50オーディオデータセットで良い精度を得ることができるような、別のアプローチを提案する。
その前に、音そのものを見てみよう。音とは何だろうか?そしてそれは、データから洞察を得るためにどのようなニューラルネットを使うべきかの手がかりとなるのだろうか?
サウンド
音は空気の振動によって作成される。私たちが耳にする音はすべて、高圧と低圧の組み合わせであり、図6-1のような波形で表されることが多い。この図では、原点より上の波が高圧で、下の部分が低圧である。
図6-1. 正弦波
図6-2は、より複雑な曲の波形を示している。
図6-2. 歌の波形
デジタル・サウンドでは、この波形を1秒間に何度もサンプリングし、CD品質のサウンドでは伝統的に44,100回サンプリングし、各サンプル点における波の振幅値を保存する。時間tでは、1つの値が保存される。これは、1つの値(グレースケール画像の場合)を保存するためにxと yの2つの値を必要とする画像とは少し異なる。ニューラルネットワークに畳み込みフィルターを使う場合、画像に使っていた2Dフィルターではなく、1Dフィルターが必要になる。
音についてもう少しわかったところで、使用するデータセットを見て、もう少し慣れてみよう。
ESC-50データセット
環境音分類(ESC)データセットは、フィールド録音を集めたもので、それぞれ5秒の長さで、50のクラス(例えば、犬の吠え声、いびき、ドアをノックする音)のうちの1つに代入されている。この章の残りの部分では、このセットを使って、音声を分類する2つの方法を実験し、また、torchaudio を使って、音声の読み込みと操作を簡単にする方法を探る。
データセットを入手する
ESC-50データセットはWAVファイルのセットである。Gitリポジトリをクローンすることでダウンロードできる:
git clone https://github.com/karoldvl/ESC-50
あるいは、curlを使ってリポジトリ全体をダウンロードすることもできる:
curl https://github.com/karoldvl/ESC-50/archive/master.zip
すべてのWAVファイルは、このようなファイル名でaudioディレクトリに保存される:
1-100032-A-0.wav
ファイル名の最後の数字を気にするのは、このサウンドクリップがどのクラスに代入されたかを知るためだ。ファイル名の他の部分は我々にとっては重要ではなく、ESC-50の元となったより大きなFreesoundデータセットに関係することがほとんどだ(1つ例外があるが、これについては後ほど説明する)。もっと詳しく発見したい人は、ESC-50のリポジトリにある ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access