Minimalizacja zamrożeń
Ten przewodnik omawia dwa powszechne źródła zamrożeń w pluginie RuntimeSpeechRecognizer i dostarcza praktyczne rozwiązania mające na celu złagodzenie wpływu na wydajność.
Przechwytywalna fala dźwiękowa
Podczas uruchamiania przechwytywalnej fali dźwiękowej za pomocą funkcji StartCapture
, możesz napotkać krótkie opóźnienie, które jest specyficzne dla silnika i obecnie nieuniknione bez modyfikacji kodu specyficznego dla silnika. Czas trwania tego opóźnienia różni się w zależności od platformy, ponieważ jest powiązany z wykonaniem kodu specyficznego dla platformy w celu pobrania danych audio z urządzenia wejściowego (mikrofonu). To opóźnienie zaobserwowano na platformach takich jak Windows, Mac, Android i iOS i może dotyczyć również innych.
Aby zminimalizować to zacinanie, rozważ rozpoczęcie przechwytywania przez wywołanie funkcji StartCapture
w momencie, gdy jej wpływ jest znikomy, na przykład podczas ekranu ładowania. Natychmiast po wywołaniu StartCapture
użyj funkcji ToggleMute
z parametrem Mute
ustawionym na True
. A gdy będziesz gotowy, aby rozpocząć przechwytywanie danych audio, aktywuj przechwytywalną falę dźwiękową, wywołując ToggleMute
z parametrem Mute
ustawionym na False
. Więcej istotnych informacji znajdziesz tutaj.
Rozpocznij rozpoznawanie mowy
Kiedy uruchamiasz rozpoznawanie mowy, wywołując StartSpeechRecognition
, może wystąpić lekkie zamrożenie spowodowane ładowaniem przez silnik zasobu modelu językowego. Pomimo że ten proces jest zaprojektowany jako asynchroniczny i wykonywany w osobnym wątku, silnik nadal wewnętrznie wykonuje pewne operacje na wątku gry, prowadząc do zauważalnego lekkiego opóźnienia, szczególnie przy dużych zasobach, takich jak modele językowe.
Aby wyeliminować to zamrożenie, stosuj się do tej samej zasady, co opisano powyżej: wywołaj StartSpeechRecognition
w momencie, gdy wpływ opóźnienia jest uzasadniony lub znikomy, na przykład podczas ekranu ładowania.