Modern Mode → Kawaii Mode 💖

Local-AI Voice Typing System (LAVTS)

本仕様書は、Linux環境においてローカルAIモデルを活用し、音声入力を汎用的なテキスト入力(キーボード・エミュレーション)として変換・出力するシステムの設計を定義する。本システムはX11およびWaylandの両ディスプレイサーバー環境に対応する設計となっている。

1. 概要

デバイス上のマイクから取得した音声をローカル環境内で即座にテキスト化し、アクティブなウィンドウへ自動入力する。ディスプレイサーバーの種類(X11/Wayland)を動的に判別し、最適な入力エミュレーションを実行する。

2. システム構成

3. 依存要件 (Requirements)

カテゴリ ツール名 対象環境 / 備考
録音管理 SoX (rec) 全環境共通。音声キャプチャに使用。
音声認識 Whisper.cpp 全環境共通。軽量モデルを用いた推論。
入力操作 xdotool X11環境用。キーストロークのシミュレート。
ydotool / wtype Wayland環境用。仮想デバイスを介した入力。
通知機能 libnotify 全環境共通。デスクトップ通知。

4. 環境判別と実装プロトコル

出力層において、以下のロジックに基づき入力ツールを切り替える設計とする。

環境判別アルゴリズム:
if [ "$XDG_SESSION_TYPE" = "wayland" ]; then
    # Wayland用の入力コマンドを実行 (ydotool, wtype等)
else
    # X11用の入力コマンドを実行 (xdotool)
fi
  1. 開始/停止: 実行中の録音プロセスを確認し、トグル動作を完遂する。
  2. 変換処理: 録音ファイルをAIモデルで解析し、改行および余分な空白を除去。
  3. 条件付入力: 上記判別ロジックに基づき、アクティブウィンドウにテキストを注入。
  4. 廃棄: 一時ファイルを削除し、ステータスをクリア。

5. セキュリティと保守性