Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Osadzone modele mowy działają w pełni na urządzeniach docelowych. Zrozumienie cech wydajności tych modeli na sprzęcie urządzeń może mieć kluczowe znaczenie dla dostarczania środowisk o małych opóźnieniach w produktach i aplikacjach. Ten przewodnik zawiera informacje ułatwiające udzielenie odpowiedzi na pytanie : "Czy moje urządzenie jest odpowiednie do uruchamiania osadzonej mowy w modelach tłumaczenia tekstu i mowy?"
Metryki i terminologia
Współczynnik czasu rzeczywistego (RTF) — współczynnik czasu rzeczywistego (RTF) urządzenia mierzy szybkość przetwarzania danych wejściowych audio przez osadzony model mowy. Jest to stosunek czasu przetwarzania do długości dźwięku. Jeśli na przykład urządzenie przetwarza 1-minutowy plik audio w ciągu 30 sekund, RTF ma wartość 0,5. Ta metryka ocenia moc obliczeniową urządzenia do uruchamiania osadzonych modeli mowy. Może pomóc zidentyfikować urządzenia, które są zbyt powolne, aby obsługiwać modele. Pomiar tej metryki powinien być wykonywany tylko przy użyciu danych wejściowych opartych na plikach, a nie danych wejściowych mikrofonu w czasie rzeczywistym.
Aby obsługiwać środowiska mowy interakcyjnej i w czasie rzeczywistym, urządzenie powinno mieć wartość RTF 1
lub niższą. Wartość RTF wyższa niż 1
oznacza, że urządzenie nie może nadążyć za wejściem audio, co może spowodować słabe środowisko użytkownika.
Podczas mierzenia RTF urządzenia ważne jest, aby mierzyć wiele próbek i analizować rozkład między percentylami. Dzięki temu można przechwycić wpływ zmian zachowania urządzenia, takich jak różne szybkości zegara procesora CPU z powodu ograniczania temperatury. Wstępnie zdefiniowane testy pomiarów opisane w artykule Mierzenie współczynnika czasu rzeczywistego na urządzeniu automatycznie mierzą RTF dla każdego wyniku rozpoznawania mowy, co daje wystarczająco duży rozmiar próbki.
Opóźnienie postrzegane przez użytkownika (UPL) — opóźnienie postrzegane przez użytkownika (UPL) zamiany mowy na tekst jest czasem między wyrazem mówionym a wyrazem wyświetlanym w wynikach rozpoznawania.
Czynniki wpływające na wydajność
Specyfikacje urządzeń — specyfikacje urządzenia odgrywają kluczową rolę w tym, czy osadzone modele mowy mogą działać bez problemów z wydajnością. Szybkość zegara procesora CPU, architektura (na przykład x64, procesor ARM itp.), a pamięć może mieć wpływ na szybkość wnioskowania modelu.
Obciążenie procesora CPU — w większości przypadków urządzenie uruchamia inne aplikacje równolegle z aplikacją, w której zintegrowane są osadzone modele mowy. Ilość obciążenia procesora CPU urządzenia w przypadku bezczynności i szczytu może również mieć wpływ na wydajność.
Jeśli na przykład urządzenie jest pod umiarkowanym lub dużym obciążeniem procesora CPU ze wszystkich innych aplikacji uruchomionych na urządzeniu, można napotkać problemy z wydajnością uruchamiania osadzonej mowy oprócz innych aplikacji, nawet z zaawansowanym procesorem.
Obciążenie pamięcią — osadzony model mowy na tekst zużywa od 200 do 300 MB pamięci w czasie wykonywania. Jeśli urządzenie ma mniej pamięci dostępnej dla osadzonego procesu mowy do użycia, częste powroty do pamięci wirtualnej i stronicowania mogą powodować większe opóźnienia. Może to mieć wpływ zarówno na współczynnik czasu rzeczywistego, jak i opóźnienie postrzegane przez użytkownika.
Wbudowane optymalizacje wydajności
Wszystkie osadzone modele mowy na tekst są dostarczane ze składnikiem narzędzia do wykrywania aktywności głosowej (VAD), który ma na celu odfiltrowanie zawartości ciszy i braku mowy z danych wejściowych dźwięku. Celem jest zmniejszenie obciążenia procesora CPU i czasu przetwarzania dla innych składników modelu zamiany mowy na tekst.
Składnik VAD jest zawsze włączony i nie wymaga żadnej konfiguracji od Ciebie jako dewelopera. Działa najlepiej, gdy dane wejściowe audio mają nieistotne ilości zawartości ciszy lub niemownej mowy, co jest typowe w scenariuszach, takich jak podpisy, polecenia i dyktowanie.
Mierzenie współczynnika czasu rzeczywistego na urządzeniu
Dla wszystkich platform obsługiwanych przez mowę osadzoną przykład kodu jest dostępny w usłudze GitHub, który zawiera tryb pomiaru wydajności. W tym trybie celem jest pomiar współczynnika czasu rzeczywistego (RTF) urządzenia przez kontrolowanie jak największej liczby zmiennych:
Model — model angielski (Stany Zjednoczone) jest używany do pomiaru. Modele dla wszystkich innych obsługiwanych ustawień regionalnych są zgodne z podobnymi charakterystykami wydajności, więc pomiar w języku angielskim (Stany Zjednoczone) jest wystarczający.
Dane wejściowe audio — wstępnie utworzony plik audio przeznaczony do pomiarów RTF jest udostępniany jako dodatkowy plik do pobrania przykładowego kodu.
Mechanizm pomiaru — znaczniki rozpoczęcia i zatrzymania pomiaru czasu są wstępnie skonfigurowane w próbce, aby zapewnić dokładność i łatwość porównywania wyników między różnymi urządzeniami i iteracjami testowymi.
Tę miarę należy wykonać przy użyciu przykładu uruchomionego bezpośrednio na urządzeniach docelowych, bez zmian kodu innych niż określanie ścieżek modelu i klucza szyfrowania. Urządzenie powinno być w stanie reprezentującym rzeczywisty stan użytkownika końcowego, gdy będzie używana osadzona mowa (na przykład inne aktywne aplikacje, obciążenie procesora CPU i pamięci itp.).
Uruchomienie przykładu daje metryki wydajności wyjściowe do konsoli. Pełny zestaw metryk obejmuje współczynnik czasu rzeczywistego wraz z innymi właściwościami, takimi jak użycie procesora CPU i zużycie pamięci. Każda metryka jest zdefiniowana i wyjaśniona poniżej.
Metryki zestawu instrukcji
Metryczne | opis | Uwagi |
---|---|---|
AVX512Supported | Prawda, jeśli procesor CPU obsługuje zestaw instrukcji AVX512. | Ta flaga dotyczy platform X64. Środowisko uruchomieniowe ONNX ma optymalizacje dla różnych zestawów instrukcji i uzyskanie tych informacji może pomóc zdiagnozować niespójności. |
AVXSupported | Prawda, jeśli procesor CPU obsługuje zestaw instrukcji AVX. | Ta flaga dotyczy platform X64. Środowisko uruchomieniowe ONNX ma optymalizacje dla różnych zestawów instrukcji i uzyskanie tych informacji może pomóc zdiagnozować niespójności. |
AVX2Supported | Prawda, jeśli procesor CPU obsługuje zestaw instrukcji AVX2. | Ta flaga dotyczy platform X64. Środowisko uruchomieniowe ONNX ma optymalizacje dla różnych zestawów instrukcji i uzyskanie tych informacji może pomóc zdiagnozować niespójności. |
Dostępność SSE3 | Prawda, jeśli procesor CPU obsługuje zestaw instrukcji SSE3. | Ta flaga dotyczy platform X64. Środowisko uruchomieniowe ONNX ma optymalizacje dla różnych zestawów instrukcji i uzyskanie tych informacji może pomóc zdiagnozować niespójności. |
NEONDostępny | Prawda, jeśli procesor CPU obsługuje zestaw instrukcji NEON. | Ta flaga dotyczy platform procesorów ARM. Środowisko uruchomieniowe ONNX ma optymalizacje dla różnych zestawów instrukcji i uzyskanie tych informacji może pomóc zdiagnozować niespójności. |
NpU | Nazwa jednostki przetwarzania neuronowego lub N/A, jeśli nie znaleziono żadnej. | Ta flaga służy do przyspieszania sprzętowego. |
Metryki pamięci
Metryczne | opis | Uwagi |
---|---|---|
PagefileUsage | Ilość pliku stronicowania używanego przez proces. Zaimplementowano w systemach Linux i Windows. | Wartości są względne względem konfiguracji maszyny. |
RozmiarZestawuRoboczego | Ilość pamięci używanej do tego procesu. | |
Przetwarzanie procesorów | Agregacja użycia procesora CPU dla procesu. | Obejmuje wszystkie wątki w procesie, w tym zestaw SDK usługi Mowa i wątki interfejsu użytkownika. Agregowane we wszystkich rdzeniach. |
ThreadCPUUsage | Agregacja użycia procesora CPU dla wątku rozpoznawania mowy lub tłumaczenia mowy. |
Performance metrics (Metryki wydajności)
Metryczne | opis | Uwagi |
---|---|---|
** Współczynnik Czasu Rzeczywistego | Mierzy, ile szybciej niż w czasie rzeczywistym osadzony aparat mowy przetwarza dźwięk. Obejmuje czas ładowania dźwięku. | Wartości większe niż 1 wskazują, że aparat przetwarza dźwięk wolniej niż w czasie rzeczywistym. Wartości mniejsze niż 1 wskazują, że aparat przetwarza dźwięk szybciej niż w czasie rzeczywistym. Ta wartość powinna być analizowana tylko w trybie wejściowym opartym na plikach. Nie należy ich analizować w trybie przesyłania strumieniowego. |
StreamingRealTimeFactor | Mierzy, ile szybciej niż w czasie rzeczywistym aparat przetwarza dźwięk. Wyklucza czas ładowania dźwięku. | Wartości większe niż 1 wskazują, że aparat przetwarza dźwięk wolniej niż w czasie rzeczywistym. Wartości mniejsze niż 1 wskazują, że aparat przetwarza dźwięk szybciej niż w czasie rzeczywistym. |