NemuriMute
ネムリミュートVRChat で寝落ちしたときのいびきを、パソコンの中の AI(Google の音の分類モデル YAMNet)で声・咳や物音・呼吸と見分け、VRChat のマイクを自動でミュートする Windows 用のアプリです。ミュートできたかを VRChat に確かめてから「マイク保護中」と表示し、声が続くと自動で元に戻します。
今の音の判定
いびき 66%
声 2% 咳・物音など 6% 呼吸 31%
いびき特徴を検出しました。反復と声の有無を確認しています。
主な機能
-
いびきを見分けてミュート
いびきを声・咳や物音・呼吸と分けて判定し、見つけると VRChat のマイクを自動でミュートします。ミュートせず、マイクの音量を下げるモードもあります。
-
ミュートできたかを確かめる
VRChat が本当にミュートになったかを確かめてから「マイク保護中」と表示します。確かめられないときは、そう表示します。
-
声が続くと元に戻す
声が続くと自動で元に戻します。一瞬の声では戻しません。起動前から自分でミュートしていた場合、そのミュートは解除しません。
-
チャット欄に睡眠検知
寝ている間、チャット欄に「睡眠検知」と z / zz / zzz を表示します。通知音は鳴らしません。
-
フレンドのいびきも
フレンドのいびきが聞こえると、VRChat の音量を下げます。起きると戻します。
-
教えて合わせる
「誤検知だった」「いびきに反応しなかった」を教えると、そのマイクに合わせて少しずつ調整します。録音をオンにすると、いびきの候補を聞き返して、音の種類を教えることもできます。
使いかた
- ZIP を展開して、「NemuriMute.exe」を開く(インストールも管理者の権限も要りません)
- VRChat の OSC を有効にする(アクションメニューの「オプション」から「OSC」)
- 「見守り」のページで「使うマイク」を確かめ、画面を最小化してそのまま眠る(画面を閉じると終了します)
対応環境
- 対応 OS
- Windows 11(64 ビット)。Windows 10 でも動く作りですが、確かめていません
- 必要なもの
- VRChat(PC 版)と、VRChat の OSC 機能。マイク(VRChat で使っているものと同じマイクを選びます)
- やさしい寝息モード
- 使うときだけ VB-CABLE(無料の仮想マイク。同梱していません)が要ります
- 画面の表示
- Windows の部品「Microsoft Edge WebView2 ランタイム」を使います(Windows 11 には最初から入っています)
- 音声
- いびきの判定に使う AI は、パソコンの中で動きます。音声をインターネットに送りません
- 録音
- 最初の設定ではオフです。オンにしたときだけ、いびきの候補とミュート中の音を、前後数秒つきで、このパソコンの中(%LOCALAPPDATA%\NemuriMute)だけに保存します。近くの人の声が入ることがあります。7 日・256MB を過ぎると古い順に消えます
- 通信
- 更新の確認のために、起動時にインターネットへ接続します。NemuriMute の本体には、インターネットに接続する処理はありません(ソースコードを読んで確かめました)。画面と本体はこのパソコンの中だけ(127.0.0.1)でやり取りし、VRChat とも同じパソコンの中(127.0.0.1)で OSC でやり取りします。VRChat の通信の番号は、VRChat の記録ファイルから読みます。家庭内のネットワークへの問い合わせはしません(1.0.1 で、外からの受信を待ち受けないことと、ファイアウォールの確認の窓が出ないことを確かめています)
- 画面の部品の通信
- 画面の表示に使う Microsoft Edge WebView2(Microsoft の部品)は、起動したときに Microsoft の診断データの受け口(events.data.microsoft.com)へ接続します(作者のパソコンで確かめました。WebView2 は本体の中でも動くので、本体の接続として見えることがあります)。送る中身は Microsoft の部品と Windows の「診断データ」の設定が決めるもので、作者には見えません。NemuriMute はこの接続に何も渡しません
- 更新
- 新しい版があるときだけ知らせ、「更新する」を押したときだけ入れ替わります。設定・睡眠の記録・録音は引き継がれます
できないこと
- 医療機器ではありません。いびきや睡眠の健康に関わる判断には使わないでください
- 最初のいびきの約 1 秒は、判定と通信の遅れで届くことがあります(確かめていません)
- いびきの改善や、相手を起こさないかどうかは、測っていません
- 確かめたのは、作者のパソコン 1 台(Windows 11、Virtual Desktop のマイク)です。作者以外のパソコン・マイク・接続方法では確かめていません
- この版を VRChat の中で一晩使う確認は、まだしていません。ミュートの確かめ(VRChat の応答)は、名前を変える前の版で確かめていて、この版では VRChat を起動しての確かめはまだです
- 1.0.1 で、VRChat の通信の番号を VRChat の記録ファイルから読む方法に替えました。VRChat が書く行の形は作者の記録で確かめていますが、VRChat を起動して、この方法でミュートの状態を読む確かめはまだです
- 電子署名がないため、はじめて起動するときに「Windows によって PC が保護されました」と出ることがあります
読みもの
更新履歴
- 1.0.2 にしました。BOOTH からダウンロードした ZIP を展開すると、新しい画面が出ずに古い画面で開いていた不具合を直しました(Windows がダウンロードしたファイルに付ける印のため)
- 1.0.1 にしました。はじめて起動したときに、Windows の「ファイアウォールの確認」の窓が出ることがある不具合を直しました(VR の中ではこの窓が見えず、クリックが効かなくなることがありました)。VRChat を見つけるための家庭内のネットワークへの問い合わせ(mDNS)をやめ、通信はこのパソコンの中だけにしました
- 公開しました
ライセンスとクレジット
- 個人利用
- できます
- 商用利用
- できます
- 改変・再配布・再販売
- できません
- いびきの判定
- Google が公開している音の分類モデル YAMNet(Apache-2.0)を、ONNX 形式に変換して同梱しています
- 画面の表示
- pywebview(BSD-3-Clause)と Microsoft Edge WebView2 SDK
- ライセンス文書
- 部品の一覧とライセンス文書は、ZIP の licenses フォルダーにあります
- お問い合わせ
- X @noatti_vrc か BOOTH のメッセージ