Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

整理: CONTRIBUTING.md 明確化 #1130

Merged
merged 13 commits into from
May 4, 2024
132 changes: 79 additions & 53 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,17 +4,17 @@ TODO: 重複部分を省く

## 目次

* [インストール](#インストール)
* [スクリプトの使い方](#スクリプトの使い方)
* [実行](#実行)
* [テスト](#テスト)
* [ビルド](#ビルド)
* [コードフォーマット](#コードフォーマット)
* [タイポチェック](#タイポチェック)
* [APIドキュメントの確認](#APIドキュメントの確認)
* [依存関係](#依存関係)
* [ユーザー辞書の更新について](#ユーザー辞書の更新について)
* [Issue](#issue)
- [環境構築](#環境構築)
- [スクリプトの使い方](#スクリプトの使い方)
- [実行](#実行)
- [テスト](#テスト)
- [ビルド](#ビルド)
- [コードフォーマット](#コードフォーマット)
- [タイポチェック](#タイポチェック)
- [API ドキュメントの確認](#APIドキュメントの確認)
- [依存関係](#依存関係)
- [ユーザー辞書の更新について](#ユーザー辞書の更新について)
- [Issue](#issue)

## 貢献者の方へ

Expand All @@ -23,87 +23,110 @@ Issue 側で取り組み始めたことを伝えるか、最初に Draft プル

[VOICEVOX 非公式 Discord サーバー](https://discord.gg/WMwWetrzuh)にて、開発の議論や雑談を行っています。気軽にご参加ください。

## インストール
## 環境構築

`Python 3.11.3` を用いて開発されています。
インストールするには、各 OS ごとの C/C++ コンパイラ、CMake が必要になります。

<!-->
このプロジェクトでは
まずリポジトリをフォークします。
次に以下の手順でローカル環境を構築します。

```bash
# レポジトリのクローン
git clone "https://github.com/<your_user_name>/voicevox_engine.git"
cd ./voicevox_engine

# プルリクエスト用ブランチの作成
git switch -c "<your_branch_name>"

# 実行・開発・テスト環境のインストール
python -m pip install -r requirements.txt -r requirements-dev.txt -r requirements-test.txt
```

<!-- このプロジェクトでは
* `Python 3.11.3`
* 依存ライブラリ
* cmake
* libsndfile1
* (実際に動かす時のみ)voicevox製品版
を使います。
<-->
* (実際に動かす時のみ)製品版 VOICEVOX
を使います。 -->

#### セットアップ
以下のコマンドで使用できるようになります。
次に音声ライブラリを準備します。
OSS 版 VOICEVOX ENGINE は製品版 VOICEVOX の音声ライブラリを含んでいません。
これら音声ライブラリは、利用規約を遵守の上、以下のいずれかの手順で導入できます。これにより「ずんだもん」等の製品版キャラクター音声を合成できます。
なお、OSS 版 VOICEVOX ENGINE 単体でもモック利用により機能制限版の音声合成が可能です。その場合、音声ライブラリの導入は不要です。

```bash
git clone https://github.com/VOICEVOX/voicevox_engine.git
python -m pip install -r requirements.txt -r requirements-dev.txt -r requirements-test.txt
```
### 製品版 VOICEVOX を用いた音声ライブラリの導入

実際に動かす場合はvoicevox製品版をダウンロードする必要があります。
製品版 VOICEVOX を導入することで音声ライブラリを利用できます。
[VOICEVOX 公式ホームページ](https://voicevox.hiroshiba.jp/)に従いソフトウェアを導入してください。

* VERSION
voicevox_coreのバージョン
* OS
windowsやlinuxなどのOS
* ARCHITECTURE
x64やarm64などのCPUアーキテクチャ
* PROCESSOR
cpuかgpuか
### 製品版 VOICEVOX CORE を用いた音声ライブラリの導入

を指定してダウンロードして環境変数をセットしてください。
製品版 VOICEVOX CORE を導入することで音声ライブラリを利用できます。
以下のコマンドにより必要なファイルが準備されます。

```bash
# CORE のバリエーション指定変数を定義する(例として x64 Linux マシン向け VOICEVOX CORE v0.15.0 CPU版)
VERSION="0.15.0"; OS="linux"; ARCHITECTURE="x64"; PROCESSOR="cpu";

# CORE をダウンロード・展開する
CORENAME="voicevox_core-${OS}-${ARCHITECTURE}-${PROCESSOR}-${VERSION}"
curl -L "https://github.com/VOICEVOX/voicevox_core/releases/download/${VERSION}/${CORENAME}.zip" -o "${CORENAME}.zip"
unzip "${CORENAME}.zip"
```
curl -L https://github.com/VOICEVOX/voicevox_core/releases/download/0.14.3/voicevox_core-${OS}-${arch}-${processor}-${}.zip -o voicevox_core
unzip voicevox_core.zip
VOICEVOX_DIR=voicevox_core
```

CORE のバリエーション変数は以下の値を指定できます。

- `VERSION`: voicevox_core のバージョン (例として `0.15.0`)
- `OS`: OS 種別 (`windows` | `osx` | `linux`)
- `ARCHITECTURE`: CPU アーキテクチャ (`x86` | `x64` | `arm64`)
- `PROCESSOR`: プロセッサ種別 (`cpu` | `gpu` | `cuda` | `directml`)

最新のリリースは以下にあります。
https://github.com/VOICEVOX/voicevox_core/releases/latest


## スクリプトの使い方
tarepan marked this conversation as resolved.
Show resolved Hide resolved

### 実行

VOICEVOX ENGINE を実行することで HTTP サーバーが立ち上がります。
tarepan marked this conversation as resolved.
Show resolved Hide resolved
コマンドライン引数の詳細は以下のコマンドで確認してください。

```bash
python run.py --help
```

製品版 VOICEVOX でサーバーを起動
#### 音声ライブラリに製品版 VOICEVOX を利用して実行

```bash
VOICEVOX_DIR="C:/path/to/voicevox" # 製品版 VOICEVOX ディレクトリのパス
python run.py --voicevox_dir=$VOICEVOX_DIR
```

<!-- 差し替え可能な音声ライブラリまたはその仕様が公開されたらコメントを外す
#### 音声ライブラリに製品版 VOICEVOX CORE を利用して実行

```bash
# 音声ライブラリを差し替える
VOICELIB_DIR="C:/path/to/your/tts-model"
python run.py --voicevox_dir=$VOICEVOX_DIR --voicelib_dir=$VOICELIB_DIR
VOICELIB_DIR_1="C:/path/to/core_1"; VOICELIB_DIR_2="C:/path/to/core_2"; # 製品版 VOICEVOX CORE ディレクトリのパス
python run.py --voicelib_dir=$VOICELIB_DIR_1 --voicelib_dir=$VOICELIB_DIR_2
```
-->

モックでサーバー起動
#### 音声ライブラリ無しで実行

```bash
python run.py --enable_mock
```

ログをUTF8に変更
#### ログを UTF8 に変更

```bash
python run.py --output_log_utf8
# もしくは
VV_OUTPUT_LOG_UTF8=1 python run.py
```

### テスト

```bash
python -m pytest
```
Expand All @@ -116,7 +139,7 @@ python -m pytest --snapshot-update

### ビルド

この方法でビルドしたものは、リリースで公開されているものとは異なります。 また、GPUで利用するにはcuDNNやCUDA、DirectMLなどのライブラリが追加で必要となります
この方法でビルドしたものは、リリースで公開されているものとは異なります。 また、GPU で利用するには cuDNN や CUDA、DirectML などのライブラリが追加で必要となります

```bash
OUTPUT_LICENSE_JSON_PATH=licenses.json \
Expand All @@ -129,7 +152,7 @@ pyinstaller --noconfirm run.spec
CORE_MODEL_DIR_PATH="/path/to/core_model" \
LIBCORE_PATH="/path/to/libcore" \
LIBONNXRUNTIME_PATH="/path/to/libonnxruntime" \
pyinstaller --noconfirm run.spec
pyinstaller --noconfirm run.spec
```

#### Github Actions でビルド
Expand Down Expand Up @@ -161,34 +184,36 @@ typos

でタイポチェックを行えます。 もし誤判定やチェックから除外すべきファイルがあれば [設定ファイルの説明](https://github.com/crate-ci/typos#false-positives) に従って`_typos.toml`を編集してください。

### APIドキュメントの確認
### API ドキュメントの確認

API ドキュメント(実体はdocs/api/index.html)は自動で更新されます。
API ドキュメント(実体は docs/api/index.html)は自動で更新されます。
次のコマンドで API ドキュメントを手動で作成することができます。

```bash
PYTHONPATH=. python build_util/make_docs.py
```


### 依存関係

[Poetry](https://python-poetry.org/) を用いて依存ライブラリのバージョンを固定しています。 以下のコマンドで操作できます:
[Poetry](https://python-poetry.org/) を用いて依存ライブラリのバージョンを固定しています。 以下のコマンドで操作できます

パッケージを追加する場合

```bash
poetry add `パッケージ名`
poetry add --group dev `パッケージ名` # 開発依存の追加
poetry add --group test `パッケージ名` # テスト依存の追加
```

パッケージをアップデートする場合

```bash
poetry update `パッケージ名`
poetry update # 全部更新
```

requirements.txtの更新
requirements.txt の更新

```bash
poetry export --without-hashes -o requirements.txt # こちらを更新する場合は下3つも更新する必要があります。
poetry export --without-hashes --with dev -o requirements-dev.txt
Expand Down Expand Up @@ -229,6 +254,7 @@ PYTHONPATH=. python build_util/make_docs.py
| DOCKERHUB_TOKEN | [Docker Hub アクセストークン](https://hub.docker.com/settings/security) |

## Issue

不具合の報告、機能要望、改善提案、質問は<a href="https://github.com/VOICEVOX/voicevox_engine/issues/new">Issue</a>の方に報告してください。

## ライセンス
Expand Down