-
Notifications
You must be signed in to change notification settings - Fork 300
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
DirectML対応版ビルドを追加する #775
Comments
ぜひ協力したいです。 私のPC環境は以下の通りです。 |
VOICEVOXのビルドはGitHub上のリリースを作れば自動ビルドされるようにGitHub Actionsが組まれています。 この既存のGitHub Actionsを元にDirectML版をビルドするように改変すればOKだと思います...! |
DirectML版エンジン(0.12.preview-0)のファイル群を、VOICEVOXのインストールディレクトリに上書きコピーすればいいんですか? |
そんな感じです! DirectML以外でそれをやってくれるのがworkflows/bulid.ymlにあります。 ちなみにこのbuild.ymlは、Github Actionsと呼ばれるもののコードになります。 |
@cyatarow こちら、どこかで詰まっている感じでしょうか👀 |
VOICEVOXをフォークし、リリースを作ってみたのですが上手くいきません。 |
@y-chan |
AssetsとはArtifactsのことでしょうか...? 確認してみましたが、今のところactionsの編集を行わないままビルドしているようなので、DirectML版は含まれていないと思われます。 まず、ここのバージョンを編集し、 voicevox/.github/workflows/build.yml Line 14 in 07f3497
つぎに、以下のあたりをコピー・編集し、DirectML版をビルド・Artifactsとしてアップロードするように変更する必要があります。 voicevox/.github/workflows/build.yml Lines 31 to 35 in 07f3497
voicevox/.github/workflows/build.yml Lines 53 to 66 in 07f3497
voicevox/.github/workflows/build.yml Lines 272 to 277 in 07f3497
voicevox/.github/workflows/build.yml Lines 293 to 304 in 07f3497
voicevox/.github/workflows/build.yml Lines 502 to 507 in 07f3497
voicevox/.github/workflows/build.yml Lines 525 to 538 in 07f3497
voicevox/.github/workflows/build.yml Lines 728 to 738 in 07f3497
後は既存のビルドシステムが良しなにしてくれると思います...! |
@y-chan
具体的に何を書けば良いかわかりません。 |
はい、そのような感じで大丈夫です! |
良さそうです!!! 以下のような記述( # NOTE: If the CPU/GPU builds have the same package name,
# the NSIS installers and the 7z files have duplicate names.
# For Linux, If they have the same product name,
# the AppImages have duplicate names.
# Files with the same name cannot be uploaded to a single GitHub Release,
# so different package/product names should be used for CPU/GPU builds.
- name: Replace package name & version
shell: bash
run: |
# GPU: "name": "voicevox" => "name": "voicevox"
# CPU: "name": "voicevox" => "name": "voicevox-cpu"
"${{ matrix.sed_name }}" -i 's/"name": "voicevox"/"name": "${{ matrix.package_name }}"/' package.json
# "${{ matrix.sed_name }}" -i 's/productName: "VOICEVOX"/productName: "${{ matrix.product_name }}"/' vue.config.js これを以下のようにしていただけると助かります # NOTE: If the CPU/DirectML/GPU builds have the same package name,
# the NSIS installers and the 7z files have duplicate names.
# For Linux, If they have the same product name,
# the AppImages have duplicate names.
# Files with the same name cannot be uploaded to a single GitHub Release,
# so different package/product names should be used for CPU/DirectML/GPU builds.
- name: Replace package name & version
shell: bash
run: |
# GPU: "name": "voicevox" => "name": "voicevox"
# CPU: "name": "voicevox" => "name": "voicevox-cpu"
# DirectML: "name": "voicevox" => "name": "voicevox-directml"
"${{ matrix.sed_name }}" -i 's/"name": "voicevox"/"name": "${{ matrix.package_name }}"/' package.json
# "${{ matrix.sed_name }}" -i 's/productName: "VOICEVOX"/productName: "${{ matrix.product_name }}"/' vue.config.js 変更箇所をピックアップしてみると以下のような感じです - # NOTE: If the CPU/GPU builds have the same package name,
+ # NOTE: If the CPU/DirectML/GPU builds have the same package name,
# the NSIS installers and the 7z files have duplicate names.
# For Linux, If they have the same product name,
# the AppImages have duplicate names.
# Files with the same name cannot be uploaded to a single GitHub Release,
- # so different package/product names should be used for CPU/GPU builds.
+ # so different package/product names should be used for CPU/DirectML/GPU builds.
- name: Replace package name & version
shell: bash
run: |
# GPU: "name": "voicevox" => "name": "voicevox"
# CPU: "name": "voicevox" => "name": "voicevox-cpu"
+ # DirectML: "name": "voicevox" => "name": "voicevox-directml"
"${{ matrix.sed_name }}" -i 's/"name": "voicevox"/"name": "${{ matrix.package_name }}"/' package.json
# "${{ matrix.sed_name }}" -i 's/productName: "VOICEVOX"/productName: "${{ matrix.product_name }}"/' vue.config.js |
あ、もうプルリクエスト頂いちゃっても良いかもと感じました!! |
@y-chan あとはどうすればDirectML版を試せるようになりますか? |
今のところ、GPUモードの表示においてDirectMLとCUDAは区別されていないので、設定のエンジンモードでGPUを選択すればDirectMLによる推論を試せるはずです...! 動くことはこちらで既に確認しているのでcytarowさんの方でも動作確認でき次第、プルリクエストいただければと思います...! |
https://github.com/VOICEVOX/voicevox/pulls に行って「New pull request」を押しても、「Compare changes」と出てきて何をすれば良いかわかりません。 |
#788 |
* Update build.yml * directmlの記述を追加 * DirectMLの記述をさらに追加 * 微調整 #775 (comment) * 1個修正忘れ #788 (review)
こちらでビルドを開始してみました! |
いろいろ確認した感じ、ちゃんとDirectML版+GPUモードのときに早くなっていることを確認できました!!! core側を実装してくださった @Oyaki122 さん、 引き続いてバグに気づいてしまったのですが、どうやら今のバージョンだとGPU/CPUモードを切り替えてもエンジンが再起動しないのか、ちゃんと切り替わらないことがわかりました。 こちらもissueを建ててみたので、もしよかったら・・・! |
commit 9d742ac Author: Hiroshiba <hihokaruta@gmail.com> Date: Mon May 16 01:13:58 2022 +0900 エンジンのバージョンを0.12.4-previewに (VOICEVOX#809) commit 4ffd776 Author: kantas-spike <101532773+kantas-spike@users.noreply.github.com> Date: Sat May 14 04:12:08 2022 +0900 テキストの「読み込み」及び「繋げて書き出し」で「キャラ名(スタイル名)」を利用可能に (VOICEVOX#805) * テキストの「読み込み」及び「繋げて書き出し」で「キャラ名(スタイル名)」を利用可能に * StyleInfo型のstyleNameが未定義時は"ノーマル"をテキスト出力する commit f40f4ad Author: Hiroshiba <hihokaruta@gmail.com> Date: Wed May 11 01:06:36 2022 +0900 キャラ数が多いときにスクロールバーを表示する (VOICEVOX#749) * キャラ数が多いときにスクロールバーを表示する * .transparent-backdropクラス追加、seamless除去 * 追加し忘れ commit c3d67b1 Author: Gray Suitcase <41382894+PickledChair@users.noreply.github.com> Date: Wed May 11 01:04:48 2022 +0900 Fix: LinuxとmacOSの配布パッケージを動作可能にする (VOICEVOX#798) * ビルド後はappDirPathにある.envを読みに行く * .envのパス指定に関するコメントを追加 commit 4157aec Author: kchop <whelmaze@gmail.com> Date: Wed May 11 01:02:47 2022 +0900 書き出しファイル名をカスタマイズ可能にする (VOICEVOX#789) * 設定値の型等に項目追加 * 与えたパターンからファイル名が決定できるようにした * 値を取ってくるのとファイル名のために加工するメソッドを分ける * utilityへ移動 * ツールチップが特定条件でしか出てこなかったのを修正 * コンポーネントの実装 * スタイルの調整 * 重複し得るファイル名指定で一括出力した場合に上書きされないようにする * 日付も挿入可能にする * デバッグ出力の削除 * 連番を必須にしつつコンポーネントを多少リファクタ * テストの修正 * Revert "重複し得るファイル名指定で一括出力した場合に上書きされないようにする" This reverts commit 8a1be6b. * サンプルテキストの修正 * テキストにタグ文字列を含めたとき悪いことができないようにする * 変数名などのリファクタ * 別名つけただけの型を削除 * 表示される文言の調整 * 出力ファイル名に$を使えなくしてマッチ対象の問題をちょっと強引に解決 * nextTickを使う * 日付がyyyymmddじゃなかった問題を修正 * 型定義をシンプルに * styleNameタグにかっこを含めない * 初回に設定ダイアログを開いたときデフォルト値をフォームに入れるように commit fc04a18 Author: madosuki <yurikasamaaikatsu@gmail.com> Date: Mon May 9 02:34:46 2022 +0900 「エンジンを再起動する機能」を機能するように修正 (VOICEVOX#800) * add detectNvidia function * follow to menu bar * remove no longer a variable * run fmt * fix typo * remove utils.ts and some changes in background.ts * change message box type and detail, and change behaviour of setOnLaunchModeItemClicked * recreate package-lock.json using node 12.18.2 * re recreate package-lock.json using node 12.18.2 and npm 7.20.5 * recreate package-lock.json using node 12.18.2 and npm 6.14.5 * recreate package-lock.json using node 12.18.2 and npm 7.20.3 * fix conflict * fix feature of restart engine, add a argument commit 9f8cf04 Author: kantas-spike <101532773+kantas-spike@users.noreply.github.com> Date: Thu May 5 03:13:57 2022 +0900 全テキスト欄の文章をキャラ名とともに一括してテキスト書き出す機能 (VOICEVOX#787) * 全テキスト欄の文章をキャラ名とともに一括してテキスト書き出す機能を追加 * 一括して出力することがわかるようにメニューの文言を修正 * "つなげて書き出す"ことがわかるように関数とメッセージの名称を修正 connectAndExportTextで名称を統一 * メニューハンドラ名 exportTextFile => connectAndExportText * ダイアログ名 exportTextFileWithDialog => connectAndExportTextWithDialog * メッセージ名 EXPORT_TEXT_FILE => CONNECT_AND_EXPORT_TEXT * 未定義判定の誤り修正 * スタイルIDとスピーカー名の対応付けを修正 デフォルトスタイルIDではなく全てのスタイルIDとスピーカー名を対応付ける * コードフォーマット実施漏れを修正 commit 8accdfe Author: nebocco <73807432+nebocco@users.noreply.github.com> Date: Tue May 3 03:07:09 2022 +0900 イントネーション欄の文字横幅をそろえる (VOICEVOX#792) * fix: .q-slider width * fix: centered text in .text-cell * fix: getHoveredClass -> isHovered * fix: .text-cell-inner { z-index: 10; } * fix: CSS commit e1ab04c Author: MT <mt224244@gmail.com> Date: Tue May 3 01:57:29 2022 +0900 .envのDEFAULT_ENGINE_INFOSを改行して定義 (VOICEVOX#794) * ➕ dependenciesにdotenvを追加 * 🔧 DEFAULT_ENGINE_INFOSを改行して定義 * 🩹 開発時にdotenvが動いていないっぽかったので修正 commit 2088b1e Author: MT <mt224244@gmail.com> Date: Thu Apr 28 01:05:40 2022 +0900 lodash.debounceを削除 (VOICEVOX#795) * ♻️ debounce関数はquasarにもあるので、そちらを使用するよう変更 * ➖ lodash.debounceを削除 commit f48c89b Author: madosuki <yurikasamaaikatsu@gmail.com> Date: Wed Apr 20 17:43:30 2022 +0900 タイトルバーのモード表示が固定化されているのを修正 (VOICEVOX#791) * add detectNvidia function * follow to menu bar * remove no longer a variable * run fmt * fix typo * remove utils.ts and some changes in background.ts * change message box type and detail, and change behaviour of setOnLaunchModeItemClicked * recreate package-lock.json using node 12.18.2 * re recreate package-lock.json using node 12.18.2 and npm 7.20.5 * recreate package-lock.json using node 12.18.2 and npm 6.14.5 * recreate package-lock.json using node 12.18.2 and npm 7.20.3 * fix conflict * become computed commit 3641a4b Author: madosuki <yurikasamaaikatsu@gmail.com> Date: Sun Apr 17 13:54:53 2022 +0900 設定に入れたペースト時の挙動を変える項目を「保存」から「操作」に移動 (VOICEVOX#781) * add detectNvidia function * follow to menu bar * remove no longer a variable * run fmt * fix typo * remove utils.ts and some changes in background.ts * change message box type and detail, and change behaviour of setOnLaunchModeItemClicked * recreate package-lock.json using node 12.18.2 * re recreate package-lock.json using node 12.18.2 and npm 7.20.5 * recreate package-lock.json using node 12.18.2 and npm 6.14.5 * recreate package-lock.json using node 12.18.2 and npm 7.20.3 * fix conflict * move splitTextWhenPaste from saving to 操作 * add restore from store feature * change place of process of init splitTextWhenPaste * move init process to Home.vue's onMounted * move process of initial splitTextWhenPaste, at Home.vue to store/index.ts * fix conflict * Revert "fix conflict" This reverts commit 7f6cd34. * refix conflict commit 5a37c37 Author: kchop <whelmaze@gmail.com> Date: Sat Apr 16 20:02:44 2022 +0900 ウィンドウ位置・splitterの位置を記憶できるようにする (VOICEVOX#782) * electron-window-stateのインストール * windowの位置を記憶するように * splitterの位置をとりあえず保存・復元できるようにする * 最大化状態の復元時、vuexのstoreにも反映する manageメソッドの中で最大化状態の復元を行っているので、maximizeハンドラを追加してからでないとstoreのisMaximizedがfalseのままになる * 設定ファイル書き換えで異常値が入り得るケースの対策 * 共通部分の切り出し * 書き込みもawaitしておく * set時の型が間違っていたので修正 * viewから直接window.electronを呼ぶのをやめる * テスト修正 * typo修正 commit 35b00ea Author: 南風 <cyatarow@outlook.com> Date: Sat Apr 16 16:54:46 2022 +0900 DirectMLへの対応 (VOICEVOX#788) * Update build.yml * directmlの記述を追加 * DirectMLの記述をさらに追加 * 微調整 VOICEVOX#775 (comment) * 1個修正忘れ VOICEVOX#788 (review) commit 15763fc Author: Haruki Tazoe <40142697+jdkfx@users.noreply.github.com> Date: Fri Apr 8 22:49:49 2022 +0900 設定画面の項目の詳細情報をヘルプとして表示する (VOICEVOX#780) * パラメータの引き継ぎの詳細表示アイコンを追加 * 書き出し先を固定についての詳細表示アイコンを追加 * 上書き防止の詳細表示アイコンを追加 * txtファイルを書き出しの詳細表示アイコンを追加 * labファイルを書き出しの詳細表示アイコンを追加 * 音声をステレオ化の詳細表示アイコンを追加 * プリセット機能の詳細表示アイコンを追加 * 疑問文を自動調整の詳細表示アイコンを追加 * 利用状況のデータ収集の詳細表示アイコンを追加 * 再生位置を追従の詳細表示アイコンを追加 * エンジンモードの詳細表示アイコンを追加 * 文字コードの詳細表示アイコンを追加 * 分割の挙動の詳細表示アイコンを追加 * 再生デバイスの詳細表示アイコンを追加 * 音声のサンプリングレートの詳細表示アイコンを追加 commit 8aa6157 Author: kchop <whelmaze@gmail.com> Date: Fri Apr 8 22:47:08 2022 +0900 選択中のアクセント句をリセットする機能を追加 (VOICEVOX#779) * 選択中のアクセント句のみリセットするコマンドとショートカットキー追加 * 全体リセットのショートカットキー * エラーが起きたことが分からなくなるのでここでcatchしない commit b641f4b Author: madosuki <yurikasamaaikatsu@gmail.com> Date: Fri Apr 8 22:43:51 2022 +0900 Fix UNLOCK_UI (VOICEVOX#774) * add detectNvidia function * follow to menu bar * remove no longer a variable * run fmt * fix typo * remove utils.ts and some changes in background.ts * change message box type and detail, and change behaviour of setOnLaunchModeItemClicked * recreate package-lock.json using node 12.18.2 * re recreate package-lock.json using node 12.18.2 and npm 7.20.5 * recreate package-lock.json using node 12.18.2 and npm 6.14.5 * recreate package-lock.json using node 12.18.2 and npm 7.20.3 * fix conflict * add process of check whether 0 for state.uiLockCount * add console.warn * add eslint disable line * fix commit be239a1 Author: Hiroshiba <hihokaruta@gmail.com> Date: Fri Apr 8 14:19:23 2022 +0900 .envのエンジンへのパスは\区切りではなく/区切りだとわかりやすくする (VOICEVOX#778) * .envのエンジンへのパスは\ではなく * Update .env.production * Update README.md commit 09c1a18 Author: Hiroshiba <hihokaruta@gmail.com> Date: Tue Apr 5 19:56:39 2022 +0900 テキスト読み込み時にデフォルトスタイルが適用されるように変更 (VOICEVOX#765) commit 64044d1 Author: kchop <whelmaze@gmail.com> Date: Mon Apr 4 00:36:47 2022 +0900 アクセントからイントネーションを再設定する機能 (VOICEVOX#776) * FETCH_MORA_DATAで取ってきたaccentPhrasesでまるっと上書きするactionを追加 * ショートカットキーで実行できるように * 何をリセットするのか明確にする * FETCH_MORA_PITCHを追加してそちらを使うように * デフォルトショートカットキーをRに変更 * FETCH_MORA_DATAを使い音素長もリセットする * 長さも変更することを示すためaction名の変更
内容
VOICEVOXのコア・エンジンにDirectML版ビルドが追加されました! (thx @y-chan @Oyaki122 )
これに伴い、VOICEVOXエディタもDirectML対応版をビルド可能になったので、issue化してみました。
Pros 良くなる点
AMD製GPUなどでも高速に音声合成できるかも?
Cons 悪くなる点
特になし
実現方法
とりあえずDirectML版ビルドを追加するのが良いのかなと思っています。
その他
昔のこちらのissueとも関連がありそうだったのでリンクしてみます
@cyatarow さん、ご興味あったりされますか・・・?👀
The text was updated successfully, but these errors were encountered: