Jak poprawić wydajność
Wtyczka wykorzystuje różne metody akceleracji GPU w zależności od platformy: Vulkan na Windows i Linux oraz Metal na platformach Mac i iOS, co znacząco przyspiesza proces rozpoznawania. Na innych platformach wtyczka używa CPU + instrinsics do przyspieszenia. Możesz jednak dalej poprawić wydajność wtyczki, stosując się do poniższych zaleceń:
-
Użyj wykrywania aktywności głosowej (VAD)
Zdecydowanie zaleca się używanie wykrywania aktywności głosowej (VAD), aby poprawić responsywność rozpoznawania, wysyłając mowę do rozpoznania zaraz po tym, jak użytkniczka/kończy mówić, zamiast czekać na stałe odstępy czasu. Szczególnie zalecane jest użycie Silero VAD w tym celu. Szczegółowe instrukcje implementacji znajdziesz w dokumentacji wykrywania aktywności głosowej.
-
Zmniejsz rozmiar kroku
Domyślnie rozmiar kroku wynosi 5000 ms (5 sekund), co oznacza, że dane audio są rozpoznawane co 5 sekund podczas przechwytywania. Jeśli chcesz rozpoznawać dane audio częściej, możesz zmniejszyć rozmiar kroku, na przykład do 500 ms (0,5 sekundy). Jednakże, jeśli VAD jest aktywny (co jest zazwyczaj zalecane, chyba że masz specyficzne wymagania wymagające stałych interwałów), zaleca się, aby nie polegać na zmniejszaniu rozmiaru kroku. Przy użyciu VAD w typowych konfiguracjach, takich jak Rozpoznawanie komend aktywowanych głosem lub Automatyczne inicjowanie rozpoznawania głosu z przetwarzaniem końcowego bufora, mowa zostanie rozpoznana zaraz po tym, jak użytkowniczka/kończy mówić.
-
Użyj mniejszego modelu językowego
Możesz rozważyć użycie mniejszego modelu językowego, takiego jak
Tiny Quantized (Q5_1), aby zmniejszyć rozmiar modelu i poprawić wydajność. Instrukcje, jak wybrać model językowy, można znaleźć tutaj. -
Optymalizuj zarządzanie stanem rozpoznawania
Podczas pracy z wejściem mikrofonowym unikaj niepotrzebnych zatrzymań i uruchomień rozpoznawania mowy. Zamiast często wywoływać
StopSpeechRecognitioniStartSpeechRecognition, co wymaga ponownej alokacji zasobów, rozważ bezpośrednie sterowanie wejściem audio. Na przykład, w przypadku przechwytywalnej fali dźwiękowej, użyjStopCaptureiStartCapture, aby zarządzać przepływem audio, utrzymując jednocześnie aktywny wątek rozpoznawania.