Skip to content
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

TextAnalyzer traitにstring->AccentPhraseModel[]を移動 #740

Merged
merged 8 commits into from
Feb 17, 2024
Merged

TextAnalyzer traitにstring->AccentPhraseModel[]を移動 #740

merged 8 commits into from
Feb 17, 2024

Conversation

eyr1n
Copy link
Contributor

@eyr1n eyr1n commented Feb 1, 2024

内容

#730 で話されている,TextAnalyzer interfaceを実装するための準備として,Rust側にTextAnalyzer traitを生やしました.

また,

  • AquesTalk風記法からAccentPhraseの配列を生成するTextAnalyzer
  • OpenJtalkからAccentPhraseの配列を生成するTextAnalyzer

を実装するためにSynthesizerからコードを移動し,これら2つのTextAnalyzerをSynthesizerに持たせました.

Issue全体の実装をする(_kana系APIとOpenJTalkの統合)を行うと,Synthesizerを触る部分全体にAPI変更が波及してしまうため,外から見たAPIの変更は現時点では全く行っていません.

関連 Issue

#730

その他

@eyr1n eyr1n mentioned this pull request Feb 1, 2024
3 tasks
@eyr1n
Copy link
Contributor Author

eyr1n commented Feb 1, 2024

現時点で懸念しているのが,果たして一つのSynthesizerインスタンスに対してKanaAnalyzerとOpenJTalkAnalyzerが排他でいいのか?ということです.

今の段階ではそもそもSyhtnesizer内に二つのTextAnalyzerを持たせているので問題ありませんが,今後実装するであろうSynthesizer<OpenJTalkAnalyzer>によって生成されたインスタンスでAquesTalk風記法(..._kana系API)が使えなくても良いのかどうかが疑問です.

@eyr1n
Copy link
Contributor Author

eyr1n commented Feb 1, 2024

pub struct Synthesizer<T: TextAnalyzer> {
    pub(super) status: Status<InferenceRuntimeImpl, InferenceDomainImpl>,
    text_analyzer: T,
    use_gpu: bool,
}

上記の形での実装もすでに行っていますが,#740 (comment) について検討してから別でPRを出すつもりです.

@qryxip
Copy link
Member

qryxip commented Feb 1, 2024

stateArcに包んでSynthesizerをclonableにし、Synthesizer::with_text_analyzer: fn(&self, T2) -> Synthesizer<T2>みたいなのを用意すればstatusを共有したまま併用できるかと思います。

@eyr1n
Copy link
Contributor Author

eyr1n commented Feb 2, 2024

返信ありがとうございます。
たしかに共有してしまえば良さそうですね、APIに変更が生じるのでまた別のPRとして現在作業中のものを出してみます。

@femshima femshima mentioned this pull request Feb 8, 2024
crates/voicevox_core/src/synthesizer.rs Outdated Show resolved Hide resolved
crates/voicevox_core/src/text_analyzer.rs Outdated Show resolved Hide resolved
Copy link
Member

@qryxip qryxip left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

CC: @femshima, @cm-ayf

Copy link
Member

@Hiroshiba Hiroshiba left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!!!

@Hiroshiba Hiroshiba merged commit 5d13857 into VOICEVOX:main Feb 17, 2024
31 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants