Closed shibukazu closed 1 year ago
言語・モデルごとに個別のsheetで設定するのではなく、Presetを選択するsheetを一つのみ表示する
上記の変更に伴い、ダウンロードはsheet内で行う
バグ
修正案
@ooyamatakehisa 録音開始ボタンはいまのデザインが好みなのですが、どう思いますか?
修正
設定画面からダンロードしたモデルが、サイドバーでダウンロード済みにならない (逆は表示される)
これは現在のmodelLoadMenuItemsの設計では実現できないので大きく実装を変更します
ExistModelっていう関数があるのでそれ使えばいけるはず。実装はダウンロード済みファイルのパスをチェックしてる。
解決するにはダウンロード結果を共有できるなんらかのStateとして管理できなければならない。そのためExistModel関数だけでは解決できないと思う。 現状だとサイドメニューと録音設定画面では異なるWhisperModelを参照している。 サイドメニューでダウンロード -> 録音画面で反映 が起きているのは録音画面を開き直すことでWhisperModelが初期化されているから。逆では初期化されないため反映されない。 解決策としては以下の2つ
WhisperModelのインスタンスが異なっても、sizeとlangが同じならダウンロード先のパスは同じになるはずでは?
Viewの書き換えが起きるのはStateの変化があった場合のみ モデルダウンロードが起きてもStateの書き換えは起きない
ダウンロード開始後にモーダルを閉じて、また開くと、ダウンロードの進捗がリセットされる。(consoleからダウンロード自体は継続していることは確認済み)
これもすごく難しい...sheetはサイドメニューと違って閉じるたびに再レンダリングされてしまうっぽいので・・・ workaroundとしてAppStorageを使用します
isDownloadingのみAppStorageを利用できたため、ダウンロードの進捗は消えてしまいますが、ダウンロード中であるという表示は継続的に表示されます。 progressValueのCGFloatについてはAppStorageを利用できないため、諦めます。(0%のままだと何度もTapされかねないので50%で固定します。)
今回の実装範囲ではこちらのissueに対処しています。 サイドメニューについてはサイドメニューからのモデル切り替えを禁止するor今回の実装と同様のチェックを行うことで回避可能です。 https://github.com/openly-jp/whisper-ios/issues/228
レビューに際して、ggml-base.en.binとggml-small.multi.binをResourcesに入れてください
@shibukazu いまのデザインってのは、その画像のデザインのこと?
@shibukazu いまのデザインってのは、その画像のデザインのこと?
そうです。この横長ボタンが僕のアイデアで、元の録音ボタンをこの画面でも表示したいというのが大戸くんのアイデアです
まだコード読んでないんですが、ひとまず動作確認の結果です。
不具合
[x] mac版だと、presetを選ぶ画面に移る前にクラッシュする (buildのtargetは添付画像のようにMac Catalystでお願い。これならIntel版Macでも動作する。)
[x] (仕様かもしれんが)モデルの削除とサイドメニューを閉じるアクションが競合しててモデル削除ができない
[x] (サイドメニューからロードできなくするんならいらないかもだが)サイドメニューからモデルを変更した際に、プリセットのデフォルトで選択されている組み合わせに緑のチェックマークがつかないことがある。動画を参照のこと
改善案
お願い
@shibukazu 自分は正直どっちでもいいかなーという感じ。 じゅもんはどっちでもいいと思うけど、2回連続で赤丸押さないといけないの若干変な感じがするので、どっちかというと認識開始って表示のボタンが出るほうがいいかもと思ったらしい。
認識頻度の項目を削除
サイドメニューにおけるモデルロード機能を削除する
ついでに新規ライブラリのライセンス追加も頼む🙇
英語環境向けのデザイン修正 デバイス言語に応じたデフォルトモデルの設定
(記録のため) iPadでpartial sheetの開閉を繰り返すと、sheetが出なくなるバグあり。
iPadではsheetを表示するように変更 チェックマークのサイズを変更
isDownloadingがキルされた場合もtrueになり続ける問題に対処する
Related Issue
close https://github.com/openly-jp/whisper-ios/issues/188 close #203 close #228
What
Memo
Todo