Skip to content

Latest commit

 

History

History
473 lines (344 loc) · 34.1 KB

File metadata and controls

473 lines (344 loc) · 34.1 KB

ライセンスと配布方針

このドキュメントの位置づけ 外部コンポーネントのライセンス・利用規約の調査結果と、そこから導かれる配布物の構成の唯一の定義場所。 DESIGN.md §10 のライセンス表は要約であり、詳細はここにある。

これは法的助言ではない。 規約の原文を読んで記録した開発者の理解であり、弁護士の見解ではない。 判断に迷う箇所は「未確認」として残してあり、未確認のまま配布物に含めない(fail-closed)。

確定度 Confirmed(配布方針)/ Provisional(個別コンポーネントの理解)
調査日 2026-08-15
関連 ADR-019, roadmap.md Phase 0

1. 前提 — Lumi は公開配布される

不特定多数にインストーラを配る前提で設計する。〔2026-08-15 決定〕

この前提が、以下すべての義務を発生させる。自分専用なら発生しないものが多いため、前提が変わったらこの文書を読み直す

前提 発生する義務
第三者へ配布する 再配布の可否・クレジット表記・ライセンス文書の添付
LLM が任意のテキストを生成して TTS に流す ACML 特例条項の「開発元の努力」義務(§5)
インストーラを作る 配布物に含まれる全成果物のライセンス適合

2. 配布方針(結論)

配布物には、再配布が明示的に許諾されているものだけを入れる。ADR-019

