VOICEVOX の音声合成コア。
Releases にビルド済みのコアライブラリ(.so/.dll/.dylib)があります。
(エディターは VOICEVOX 、 エンジンは VOICEVOX ENGINE 、 全体構成は こちら に詳細があります。)
configure.pyを用いて環境構築を行う場合
python configure.py
pip install -r requirements.txt
pip install .
configure.pyを使わない場合
コアを利用するにはまず環境に対応した ONNXRUNTIME をダウンロードし、リポジトリにonnxruntime
というディレクトリ名で展開します。
動作確認済みバージョン
- ONNX Runtime v1.9.0/v1.9.1
Windows, Linux上でnvidia製GPUを使用してCUDAを用いた合成を行う場合、CUDA 11.1,CUDNNのインストールに加えてGPU に対応した ONNXRUNTIME のダウンロードが必要です。
Windows上でDirectX12に対応したGPUを使用してDirectMLを用いた合成を行う場合、DirectML及びDirectMLに対応したONNXRUNTIME のダウンロードが必要です。
DirectMLは.nupkgファイルで提供されますが、拡張子を.zipに変更した上で、リポジトリにdirectml
というディレクトリ名で展開してください。
Raspberry Pi 用の ONNX Runtime は以下からダウンロードできます。
動作には、libgomp のインストールが必要です。
まず Releases からコアライブラリが入った zip をダウンロードしておきます。
- まずReleasesからダウンロードしたコアライブラリのzipを、
release
というディレクトリ名で展開する。 core/lib/
ディレクトリを作成する。onnxruntime/lib
にある全てのファイルと、release/
にあるcore.h
をcore/lib/
にコピーする。release/
内にある、自身の環境に対応したランタイムライブラリをcore/lib/
にコピーし、名前をWindowsならcore.dll
に、linuxならlibcore.so
に、Macならlibcore.dylib
に変更する。- (x64版WindowsでCPU版ライブラリを使いたいなら
core_cpu_x64.dll
をcore.dll
に変更)
- (x64版WindowsでCPU版ライブラリを使いたいなら
- 以下のコマンドを実行する。
# インストールに必要なモジュールのインストール
pip install -r requirements.txt
# pythonモジュールのインストール
pip install .
nvidia製GPUを搭載したWindows, Linux PCではCUDAを用いた合成が可能です。 CUDAを使用する場合、CUDA 11.1 と CUDNN をインストールした上で、環境構築時、上記例の代わりに
python configure.py --use_cuda
を実行する必要があります
DirectX12に対応したGPUを搭載したWindows PCではDirectMLを用いた合成が可能です DirectMLを使用する場合、環境構築時、上記例の代わりに
python configure.py --use_directml
を実行する必要があります
MacOSの場合、CUDA の macOS サポートは現在終了しているため、VOICEVOX CORE の macOS 向けコアライブラリも CUDA, CUDNN を利用しない CPU 版のみの提供となります。
Raspberry PiなどのarmhアーキテクチャPCでの使用では、環境構築時に https://github.com/VOICEVOX/onnxruntime-builder/releases にある独自ビルドのonnxruntimeを使用する必要があります。 そのため、環境にあったファイルのURLを取得し、上記例の代わりに
python configure.py --ort_download_link <独自ビルドonnxruntimeのURL>
を実行してください
また、動作には、libgomp のインストールが必要です。
sudo apt install libgomp1
cd example/python
# サンプルコード実行のための依存モジュールのインストール
pip install -r requirements.txt
python run.py \
--text "これは本当に実行できているんですか" \
--speaker_id 1
# 引数の紹介
# --text 読み上げるテキスト
# --speaker_id 話者ID
# --use_gpu GPUを使う
# --f0_speaker_id 音高の話者ID(デフォルト値はspeaker_id)
# --f0_correct 音高の補正値(デフォルト値は0。+-0.3くらいで結果が大きく変わります)
サンプルコードを実装された際はぜひお知らせください。こちらに追記させて頂きます。
core.h をご参照ください。
Releases にあるビルド済みのコアライブラリを利用せず、自分で一からビルドする場合こちらを参照してください。ビルドにはONNXRUNTIMEに加えてCMake 3.16以上が必要です。
modelフォルダにあるonnxモデルはダミーのため、ノイズの混じった音声が出力されます
# ソースコード取得
git submodule update --init
# C++モジュールのビルド
mkdir build
cd build
# cmake .. 時のオプション
# -DONNXRUNTIME_DIR=(パス) ダウンロードしたonnxruntimeが別フォルダにある時指定
# -DDIRECTML=ON DirectMLを使用する場合指定
# -DDIRECTML_DIR=(パス) ダウンロードしたDirectMLが別フォルダにある時指定
cmake ..
cmake --build . --config Release
cmake --install .
cd ..
#(省略可能) C++のテスト実行
cmake -S . -B test_build -DBUILD_TEST=YES
cmake --build test_build
ctest --test-dir test_build --verbose
# (省略可能) pythonモジュールのテスト
python setup.py test
# pythonモジュールのインストール
pip install .
cd example/python
python run.py \
--text "これは本当に実行できているんですか" \
--speaker_id 1
VOICEVOX ENGINE SHARP @yamachu ・・・ VOICEVOX ENGINE の C# 実装
Node VOICEVOX Engine @y-chan ・・・ VOICEVOX ENGINE の Node.js/C++ 実装
ソースコードのライセンスは MIT LICENSE です。
Releases にあるビルド済みのコアライブラリは別ライセンスなのでご注意ください。