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

【提案】読み方&アクセント辞書の機能追加 #2381

Open
3 tasks done
kebin628 opened this issue Nov 27, 2024 · 3 comments
Open
3 tasks done

【提案】読み方&アクセント辞書の機能追加 #2381

kebin628 opened this issue Nov 27, 2024 · 3 comments

Comments

@kebin628
Copy link
Contributor

内容

既存の辞書ですが、量が多くなるとポチポチ1つずつ追加してやり、大変です。
また、特定ワードの編集を行おうとした時、現状だと絞り込みができない、ソートが不可能なため、大量のリストの中から探してやるなど、かなり大変でした。
そのため、いくつか辞書に機能を追加したらどうかという提案になります。

パッと思いつくモノとしては、以下です。

  • 検索機能の追加
  • ボイボ側辞書インポート、エクスポート機能(csvとか)
  • IME辞書等インポート機能(一般的なテキストファイル形式)
  • 優先度のリスト上表示
  • 登録順(デフォルト)、テキスト、読み、優先度のソート

また、コレに伴い、ボタン位置やUI位置についてはかなり調整が必要そうになるため、ここについても大幅な変更が要りそうです。

画面案

明らかにごちゃごちゃするので、「・・・」メニューボタンの導入なども検討したほうが良い?
image

Pros 良くなる点

【検索機能の追加】

  • 登録内容に変更がある時、探しやすくなる

【ボイボ側辞書インポート・エクスポート】

  • PC買い替えなど環境変更の時、次のPCに設定を引き継げる(今も深く見ればあるかもですが)
  • テキストファイルへのインポートエクスポートを想定しているので、優先度等、別エディタ等で設定の調整がまとめてしやすい。

【IME辞書等インポート機能】
今ユーザが使っているユーザIME辞書の読みを元にボイボにある程度投入できます。
イントネーションについては要調整ですが、検索付くのでだいぶやりやすくなるはずです。
また、IME辞書については企業やユーザが作成している事もあり、それがボイボの辞書に追加できるため、専門ワードで動画つくる人に重宝される可能性があります。
最終的には、これらのテキストデータをボイボに読み込ませることを目的とします。

[配布されているIME辞書の例]

Cons 悪くなる点

  • 現状、UIにこれらの追加余地がないので、段を増やすなりして対応する為、メインエリアが狭くなる。
  • インポート・エクスポートは「・・・」などのメニューに入れるべき内容な気がするが、現状このUIがないのでどうするか決める必要がある。ボタンとして置いてもいいが、数が増えるので画面がちょっとごちゃごちゃするかも?またソースを見ましたが、もし「インポートボタン1つ→IME辞書orボイボ辞書」を現状やろうとした場合、「どこからインポートしますか?→ IME or ボイボ辞書 or キャンセル」みたいな A or B or キャンセル関数がないので定義追加が必要かもしれません。

実現方法

実装検証していて、画面の様にボタンを移動させること、検索UIの実装、優先度表示はすぐできました。
UIもこんな感じなのかな?という想定でなんとなく仮組みしています。(スクショ参照)

インポートについてはボタン押した後、ボイボ辞書形式(CSV) or IMEからエクスポートしたテキスト形式のどちらをインポートするかを選び、あれば設定上書き、なければ追加の方式を取ります。
ただ、現状削除も1つ1つ消さなくてはならない都合、削除はどうするかも検討対象かなと思いますが、一旦考えず、別の話題にしたほうが良いかもしれません。(全削除ボタン入れるのも手だと思うが怖い)

エクスポートについてはボタン押した後、ボイボ辞書形式などテキストエディタで編集可能なもの(パラメータを全部CSVで吐く)のを想定しています。

検索は概ねキー割り当ての検索と実装は同じです。
検索フィルタを元に、リストの内容を変更でいけそうです。

ソートについては、ソート用のスピナーを置きます。
もしくは、思い切ってUI変更が許容されるのであれば、ここ全体をキー割り当て変更のようなリスト形式&ヘッダークリックでソートにしてしまえばいい気もしますが、かなり大掛かりになる&UI別物になりそうなので議論になりそうです。

VOICEVOXのバージョン

0.21.0

OSの種類/ディストリ/バージョン

  • Windows
  • macOS
  • Linux

その他

