-
Notifications
You must be signed in to change notification settings - Fork 120
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
jlabelを導入する #742
jlabelを導入する #742
Conversation
less allocation less unwrap move to full_context_label proper error handling switch change order fix bugs
Co-authored-by: cm-ayf <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ほぼLGTMです!
jlabelの責任の付近はあまり精査していませんが、おおむね問題無いと思いました。元の処理を踏まえつつ、簡潔で良い実装になったと思います。
@Hiroshiba 処理自体は順番とかが変わっているので、方針を含めた確認をお願いできますか?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
プルリクエストありがとうございます!!
ここはTTSの処理の根幹の部分で重要度が高い箇所なのですが、ロジックが変わっている可能性があるのがちょっと気になりました!
もちろんコードを見る感じ変わってないようには見えるのですが、往々にして僕たちはよく見逃してしまう気がします。
念のために動作が変わっていないことを保証するため、extract_full_context_label
のテストを書くのはどうでしょう?
- AccentPhraseが1つだけのもの
- 読点を含まずAccentPhraseが複数あるもの
- 1文字のAccentPhrase
- 変わった音素、無声音素・促音(っ)・撥音(ん)
- ?
あたりがテストケースで網羅されてたら大丈夫かなと思います!
もしよかったらなのですが、今のmainブランチで以下のテキストのAccentPhraseModelsを作成して完全一致するテストを書き、こちらのプルリクエストでも同じテスト回してみるのはどうでしょうか・・・?
テスト用テキスト候補
- いぇ
- んーっ
- これはテストです
- 1、1000、100万、1億?
レビューありがとうございます. 提案いただいた例を使って,mainブランチでテストケースを作成しました. |
@femshima 早速ありがとうございます!!お言葉もありがたいです・・・! ややこしくてすみません! 🙇 でもこの流れはお手数おかけしちゃうので、もしよければで・・・ 🙇 あとこっちはリファクタリングの提案ですが、テストケースでMoraModelインスタンスを作る部分は関数化すればかなりスッキリするかもとか思いました! |
なるほど,そういうことでしたか! |
ところでなんですが、このPRをマージしたら |
#750 のマージ,ありがとうございました. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!!!
お手数おかけしました!
おかげさまで検証記録をしっかり OSS として残せました。とてもよかったと思います!!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!
for文をイテレータからの.collect()
にできそうな気はしますが、まあ気が向いたときに別PRで他の箇所のforと一緒にというのでもよいと思います。とりあえずマージしましょう。
(ちなみに私はIterator<Item = Result<Option<_>, _>>
を.flat_map(Result::transpose)
するやりかたを気に入っています)
内容
jlabelを導入します.
jlabelは,フルコンテキストラベルの構造(struct)と,シリアライザー・パーサーを含むライブラリです.
これを使うことによって,従来の
f6
といった表記ではなく,accent_phrase.accent_phrase_position_backward
のように意味を持った文字列で書けるため,可読性が向上することが期待されます.また,このPRでは
Vec<Label>
から(Utterance
を経由することなく)直接Vec<AccentPhraseModel>
を生成することを試みています.個人的にはunwrapが減り,全体的な見やすさは向上したと考えていますが,他の方からは違って見えるかもしれません.関連 Issue
ref #740
ref #731 (jpreprocessのインターフェースがjlabelであるため)
その他