NemuriMute

ネムリミュート

VRChat で寝落ちしたときのいびきを、パソコンの中の AI(Google の音の分類モデル YAMNet)で声・咳や物音・呼吸と見分け、VRChat のマイクを自動でミュートする Windows 用のアプリです。ミュートできたかを VRChat に確かめてから「マイク保護中」と表示し、声が続くと自動で元に戻します。

通常版 ¥500
支援版 (中身は同じ) ¥800
BOOTH で買う

Windows 11(64 ビット) VRChat(PC 版)と OSC 機能 マイク(VRChat で使っているものと同じ)

主な機能

  • いびきを見分けてミュート

    いびきを声・咳や物音・呼吸と分けて判定し、見つけると VRChat のマイクを自動でミュートします。ミュートせず、マイクの音量を下げるモードもあります。

  • ミュートできたかを確かめる

    VRChat が本当にミュートになったかを確かめてから「マイク保護中」と表示します。確かめられないときは、そう表示します。

  • 声が続くと元に戻す

    声が続くと自動で元に戻します。一瞬の声では戻しません。起動前から自分でミュートしていた場合、そのミュートは解除しません。

  • チャット欄に睡眠検知

    寝ている間、チャット欄に「睡眠検知」と z / zz / zzz を表示します。通知音は鳴らしません。

  • フレンドのいびきも

    フレンドのいびきが聞こえると、VRChat の音量を下げます。起きると戻します。

  • 教えて合わせる

    「誤検知だった」「いびきに反応しなかった」を教えると、そのマイクに合わせて少しずつ調整します。録音をオンにすると、いびきの候補を聞き返して、音の種類を教えることもできます。

使いかた

  1. ZIP を展開して、「NemuriMute.exe」を開く(インストールも管理者の権限も要りません)
  2. VRChat の OSC を有効にする(アクションメニューの「オプション」から「OSC」)
  3. 「見守り」のページで「使うマイク」を確かめ、画面を最小化してそのまま眠る(画面を閉じると終了します)
NemuriMute の使い方の画像。1 ZIP を展開して NemuriMute.exe を開く(インストールも管理者の権限も要りません)、2 VRChat の OSC を有効にする(アクションメニュー、オプション、OSC の順)、3 使うマイクを確かめて、そのまま眠る(画面は最小化。閉じると終了します)。下に、動作と保存のページの画面

対応環境

対応 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. 1.0.2 にしました。BOOTH からダウンロードした ZIP を展開すると、新しい画面が出ずに古い画面で開いていた不具合を直しました(Windows がダウンロードしたファイルに付ける印のため)
  2. 1.0.1 にしました。はじめて起動したときに、Windows の「ファイアウォールの確認」の窓が出ることがある不具合を直しました(VR の中ではこの窓が見えず、クリックが効かなくなることがありました)。VRChat を見つけるための家庭内のネットワークへの問い合わせ(mDNS)をやめ、通信はこのパソコンの中だけにしました
  3. 公開しました

ライセンスとクレジット

個人利用
できます
商用利用
できます
改変・再配布・再販売
できません
いびきの判定
Google が公開している音の分類モデル YAMNet(Apache-2.0)を、ONNX 形式に変換して同梱しています
画面の表示
pywebview(BSD-3-Clause)と Microsoft Edge WebView2 SDK
ライセンス文書
部品の一覧とライセンス文書は、ZIP の licenses フォルダーにあります
お問い合わせ
X @noatti_vrc か BOOTH のメッセージ