笑いを、数える。
オンライン会議でいちばんよく笑うあの人の笑い声を、AIが検出してカウントする。そんなアプリを試作しています。この資料は仕様を決めるための、たたき台です。
1会議でいちばん笑う人の笑いを、そのまま数字にするアプリを作っています。
オンライン会議には、よく笑う人がいます。その笑い声が聞こえるだけで、場がゆるみます。
でも会議の楽しさは、終わった瞬間に消えてしまいます。笑った回数を数字として残せば、楽しさは見返せる思い出になる。それがこのアプリの発想です。
使い方の想定はこうです。参加者の1人がカウンターを起動しておく。会議のどこかで「今日ここまでで27笑いです」とスクショを貼る。たぶん、そこでまた笑いが起きます。
まじめな業務ツールではありません。ただし、作りは本気です。
2笑い声は文字起こしではなく、「音の種類」として検出します。
文字起こしソフトは、笑い声が苦手です。「ははは」は言葉ではないため、文字にならずに捨てられてしまいます。
そこで発想を変えて、音そのものを聴き分けるAI「YAMNet」を使います。521種類の「音の種類」を判定できる学習済みモデルです。
この521種類の中に、笑いの仲間が6種類も入っています。くすくす笑い、忍び笑い、爆笑まで区別できます。
追加の学習も、笑い声の録音集めも不要でした。できあいの部品が、この用途にぴったりだったのです。
笑い6種類の内訳
Laughter(笑い)・Giggle(くすくす)・Chuckle, chortle(ふふっ)・Snicker(忍び笑い)・Belly laugh(爆笑)・Baby laughter(赤ちゃんの笑い)。この6種のスコアを合算して判定しています。
3音声はどこにも送りません。ぜんぶブラウザの中で完結します。
会議の音声を扱うので、いちばん大事なのはここだと思っています。
判定AIはブラウザの中で動きます。音声がインターネットに送信されることはありません。
録音も保存しません。残るのは「何分何秒に笑いがあった」という数字だけです。
クラウドAIのアカウントも利用料も不要です。ページを開けば動きます。
4試作機はもう動いています。会話での誤検出はゼロでした。
60秒のテスト音声を機械的に流し込む自動検証を作りました。中身は日本語の会話22.7秒と、笑い声31.6秒です。
結果、会話パートでの誤検出は0回。笑いパートは2区間とも検出しました。
正直な注記もひとつ。検証に使った会話は合成音声です。本物の会議の声ではまだ測っていません。次の実戦テストで確かめます。
5「今笑ったよね」の体感に、3つのつまみで合わせ込みます。
このアプリの品質基準は、検出の厳密さではありません。みんなが「今笑ったよね」と感じた瞬間に、カウンターがちゃんと動くことです。
そのために感度を3つのつまみにしました。試作中も「基準が厳しい」「もっと刻んで」という感想に、その場で合わせ込めています。
実測では、同じ16.5秒の笑い声のカウントが設定しだいで変わりました。間隔1秒なら3回、0.25秒なら5回です。にぎやかに数える「やたらカウント版」も選べるということです。
6次はテキストで入れたワードを、音声から拾って数えます。
「この言葉、今日何回言った?」を数えられるようにします。数えたいワードを文字で入力すると、その声を検出してカウンターが回る。口癖カウンターです。
作りとしては、笑い検出と同じ音声の流れに、言葉を聞き取るレーンを1本足す構えです。
実現方式の候補は3つあります。
(a) Chromeに新しく入った、端末内で動く音声認識。音声を外に出さない今の方針を守れる最有力です。ただし新機能のため実測が必要です。
(b) ブラウザ内で動く音声認識AIを載せる方式。確実に動きますが、モデルが重く、会議中のパソコンには負荷がかかります。
(c) クラウドの文字起こしサービス。制作者の別ツールで実績があり精度も高い一方、音声を外部に送ることになります。
布石: フィラー除去の流用案
候補(c)の布石として、「えー」「あの」などのフィラーを除去する仕組みが制作者の既存ツールで本番稼働しています。除去した数をそのまま数える「フィラーカウンター」流用案もあります。
正直な課題メモ
聞き取り結果は表記が揺れます(「なるほど」「成程」など)。短い相槌ほど拾い損ねが増え、特徴的な長いフレーズほど確実に拾えます。狙うワード次第で難易度が大きく変わります。
7決めたいことは4つ。あなたの意見で仕様が決まります。
試作はここまで動いています。ここから先は、使うみんなで決めたほうが面白くなります。
意見や感想は、この資料が届いた場所にそのまま返信してください。全部読みます。
付録: 技術メモ
ここから下は、興味のある人向けの詳細です。読まなくても本編の理解には影響しません。
| 項目 | 内容 |
|---|---|
| 検出エンジン | YAMNet (521クラス音イベント分類・笑い系6クラス合算) を MediaPipe AudioClassifier でブラウザ内実行 (WASM) |
| 判定方式 | 解析窓0.96秒・判定周期0.24秒。発火/解除の2しきい値+再カウント間隔で「笑いっぱなし=1回」を制御 |
| 入力3系統 | マイク / タブ・画面共有の会議音声 / 内蔵テストサンプル |
| 自動検証 | 60秒テープ(合成会話22.7秒+笑い声31.6秒)をヘッドレスブラウザで再生→PASS/FAIL判定。しきい値0.35〜0.55が安定域 |
| プライバシー | 分類はローカルWASM実行・音声送信コードなし・録音保存なし |
| ワード検出候補 | 音声の扱い | 強み | 弱み |
|---|---|---|---|
| (a) Chrome端末内認識 | 端末内で完結 | 方針維持・追加コストなし | 新機能で品質未実測 |
| (b) ブラウザ内AIモデル | 端末内で完結 | 確実に動く | モデルが重い・負荷 |
| (c) クラウド文字起こし | 外部送信あり | 精度・既存ツール実績 | 同意と通信コストが必要 |
今後の順番: 実際の会議での感度較正 → カウンター画面の作り込み → ワード検出の方式実測、の順で進める予定です。