From 295f2ce5b0fc27d3c5772d592ffa4db3f2bf4e57 Mon Sep 17 00:00:00 2001 From: Hiroshiba Date: Tue, 29 Aug 2023 16:53:49 +0900 Subject: [PATCH] =?UTF-8?q?README=E3=81=8C=E3=81=8B=E3=81=AA=E3=82=8A?= =?UTF-8?q?=E5=8F=A4=E3=81=8F=E3=81=AA=E3=81=A3=E3=81=A6=E3=81=84=E3=81=9F?= =?UTF-8?q?=E3=81=AE=E3=81=A7=E5=AE=9F=E6=85=8B=E3=81=AB=E5=90=88=E3=82=8F?= =?UTF-8?q?=E3=81=9B=E3=81=9F=20(#23)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 23 ++++++----------------- 1 file changed, 6 insertions(+), 17 deletions(-) diff --git a/README.md b/README.md index 4d2c6c7..e0e1929 100644 --- a/README.md +++ b/README.md @@ -1,17 +1,16 @@ # vv_core_inference -VOICEVOX のコア内で用いられているディープラーニングモデルの推論コード。 +VOICEVOX のコア内で用いられているディープラーニングモデルの推論コード。VOICEVOXコア用のonnxモデルを制作できる。 サンプルとして配布しているモデルは実際の VOICEVOX のものではなく、ほとんどノイズと変わらない音が生成されます。 含まれている config の値(層の数など)は仮の値で、VOICEVOX で使用されるモデルとは異なることがあります。 ## 公開している意図 -VOICEVOXのコアの軽量版を作りたいためです。 +VOICEVOXコアでの音声合成をより高速・軽量にするための手法の議論や提案を受けられるようにするためです。 -VOICEVOXのディスク容量の軽量化をしたいのですが、時間が取れずにいます。ディスク容量が大きいのは、コア内のディープラーニングモデルの推論にlibtorchを用いているためです。そこで該当箇所のpythonコードを公開し、libtorchの代替となる軽量な手法の議論や提案を受けられるようにしました。 - -技術的なこと以外の要件としては、諸事情により「第三者が簡単にモデルの内容を得られない」ようにする必要があります。pythonコードは容易にコードを推測できるので使えません。とりあえず推論コードが全部C++であれば大丈夫です。(こちら側で暗号化などを足します。) +VOICEVOXコアはこのリポジトリで作ったonnxモデルを用いて計算処理(推論)が行われています。 +onnxモデルをそのまま改良するのはかなり専門的な知識が必要なので、より多くの方に馴染みのあるpytorchのモデルとコードを公開しています。 ## 環境構築 @@ -22,7 +21,7 @@ Python 3.7.2 で開発しました。 3.7 台なら動くと思います。 pip install -r requirements.txt ``` -## モデルのダウンロード +## pytorchモデルのダウンロード ```bash wget https://github.com/Hiroshiba/vv_core_inference/releases/download/0.0.1/model.zip @@ -31,7 +30,7 @@ unzip model.zip ## 実行 -```python +```bash # 生成される音声はほぼノイズで、かろうじて母音がわかる程度だと思います python run.py \ --yukarin_s_model_dir "model/yukarin_s" \ @@ -42,16 +41,6 @@ python run.py \ --texts "おはようございます、こんにちは、こんばんは、どうでしょうか" ``` -## C++のコードを python 側に持ってくる場合 - -Cyhton が便利です。 - -1. [VOICEVOX CORE](https://github.com/Hiroshiba/voicevox_core/tree/f4844efc65b1a4875442091955af84f671e16887)にある[core.h](https://github.com/Hiroshiba/voicevox_core/blob/f4844efc65b1a4875442091955af84f671e16887/core.h)をダウンロード -2. core.h に合うように C++ コードを書く -3. C++ コードから動的ライブラリをビルド -4. あとは[README.md](https://github.com/Hiroshiba/voicevox_core/tree/f4844efc65b1a4875442091955af84f671e16887#%E3%82%BD%E3%83%BC%E3%82%B9%E3%82%B3%E3%83%BC%E3%83%89%E3%81%8B%E3%82%89%E5%AE%9F%E8%A1%8C)にあるように`python setup.py install`などを実行 -5. import して[このように](https://github.com/Hiroshiba/voicevox_core/blob/f4844efc65b1a4875442091955af84f671e16887/example/python/run.py#L21-L25)つなぎこむ - ## モデルをonnxに変換 * `python convert.py --yukarin_s_model_dir "model/yukarin_s" --yukarin_sa_model_dir "model/yukarin_sa" --yukarin_sosoa_model_dir "model/yukarin_sosoa" --hifigan_model_dir "model/hifigan"` でonnxへの変換が可能。modelフォルダ内のyukarin_s, yukarin_sa, yukarin_sosoaフォルダにonnxが保存される。 - `speaker_ids`オプションに指定する数値は自由。どの数値を指定しても生成されるonnxモデルは全ての`speaker_id`に対応しており、値を変えて実行しなおしたり、複数のidを指定したりする必要は無い。