Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Eingebettete Sprachmodelle werden vollständig auf Ihren Zielgeräten ausgeführt. Das Verständnis der Leistungsmerkmale dieser Modelle auf Ihrer Gerätehardware kann für die Bereitstellung mit geringer Latenz innerhalb Ihrer Produkte und Anwendungen von entscheidender Bedeutung sein. Dieser Leitfaden enthält Informationen für die Beantwortung der Frage: „Eignet sich mein Gerät zum Ausführen der eingebetteten Spracherkennung in Text- und Sprachübersetzungsmodellen?“.
Metriken und Terminologie
Echtzeitfaktor: Der Echtzeitfaktor (Real-Time Factor, RTF) eines Geräts misst, wie schnell das eingebettete Sprachmodell Audioeingaben verarbeiten kann. Er stellt das Verhältnis zwischen Verarbeitungszeit und Audiolänge dar. Wenn ein Gerät beispielsweise eine einminütige Audiodatei in 30 Sekunden verarbeitet, beträgt der RTF 0,5. Diese Metrik wertet die Rechenleistung des Geräts für die Ausführung eingebetteter Sprachmodelle aus. Dies kann helfen, Geräte zu identifizieren, die zu langsam sind, um die Modelle zu unterstützen. Die Messung dieser Metrik sollte nur mithilfe von dateibasierten Eingaben und nicht mit Mikrofoneingaben in Echtzeit erfolgen.
Um interaktive Sprachfunktionen in Echtzeit zu unterstützen, sollte das Gerät über einen RTF von 1
oder niedriger verfügen. Ein RTF-Wert über 1
bedeutet, dass das Gerät nicht mit der Audioeingabe schritthalten kann und so die Benutzerfreundlichkeit beeinträchtigen kann.
Beim Messen des RTF eines Geräts ist es wichtig, mehrere Stichproben zu messen und die Verteilung über Perzentile zu analysieren. Auf diese Weise können Sie die Auswirkungen von Variationen im Verhalten des Geräts erfassen, z. B. unterschiedliche CPU-Taktgeschwindigkeiten aufgrund der thermischen Drosselung. Die vordefinierten Messtests, die in Messen des Echtzeitfaktors auf Ihrem Gerät beschrieben sind, messen automatisch den RTF für jedes Spracherkennungsergebnis, was zu einer ausreichend großen Stichprobengröße führt.
Von Benutzer*innen wahrgenommene Latenz: Die von den Benutzer*innen wahrgenommene Latenz (User-Perceived Latency, UPL) bei der Spracherkennung ist die Zeit zwischen dem Aussprechen eines Worts und seiner Anzeige in den Erkennungsergebnissen.
Faktoren, die sich auf die Leistung auswirken
Gerätespezifikationen: Die Spezifikationen Ihres Geräts spielen eine wichtige Rolle bei der Vermeidung von Leistungsproblemen während der Ausführung eingebetteter Sprachmodelle. CPU-Taktgeschwindigkeit, Architektur (z. B. x64, Arm-Prozessor usw.) und Arbeitsspeicher können sich auf die Rückschlussgeschwindigkeit des Modells auswirken.
CPU-Auslastung: In den meisten Fällen werden auf Ihrem Gerät parallel noch andere Anwendungen neben der Anwendung ausgeführt, in der eingebettete Sprachmodelle integriert sind. Der Umfang der CPU-Auslastung Ihres Geräts im Leerlauf und zu Spitzenzeiten kann sich ebenfalls auf die Leistung auswirken.
Wenn das Gerät beispielsweise aufgrund der anderen auf dem Gerät ausgeführten Anwendungen eine mittlere bis hohe CPU-Auslastung aufweist, können bei paralleler Ausführung mit anderen Anwendungen auch mit einem leistungsstarken Prozessor Leistungsprobleme bei der eingebetteten Spracherkennung auftreten.
Arbeitsspeicherauslastung: Ein eingebettetes Spracherkennungsmodell verbraucht zur Laufzeit zwischen 200 und 300 MB Arbeitsspeicher. Wenn auf Ihrem Gerät weniger Arbeitsspeicher für den zu verwendenden eingebetteten Spracherkennungsprozess zur Verfügung steht, können häufige Fallbacks auf virtuellen Arbeitsspeicher und Paging zusätzliche Latenzen nach sich ziehen. Dies kann sich sowohl auf den Echtzeitfaktor als auch auf die von den Benutzer*innen wahrgenommene Latenz auswirken.
Integrierte Leistungsoptimierungen
Alle eingebetteten Spracherkennungsmodelle verfügen über eine VAD-Komponente (Voice Activity Detector), die dazu dient, Stille und andere Inhalte als Sprache aus der Audioeingabe herauszufiltern. Ziel ist es, die CPU-Auslastung und die Verarbeitungszeit für andere Komponenten des Spracherkennungsmodells zu reduzieren.
Die VAD-Komponente ist immer aktiviert und benötigt keine Konfiguration von Ihnen als Entwickler*in. Dies funktioniert am besten, wenn die Audioeingabe nicht vernachlässigbare Mengen an Stille oder sprachfremden Inhalten aufweist. Dies ist z. B. in Szenarien zum Untertiteln, Befehlen und Diktieren üblich.
Messen des Echtzeitfaktors auf Ihrem Gerät
Für alle unterstützten Plattformen für eingebettete Sprachmodelle ist ein Codebeispiel auf GitHub verfügbar, das einen Modus zur Leistungsmessung umfasst. In diesem Modus soll der Echtzeitfaktor (RTF) Ihres Geräts gemessen werden, indem so viele Variablen wie möglich gesteuert werden:
Modell: Für die Messung wird das Modell für Englisch (USA) verwendet. Modelle für alle anderen unterstützten Gebietsschemas folgen ähnlichen Leistungsmerkmalen, sodass die Messung des Modells für Englisch (USA) ausreicht.
Audioeingabe: Eine vordefinierte Audiodatei, die für RTF-Messungen entwickelt wurde, steht als ergänzender Download zum Beispielcode zur Verfügung.
Messmechanismus: Die Markierungen für Anfang und Ende der Zeitmessung sind in der Stichprobe vorkonfiguriert, um die Genauigkeit sicherzustellen und einen einfachen Vergleich der Ergebnisse auf unterschiedlichen Geräten und bei verschiedenen Testläufen zu gewährleisten.
Diese Messung sollte mit dem Beispiel erfolgen, das direkt auf Ihren Zielgeräten ausgeführt wird, ohne dass andere Codeänderungen als die Angabe der Modellpfade und des Verschlüsselungsschlüssels vorgenommen werden. Das Gerät sollte sich in einem Zustand befinden, der einen echten Endbenutzerstatus darstellt, wenn ein eingebettetes Sprachmodell verwendet wird (z. B. andere aktive Anwendungen, CPU- und Arbeitsspeicherauslastung usw.).
Das Ausführen des Beispiels liefert Leistungsmetriken, die an die Konsole ausgegeben werden. Zu den Metriken gehören der Echtzeitfaktor und andere Eigenschaften wie die CPU-Auslastung und der Arbeitsspeicherverbrauch. Jede Metrik wird unten definiert und erläutert.
Metriken für Anweisungssätze
Metrik | BESCHREIBUNG | Notizen |
---|---|---|
AVX512Unterstützt | TRUE, wenn die CPU den AVX512-Anweisungssatz unterstützt. | Dieses Flag gilt für x64-Plattformen. Die ONNX-Runtime verfügt über Optimierungen für die verschiedenen Anweisungssätze, und diese Informationen können bei der Diagnose von Inkonsistenzen helfen. |
AVXSupported | TRUE, wenn die CPU den AVX-Anweisungssatz unterstützt. | Dieses Flag gilt für x64-Plattformen. Die ONNX-Runtime verfügt über Optimierungen für die verschiedenen Anweisungssätze, und diese Informationen können bei der Diagnose von Inkonsistenzen helfen. |
AVX2Supported | TRUE, wenn die CPU den AVX2-Anweisungssatz unterstützt. | Dieses Flag gilt für x64-Plattformen. Die ONNX-Runtime verfügt über Optimierungen für die verschiedenen Anweisungssätze, und diese Informationen können bei der Diagnose von Inkonsistenzen helfen. |
SSE3 Verfügbar | TRUE, wenn die CPU den SSE3-Anweisungssatz unterstützt. | Dieses Flag gilt für x64-Plattformen. Die ONNX-Runtime verfügt über Optimierungen für die verschiedenen Anweisungssätze, und diese Informationen können bei der Diagnose von Inkonsistenzen helfen. |
NEONAvailable | TRUE, wenn die CPU den NEON-Anweisungssatz unterstützt. | Dieses Flag gilt für Plattformen mit Arm-Prozessoren. Die ONNX-Runtime verfügt über Optimierungen für die verschiedenen Anweisungssätze, und diese Informationen können bei der Diagnose von Inkonsistenzen helfen. |
NPU | Name der neuronalen Verarbeitungseinheit (Neural Processing Unit, NPU) oder „N/A“, wenn keine gefunden wurde. | Dieses Flag dient der Hardwarebeschleunigung. |
Arbeitsspeichermetriken
Metrik | BESCHREIBUNG | Notizen |
---|---|---|
PagefileUsage | Menge der Auslagerungsdatei, die vom Prozess verwendet wird. Implementiert für Linux und Windows. | Die Werte sind relativ zur Computerkonfiguration. |
WorkingSetSize | Der für den Prozess verwendete Arbeitsspeicher. | |
ProcessCPUUsage | Aggregat der CPU-Auslastung für den Prozess. | Enthält alle Threads im Prozess, einschließlich Speech SDK und Benutzeroberflächenthreads. Aggregiert über alle Kerne hinweg. |
ThreadCPUUsage | Aggregat der CPU-Auslastung für den Spracherkennungs- oder Sprachübersetzungsthread. |
Leistungsmetriken
Metrik | BESCHREIBUNG | Notizen |
---|---|---|
Echtzeitfaktor | Misst, wie viel schneller als Echtzeit das eingebettete Sprachmodul Audiodaten verarbeitet. Umfasst die Audioladezeit. | Werte größer als 1 geben an, dass das Modul Audiodaten langsamer verarbeitet als Echtzeit. Werte kleiner als 1 geben an, dass das Modul Audiodaten schneller verarbeitet als Echtzeit. Dieser Wert sollte nur im dateibasierten Eingabemodus analysiert werden. Er sollte nicht im Streamingeingabemodus analysiert werden. |
StreamingRealTimeFactor | Misst, wie viel schneller als Echtzeit das Modul Audiodaten verarbeitet. Umfasst nicht die Audioladezeit. | Werte größer als 1 geben an, dass das Modul Audiodaten langsamer verarbeitet als Echtzeit. Werte kleiner als 1 geben an, dass das Modul Audiodaten schneller verarbeitet als Echtzeit. |