【有料版】いびき検知してミュートにするツール(自動調整, VRC操作機能)
- ダウンロード商品¥ 500

SnoreGuardは、マイク入力からリアルタイムでいびきを検出し、VRChat内で自動でミュートするWindows向けデスクトップアプリケーションです。 有料版には以下の機能が追加されています - 設定値の自動キャリブレーション機能 - VRChatのエクスプレッションメニュー連携機能 問い合わせ用Discord: https://discord.gg/hQZMZgBmV2 Github: https://github.com/S-Akagi/SnoreGuard-py/releases/tag/v1.1.0
更新履歴
[2025-06-13: v1.4.0-beta.1] - 自動キャリブレーション機能追加 - VRChat側から操作できる機能追加 [2025-06-13: v1.4.0-beta.2] - 自動調整機能の入力デバイスをダッシュボードで設定したデバイスを使うように変更しました - マニュアルを修正 [2025-06-13: v1.4.0-beta.3] - バッファ管理を見直して適切に解放されるように修
主な機能
・いびき検出: 音声の音響特徴に基づいたルールベースのエンジンで、リアルタイムにいびきを検出します。 ・VRChat自動ミュート連携: いびきを検出すると、OSC経由でVRChatのマイクを自動的にミュートします。 ・リアルタイム分析表示: 入力音声の波形やスペクトラム、分析状況をリアルタイムで視覚的に確認できます。 ・詳細な検出ログ: いついびきが検出されたか、VRChatへの通知状況などをログで確認できます。 ・柔軟な感度設定: UI上のスライダーを操作して、いびき検出の感度を直感的に調整できます。 ・タイムスケジューラー: 指定した時間帯のみ⾃動で検出を開始‧停⽌できます。 【有料版機能】 ・⾃動調整: 現在の環境に合わせてルール設定を⾃動的に最適化します。 ・VRChat連携: エクスプレッションメニューからアプリのON/OFFを切り替えられます。 ・VRChat連携用Prefab: Prefabをアバターにインポートしてアップロードするだけで、アプリと連携されます。
分析プロセスについて
SnoreGuardは、以下のステップでいびきを分析・検出しています。 1.音声フィルタリング: マイクから入力された音声のうち、いびきの特徴が現れやすい周波数帯(80Hz〜1600Hz)を重点的に取り出し、関係のないノイズを低減します。 2.特徴量抽出: 音声から「音の大きさ(エネルギー)」「音の高さ(F0)」「音色の明るさ(スペクトル重心)」「音の複雑さ(ゼロ交差率)」など、複数の音響的な特徴をリアルタイムで計算します。 3.いびきらしさの判定: 計算された特徴量が、いびき特有のパターン(例:エネルギーが大きく、比較的低い音で、倍音構造がはっきりしている)と一致するかをフレーム単位で判定します。 4.持続時間の検証: 「いびきらしい」と判断された状態が、短すぎるノイズや長すぎる環境音ではない、適切な長さで続いているかを確認します。 5.周期性の検証: いびき特有の呼吸リズムを捉えるため、候補となるイベントが一定時間内に一定回数以上、周期的に発生しているかを最終チェックします。 6.最終検知: すべての条件を満たした場合にのみ「いびき」と断定し、VRChatへミュート通知を送信します。
インストール方法
1.最新バージョンのファイルをダウンロードします。 2.ダウンロードしたZIPファイルを任意の場所に展開(解凍)します。 3.展開したフォルダの中にあるSnoreGuard.exeを実行すると、SnoreGuardが起動します。
使い方
1.マイクの選択: アプリケーションを起動したら、「コントロール」セクションのドロップダウンメニューから、使用したいマイクを選択します。 2.検出開始: 「検出開始」ボタンをクリックすると、いびきの検出が始まります。 3.VRChat連携: 「VRChat自動ミュート」のチェックボックスがオンになっていることを確認してください。VRChatが起動していれば、いびき検出時に自動でミュートされます。 4.感度調整: 「ルール設定」セクションのスライダーを調整することで、検出の感度を変更できます。 より詳しい使い方は、説明書をご覧ください。 https://github.com/S-Akagi/SnoreGuard-py/blob/releace/v1.4.x/docs/MANUAL.pdf
設定例 (私のQuest3の場合)
例) # エネルギー閾値 0.02 # ピッチの信頼度閾値 0.05 # スペクトル重心閾値 450.0 # ZCR閾値 0.05 # 最小持続時間 0.25 # 最大持続時間 3.0 # ピッチの最小周波数 70.0 # ピッチの最大周波数 150.0 # 周期性イベント数 4 # 周期性ウィンドウ秒 45 # 最小イベント間隔秒 2.0 # 最大イベント間隔秒 10.0
注意事項
・本アプリケーションは医療機器ではありません。睡眠時無呼吸症候群などの診断・治療目的での使用は絶対におやめください。 ・VRChatの利用規約を遵守してご使用ください。 ・本アプリケーションの使用によって生じたいかなる損害についても、開発者は責任を負いません。詳細は利用規約をご確認ください。
SnoreGuard 初回起動時の警告表示と対処法について
本ソフトウェアを初めて実行する際に、Windowsのセキュリティ機能により「WindowsによってPCが保護されました」という青い画面の警告が表示されることがあります。 この警告は、Microsoft社のセキュリティ機能によるものです。 本機能は、コードサイニング証明書によるデジタル署名がない、または評価が確立されていない新しいアプリケーションに対し、ユーザーを保護する目的で標準的に表示されます。 このファイルにはウイルスなどの有害なプログラムは一切含まれておりません。 開発の透明性を確保するため、すべてのソースコードもGitHub上で公開しております。 お手数ですが、以下の手順でソフトウェアを起動してください。 ---------------------------------------------------------------------- 【警告画面からの起動手順】 1. 青い警告画面が表示されたら、「詳細情報」という文字のリンクを クリックしてください。 2. 画面が切り替わり、アプリ名の下に「実行」というボタンが表示されますので、 そちらをクリックしてください。 ---------------------------------------------------------------------- この操作は通常、初回の起動時のみ必要です。 次回以降は、この警告なしで起動できる場合がほとんどです。 ご不便をおかけいたしますが、安心してご利用いただけますと幸いです。 ご不明な点や不具合がございましたら、以下の連絡先までお気軽にご連絡ください。
利用規約
・本利用規約(以下、「本規約」といいます。)は、開発者「AKAGI」(以下、「開発者」といいます。)が提供するソフトウェア「SnoreGuard」(以下、「本ソフトウェア」といいます。)の利用条件を定めるものです。 ・本ソフトウェアのソースコードはMITライセンスに基づき提供されます。 ・ライセンスの詳細は、https://github.com/S-Akagi/SnoreGuard-py/blob/main/LICENSE をご確認ください。 ・本規約は、開発者が配布する実行可能ファイル(バイナリ)を利用する際の条件を定めるものであり、ライセンス条項に優先するもの ではありません。 著作権とライセンス ・本ソフトウェアの著作権は開発者に帰属します。 ・ソースコードはMITライセンスのもとで公開されており、ライセンス条項の範囲内で自由に利用(改変、再配布、商用利用を含む)できます。 保証の否認 (AS IS) ・本ソフトウェアは「現状有姿」で提供され、開発者は、明示または黙示を問わず、商品性、特定目]的への適合性、および権利の非侵害の保証を含む、いかなる種類の保証も行いません。 ・本ソフトウェアは娯楽目的で提供されるものであり、医療機器ではありません。いびき検出の精度は利用環境に大きく依存し、その正確性、完全性、信頼性を保証するものではありません。 免責事項 ・開発者および著作権者は、契約行為、不法行為、その他を問わず、本ソフトウェアの使用またはその他の取り扱いから生じる、いかなる請求、損害、その他の責任についても一切責任を負いません。 ・本ソフトウェアの利用は、利用者自身の責任において行ってください。本ソフトウェアの利用に起因して生じた、利用者または第三者に対するいかなる損害(VRChat等の連携サービス内でのトラブルを含みます)についても、開発者は責任を負いかねます。 禁止事項 ・本ソフトウェアを利用して、法令または公序良俗に反する行為を行うことを禁止します。 規約の変更 ・開発者は、その裁量により本規約をいつでも変更できるものとします。
お問い合わせ
メール: contact@akagis-g.com Github: https://github.com/S-Akagi/SnoreGuard-py/discussions/new?category=general X: https://x.com/Atama_R_com 問い合わせ用Discord: https://discord.gg/hQZMZgBmV2