開発者ガイド

目次

  1. ビルド要件
  2. プロジェクト構成
  3. ネイティブ依存ライブラリ
  4. ビルド方法
    1. コマンドライン
    2. ビルドスクリプト
  5. ドキュメントサイト
    1. ローカルプレビュー
    2. ページの追加
  6. コントリビューション
  7. ライセンス

ビルド要件

プロジェクト構成

Easy-MIC-Booster/
├── src/                       ソースコード
│   └── Lang/                  言語ファイル (json)
├── docs/                      ドキュメントサイト(この Jekyll サイト)
│   ├── _config.yml
│   ├── _includes/
│   ├── images/
│   ├── ja/                    日本語版
│   └── *.md                   英語版
├── native/                    同梱ネイティブバイナリ
│   └── runtimes/
│       ├── win-x64/native/    x64 用 rnnoise.dll
│       └── win-x86/native/    x86 用 rnnoise.dll
└── build/                     ビルドスクリプトと成果物
    ├── build_debug.bat        デバッグビルド
    ├── build_release.bat      リリースビルド
    ├── build_rnnoise.ps1      xiph/rnnoise から rnnoise.dll をビルド
    ├── Directory.Build.props  MSBuild 共通設定
    ├── bin/                   ビルド出力 (x64 / x86)
    └── zip/                   配布用パッケージ

ネイティブ依存ライブラリ

AI ノイズ抑制機能は P/Invoke 経由で RNNoise (BSD-3-Clause)を呼び出します。native/runtimes/<rid>/native/ 以下にビルド済み rnnoise.dll がコミットされており、MSVC を用意しなくてもクローン直後にそのまま リリースをビルドできます。ソースから再ビルドする場合は次のスクリプトを実行します。

powershell -NoProfile -ExecutionPolicy Bypass -File build\build_rnnoise.ps1

スクリプトは xiph/rnnoise を clone し、media.xiph.org から学習済みモデル (model_version のハッシュで固定)を取得して、cl.exe /LD /MT /O2 で シングル DLL ビルドを行います。Visual Studio 2019/2022 の「C++ によるデスクトップ開発」 ワークロードが必要です。build_release.bat は DLL が不在の場合に自動で このスクリプトを起動します。

ビルド方法

ビルド前に、build/bin から起動中の Easy MIC Booster を終了してください。ファイルがロックされているとビルドに失敗します。

コマンドライン

dotnet build EasyMICBooster.sln -c Release

ビルドスクリプト

.\build\build_release.bat

実行ファイルは build/bin/x64 または build/bin/x86 に出力されます。

ドキュメントサイト

このサイトは Jekylljust-the-docs リモートテーマで構築されています。GitHub Pages が main ブランチの docs/ ディレクトリから直接配信します。

ローカルプレビュー

cd docs
bundle init
bundle add jekyll
bundle add jekyll-remote-theme
bundle exec jekyll serve

ページの追加

  1. docs/(英語)と docs/ja/(日本語)に Markdown ファイルを作成。
  2. 以下のフロントマターを追加:
    ---
    title: ページタイトル
    layout: default
    nav_order: <番号>
    ---
    
  3. 日本語版には parent: 日本語 も追加。

ページ下部の言語スイッチャーが英語/日本語の対応 URL を自動的に切り替えます。

コントリビューション

開発フロー(フォーク、プルリクエスト等)の詳細は CONTRIBUTING.md を参照してください。

ライセンス

MIT License