Coder Social home page Coder Social logo

koshian2 / vv_core_inference Goto Github PK

View Code? Open in Web Editor NEW

This project forked from hiroshiba/vv_core_inference

0.0 1.0 0.0 18 KB

VOICEVOXのコア内で用いられているディープラーニングモデルの推論コード

License: MIT License

Python 100.00%

vv_core_inference's Introduction

vv_core_inference

VOICEVOX のコア内で用いられているディープラーニングモデルの推論コード。

サンプルとして配布しているモデルは実際の VOICEVOX のものではなく、ほとんどノイズと変わらない音が生成されます。 含まれている config の値(層の数など)は仮の値で、VOICEVOX で使用されるモデルとは異なることがあります。

公開している意図

VOICEVOXのコアの軽量版を作りたいためです。

VOICEVOXのディスク容量の軽量化をしたいのですが、時間が取れずにいます。VOICEVOXのディスク容量が大きいのは、コア内のディープラーニングモデルの推論にlibtorchを用いているためです。そこで該当箇所のpythonコードを公開し、libtorchの代替となる軽量な手法の議論や提案を受けられるようにしました。

技術的なこと以外の要件としては、諸事情により「第三者が簡単にモデルの内容を得られない」ようにする必要があります。pythonコードは容易にコードを推測できるので使えません。とりあえず推論コードが全部C++であれば大丈夫です。(こちら側で暗号化などを足します。)

環境構築

Python 3.7.2 で開発しました。 3.7 台なら動くと思います。

# 5分くらいかかります
pip install -r requirements.txt

モデルのダウンロード

wget https://github.com/Hiroshiba/vv_core_inference/releases/download/0.0.1/model.zip
unzip model.zip

実行

# 生成される音声はほぼノイズで、かろうじて母音がわかる程度だと思います
python run.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" \
  --speaker_ids 5 \
  --texts "おはようございます、こんにちは、こんばんは、どうでしょうか"

C++のコードを python 側に持ってくる場合

Cyhton が便利です。

  1. VOICEVOX COREにあるcore.hをダウンロード
  2. core.h に合うように C++ コードを書く
  3. C++ コードから動的ライブラリをビルド
  4. あとはREADME.mdにあるようにpython setup.py installなどを実行
  5. import してこのようにつなぎこむ

ファイル構造

  • run.py ・・・ エントリーポイント
  • vv_core_inference ・・・ いろいろな処理
    • forwarder.py
      • VOICEVOX と同じインターフェースと処理。
      • このクラスを一切変更することなく、3 つのforwarderを与えられると完璧
    • make_yukarin_s_forwarder.py
      • 音素ごとの長さを求めるモデルyukarin_s用のforwarderを作る
    • make_yukarin_sa_forwarder.py
      • モーラごとの音高を求めるモデルyukarin_sa用のforwarderを作る
    • make_yukarin_sosoa_forwarder.py
      • make_decode_forwarderに必要なyukarin_sosoa用のforwarderを作る
    • make_decode_forwarder.py
      • 音声波形生成用のforwarderを作る
    • acoustic_feature_extractor.py
      • 音素情報やリサンプリング手法などが入っている。ディープラーニングとは関係ない。
    • full_context_label.py
      • フルコンテキストラベルの処理が入っている。ディープラーニングとは関係ない。
    • utility.py
      • 便利関数が多少ある

vv_core_inference's People

Contributors

hiroshiba avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.