プログラム一覧

公開しているプログラムの一覧です。分類ボタンで絞り込んだり、キーワードで探したりできます。新しいプログラムを公開すると、ここに自動で追加されます。

読み込み中です

このサイトについて

続きを読む →

2026年10月28日水曜日

音を聞き分けるAI「YAMNet」のしくみと、うまく使うコツ

[説明]音の名前を当てるAI「YAMNet」が、どんなデータで学習して、どうやって音を判別しているのか。当たりやすくするコツと、苦手なことも説明します。[/説明]

マイクに向かって手をたたくと「拍手」と出る。犬の声を聞かせると「犬」と出る。そんな「音の名前を当てるAI」が、Google が公開している「YAMNet(ヤムネット)」です。このブログの「オーディオ・ウエブ・アナライザー」も、YAMNet を、ブラウザの中で動かしています。この記事では、YAMNet が何者なのか、どうやって音を見分けているのかを説明します。そして、うまく使うコツと、苦手なことも紹介します。

YAMNetとは

YAMNet は、あらかじめ学習を終えている、音のイベントを分類するAI(学習済みモデル)です。「AudioSet」という大きな音のデータをもとに学習していて、521種類の音の名前について、それぞれ「どのくらいそれらしいか」の点数を出します。

中身は、画像の認識でも使われている「MobileNet」という、小さくて速いネットワークの仲間(MobileNet v1 の、深さ方向分離畳み込みという作り)です。説明書(README)には、重み(AIが覚えている数字)が約370万個、0.96秒ぶんの音を調べるときの掛け算が約6,920万回、と書かれています。軽く作られているので、ブラウザの中でも動かせます。

学習に使われたデータ「AudioSet」

AudioSet は、Google が公開している、音のイベントの大きなデータです。音の種類を整理した分類(632クラス)と、人が聞いて音の名前をつけた、2,084,320本の、10秒の音のクリップでできています。クリップは、YouTube の動画から選ばれています。

YAMNet が見分けるのは、このうち521種類です。元のデータで、実際にラベルがついていたのは527種類でしたが、公平性の観点から、6種類を外しています。男性・女性で分けた「話し声」と「歌声」(4種類)と、「Battle cry」(戦いのときの叫び声)、「Funny music」(こっけいな音楽)です。このため、YAMNet は、声の男女の区別をしません。

音を聞き分けるしくみ

YAMNet は、音を、そのまま聞いて判断するのではなく、いったん「絵」にしてから判断します。流れは、次のとおりです。

音(マイク・ファイル)→16kHzのモノラルにそろえる→音の絵(スペクトログラム)にする→0.96秒ぶんをAIに入れる→521個の点数が出る
  1. 音をそろえる。音を、モノラル(1つのチャンネル)で、1秒に16,000回の細かさ(16kHz)に直します。YAMNet に入れられる音は、この形です。
  2. 音の絵をつくる。音を、0.025秒(25ミリ秒)ずつ切り出して、0.01秒ずつずらしながら、どの高さの音が、どのくらい強いかを調べます。それを、人の耳の感じ方に近い、64段階の高さにまとめます。横が時間、縦が音の高さの「絵」になります。(専門用語では、メルスペクトログラムといいます。)
  3. 0.96秒ぶんを1枚にして、AIに入れる。絵を、0.96秒ぶんずつに区切ります。区切りは、0.48秒ずつずらして、半分ずつ重ねます。
  4. 521個の点数が出る。音の名前ごとに、「どのくらいそれらしいか」の点数が出ます。
点数は、音の名前ごとに、別々に出ます。そのため、すべてを足しても、100%にはなりません。「犬」と「動物」のように、近い名前が、同時に高くなることもあります。

どのくらい当たるのか

YAMNet の説明書(README)には、AudioSet の評価用データ(20,366区間、521種類)で測った結果が載っています。クラスごとに出した平均適合率(mAP)を、全クラスで平均した値は 0.306 です。mAP は、満点が 1.0 の指標です。

