Closed ooyamatakehisa closed 1 year ago
モデルのロードは非同期に行われ、かつ認識中にモデルの変更が行われるのを避けるために、認識用のDispatchQueueの最後に追加される。一方どのモデルが選択されているかの表示は同期的に、モデルのロードが終わるまで表示は変わらない。この仕様ではロードに非常に時間のかかるモデルや環境であったり、まだキューに認識タスクが残っている場合はロードまでに時間がかかりモデルの変更のビューも更新されず不親切なUIになっているため、UI上ではすぐにモデルが変更されたようにみせた方がいい。
DispatchQueue
https://github.com/openly-jp/voiscribe/pull/299#issuecomment-1605932003
これはビューに新たな状態をもたせる必要があるとおもったが、RecognitionManager.changeModel関数のなかでmodel = newModelを最初に実行することで即座にビューに反映させることができるため、#299 で対応する
RecognitionManager.changeModel
model = newModel
モデルのロードは非同期に行われ、かつ認識中にモデルの変更が行われるのを避けるために、認識用の
DispatchQueue
の最後に追加される。一方どのモデルが選択されているかの表示は同期的に、モデルのロードが終わるまで表示は変わらない。この仕様ではロードに非常に時間のかかるモデルや環境であったり、まだキューに認識タスクが残っている場合はロードまでに時間がかかりモデルの変更のビューも更新されず不親切なUIになっているため、UI上ではすぐにモデルが変更されたようにみせた方がいい。https://github.com/openly-jp/voiscribe/pull/299#issuecomment-1605932003