ラズパイゼロ2Wで赤ちゃん寝かしつけノイズマシンを開発、機械学習で泣き声を検出

FabScene(ファブシーン)

赤ちゃんの寝かしつけに使われるスマートバシネット(かご型ベッド)は、赤ちゃんが泣くと自動的にホワイトノイズの音量を調整し、優しく揺らす機能を持つ。しかし、市販品の価格は1000ドル以上と高価で、バシネットからベビーベッドへ移行する際には使えなくなる。この課題に対し、Raspberry Pi Zero 2 WとGoogleの音声分類モデルYAMNetを使って、アダプティブホワイトノイズ機能を再現するプロジェクトが公開された。

機械学習による泣き声検出

製作者のprash-p氏がRedditとGitHubで公開した「SMOO」は、GoogleのYAMNetモデルを使用してリアルタイムで赤ちゃんの泣き声を検出する。YAMNetは音声イベント分類用の事前学習済みモデルで、TensorFlow Liteで動作する。このアプローチにより、掃除機やドライヤーといった他の音との誤認識を減らすことができる。

システムの動作は以下の通りだ。まず、ベースラインのホワイトノイズを連続再生する。マイクで周囲の音を常時モニタリングし、YAMNetモデルが泣き声を検出すると、ホワイトノイズのレベルを0から4までの5段階で自動的に引き上げる。赤ちゃんが落ち着くと、設定した時間(デフォルトでは60秒)の静寂の後、段階的にレベルを下げる仕組みだ。

代替として、FFT(高速フーリエ変換)ベースの周波数解析による検出方法も実装されている。こちらは機械学習モデルを使わないため、CPU負荷が低く応答速度が速いが、誤検出が増える可能性がある。用途に応じて切り替えが可能だ。

ハードウェア構成は極めてシンプルで、Raspberry Pi Zero 2 W本体、USBハブ、USBマイク、USBスピーカーのみとなっている。すべてUSB経由で接続され、追加の配線や回路は不要だ。Windows、Linux、Raspberry Pi OSといった複数のプラットフォームで動作する。

ソフトウェアはPythonで実装され、FlaskベースのWebインターフェースを備える。スマートフォンやPCのブラウザから、システムの起動・停止、現在のレベル表示、手動でのレベル調整、検出パラメータの変更が可能だ。設定項目には、YAMNetの信頼度しきい値(0.0-1.0)、FFT検出用の周波数範囲(200-1000Hz)、レベル変更のタイミング(上げるまで5秒、下げるまで60秒)などが含まれる。

音声ファイルは、製作者がSNOOのホワイトノイズをスマートフォンでサンプリングしたものを使用している。レベル0から4まで、段階的に音量が大きくなるWAV形式のファイルを用意し、検出結果に応じて切り替える。カスタム音声を使いたい場合は、ホワイトノイズ、ピンクノイズ、自然音など任意の音源を同じ命名規則で用意すればよい。

GitHubのREADMEには、重要な注意事項が記載されている。このシステムは医療機器ではなく、親の監視を代替するものではない。音声検出には誤検出の可能性があり、常に安全な睡眠環境のガイドラインに従う必要がある。また、乳幼児の聴覚に安全な音量レベルに設定することも推奨されている。

関連情報

SMOO Baby White Noise(GitHub) Adaptive white noise machine for babies(Reddit)

fabsceneの更新情報はXで配信中です

この記事の感想・意見をSNSで共有しよう
  • URLをコピーしました!