この数字だけを見ると、低く感じるかもしれません。ただ、これは、521種類もあって、音が重なることも多い、むずかしい課題での結果です。また、AudioSet の評価用データでの結果であって、あなたの身のまわりの音で、どのくらい当たるかを示すものではありません。結果は「ヒント」として使うのが、ちょうどよい使い方です。

当たりやすくするコツ

  • 音を近くで、はっきり録る。小さな音や、遠くの音は、まちがえやすくなります。マイクを、音の出どころに近づけます。
  • まわりが静かな場所で調べる。話し声や、空調、車の音が混ざると、いちばん目立つ音だけが、結果に出ることがあります。
  • 1秒以上の長さで聞かせる。YAMNet は、0.96秒ぶんを1つの単位にしています。README によると、最初の結果を出すのに、約0.975秒以上の音が必要です。
  • 1回の結果で決めない。数秒つづけて、同じ名前が上位に出るかを見ます。ときどきしか出ない名前は、まぐれかもしれません。
  • 似た名前も見る。「犬」のかわりに「動物」や「ペット」が出ることもあります。上位のいくつかを、あわせて見て判断します。

うまく判別できないこと

  • 男性か女性か、雄か雌かの区別。
  • 521種類にない音(近い、ほかの名前で出ることがあります)。
  • 鳥の種類のような、細かい区別。犬・猫・鳥のような、おおまかな種類までです。
  • 安全や医療など、大事な判断。結果は「ヒント」として使います。

ブラウザの中で動かすということ

このブログのプログラムは、TensorFlow.js という部品を使って、YAMNet を、お使いのパソコンやスマホの中で動かします。音は、ネットに送られません。ただし、AIを動かす部品と、AIモデルのファイル(約16MB)は、はじめにインターネットから読み込みます。2回目からは、ブラウザが覚えているので、早くなります。

このブログの「オーディオ・ウエブ・アナライザー」で、マイクの音や、録音したファイルを調べられます。結果の名前は、元の英語の分類名をもとに、日本語にしたものです。

自分で学習させたい人へ

YAMNet は、「音の特徴を取り出す部品」として使うこともできます。YAMNet の出力の一つに、音の特徴を1,024個の数字で表した「埋め込み(embeddings)」があります。これを、小さな分類器の入力にすれば、自分で集めた音(たとえば、自分の家の犬と猫の声)を見分ける、「転移学習」ができます。TensorFlow の公式のチュートリアルに、手順が載っています。

よくある質問

Q. YAMNet は、だれが作ったものですか。

A. Google が公開しています。学習済みのファイルは、Kaggle の「Models」のページなどで配られています。

Q. 音は、外に送られますか。

A. ブラウザの中で調べるので、音は送られません。ただし、AIを動かす部品と、AIモデルのファイルは、はじめにインターネットから読み込みます。くわしくは、プライバシーポリシーをご覧ください。

Q. 日本語の名前は、正確ですか。

A. 元の英語の分類名をもとに、日本語にしたものです。言いかえが、完全にぴったりとは限りません。

Q. 犬や猫の鳴き声から、種類(犬種など)まで分かりますか。

A. 犬・猫・鳥のような、おおまかな種類までです。犬種や、鳥の種類のような、細かい区別は、ふつうできません。

Q. 同じ音なのに、結果が変わるのはなぜですか。

A. 音の聞こえ方は、マイクの位置や、まわりの音で、少しずつ変わります。このプログラムは、0.5秒ほどずつずらして調べるので、そのたびに、点数も変わります。数秒つづけて、よく出る名前を見てください。

出典

この記事は、2026年10月28日に、次の資料を確認して書きました。

最終更新:2026年10月28日

0 件のコメント:

コメントを投稿

ワールドラジオ

[説明]世界中のインターネットラジオを、地球儀や地図から国を選んで聴けるプレーヤーです。字幕機能を使うと、初回だけ150MBほどの通信があります。[/説明] 大きい画面で開く WORLD RADIO とは 世界中のインターネットラジオを、地図や地球儀から国を選んで聴...