対象 配布物に含める 入手方法
Lumi Core / Shell / Stage 自作(MIT)
AivisSpeech Engine 初回セットアップでユーザーの明示的な選択に基づき公式配布元から取得
VOICEVOX Engine ユーザーが別途インストール(同梱は規約で禁止
音声合成モデル(ACML 等) 条件付きで可 §4.4。既定 Content Pack には含めずに始める
VRM モデル モデルの規約による Content Pack。既定モデルは再配布可のものを選ぶ(既定モデルは §4.5。再配布 OK
Ollama / LLM モデル Ollama はユーザーが別途インストール。モデルは明示同意後、Ollama に取得を依頼するが Lumi には同梱しない → ADR-037
Silero VAD(ONNX) 〔Phase 1。LICENSE 本文の確認が前提 → §7 未確認 #9〕 同梱。数 MB。barge-in の critical path なので実行時取得にしない
faster-whisper のモデル 初回セットアップでユーザーの明示的な選択に基づき取得(数百 MB〜。R1 に直撃する)
埋め込みモデル(Harrier-OSS-v1 270M) 同上(196 MiB)。取得しなくても会話は動く(記憶検索だけが止まる) → §4.9
ASIO 版の PortAudio Steinberg の ASIO SDK は非 OSS。sounddevice は ASIO 有り・無しの両方を同梱しており、PyInstaller のフックが指定しなくても ASIO 版を入れてしまう(2026-08-15 実測)。core/lumi-core.spec が除外し、残っていたらビルドを失敗させる

「含めない」は「ユーザーに丸投げする」という意味ではない。 初回セットアップから、ユーザーが選べば自動で取得・セットアップできる経路を用意する。取得する/しないの選択を同等に提示し、取得しない選択でも Lumi は起動する(TTS 未セットアップ状態として明示する)。

なぜ取得を「明示的な選択」にするのか

DESIGN.md §1 の Network-optional(外部通信は任意・明示的)の最初の適用例だから。

同意なしに初回起動時点で外部へ取りに行くと、「Lumi は黙って通信する」という前提が製品の一番最初に埋め込まれる。推論・状態・判断はローカルで完結するという主張が、最初の30秒で嘘になる。


3. 適用関係の整理

どの文書がどこに効くかを取り違えると、必要な確認を飛ばす。 実際、今回の調査で最も間違えやすかったのがここ。

Lumi が AivisSpeech Engine をローカルで動かして音声を作る
  ├─ Aivis Project 利用規約 ……… 適用されない(§4.1)
  │    └ 対象は AivisHub / Aivis Cloud API / Aivis アカウント
  ├─ AivisSpeech Engine の OSS ライセンス ……… 適用される(§4.2)★未確認
  └─ 使用する音声合成モデルのライセンス(ACML 等)… 適用される(§4.4)

AivisHub からモデルをダウンロードする行為
  └─ Aivis Project 利用規約 ……… 適用される(アカウント登録を伴う場合)

Lumi が VOICEVOX Engine をローカルで動かして音声を作る
  ├─ VOICEVOX ソフトウェア利用規約 ……… 適用される(§4.3)
  └─ 各音源(ずんだもん等)の利用規約 + 共通規約 …… 適用される(§4.3)

Aivis Project 利用規約 第1条5項: 「本規約は主に AivisHub / Aivis Cloud API や Aivis アカウントの利用に適用されるものであり、AivisSpeech / AivisSpeech Engine などのオープンソースソフトウェアについては、それぞれのソフトウェアに付属するライセンス条項が優先して適用されます。」

つまり AivisSpeech Engine の同梱可否を決めるのは Aivis の利用規約ではなく、Engine 本体の OSS ライセンスである。そしてその本文をまだ読んでいない(§7)。


4. 個別コンポーネント

4.1 Aivis Project 利用規約(株式会社Walkers)

対象 AivisHub / Aivis Cloud API / Aivis アカウント
制定 / 最終更新 2024-11-19 / 2026-03-26
Lumi への適用 ローカル実行には適用されない(第1条5項)。AivisHub からのモデル取得には適用される

Lumi にとって関係する条項:

内容 意味
1条5項 OSS はそれぞれのライセンス条項が優先 Engine の同梱可否は LGPL 側で決まる
9条 禁止事項はモデルのダウンロード後の利用には直接適用されない(明文) DL 後はモデルのライセンス(ACML 等)に従う
10条2項 DL したモデルの利用は当該モデルに付与されたライセンスに従う §4.4 へ
12条4項 アップロードモデル・API 送信テキスト・生成音声をAI 学習に利用しない Cloud API を使う場合の判断材料。Lumi はローカル実行なので現状無関係

Lumi は Aivis アカウントを必要としない設計にする。 ユーザーが AivisHub からモデルを取得する場合は、ユーザー自身と Walkers の間の契約であり、Lumi が代行しない。

4.2 AivisSpeech / AivisSpeech Engine 本体

ライセンス LGPL-3.0 単独〔2026-08-15 確認〕
配置 別プロセス・HTTP。CUDA があれば GPU、無ければ CPU(ADR-025
配布物に含める (実行時取得 → architecture/setup.md

〔2026-08-15 確認〕リポジトリの LICENSEGNU LESSER GENERAL PUBLIC LICENSE Version 3, 29 June 2007 の全文であり、 追加の例外条項は無い。README は「ベースである VOICEVOX ENGINE のデュアルライセンスのうち、LGPL-3.0 のみを単独で継承します」と明記している。 デュアルライセンスではない(VOICEVOX ENGINE 本体は LGPL-3.0 と非公開ライセンスのデュアル)。

LGPL-3.0 は条件付きで再配布を許すため、同梱の余地はある。それでも含めない理由:

  1. LICENSE 本文を実地で確認していない確認済み(上記)。残る理由は 2〜5
  2. 依存ライブラリの孫ライセンスを配布物単位で洗う必要がある
  3. Engine に同梱される既定音声モデルが別ライセンスであり、それも洗う必要がある
  4. これらは Phase 0 の目的(統合点の貫通)とは別軸の作業であり、混ぜると両方が遅れる
  5. R1(インストーラサイズ)にも効く

一度配布したものは取り消せない。 後から違反が判明しても、既に配られた分は回収できない。だから未確認のまま入れない。

4.3 VOICEVOX

VOICEVOX ソフトウェア利用規約

項目 内容 Lumi への影響
利用 商用・非商用問わず可
再配布 「本ソフトウェアの全てまたは一部を無断で再配布すること」を禁止 同梱不可。〔確定〕
リバースエンジニアリング 逆コンパイル・RE 及びその方法の公開を禁止 該当しない
再許諾 他者に利用を許諾する際は、当該他者に許諾内容 2・3 の遵守を義務付ける Lumi 利用者に音源規約の遵守を伝える義務がある
クレジット 「VOICEVOX を利用したことがわかるクレジット表記が必要」 表示 UI が必須(§6)

VOICEVOX 音源利用規約(ずんだもん / 東北ずん子 / 四国めたん 等)

項目 内容
利用 商用・非商用可
クレジット 必須。例: VOICEVOX:ずんだもん。アプリの場合は「紹介画面など、少し探せばわかる場所」
クレジット無しの商用 1キャラクターあたり 40万円(+税)の契約が必要
共通規約 下記の禁止事項を遵守

音源の共通規約 — 禁止事項:

  1. 公序良俗に反する利用
  2. 政治活動・宗教活動またはそれらにつながる行為。特定の個人・団体(国家を含む)を非難・批判・応援する目的での利用
  3. 情報商材での利用、情報商材の宣伝目的での利用
  4. 意図的な虚偽情報・誤解を招く内容の作成/共有/拡散
  5. 風俗営業(接待飲食等 1〜3号営業)および性風俗関連特殊営業での利用
  6. 反社会的勢力による利用、および反社会的勢力と協力・関与する者の利用

**「本ガイドラインに該当するかどうかのご質問については、原則お答えしておりません」**と明記されている。問い合わせて確認するという逃げ道が無いため、自分で読んで安全側に倒すしかない

4.4 音声合成モデル — ACML 1.0(Aivis Common Model License)

許諾 利用・複製・改変・派生物作成・配布(改変の有無を問わず)
配布の条件 ライセンス文書を必ず一緒に添付する
クレジット 任意(制作者・話者のクレジット表記は利用者の判断に委ねられる)
免責 現状のまま提供。無保証

再配布が明示的に許諾されているため、ACML のモデルは配布物に含めうる。ただし既定 Content Pack には含めずに始める(§2)。理由は、話者の選定とキャラクター人格の設計(未確定事項 #11)が未着手であり、先に同梱すると差し替えコストが乗るため。

ライセンス全文はモデル自身が持っている〔2026-08-15 実測〕

AivisSpeech Engine が初回起動時に取得する既定モデル(.aivmx)の manifest に、 ACML 1.0 の全文がそのまま入っているmanifest.license)。話者名・制作者名も同じ場所にある。

保存先 %APPDATA%\AivisSpeech-Engine\Models\<uuid>.aivmxLumi の管理外
実測した既定モデル 「まお」「山灘」— どちらも ACML 1.0

したがって「使用中のモデルのライセンス全文」の正しい取得元は、ハードコードではなくモデルの manifest である。 Phase 1 の Provider.attribution() はここから読む。Phase 0 のクレジットは静的なので、 「既定モデルに適用されるライセンス」として ACML 1.0 の全文を載せる(§6)。

ACML の禁止事項:

# 禁止
1 話者本人・原作者・公式関係者であるとの誤解を招く / 騙す利用(ディープフェイク等)
2 話者のイメージ・尊厳・品位・社会的評価を傷つける / 貶める利用
3 実在の人物・団体・商品を批判・攻撃・嫌がらせ・誹謗中傷・差別する活動
4 人々を騙す目的での虚偽情報・コンテンツの公開/流布
5 虚偽・誇大なマーケティング、倫理的に問題のあるビジネス
6 特定の政治的立場・政治/宗教団体・排他的思想・陰謀論への賛同・支援または反対・批判を呼びかける活動
7 反社会的・犯罪目的での利用

「なるべく守ってほしいこと」(義務ではない): 話者へのリスペクト、刺激の強い表現のゾーニング、良識ある利用。

4.5 既定同梱 VRM モデル〔2026-08-16 決定〕

モデル名 光莉 / ひかり
作者 あわ
取得元 VRoid Hub
フォーマット VRM 0.0
再配布 OK
改変 OK
クレジット表記 不要
アバター利用 / 暴力表現 / 性的表現 / 法人利用 / 個人の商用利用 すべて OK

再配布が明示的に許諾されているため、配布物に含められる。 これで §7 未確認 #5 が解消した。

規則 理由
リポジトリにコミットしない。 content/ に置き、ビルド時に配布物へ入れる .claude/rules/02-git.md。モデルファイルを git 履歴に入れない
クレジット表記は義務ではないが、クレジット画面には出す 義務の有無と、出すかどうかは別の判断。差し替えたときに表示が追随する経路(Provider.attribution() / Content Pack メタデータ)を最初から通しておく
モデル名・作者名は Content Pack のメタデータが持つ Core にハードコードすると、モデルを差し替えた瞬間にクレジットが嘘になる(§8 テスト 9 の fail-closed の対象)

保証しないこと: VRoid Hub の利用条件はモデル登録者が設定するものであり、後から変更されうる。 ここに記録したのは 2026-08-16 時点で確認した条件である。同梱を更新するときは条件を読み直す。

4.6 推論スタック(Phase 1 で追加)〔2026-08-16 確認〕

すべて配布物に入る。 モデルは入らない(→ ADR-023)。

コンポーネント ライセンス 用途
faster-whisper MIT(Copyright (c) 2023 SYSTRAN) STT
CTranslate2 MIT 推論エンジン(torch の代わり。R1)
ONNX Runtime MIT VAD / STT
numpy BSD-3-Clause AND 0BSD AND MIT AND Zlib AND CC0-1.0 音声の共通表現
PyAV BSD-3-Clause faster-whisper の依存
tokenizers Apache-2.0 同上
huggingface_hub Apache-2.0 同上(取得は無効化している
Silero VAD(ONNX モデル) MIT(Copyright (c) 2020-present Silero Team) barge-in

GPL / AGPL は1つも含まれない(§6 のビルド時検査に抵触しない)。

Microsoft VC++ ランタイム〔2026-08-16 追記〕

配布物には msvcp140.dll / vcruntime140*.dll が入る。PyInstaller が Phase 0 から入れていた (Python 本体と全ネイティブ拡張が要求する)。Step E で出所を System32 に固定したlumi-core.spec_pin_vcruntime()。理由 → measurements/phase1.md)。

これらは Microsoft の再頒布可能パッケージであり、アプリケーションへの同梱が明示的に許諾されている。 Core = MIT の境界を汚さない(Windows 向けにビルドされた実行体が必ず伴うもので、 CPython の公式配布物にも同じ DLL が入っている)。Lumi のコードのライセンスとは無関係。

★ Silero VAD は faster-whisper が同梱している〔2026-08-16 実測〕

faster_whisper/assets/silero_vad_v6.onnx   1.2 MB

Lumi は別途取得しない。 PyPI の silero-vad パッケージは torch に依存するため使わない (R1 に直撃する)。ONNX ファイルの所在だけを借り、推論は onnxruntime で自前に行う (faster-whisper の内部 API には依存しない → STT を差し替えても VAD が壊れないように)。

保証しないこと: これは faster-whisper のパッケージ内部構造への依存である。 更新でパスが変わったら壊れる。 起動時に明示的に失敗させる(fail-closed)。 壊れたときの移行先は「ビルド時取得」(Live2D Cubism Core と同じパターン)。

★ クレジットは自動生成に載らない — 手で足す必要がある

MIT は著作権表示の保持を求めるが、Silero Team の表示は依存グラフに現れない (faster-whisper の同梱物であって、依存宣言ではない)。 §6 の scripts/generate-oss-notice.mjs は依存グラフから作るので、ここだけ手で足す。

✓ 対応済み〔2026-08-17 / Step G〕。生成スクリプトの MANUAL に追加した (CPython / SQLite / PortAudio / PyInstaller bootloader と同じ扱い)。

4.7 暗号化 SQLite(Phase 2a で追加)〔2026-08-22 確認〕

記憶 DB の保存時暗号化のために追加した(→ ADR-040)。配布物に入る。

コンポーネント ライセンス 用途
APSW(apsw-sqlite3mc zlib 型(Copyright (c) 2004-2026 Roger Binns。SPDX: any-OSI Python から SQLite を触る層
SQLite3 Multiple Ciphers 2.4.0 MIT(Copyright (c) 2019-2026 Ulrich Telle) 保存時暗号化(chacha20
SQLite 3.53.4 Public Domain 上に静的リンクされる本体(FTS5 を含む)

GPL / AGPL は含まれない。 Core = MIT の境界を侵さない。

★ ここもクレジットの自動生成に素直には載らない

2つ問題があり、どちらも手で足して解決した〔2026-08-22〕。

  1. apsw-sqlite3mc の METADATA は License: OSI Approved としか書いていない。 同梱の LICENSE 本文は zlib 型 + 「任意の OSI 承認ライセンスを選んでよい」条項である。 生成スクリプトに根拠付きの上書きを置いた(PYTHON_LICENSE_OVERRIDES
  2. SQLite3 Multiple Ciphers は依存グラフに現れない.pyd に静的リンクされている)。 Silero VAD と同じ扱いで MANUAL に足した

依存を1つ足すと、クレジットが2つ増えることがある。 依存グラフは配布物の中身と一致しない。

4.8 推奨 LLM モデル〔2026-08-22 確認〕

モデル 表示サイズ ライセンス 取得方法
qwen3.5:9b 約 6.6 GB Apache License 2.0 明示同意後に Ollama のローカル /api/pull
qwen3.5:4b 約 3.4 GB Apache License 2.0 「別のモデルを選ぶ」で明示選択後に同じ経路

モデル名・サイズ・ライセンスは Ollama 公式タグ一覧 の 2026-08-22 確認値。Lumi の配布物やリポジトリにはモデルを含めない。 取得を Ollama に依頼する前に、対象名・概算サイズ・通信量を伴うことを画面で示す。


4.9 埋め込みモデル(Phase 2e で追加)〔2026-08-22 確認〕

記憶の意味検索に使う(→ ADR-041)。配布物に入らない。

コンポーネント ライセンス 取得方法
microsoft/harrier-oss-v1-270m(重み) MIT 実行時取得。revision とファイルごとの SHA-256 を pin
onnx-community/harrier-oss-v1-270m-ONNX(ONNX 変換) MIT 同上。実際に取得するのはこちら

クレジット表記の義務は無い(MIT)。ただし attribution() は返す—— 表示するかどうかと、出所を追跡できるかどうかは別である。

GPL / AGPL は含まれない。


5. ★ ACML 特例条項 — Lumi に直接適用される

「不特定多数のユーザー or AI (LLM) が任意のテキストを入力して音声合成できる状況において、このライセンスをユーザーや LLM に完璧に遵守させることは、技術的・現実的に極めて困難であると考えられます。 このため特例として、(技術的に禁止事項に該当する利用を防げる状態かに関わらず)「アプリ・Web サービスの開発元自身がこのライセンスを遵守し、現実的な範囲でなるべく禁止事項に該当する利用が起きないよう努めていれば」お使いいただけます。」

Lumi はこの条項が想定している構成そのものである。 LLM が生成した任意のテキストを TTS に流すため、生成物を完全に統制することは原理的にできない。

何が保証され、何が保証されないか

免除されるもの 禁止事項に該当する出力を技術的に完全に防ぐ義務
免除されないもの 開発元自身がライセンスを遵守する義務 / 現実的な範囲で努力する義務

「LLM が言ったことだから開発元の責任ではない」とは書かれていない。 免除されるのは完全性であって、努力そのものではない。

「現実的な範囲の努力」として何をするか

過剰な検閲は作らない。(設計原則 7: 「将来使うかもしれない」だけで抽象層を足さない) Lumi の既存の設計要素で満たせるものを使い、足りない分だけ足す。

# 措置 実現手段 Phase
1 人格プロンプトに禁止事項を反映する Content Pack の character.toml。批判・攻撃・政治宗教・なりすましを人格として行わない Phase 1
2 なりすましを構造的に避ける Lumi は Lumi として振る舞う。実在人物を演じる機能を作らない(非目標に追加) 全 Phase
3 外部由来テキストをそのまま読み上げない Invariant 3(Untrusted Data)が既に要求している。untrusted なテキストは命令でもナレーションでもなくデータとして扱う Phase 1
4 ライセンス文書をユーザーに提示する クレジット画面から各モデルのライセンス全文を読めるようにする(§6) Phase 0
5 禁止事項をユーザーに伝える モデル取得時 / クレジット画面。VOICEVOX の再許諾義務(§4.3)も同じ場所で満たす Phase 0
6 話者リスペクトの姿勢を既定にする 既定 Content Pack の人格設計 Phase 1

やらないこと: 生成テキストの内容分類器を挟む。理由 —(a)レイテンシ SLO(p95 2.0s)を直接圧迫する、(b)誤検知でキャラクターが不自然に黙る方が体験を壊す、(c)特例条項は完全性を要求していない。必要になったと判断したら ADR を書いて足す。


6. クレジット表示 — Phase 0 の必須項目

配布物ができた時点で義務が発生する。 Phase 0 の完了条件が「別マシンでインストーラから起動して一言喋る」である以上、Phase 0 でクレジット表示が要る。後回しにすると「クレジット無しで配布した期間」が生じ、これは遡って直せない。

要件

# 要件 出典
1 VOICEVOX を利用したことがわかる表記 VOICEVOX ソフトウェア利用規約「その他」
2 音源のクレジット(例: VOICEVOX:ずんだもん 音源利用規約。アプリは「紹介画面など、少し探せばわかる場所」
3 使用中の音声合成モデルのライセンス全文を読める ACML「配布する場合は必ずライセンス文書も一緒に添付」
4 音源・モデルの禁止事項をユーザーが読める VOICEVOX の再許諾義務(許諾内容 3)
5 使用エンジン・モデル・OSS 依存の一覧 一般的な OSS 配布の作法

設計上の置き場所

どこ 理由
クレジット画面 Stage(トレイメニュー / stage の操作メニュー → クレジット) 表現であり、判断を含まない
エンジンのクレジット文字列 Provider.attribution() Provider は交換可能。エンジンを差し替えたらクレジットも変わる。Core がハードコードすると差し替え時に嘘になる
音声モデルのクレジット / ライセンス Content Pack の voice.toml モデルは Content Pack が選ぶ(architecture/extension.md §9)

attribution() を Phase 1 の Provider interface に含める。 load / unload / resource_hint と同じ理由 — 後から Provider にメソッドを追加すると全 Provider の書き換えになる。 Phase 0 の時点では窓口だけ確保しておく。

Phase 0 のクレジット画面に載せるもの〔2026-08-15 確定〕

Phase 0 のクレジットは静的(Core にも外部にも接続しない → architecture/ui.md)。 したがって「いま使っているもの」を知らない。知らないものは省略せず、条件を書いて全部載せる。

# 内容 根拠
1 Lumi 本体 MIT 全文 Lumi 自身の配布物
2 Lumi が同梱する OSS Shell / Stage / Core の直接依存の一覧(名前・バージョン・ライセンス識別子) MIT / BSD の表示保持義務
3 Lumi が同梱しないもの AivisSpeech Engine(LGPL-3.0 全文 + GPL-3.0 全文)、VOICEVOX(規約と義務) §4.2 / §4.3。取得はユーザーの PC 上で起きることを明記する
4 音声合成モデル ACML 1.0 全文。VOICEVOX:ずんだもん 形式のクレジット例 §4.4 / 音源利用規約
5 禁止事項 ACML と VOICEVOX 音源共通規約の禁止事項 VOICEVOX の再許諾義務(§4.3)/ ACML 特例(§5 措置5)
6 サードパーティの完全な一覧 推移的依存を含む全パッケージ(名前・バージョン・ライセンス識別子)。依存グラフから生成する MIT / BSD の表示保持義務。手書きの一覧は必ず古くなる

GPL-3.0 全文も載せる。 LGPL-3.0 は本文中で GPL-3.0 を取り込んでおり、LGPL 単独では読めないため。

一覧の生成〔2026-08-15 実装〕

scripts/generate-oss-notice.mjs が3つの依存グラフから stage/src/credits/third-party.generated.json を生成する。配布物に入るものだけを見る。

生成物は表示用の文言を持たない。 各グループは idshell / core / stage / undeclared)で、画面に出る名前は Stage の翻訳カタログ(credits.ecosystem.*)にある。 以前はここに日本語のラベルが入っており、英語表示のときだけ別の対応表を引いていた。

エコシステム 取得元 件数〔2026-08-15〕
Rust cargo tree -e normal(build 依存は exe に入らない) 246
Python uv export --no-dev(PyInstaller が固める実行時依存) 32
JavaScript pnpm licenses list --prod 22
依存グラフに現れないもの 手で書く 6

(件数は 2026-08-22 時点。生成のたびに変わる。 正は stage/src/credits/third-party.generated.json であってこの表ではない)

最後の行が抜けやすい。 CPython 本体・SQLite・SQLite3 Multiple Ciphers・PortAudio・ Silero VADPyInstaller の bootloader はどの依存グラフにも出てこないのに配布物へ入る。特に bootloader は GPL-2.0-or-later WITH Bootloader-exception であり、例外条項によって これを使って作った実行体に GPL は伝播しない(→ ADR-021)。

生成スクリプトは GPL / AGPL / SSPL / proprietary を見つけたら失敗する。 Core = MIT の境界を、レビューではなくビルドで守るため。

保証しないこと

  • 各パッケージの著作権表示(copyright 行)までは載せていない。 載せているのは 名前・バージョン・ライセンス識別子と、主要なライセンスの全文である。 MIT / BSD は本来各パッケージの著作権表示の保持を求めるため、 公開配布の前にここを埋める必要がある(Phase 1 の宿題。284 件分の LICENSE 収集)
  • エンジン自身の依存ライセンスは Lumi が持たない。 エンジンは自分の dependency_licenses.json を同梱し、/engine_manifest で公開している。 Lumi はエンジンを配布しないので、これを転記しない(転記すると更新されずに古くなる)

7. 未確認事項

未確認のものを配布物に含めない。 解消したらこの表から消し、§4 に書く。

# 未確認 効いてくる場面 解消 Phase
1 AivisSpeech / Engine の LICENSE 本文 ✓ 解消〔2026-08-15〕→ §4.2。LGPL-3.0 全文・例外条項なし・単独継承
2 既定音声モデルの個別ライセンス ✓ 解消〔2026-08-15〕→ §4.4。Engine は同梱ではなく初回起動時に AivisHub から取得し、取得された既定モデル(「まお」「山灘」)はどちらも ACML 1.0。全文はモデルの manifest に入っている
3 VOICEVOX Engine の OSS ライセンス VOICEVOX を代替として実装する場合 ✓ 一部解消〔2026-08-15〕LGPL-3.0 と非公開ライセンスのデュアル(README 記載)。同梱しないので配布物には影響しない
4 公式配布元の URL と、取得物の検証方法 ✓ 解消〔2026-08-15〕→ architecture/setup.md §3-4。GitHub Releases をピン留めし、URL・サイズ・SHA-256 の3点で検証する
5 既定 VRM モデルの再配布可否 ✓ 解消〔2026-08-16〕→ §4.5。再配布 OK / 改変 OK / クレジット不要(VRM 0.0)
6 Embedding モデルのライセンス モデル選定時 LLM / STT は ✓ 解消 → §4.8 / §7 #10b。Embedding は Phase 2
7 Kokoro(英語 TTS)のライセンス 英語対応時 未定
8 Live2D Cubism Core の配布形態ごとの条件 Live2D 導入時 Phase 9
9 Silero VAD(ONNX モデルファイル本体)の LICENSE 本文 ✓ 解消〔2026-08-16〕→ §4.6。MIT(Silero Team)。faster-whisper が同梱
10 faster-whisper / CTranslate2 / onnxruntime のライセンス ✓ 解消〔2026-08-16〕→ §4.6。すべて MIT / BSD / Apache-2.0
10b 取得する STT モデルのライセンス ✓ 解消〔2026-08-17〕。ピン留めした2つとも MITSystran/faster-whisper-small / dropbox-dash/faster-whisper-large-v3-turboADR-027)。配布物には含めず、同意に基づいて取得するので再配布義務は生じない
11 案内する LLM モデルの利用条件(Qwen3 系 / Gemma3 系) ✓ 解消〔2026-08-22〕→ §4.8。推奨を Qwen 3.5 9B、軽量候補を 4B に固定

8. テスト

# テスト
1 配布物(インストーラ)に AivisSpeech / VOICEVOX のバイナリが含まれていない(静的検査)
2 リポジトリにモデルファイル・音声ライブラリがコミットされていない.gitignore + CI 検査)
3 初回セットアップで、TTS エンジンを取得しない選択をしても Lumi が起動する
4 取得しない選択をした場合、TTS が「未セットアップ」として明示的に表示される(黙って無音にならない)
5 取得の失敗(ネットワーク断 / 検証失敗)が明示的なエラーになり、部分的にインストールされた状態が残らない
6 ユーザーの明示的な選択なしに外部へのネットワークアクセスが発生しない
7 クレジット画面に、エンジン名・音源のクレジット例・モデルライセンス全文・禁止事項が表示される(Phase 0 は静的。§6 の5節がすべて存在すること)
8 エンジンを差し替えると、クレジット表示も使用中のものに追随するProvider.attribution() 経由であることの確認。Phase 1)
10 Core が起動していなくてもクレジット画面が開き、全文が読める(義務を Core の生死に依存させない)
9 Content Pack が voice.toml にクレジット / ライセンス情報を持たない場合、読み込みを拒否する(fail-closed)