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

ビルド済みエンジンに Rust 実装のコアを含めるようにする #510

Merged
merged 10 commits into from
Dec 1, 2022

Conversation

PickledChair
Copy link
Member

@PickledChair PickledChair commented Nov 12, 2022

内容

配布するビルド済みエンジンに初めから含めるコアを Rust 実装のものにする変更です。0.14.0-preview.1 のコアを用いています。

関連して、onnxruntime, cuda, cudnn のバージョンを、コアのリポジトリで用意されているダウンロードスクリプトでダウンロードされるバージョンの方に揃えました。

自分のリポジトリで試験的なリリースを作成しました: https://github.com/PickledChair/voicevox_engine/releases/tag/0.14.0-pickledchair-preview.1

関連 Issue

close #481

その他

最後に行われるビルド済みエンジンの動作テストにおいて、最初は Ubuntu と macOS でのテストが失敗していました(ログ:https://github.com/PickledChair/voicevox_engine/actions/runs/3451900628 )。

OS のバージョンを上げると、Ubuntu についてはテストが成功するようになりました(ログ:https://github.blog/changelog/2022-07-20-github-actions-the-macos-10-15-actions-runner-image-is-being-deprecated-and-will-be-removed-by-8-30-22/ )。macOS では引き続き失敗します。

以下に各環境ごとの状況を説明します。

Ubuntu

テスト環境のバージョンを 18.04 から 20.04 に上げると、テストが成功するようになりました。原因はコアのビルド環境のバージョン(ubuntu-latest)と glibc のバージョンが異なるからです。

問題解決のための選択肢が2つあります:

macOS

テスト環境のバージョンには macOS 10.15 が使われていました。これも GitHub Actions のタスクランナーとしては deprecated になっていました cf. https://github.blog/changelog/2022-07-20-github-actions-the-macos-10-15-actions-runner-image-is-being-deprecated-and-will-be-removed-by-8-30-22/ 。テスト失敗の原因は Ubuntu の場合と同様で、コアのビルド環境 (macos-latest。これは macos-12 にあたる)と libc++ のバージョンが異なるからです。

そして、次のバージョンである macOS 11 にバージョンをあげてもテストが失敗します。libc++ の互換性がなくなったのは macos-11macos-12 の間のようです(実際、手元の環境 macOS 12 と 13 ではビルドしたエンジンが起動可能できました)。

問題解決のための選択肢が2つあります:

  • macOS 10.15 (Catalina) および macOS 11 (Big Sur) をサポート対象から外す(macOS 10.15 はサポート対象から外すのが妥当だと思います。一方、macOS 11 は現時点ではまだもう少しサポートされていそうなので、まだ早いかもしれないです)
  • コアのビルド環境のバージョンを macOS 11 に下げる

以上を考えると、個人的には

  • エンジン側の CI では Ubuntu のバージョンを 20.04 に上げる
  • コア側の CI では macOS のバージョンを 11 に下げる

のが選択肢として良いと考えました。その他のご意見がありましたらご提案いただけると幸いです。

@github-actions
Copy link

github-actions bot commented Nov 12, 2022

Coverage Result

Resultを開く
Name Stmts Miss Cover
voicevox_engine/init.py 1 0 coverage-100%
voicevox_engine/acoustic_feature_extractor.py 75 0 coverage-100%
voicevox_engine/dev/synthesis_engine/init.py 2 0 coverage-100%
voicevox_engine/dev/synthesis_engine/mock.py 36 2 coverage-94%
voicevox_engine/full_context_label.py 162 3 coverage-98%
voicevox_engine/kana_parser.py 86 1 coverage-99%
voicevox_engine/model.py 154 7 coverage-95%
voicevox_engine/mora_list.py 4 0 coverage-100%
voicevox_engine/part_of_speech_data.py 5 0 coverage-100%
voicevox_engine/preset/Preset.py 12 0 coverage-100%
voicevox_engine/preset/PresetLoader.py 34 1 coverage-97%
voicevox_engine/preset/init.py 3 0 coverage-100%
voicevox_engine/synthesis_engine/init.py 5 0 coverage-100%
voicevox_engine/synthesis_engine/core_wrapper.py 206 166 coverage-19%
voicevox_engine/synthesis_engine/make_synthesis_engines.py 57 49 coverage-14%
voicevox_engine/synthesis_engine/synthesis_engine.py 133 12 coverage-91%
voicevox_engine/synthesis_engine/synthesis_engine_base.py 67 9 coverage-87%
voicevox_engine/user_dict.py 129 6 coverage-95%
voicevox_engine/utility/init.py 3 0 coverage-100%
voicevox_engine/utility/connect_base64_waves.py 37 0 coverage-100%
voicevox_engine/utility/path_utility.py 26 6 coverage-77%
TOTAL 1237 262 coverage-79%

@Hiroshiba
Copy link
Member

ubuntu
テスト環境のバージョンを 18.04 から 20.04 に上げると、テストが成功するようになりました。原因はコアのビルド環境のバージョン(ubuntu-latest)と glibc のバージョンが異なるからです。

Ubuntu 18.04 をサポート対象から外す
コアのビルド環境のバージョンを Ubuntu 18.04 に下げるかですが、来年2023年の4月までサポートされているubuntu18を切るかどうかで少し迷っています。
個人的には切っちゃっていいかなと思っているのですが、Rust版コアのビルドに詳しい @qryxip さん・ @qwerty2501 さん・ @PickledChair さん的にどう思うかお伺いできると嬉しいです 🙏

今まではGithub Actionsがサポートする一番古いOSでビルドしていたので、コア側もlatestではなく一番古いものを指定するようにするのはありかなと思いました。
ubuntu 18はもうactions上でまともに動かない(ようにされてる)ので切るとして、ubuntu 20を指定するのはどうかなーと。

@Hiroshiba
Copy link
Member

Hiroshiba commented Nov 13, 2022

macOS
テスト失敗の原因は Ubuntu の場合と同様で、コアのビルド環境 (macos-latest。これは macos-12 にあたる)と libc++ のバージョンが異なるからです。

調査ありがとうございます!面白いことがおきました。
まずmacOS10はubuntu18と同様にサポートから外しちゃっても良い気がします!こちらもコア側に詳しい @qryxip さん・ @qwerty2501 さん・ @PickledChair さんの意見も伺いたいです。

そしてmacos-11の方ですが、今確認したところmacos-latestはmacos-11でした。しかし @PickledChair さんのActionsのログを見るとたしかにmacos-12でビルドされたものだというエラーが確認できました。(製品版はgithubリポジトリが別なのでmacos-12を指定してしまったか確認してきたのですがちゃんとlatestでした。)
image

原因は不明ですが、一瞬macos-12がlatestになったのかなと思いました。
・・・latest指定するのやめますかー!!!!!

@Hiroshiba
Copy link
Member

Hiroshiba commented Nov 13, 2022

@PickledChair さんに聞いたのですが、macos-12がlatestなようでした。ありがとうございます!!ドキュメントが違ってそうだったので報告しました。 github/docs#21990

@PickledChair
Copy link
Member Author

PickledChair commented Nov 13, 2022

@Hiroshiba

基本的には最初に提案した

  • エンジン側の CI では Ubuntu のバージョンを 20.04 に上げる
  • コア側の CI では macOS のバージョンを 11 に下げる

という意見ですが、Linux を常用していないので Ubuntu のサポートバージョンの感覚がちょっとよくわかっていません……(macOS の方は、GitHub Actions でビルドするようにしている以上は仕方がないかな……という感じです)

・・・latest指定するのやめますかー!!!!!

賛成です……!(少なくともビルド用の CI に関して。テスト用途の CI は latest を使うままにして良さそうです。)コアの方では latest 指定が多いのでそちらも変更したいですね。
コアの方の Ubuntu のバージョンも 20.04 にした方が良いのでしょうか

@qryxip
Copy link
Member

qryxip commented Nov 13, 2022

ubuntu18

私はLinuxユーザなのですが使ってるのがArch Linuxというローリングリリースのディストロなので、Ubuntu使いの感覚はよくわからないです。デスクトップ用途/サーバー用途で18.04→20.04 (OR 22.04)のアップグレードがどれほど大変なのかによりますが、やったことが無いので...

・・・latest指定するのやめますかー!!!!!

同じく賛成です。

@Hiroshiba
Copy link
Member

Hiroshiba commented Nov 13, 2022

コアの方の Ubuntu のバージョンも 20.04 にした方が良いのでしょうか

コアも20.04が良いと思ってます。
全VOICEVOXリポジトリで、バイナリを配布するビルド(動的ライブラリの同梱をしないタイプ)が含まれる場合、Github Actionsから制約がない中での一番古いOSが良いのかなーと。
(タイポチェックとかはlatestで良さそう)

@qwerty2501
Copy link
Contributor

Ubuntuについてですが、基本的に新しいLTSのバージョンにアップデートするで良いかなと思います。私はそうしてます。
最新のLTSは22.04なので20.04よりも22.04のほうが良いと思います。

@qwerty2501
Copy link
Contributor

ただ Github Actionsのlatestの先が20.04になってるのでまだ20.04でいいかもです

@Hiroshiba
Copy link
Member

Hiroshiba commented Nov 22, 2022

できるかぎりいろんなユーザー環境で動くと嬉しいという思いがあります!
ので、サポート期間内のLTSのubuntuバージョンかつGithub Actionsに制約がないもののうち、一番古いのでビルドするのが良いのかなと思っています。

(まあどちらにせよ今回の対象はubuntu 20.04ですね・・・!)

@qwerty2501
Copy link
Contributor

サポート期間内のLTSのubuntuバージョンかつGithub Actionsに制約がないもののうち、一番古いのでビルドするのが良いのかなと思っています。

UbuntuはWindowsほど互換性を意識しているものではないので、LTSサポート期間中でもバージョンが違ったら動かなくなるというのは普通にありえます。現にいまバージョンを変えようとしている18.04はまだLTSサポート期間中ですがこういった事態になっているのでたとえLTSサポート期間中であってもどこかのタイミングで切り替えなければならないことは留意しておいたほうが良いと思います。
個人的にはubuntu-latestにして実際のバージョン管理はGitHub Actionsにまかせてしまうのもありかもなとは思いました

@qwerty2501
Copy link
Contributor

PRわけるべきだとは思いますが、ダウンロードスクリプト使うようにしたほうが良さそうですね

@Hiroshiba
Copy link
Member

ubuntuのバージョン管理に関して、なるほどです。なんかいつの間にか動かないみたいなのが普通にありえるんですね。

なるべく多くのユーザーに届けたいのはバリューをそう定めているためです。
(ubuntu18切ったのはバリューに背きますが、これはまあメンテナンス性を優先して他に手を回したほうが良さそうという直感的判断です。)

あとlatestを使わずに固定しておくのは、サポートしていると思っていたOSバージョンがいつの間にか切れていた(切っていた)ということを避けられるので、メンテナ的にはバージョン指定のが嬉しいです。
(こちらはOSごとのビルド後テストがあれば解決しそうですが)

@Hiroshiba
Copy link
Member

ダウンロードスクリプト使うようにしたほうが良さそうですね

既にあるダウンロード+ビルド機構をダウンロードスクリプトに合うようように改変するのには時間がかかるので一長一短って感じでしょうか。
エンジン側にissue作っとくのも良いかもですね

@qwerty2501
Copy link
Contributor

issue立てました

@Hiroshiba
Copy link
Member

@PickledChair おまたせしました、ubuntu20などでビルドしたリリースを作ってみました!
https://github.com/VOICEVOX/voicevox_core/releases/tag/0.14.0-preview.2

@PickledChair
Copy link
Member Author

PickledChair commented Nov 24, 2022

@Hiroshiba

@PickledChair おまたせしました、ubuntu20などでビルドしたリリースを作ってみました! https://github.com/VOICEVOX/voicevox_core/releases/tag/0.14.0-preview.2

ありがとうございます! このバージョンのコアを用いた試験的なリリースをまた作ってみました https://github.com/PickledChair/voicevox_engine/releases/tag/0.14.0-pickledchair-preview.2

今回はビルド後のテストも全て通るようになりました https://github.com/PickledChair/voicevox_engine/actions/runs/3539386199/jobs/5942421157
ただし、テスト環境の Ubuntu のバージョンを一旦 20.04 に固定するようにしています。Ubuntu のバージョン指定を ubuntu-latest とすると 20.04 になったり 22.04 になったりすることがわかり、バージョン 22.04 の時は Actions の setup-python との兼ね合いでテストに失敗するためです。この辺りをどうするかはもう少し議論が必要そうでしょうか……?

@qwerty2501

PRわけるべきだとは思いますが、ダウンロードスクリプト使うようにしたほうが良さそうですね

ご指摘ありがとうございます! 当初、初めからダウンロードスクリプトを用いる予定だったのですが、作業量が多そう(問題が起きた時のデバッグが大変そう)だったので、とりあえず単純な変更に留めた上での PR としました( @Hiroshiba さんのアドバイスもありました)。ダウンロードスクリプトを使うようにした方が良いというのは私も同意見です。Issue 作成ありがとうございます……!

@Hiroshiba
Copy link
Member

おー!!

Ubuntu のバージョン指定を ubuntu-latest とすると 20.04 になったり 22.04 になったりすることがわかり、バージョン 22.04 の時は Actions の setup-python との兼ね合いでテストに失敗する

なるほどです。とりあえず20.04で確認できればOKなのかなと思いました!!

Copy link
Member

@Hiroshiba Hiroshiba left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!!!

変更量が少なくていいですね!!

artifact_name: windows-nvidia
# Mac CPU (x64 arch only)
- os: macos-11
architecture: "x64"
voicevox_core_asset_prefix: voicevox_core-osx-universal2-cpu
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

あ~~~ universal2じゃなくなると、どうなるんでしたっけ・・・。

Copy link
Member Author

@PickledChair PickledChair Nov 27, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

特に影響はないはずです!(エンジンの実行ファイル run 自体が x64 向けであることから、M1 Mac においてこれまでも universal バイナリのうち x64 向けの部分が rosetta で翻訳されて使われていたと考えられるため。)強いていえば macOS 向けのビルド済みエンジンのサイズが数百 MB 小さくなるので、利点の方が大きいと思います。

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

M1 Mac向けにエンジンのmacOS arm64バイナリもしくはuniversal2バイナリも今後リリースするようにしますかね...?

PyInstallerのドキュメントを見ると、macOS x64(GitHub Actions)上でuniversal2もしくはarm64単体のバイナリをビルド(クロスコンパイル)できそうな感じがしました。コアのファイルサイズが2倍になってしまうので、いったんarm64単体のクロスコンパイルの方がいいかなと思っています。

PythonがmacOS universal2バイナリの提供を始めたのがPython 3.9からのようなので、Python 3.8からPython 3.9以降に移行する必要があるかもです。

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

エンジンの実行ファイル run 自体が x64 向けであることから、M1 Mac においてこれまでも universal バイナリのうち x64 向けの部分が rosetta で翻訳されて使われていたと考えられるため。

なんと。。。。w
動的ライブラリだからコアはuniversalのほうが使われている・・・とかだったら嬉しいですね・・・。

M1 Mac向けにエンジンのmacOS arm64バイナリもしくはuniversal2バイナリも今後リリースするようにしますかね...?
コアのファイルサイズが2倍になってしまう

やっても良いなと思いました。macだと結構重いという意見もちょくちょく見かけるので、動作が軽くなるのであれば嬉しそうです。macだし(?)、容量<動作かなと!

まあどちらにせよ、エンジン側をuniversal2にできないと、コア側をuniversal2にする意味はあまりなさそうですね。
とりあえずエンジン側とコア側にissue作る・・・?

Copy link
Member Author

@PickledChair PickledChair Nov 28, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

動的ライブラリだからコアはuniversalのほうが使われている・・・とかだったら嬉しいですね・・・。

そうだったら便利だったのですが、実際はそうではないようです……。

一応 universal バイナリの仕組みを大雑把に説明すると、x64 向けのバイナリと arm64 向けのバイナリがくっつけられたバイナリであり、実行環境に合わせて適切な方のバイナリを用いる仕組みになっています(このためバイナリサイズが大きくなります。単純に考えると約2倍のサイズになります。"fat binary" とも呼ばれています)。

M1 Mac において、Rosetta で起動した x64 バイナリが universal バイナリの dylib をロードするときに、dylib 内のどちらのバイナリが用いられるのか気になったので、手元で実験してみました。残念ながら x64 バイナリの方が用いられるようです……(Apple のドキュメントで説明されている方法を参考に、以下のようにどちらのバイナリが実行されているのかを判別する実験を行いました)。

用いられているバイナリの種類の判別実験

検証コード

/* test.c(このコードを universal バイナリの libtest.dylib へとビルドする) */

#include <sys/sysctl.h>
#include <sys/errno.h>

/* 実装されているバイナリがarm64なら0, x64なら1, エラーなら-1を返す */
int processIsTranslated() {
  int ret = 0;
  size_t size = sizeof(ret);
  if (sysctlbyname("sysctl.proc_translated", &ret, &size, NULL, 0) == -1) {
    if (errno == ENOENT)
      return 0;
    return -1;
  }
  return ret;
}
/* main.c(このコードから実行ファイルをビルドする。arm64 バイナリは main, x64 バイナリは main1) */

#include <stdio.h>
#include <dlfcn.h>

int processIsTranslated();

int main() {
  void *handle = dlopen("libtest.dylib", RTLD_LAZY);

  if (handle == 0) {
    fprintf(stderr, "%s\n", dlerror());
    return 1;
  }

  int (*processIsTranslated)(void) = dlsym(handle, "processIsTranslated");
  int processKind = processIsTranslated();
  switch (processKind) {
    case 0: printf("native process\n"); break;
    case 1: printf("translated process\n"); break;
    default: printf("occur error\n"); break;
  }
  return 0;
}

実験結果

備考:M1 Mac 上でビルド&実行

$ lipo -info libtest.dylib
Architectures in the fat file: libtest.dylib are: x86_64 arm64
$ cc -o main -arch arm64 main.c
$ lipo -info main
Non-fat file: main is architecture: arm64
$ ./main
native process
$ cc -o main1 -arch x86_64 main.c
$ lipo -info main1
Non-fat file: main1 is architecture: x86_64
$ ./main1
translated process

M1 Mac向けにエンジンのmacOS arm64バイナリもしくはuniversal2バイナリも今後リリースするようにしますかね...?

PyInstallerのドキュメントを見ると、macOS x64(GitHub Actions)上でuniversal2もしくはarm64単体のバイナリをビルド(クロスコンパイル)できそうな感じがしました。コアのファイルサイズが2倍になってしまうので、いったんarm64単体のクロスコンパイルの方がいいかなと思っています。

PythonがmacOS universal2バイナリの提供を始めたのがPython 3.9からのようなので、Python 3.8からPython 3.9以降に移行する必要があるかもです。

確かに Python インタプリタ自体は universal2 バイナリを提供していますが、サードパーティ製ライブラリについても universal2 対応を行わなければならないだろう、と考えられます。

調べたところ、最もメジャーなライブラリの1つである NumPy ですら universal2 対応の wheel を PyPI や GitHub Releases で提供していないようです。つまり単純に pip install することができません( numpy/numpy#20787 で活発な議論が行われたようですが、コストに見合った需要があるとは考えられないという理由で、universal2 wheel が欲しい開発者自身がツールを使って自分で構築するべき、という結論でとりあえず終わっています。ツールとして delocate-fuse が挙げられています)。

これを踏まえると、原理的には、各依存ライブラリについて x64 向けと aarch64 向けの wheel を取得してツールで universal2 wheel にマージするということを事前に行えば、universal2 対応のエンジンを提供することは可能かもしれません。ただ、見通しとしては作業はある程度長期的なものになると思います:

  • Python 自体のバージョン更新(少なくとも 3.9 以降、理想的には 3.10 以降)
  • 依存ライブラリのバージョン更新(NumPy を含む一部のサードパーティライブラリは、現在のバージョン指定では Apple Silicon Mac ではインストールできない)
  • コアの universal2 バイナリの作成(これは lipo コマンドで可能)
  • 前述の universal2 wheel のマージ処理の構築
  • PyInstaller でのビルド処理における universal2 ビルド対応

(余談ですが、GitHub Actions の Self-hosted runners が Apple Silicon に対応していることがこの記事に書かれていますが、setup-python に問題があり何らかの workaround が必要そうでした。これを用いて universal2 バイナリではなく単純に Apple Silicon 向けのエンジンを用意するという案も考えられます。実行マシンはどうするのか? という疑問はさておき……)

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

確かに Python インタプリタ自体は universal2 バイナリを提供していますが、サードパーティ製ライブラリについても universal2 対応を行わなければならないだろう、と考えられます。

なるほど・・・・・・・・・・・。盲点でした。

universal2対応までの道のりもよくわかりました・・・。なかなかの道のりですね・・・。
ちなみになのですが、x64 向けと aarch64 向けの両方のバイナリを提供するという感じだとだいぶ楽になったりするのでしょうか・・・?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ちなみになのですが、x64 向けと aarch64 向けの両方のバイナリを提供するという感じだとだいぶ楽になったりするのでしょうか・・・?

ビルド環境としてaarch64(Apple Silicon Mac)を使うことができると仮定したとき、Intel Mac 向けに構築したビルド手順をそのまま使いまわせる見込みが大きいと思います。universal ビルドの手順を構築するより単純にかなり手数が減りそうです。

.github/workflows/build.yml Show resolved Hide resolved
@Hiroshiba
Copy link
Member

@aoirint さんもレビュー頂けると心強いです!!

@aoirint
Copy link
Member

aoirint commented Nov 27, 2022

generate_licenses.pyに各ライブラリのバージョンをハードコードしている箇所があって、現状と合っていないものがありそう...?(Pythonの場合、GitHub Actionsでは3.8.10を使っていそうだけれど、3.7.12になっている)

このPRで更新しているONNX Runtime, CUDA Toolkit, cuDNNのバージョンは更新しておきたいかもです。

@PickledChair
Copy link
Member Author

generate_licenses.pyに各ライブラリのバージョンをハードコードしている箇所があって、現状と合っていないものがありそう...?(Pythonの場合、GitHub Actionsでは3.8.10を使っていそうだけれど、3.7.12になっている)

このPRで更新しているONNX Runtime, CUDA Toolkit, cuDNNのバージョンは更新しておきたいかもです。

本当ですね……とりあえずご提案の通り、generate_licenses.py における ONNX Runtime, CUDA Toolkit, cuDNN のバージョンを更新しました。確認したところ、CUDA Toolkit, cuDNN についてはライセンスファイルの内容も更新されていたので、新しいものに差し替えました。

@Hiroshiba
Copy link
Member

おお・・・ライセンス部分まで考えが及んでいませんでした。ありがとうございます 🙇‍♂️

Copy link
Member

@aoirint aoirint left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!!!

@aoirint
Copy link
Member

aoirint commented Nov 28, 2022

Pythonバージョンを見ていて気付いたのですが、

Python 3.8のリリースサイクルを見ると、バイナリ更新(新しいバグ修正バージョンの公式バイナリがリリースされる期間)が2021年5月の3.8.10で終わっていて、Windows向けビルドのPythonバージョンが古い原因になっていそうかもです(もしかすると、サードパーティのPythonバイナリ=actions/setup-pythonではPython Foundationが署名できないから...?)。

Python 3.9も同じくバイナリ更新が2022年5月で終わっているようです。
とすると、2023年5月にバイナリ更新が終わるPython 3.10、もしくは2024年5月にバイナリ更新が終わると思われるPython 3.11に移行するべき時期なのかもしれません...

@Hiroshiba
Copy link
Member

あー、サポート期限はもっと長いけど、バイナリリリースはかなり短いんですね・・・。
pyinstallerとかが対応してる中で新しいのに移動しても良いかもですね!

@Hiroshiba Hiroshiba merged commit ed3748c into VOICEVOX:master Dec 1, 2022
@Hiroshiba
Copy link
Member

Hiroshiba commented Dec 1, 2022

マージします!リリースも作ってみようと思います 🙏
https://github.com/VOICEVOX/voicevox_engine/releases/tag/0.14.0-preview.3
PRありがとうございました!!!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

ビルド済みエンジンがRust版コアを使うように変更する
5 participants