-
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
Improve: Java APIを色々改善 #673
Conversation
* @return メタ情報。 | ||
*/ | ||
@Nonnull | ||
public VoiceModel.SpeakerMeta[] getMetas() { |
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.
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.
JavaではgetMetas
という名前は、「metas
というメンバ変数が内部にあり、それに対するgetter」という意味であるのが一般的かと思います。
この命名をするのであれば、VoiceModel
のようにSpeakerMeta[] metas
を持って随時更新し、それに対するgetterという形の定義にした方がよいと思います。
(ちなみに私の感覚だとpublic final
というgetterを介さないメンバ変数の露出は、Javaの慣習に反するのではと思っています。)
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.
たしかにgetMetasはmetasプロパティの単なるgetterじゃないので直感的じゃないかもと思いました。
audio_query辺りと一緒だから命名規則もこれに合わせておくと直感的かも。
ということで変更お願いできると・・・!! @sevenc-nanashi
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.
#metas()
にしました(という解釈で合ってるのかな)
val vvm = VoiceModel(vvmPath) | ||
synthesizer.loadVoiceModel(vvm) |
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.
ここだけPython版と変数名違いそうですね!
modelでもvvmでもどっちでも良さそうですが、揃えておくと後からメンテナンス簡単かなと!
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.
このPRとは関係が薄いですが、VVPPがvvpp
だったりするなら、VoiceModel
もいっそのことVvm
にするのはありなんじゃないかと思います。コアの実装的にもONNXファイルと紛らわしいですし。
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.
たしかにこのプルリクエストと関係が薄いかもです。
有用な議論だと思うので、あとから参照しやすいように移動しますか!
#545 (comment)
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.
色々と面倒なのでJava APIをKotlinで書きなおしても良いかも
ちょっと調べてみた感じ、Cの構造体に該当するものの定義が簡単だったり、null安全だったりするんですね。
でもまあkotlinならではの大変さとかもあると思う(ビルド周りとかで)ので、一長一短ということから個人的には賛成でも反対でもない(進めもしないが止めもしない)くらいの気持ちです!
Javaの有識者に聞いてもいいかも。
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.
コード読みました!example良い感じですね!!
Java exampleのREADMEもお願いしても良いでしょうか 🙇
もしよければその中に、自動生成された?っぽいgradlew.batなどを生成する方法もお願いできれば・・・!
(メンテナンスの参考になるので)
やろうと思えばできる(極端な話、Scalaの機能マシマシで実装されたライブラリをKotlinで呼ぶといったこともおそらくできる)とは思いますが、ビルドの話を抜きでも若干反対寄りです。 結局Javaとしてのシグネチャを考えつつ実装することになると思いますし、それなら現状のJava 8にLombokとかを突っ込んでましにする、という方向を模索する方が苦しくならないのではと思っています。 |
なるほど。 |
あ、サンプルがKotlinなのは良いと思います。 |
gradlew.batはgradle init(poetry new的な)で生成されるので書くとこがないんですよね…(単体を生成する方法を知らないのもある) |
なるほどです! |
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!!!
crates/voicevox_core_java_api/lib/src/main/java/jp/hiroshiba/voicevoxcore/VoicevoxCoreInfo.java
Outdated
Show resolved
Hide resolved
crates/voicevox_core_java_api/lib/src/main/java/jp/hiroshiba/voicevoxcore/VoicevoxCoreInfo.java
Outdated
Show resolved
Hide resolved
レビューを反映しました。 |
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!
内容
#getMetas
と#isGpuMode
を足します。関連 Issue
その他
サンプルはKotlinで書きました(今はAndroid版しか提供してないので)
色々と面倒なのでJava APIをKotlinで書きなおしても良いかも(KotlinのライブラリはJavaから呼べるはずなので)