ソート、検索、優先度リスト表示については既にできたので、調整してすぐPRできそうです。
インポート・エクスポートは大変そうなので、ひとまず第一弾としてやるのであればここで分けても良いかもしれません。

実装提案ここで合っていますか?

@Hiroshiba
Copy link
Member

Hiroshiba commented Nov 28, 2024

提案ありがとうございます!!
いくつかの機能がとても魅力的でぜひ実装できればと思いました!!
多分一気に作るのは大変なので、一旦 UI を全体 考えた後一つ一つ実装すると良さそうな気がしますね!

ちょっとこちらからもコメントが2点ほどあるので一旦それを書きます!

表示場所

今回の場合はツールバーのとこにボタンを置かない方が分かりやすいかもと思いました!
これはダイアログ全体を表しているツールバーで、今回の機能は単語一覧の操作なので、おそらく単語一覧の近くに配置するのが分かりやすそう。

ちょっとあまり自信ないのですが、こういうのはどうでしょうか?
image
(並び替えは検索バーの横とかでも良いのかも。ちょっと検索バーの位置と並び替えの UI が自信ないです 😇 )

優先順位

ニーズの高い機能から実装するとユーザーに喜ばれそうに思いました!!
あげてくださった項目の優先度個人的な感覚で順位付けしてみました↓

  1. ボイボ側辞書インポート、エクスポート機能(csvとか)
  2. IME辞書等インポート機能(一般的なテキストファイル形式)
  3. 検索機能の追加
  4. 登録順(デフォルト)、テキスト、読み、優先度のソート
  5. 優先度のリスト上表示

代替不可能なものが優先度高くなってます。
特にエクスポートができないのが一番痛かったので、これはめちゃくちゃニーズがあると思います。

他の辞書インポートは、なんか著名な音声合成ソフトウェアの辞書形式が色々選べると面白いかもですね!

優先度のリスト上表示はもしかしたらあまりいらないかもと思いました!
というより、結構ごちゃつきそうなので避けたいかもくらいの気持ちです!

優先度の順位書きましたが、正直どれもこれも魅力的な機能なので、もしよかったら @kebin628 さんの気の向くままの順番で実装を頂ければと思います!!!
ここまで書いて今気づきましたが、ソートとかはもう実装できてるんですね・・・!!であれば先にそちらからでも・・・!!


ちなみになのですが、辞書インポート機能はAPIが存在したりします。
https://voicevox.github.io/voicevox_engine/api/#tag/%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E8%BE%9E%E6%9B%B8/operation/import_user_dict_words_import_user_dict_post
ご存知でしたら失礼しました!

@kebin628
Copy link
Contributor Author

@Hiroshiba
了解です

エクスポート・インポートについては現状機能が無いので優先度高そうですが、改造予定のUIがあること、自分自身が正直Vue初学者でコーディングに時間がかかることを考えると、下のリストのように進める方針で行くのが良さそうです。
あとは、自分の時間的な問題ですね…(転職活動中で今時間があるため提案&取り掛かりましたが、今後の予定次第でどこまでいけるか不明瞭なので小分けにしたい)

【対応案】

  • ヒホさんのUI案ベースで実装を行う。インポート・エクスポート以外の軽そうなのを第一弾、インポート・エクスポートを第二弾し、それぞれ実装タイミング的に別PRとします。
  • 既にテスト実装で機能ができている部分(検索)と既存実装部分(追加)については、新UI案のものに変更しつつ、第一弾で実装&投入。
  • ソートも第一弾で実装。重そうなら1と2の間に小分け?
  • 優先度リスト表示はオミット方針。とはいえ、インポート・エクスポートを現状それを入れるための「…」がアプリ内に無いので、「…」以下に「優先度をリストに表示する」みたいなオプション入れるのもありかもしれません。(本当に余裕があればくらいでいいかも?)

@Hiroshiba
Copy link
Member

Hiroshiba commented Nov 29, 2024

実装の流れはそちらの形が非常に良いと思います!
小分けにしてくださるとこちら的にもレビューがしやすいので嬉しいです。

実装できなかった分は細かくissueに崩しておくと、後の方が続きやすそうに思いました。
まあこちらは時間が足りなくなったらで!

「…」以下に「優先度をリストに表示する」みたいなオプション

確かにその形なら実装するの良さそうな気がしました!!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants