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

refactor: voicevox_engine ディレクトリへ features ディレクトリを追加 #1279

Open
tarepan opened this issue May 19, 2024 · 2 comments
Labels
機能向上 状態:設計 設計をおこなっている状態 要議論 実行する前に議論が必要そうなもの 非アクティブ

Comments

@tarepan
Copy link
Contributor

tarepan commented May 19, 2024

内容

概要: voicevox_engine ディレクトリへ features ディレクトリを追加するリファクタリングを提案します

voicevox_engine 下に置かれているモジュール群は以下の 2 種類の役割に大別できる:

  • サーバー(例: API定義、ミドルウェア)
  • feature(例: TTS、辞書)

サーバー関連モジュールは app ディレクトリ下に集約されているが、各 feature モジュールは voicevox_engine ディレクトリ下に直接配置されている。

voicevox_engine/ を初めて覗く開発者の多くは「API がどう提供されているか」か「feature はどう実装されているか」のいずれかが知りたいと整理するならば、voicevox_engine の直下には appfeatures が並んでいるのが望ましい。

このような背景から、voicevox_engine ディレクトリへ features ディレクトリを追加するリファクタリングを提案します。

次のディレクトリ構造が好ましいと考えています:

  • run.py
  • ...
  • voicevox_engine/
    • app/
      • application.py
      • routers/
        • morphing.py
        • tts_pipeline.py
        • ...
    • features/
      • morphing.py
      • tts_pipeline/
        • ...
      • ...

Pros 良くなる点

  • 見通し改善

Cons 悪くなる点

無し

実現方法

  • ディレクトリ構造議論
  • 実装

VOICEVOXのバージョン

0.19.0

@tarepan tarepan added 機能向上 要議論 実行する前に議論が必要そうなもの 状態:必要性議論 必要性を議論している状態 labels May 19, 2024
@Hiroshiba
Copy link
Member

Hiroshiba commented May 24, 2024

なるほどです!

featuresに分離しても違和感はそのまま残ってる気がしました。
雰囲気はutilityに全部突っ込む感じに近そう。

あと app と features という並びだと、始めてリポジトリ見た人はどっちに何の機能が入ってるか想像できないかもです。
(FastAPIを知ってるとサーバー周りが app 側に入っているのだとわかる)

とはいえ、現状のファイル構成が最高ではないとは思います。
一旦どこに配置するか全部考えてみるのはどうでしょうか。
engine_manifestsettingmetasmodel辺りがfeaturesだと違和感あるかもです。

もし何か将来的なことも考えてでしたらそちらもお聞きしたいです・・・!

P.S.
ちゃんと考えれてないですが、appをserverかapiにし、"機能"っぽいのをvoicevox_engineディレクトリ直下に配置して、あとその他を何かのディレクトリにまとめていくと良いのかもと思いました。
例えばユーザー辞書に興味がある人はディレクトリを掘らずに user_dict にたどり着けるかなぁと。

@tarepan tarepan added 状態:設計 設計をおこなっている状態 and removed 状態:必要性議論 必要性を議論している状態 labels May 24, 2024
Copy link

本 Issue は直近 180 日間で活動がありません。今後の方針について VOICEVOX チームによる再検討がおこなわれる予定です。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
機能向上 状態:設計 設計をおこなっている状態 要議論 実行する前に議論が必要そうなもの 非アクティブ
Projects
None yet
Development

No branches or pull requests

2 participants