見出し画像

Sound Analysisフレームワーク及びSound Classificationのアップデート #WWDC21

Sound Analysisフレームワーク(SoundAnalysisと表記されることも)を用いたSound Classification(音声分類)と、Create MLのSound Classification(Sound Classifier)テンプレートがめちゃくちゃアップデートされていた。

個人的には2年間待望だった改善。

「これが欲しかった!」というのが一気にきた🎉

Built-in Sound Classifier

ついにビルトインのSound Classifier(音声分類器)が入った!

上に挙げた予想記事で次のように期待を書いていた機能そのもの。

現状は自分でデータセットを用意してモデルを自作するしかないが、(中略)、汎用性が高いものはSoundAnalysisフレームワーク内に標準搭載するか、公式Core MLとして配布するかしてほしい。

このビルトインモデルでは300種類の音声を判別できる。

画像1

犬や猫等の動物の鳴き声、ギターやドラム等の楽器、拍手や笑い声等の人間による音声等、もろもろ300種類。

これについては別記事で識別可能なラベルの全リストと、実際に試してみた所感等を書く予定。

「人の話し声」の精度が良ければ、個人でつくってリリースしたAIによる動画の無音カットアプリの音声分類モデルをごそっと入れ替えようと思う。

ちなみにこのビルトインモデル、watchOSやtvOSにも入るらしい。

画像4

時計でスタンドアロンでこの300種類以上の音声を判別できるのは何かおもしろいことができそう(具体的には思いつかない)

Multi-label classifier

地味にめっちゃ良いと思ったのがこれ。

従来の音声分類だと、「この区間はギター」「この区間はドラム」みたいに、基本的に各区間(ウィンドウ)ごとに1位のクラスを決めるようになっていた。(全クラスについてConfidenceは出るのだが、合計値が1になるように出力されるため、ギター0.3、ドラム0.3、...みたいになるとそれは信頼度が低いということになってしまう)

現実的な状況では複数の音が重なっているケースの方が多いので、これは実用面ではわりと大きな制約だった。

しかしbuilt-in sound classifierでは「マルチラベル」に対応しているらしく、

画像2

複数のクラスが同時に鳴っている区間については複数のラベル(クラス)のConfidenceが高く算出されるようになっているらしい。

画像3

このマルチラベルはビルトインモデルだけで、Create MLのカスタムモデルではまだサポートされてないっぽいことをWWDCセッションでは言っていた。

The classifier can detect multiple sounds at the same time. When this happens, you may notice that several labels score with high confidence.
(分類器は複数の音を同時に検出することがあります。このような場合、いくつかのラベルが高い信頼度でスコアされていることに気づくかもしれません。)

Unlike when using a custom model trained using CreateML, label scores do not add up to a value of one. The confidences are independent and shouldn't be compared against one another.
(CreateMLで学習したカスタムモデルを使用する場合とは異なり、ラベルのスコアは加算されて1の値にはなりません。信頼度は独立しており、互いに比較するべきではありません。)

Audio Feature Print / 転移学習

これも素晴らしいアップデート。

ここから先は

625字

堤がWWDC 2021およびiOS 15についてセッションやサンプルを見つつ勉強したことを記事にしていくマガジンです。NDAの都合上、Ap…

最後まで読んでいただきありがとうございます!もし参考になる部分があれば、スキを押していただけると励みになります。 Twitterもフォローしていただけたら嬉しいです。 https://twitter.com/shu223/