Conversation
| // ==========================================WARNING============================================== | ||
| // | ||
| // DO NOT BYPASS THIS OR YOU MAY VIOLATE THE ToS OF THE MODELS | ||
| // | ||
| // =============================================================================================== |
There was a problem hiding this comment.
なんか一言書いておいた方がよいかなと思い書いたのですが、これは多分違いますね。
(あと"ToS"じゃない)
書くとしたらどういう書き方がいいんでしょう?
|
なんかわかりませんが、 |
qryxip
left a comment
There was a problem hiding this comment.
なんかわかりませんが、
windows-2019でビルドできなくなるみたいですね… (2022だと多分通る)
解決。
| - if: matrix.os == 'windows-2019' | ||
| name: Install Clang | ||
| uses: KyleMayes/install-llvm-action@v1 | ||
| with: | ||
| version: "16.0" |
There was a problem hiding this comment.
リリース時以外スキップされるwindows-x86-cpu (i686-pc-windows-msvc)に対しても必要。あるとビルドできるし無いとビルドできない。
can_skip_in_simple_testを外して確かめた。
model/sample.vvm
Outdated
There was a problem hiding this comment.
変更:
metas.json
@@ -1,39 +1,45 @@
[
{
"name": "dummy1",
"styles": [
{
"name": "style1",
"id": 0
}
],
"speaker_uuid": "574bc678-8370-44be-b941-08e46e7b47d7",
"version": "0.0.1"
},
{
"name": "dummy2",
"styles": [
{
"name": "style2",
"id": 1
}
],
"speaker_uuid": "dd9ccd75-75f6-40ce-a3db-960cbed2e905",
- "version": "0.0.1"
+ "version": "0.0.1",
+ "supported_features": {
+ "permitted_synthesis_morphing": "ALL"
+ }
},
{
"name": "dummy3",
"styles": [
{
"name": "style3-1",
"id": 302
},
{
"name": "style3-2",
"id": 303
}
],
"speaker_uuid": "5d3d9aa9-88e5-4a96-8ef7-f13a3cad1cb3",
- "version": "0.0.1"
+ "version": "0.0.1",
+ "supported_features": {
+ "permitted_synthesis_morphing": "SELF_ONLY"
+ }
}
]There was a problem hiding this comment.
まーーた何も変更していないのにoutdatedになってる...
There was a problem hiding this comment.
なんかこんな感じになりましたが、まあ動くのでよし?
❯ zipinfo ./model/sample.vvm
Archive: ./model/sample.vvm
Zip file size: 53465028 bytes, number of entries: 5
-rw-a-- 3.0 fat 57149888 bx defN 79-Dec-31 00:00 decode.onnx
-rw-a-- 3.0 fat 286 tx defN 23-Jul-28 05:39 manifest.json
-rw-r--r-- 3.0 unx 819 tx defN 23-Dec-31 02:57 metas.json
-rw-a-- 3.0 fat 53381 bx defN 79-Dec-31 00:00 predict_duration.onnx
-rw-a-- 3.0 fat 30803 bx defN 79-Dec-31 00:00 predict_intonation.onnx
5 files, 57235177 bytes uncompressed, 53463918 bytes compressed: 6.6%| CStr::from_ptr(morphable_targets).to_bytes(), | ||
| )?[&self.target_style]; | ||
|
|
||
| // TODO: スナップショットテストをやる |
There was a problem hiding this comment.
#713 (comment)の話ですが、通常synthesisと一緒にやった方がよいと思うので別PRにしたいと考えています。
# Conflicts: # Cargo.lock # crates/voicevox_core/Cargo.toml
| UseUserDict, | ||
| /// ユーザー辞書の単語のバリデーションに失敗した。 | ||
| InvalidWord, | ||
| /// 要求された機能を話者が持っていない。 |
There was a problem hiding this comment.
todo!感が出るのはあまりよくない気がします。
https://github.com/VOICEVOX/voicevox_engine/blob/f43881bb5f4c6ab3a3a1e5786384d1ae62600696/run.py#L620
エンジンだと「指定されたスタイルペアでのモーフィングはできません」なので、シンプルにForbiddenMorphPairとか?
There was a problem hiding this comment.
そのエラーがエンジンに誕生した経緯を考えると、"forbidden"のような単語が表層に表れることはできるだけ避けた方がよいかなと思いました。
ほどよく煙に巻くことができ、かつ嘘を言わず事実を指し示す塩梅としてはこうなるかなと思った次第です。
@Hiroshiba ちょっと判断をお願いします。エラーメッセージは今こうなっています。
`{speaker_name}` ({speaker_uuid})は以下の機能を持ちません: `{target_speaker_name}` ({target_speaker_uuid})に対するモーフィングThere was a problem hiding this comment.
すみません遅くなりました!!
permitted_synthesis_morphingという名前で、エラーが指定されたスタイルペアでのモーフィングはできませんなんですね
https://github.com/VOICEVOX/voicevox_engine/blob/a4749af418a0e9aa277c86e0c987ac2a42d336a9/voicevox_engine/metas/Metas.py#L46-L49
エンジンに合わせるならエラーは「モーフィングできなかった(Failed?)」ですかねぇ。
(いやそれは抽象度高すぎでしょという感じならコメントください 🙇 )
| case!(TestCase { | ||
| base_style: 0, | ||
| target_style: 0, | ||
| }); | ||
| case!(TestCase { | ||
| base_style: 0, | ||
| target_style: 1, | ||
| }); | ||
| case!(TestCase { | ||
| base_style: 0, | ||
| target_style: 302, | ||
| }); | ||
| case!(TestCase { | ||
| base_style: 0, | ||
| target_style: 303, | ||
| }); | ||
|
|
||
| case!(TestCase { | ||
| base_style: 1, | ||
| target_style: 0, | ||
| }); | ||
| case!(TestCase { | ||
| base_style: 1, | ||
| target_style: 1, | ||
| }); | ||
| case!(TestCase { | ||
| base_style: 1, | ||
| target_style: 302, | ||
| }); | ||
| case!(TestCase { | ||
| base_style: 1, | ||
| target_style: 303, | ||
| }); | ||
|
|
||
| case!(TestCase { | ||
| base_style: 302, | ||
| target_style: 0, | ||
| }); | ||
| case!(TestCase { | ||
| base_style: 302, | ||
| target_style: 1, | ||
| }); | ||
| case!(TestCase { | ||
| base_style: 302, | ||
| target_style: 302, | ||
| }); | ||
| case!(TestCase { | ||
| base_style: 302, | ||
| target_style: 303, | ||
| }); | ||
|
|
||
| case!(TestCase { | ||
| base_style: 303, | ||
| target_style: 0, | ||
| }); | ||
| case!(TestCase { | ||
| base_style: 303, | ||
| target_style: 1, | ||
| }); | ||
| case!(TestCase { | ||
| base_style: 303, | ||
| target_style: 302, | ||
| }); | ||
| case!(TestCase { | ||
| base_style: 303, | ||
| target_style: 303, | ||
| }); |
There was a problem hiding this comment.
https://docs.rs/duplicate/latest/duplicate/macro.duplicate.html
function macroのduplicateを二段重ねすればスッキリできそうな気がします。
There was a problem hiding this comment.
case!はここで定義しているマクロなので、cases!を作ってしまってTestCaseのコンストラクタも関数化(fn testcase(u32, u32) -> TestCase)すればいいように思えます。別PRで。
ただまあ、duplicateも悪くないかも。
内容
@White-Green さんのWhite-Green/WORLD_rsを利用してモーフィング機能を追加します。
permitted_synthesis_morphingの追加関連 Issue
その他