We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
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
要望: OpenJTalk ドメインをモジュールに隔離してリファクタリング
現在の VOICEVOX ENGINE は日本語テキストからアクセント句系列を生成するために OpenJTalk を利用する。 この OpenJTalk は OpenJTalk 特有の Linguistic / Phonetic 表現を有する。 そのため model.py モジュールで定義される VOICEVOX ENGINE ドメインのクラスとは異なる、OpenJTalk ドメインのクラスが定義されている(例: Utterance)。
model.py
Utterance
異なるドメイン同士はモジュールを隔離し、その間をアダプターで結合すると機能的凝集を達成できる。 しかし現在の vocevox_engine は OpenJTalk ドメインのクラスが tts_engine_base.py へ漏れ出している。
vocevox_engine
tts_engine_base.py
voicevox_engine/voicevox_engine/tts_pipeline/tts_engine_base.py
Lines 273 to 276 in 6a2a010
また漏れ出している状況下で同名クラスが両ドメインに定義されている(例: full_context_label.Mora と model.Mora)
full_context_label.Mora
model.Mora
voicevox_engine/voicevox_engine/tts_pipeline/full_context_label.py
Line 107 in 6a2a010
voicevox_engine/voicevox_engine/model.py
Line 10 in 6a2a010
ゆえに都度ドメインを意識・確認する必要があり、メンテ性に改善の余地がある。
このような背景から、OpenJTalk ドメインをモジュールに隔離してリファクタリングすることを提案します。
コードの移動と改名を伴うため、複数ステップ/PR を経て実現する。
SynthesisEngineBase.create_accent_phrases()
extract_full_context_label()
full_context_label.py
0.14.10
The text was updated successfully, but these errors were encountered:
良さそうに感じました!!
なんとなくですが、OpenJTalk側のMoraとかはLabelをつけてMoraLabelにする手もあるかもと思いました。 PhonemeはPhonemeLabelではなくLabelでも良さそう感もあります。ちょっと自信ないですが。。 (こうしてほしいというより、こういう考え方もあるかも、くらいの温度感です!)
Label
MoraLabel
Sorry, something went wrong.
上記 suggest ref #880
Phoneme
Successfully merging a pull request may close this issue.
内容
要望: OpenJTalk ドメインをモジュールに隔離してリファクタリング
現在の VOICEVOX ENGINE は日本語テキストからアクセント句系列を生成するために OpenJTalk を利用する。
この OpenJTalk は OpenJTalk 特有の Linguistic / Phonetic 表現を有する。
そのため
model.py
モジュールで定義される VOICEVOX ENGINE ドメインのクラスとは異なる、OpenJTalk ドメインのクラスが定義されている(例:Utterance
)。異なるドメイン同士はモジュールを隔離し、その間をアダプターで結合すると機能的凝集を達成できる。
しかし現在の
vocevox_engine
は OpenJTalk ドメインのクラスがtts_engine_base.py
へ漏れ出している。voicevox_engine/voicevox_engine/tts_pipeline/tts_engine_base.py
Lines 273 to 276 in 6a2a010
また漏れ出している状況下で同名クラスが両ドメインに定義されている(例:
full_context_label.Mora
とmodel.Mora
)voicevox_engine/voicevox_engine/tts_pipeline/full_context_label.py
Line 107 in 6a2a010
voicevox_engine/voicevox_engine/model.py
Line 10 in 6a2a010
ゆえに都度ドメインを意識・確認する必要があり、メンテ性に改善の余地がある。
このような背景から、OpenJTalk ドメインをモジュールに隔離してリファクタリングすることを提案します。
Pros 良くなる点
Cons 悪くなる点
実現方法
コードの移動と改名を伴うため、複数ステップ/PR を経て実現する。
SynthesisEngineBase.create_accent_phrases()
内のドメインアダプターを関数化・テスト追加extract_full_context_label()
呼び出し・関連 utilities のfull_context_label.py
移植VOICEVOXのバージョン
0.14.10
OSの種類/ディストリ/バージョン
The text was updated successfully, but these errors were encountered: