openly-jp / voiscribe

1 stars 0 forks source link

language and model select pane #223

Closed shibukazu closed 1 year ago

shibukazu commented 1 year ago

Related Issue

close https://github.com/openly-jp/whisper-ios/issues/188 close #203 close #228

What

Memo

Todo

shibukazu commented 1 year ago

言語・モデルごとに個別のsheetで設定するのではなく、Presetを選択するsheetを一つのみ表示する

shibukazu commented 1 year ago

上記の変更に伴い、ダウンロードはsheet内で行う

yasutak commented 1 year ago

バグ

修正案

shibukazu commented 1 year ago

@ooyamatakehisa 録音開始ボタンはいまのデザインが好みなのですが、どう思いますか?

shibukazu commented 1 year ago

修正

shibukazu commented 1 year ago

設定画面からダンロードしたモデルが、サイドバーでダウンロード済みにならない (逆は表示される)

これは現在のmodelLoadMenuItemsの設計では実現できないので大きく実装を変更します

yasutak commented 1 year ago

ExistModelっていう関数があるのでそれ使えばいけるはず。実装はダウンロード済みファイルのパスをチェックしてる。

shibukazu commented 1 year ago

解決するにはダウンロード結果を共有できるなんらかのStateとして管理できなければならない。そのためExistModel関数だけでは解決できないと思う。 現状だとサイドメニューと録音設定画面では異なるWhisperModelを参照している。 サイドメニューでダウンロード -> 録音画面で反映 が起きているのは録音画面を開き直すことでWhisperModelが初期化されているから。逆では初期化されないため反映されない。 解決策としては以下の2つ

yasutak commented 1 year ago

WhisperModelのインスタンスが異なっても、sizeとlangが同じならダウンロード先のパスは同じになるはずでは?

shibukazu commented 1 year ago

Viewの書き換えが起きるのはStateの変化があった場合のみ モデルダウンロードが起きてもStateの書き換えは起きない

shibukazu commented 1 year ago

ダウンロード開始後にモーダルを閉じて、また開くと、ダウンロードの進捗がリセットされる。(consoleからダウンロード自体は継続していることは確認済み)

これもすごく難しい...sheetはサイドメニューと違って閉じるたびに再レンダリングされてしまうっぽいので・・・ workaroundとしてAppStorageを使用します

isDownloadingのみAppStorageを利用できたため、ダウンロードの進捗は消えてしまいますが、ダウンロード中であるという表示は継続的に表示されます。 progressValueのCGFloatについてはAppStorageを利用できないため、諦めます。(0%のままだと何度もTapされかねないので50%で固定します。)

shibukazu commented 1 year ago

今回の実装範囲ではこちらのissueに対処しています。 サイドメニューについてはサイドメニューからのモデル切り替えを禁止するor今回の実装と同様のチェックを行うことで回避可能です。 https://github.com/openly-jp/whisper-ios/issues/228

shibukazu commented 1 year ago

レビューに際して、ggml-base.en.binとggml-small.multi.binをResourcesに入れてください

ooyamatakehisa commented 1 year ago

@shibukazu いまのデザインってのは、その画像のデザインのこと?

shibukazu commented 1 year ago

@shibukazu いまのデザインってのは、その画像のデザインのこと?

そうです。この横長ボタンが僕のアイデアで、元の録音ボタンをこの画面でも表示したいというのが大戸くんのアイデアです

yasutak commented 1 year ago

まだコード読んでないんですが、ひとまず動作確認の結果です。

不具合

改善案

お願い

ooyamatakehisa commented 1 year ago

@shibukazu 自分は正直どっちでもいいかなーという感じ。 じゅもんはどっちでもいいと思うけど、2回連続で赤丸押さないといけないの若干変な感じがするので、どっちかというと認識開始って表示のボタンが出るほうがいいかもと思ったらしい。

shibukazu commented 1 year ago

認識頻度の項目を削除

shibukazu commented 1 year ago

サイドメニューにおけるモデルロード機能を削除する

yasutak commented 1 year ago

ついでに新規ライブラリのライセンス追加も頼む🙇

shibukazu commented 1 year ago

英語環境向けのデザイン修正 デバイス言語に応じたデフォルトモデルの設定

yasutak commented 1 year ago

(記録のため) iPadでpartial sheetの開閉を繰り返すと、sheetが出なくなるバグあり。

Simulator Screen Recording - iPad mini (6th generation) - 2023-02-28 at 19 28 01

shibukazu commented 1 year ago

iPadではsheetを表示するように変更 チェックマークのサイズを変更

shibukazu commented 1 year ago

isDownloadingがキルされた場合もtrueになり続ける問題に対処する