# 全体構成について
## OSS 版と製品版の違い
オープンソースとして公開されている SHAREVOX(OSS 版 SHAREVOX)と、
[ホームページ](https://sharevox.app/)で製品として公開されている SHAREVOX(製品版 SHAREVOX)の違いを紹介します。
一言でいうと、キャラクター(音声ライブラリ)が含まれているか、含まれていないかです。
キャラクターは多くの場合 OSS と相反するライセンスを持っているため、OSS にすることができません。
例えば、キャラクターのライセンスによくある「公序良俗に反する利用の禁止」や「反社会的勢力の排除」は、オープンソースの定義の1つである「利用する分野に対する差別の禁止」と衝突します。
[The Open Source Definition](https://opensource.org/osd)
そのため SHAREVOX では、キャラクターの要素(声や見た目)を含まない OSS 版と、OSS 版をもとに構築してキャラクターの要素を含めた製品版を分けて開発・配布しています。
※ VOICEVOXの画像を利用させていただいています。
## 構成
SHAREVOX は役割に応じた 3 つのモジュール「エディター」「エンジン」「コア」で構成されています。SHAREVOX ソフトウェアはこの 3 つのモジュールを組み合わせて構成されていて、エディターはエンジンを参照し、エンジンはコアを参照しています。
- エディター
- GUI を表示するためのモジュールで、アプリケーションの形で提供しています
- TypeScript や Electron や Vue で構成されています
- リポジトリは [sharevox](https://github.com/SHAREVOX/sharevox) です
- エンジン
- テキスト音声合成 API を公開するためのモジュールで、Web サーバーの形で提供しています
- Python や FastAPI や OpenJTalk で構成されています
- リポジトリは [sharevox_engine](https://github.com/SHAREVOX/sharevox_engine) です
- コア
- 音声合成に必要な計算を実行するためのモジュールで、動的ライブラリの形で提供しています
- Rust や onnxruntime で構成されています
- リポジトリは [sharevox_core](https://github.com/SHAREVOX/sharevox_core) です
## モジュールの独立性
前述の 3 つのモジュール「エディター」「エンジン」「コア」はそれぞれを独立して提供されているので、
一部を SHAREVOX 以外のアプリケーションでも利用できるようになっています。
例えば SHAREVOX のエンジンは Web サーバーの形で提供されているので、
Web リクエストを送信すればテキスト音声合成された結果が得られます。
また、コアは動的ライブラリなので、ソフトウェアに直接組み込むことも可能です。
詳しくは各モジュールのドキュメントをご参照ください。