Modell / Datensatz
ggml-org/whisper.cpp avatar
ggml-org/whisper.cpp

whisper.cpp: Spracherkennung als lokale C/C++-Pipeline

whisper.cpp ist eine abhängigkeitsfreie C/C++-Portierung von OpenAIs Whisper-Spracherkennungsmodell, für Apple Silicon optimiert, mit CPU-only-Inferenz auf vielen Plattformen.

53.683 Sterne6.156 ForksC++MIT
GitHub

Auf einen Blick

Was ist das?
Portierung von Whisper für Transkription, VAD und plattformübergreifende Ausführung
Für wen ist es gedacht?
whisper.cpp passt zu Anwendungen, die Audio lokal oder eingebettet transkribieren möchten. Vor der Integration sollte ein repräsentatives WAV mit dem vorgesehenen Modell über die dokumentierte CLI verarbeitet werden; dabei zählen Sprachgenauigkeit, Zeitstempel, VAD-Verhalten und der Speicherbedarf auf der Zielplattform.
Darf ich es kommerziell nutzen?
Ja. MIT ist eine freizügige Lizenz: Sie dürfen darauf aufbauende Software nutzen, verändern und verkaufen, solange Sie die Urheberrechts- und Lizenzhinweise beibehalten.
Wird es noch gepflegt?
Ja. Die letzten Commits kamen vor 1 Tag.
In welcher Sprache ist es geschrieben?
Hauptsächlich C++, laut der Sprachstatistik von GitHub.

Die Antworten beruhen auf den GitHub-Daten des Projekts (zuletzt abgeglichen am 15. September 2026) und auf unserer Analyse. Sie sind keine Rechtsberatung.

TIEFGEHENDE OPEN-SOURCE-ANALYSE

Eine C/C++-Portierung von OpenAIs Whisper und die praktische Einordnung

whisper.cpp: Spracherkennung als lokale C/C++-Pipeline wird im README als konkretes Projekt mit einer klar beschriebenen technischen Aufgabe vorgestellt. whisper.cpp ist eine in C/C++ geschriebene Portierung des automatischen Spracherkennungsmodells Whisper von OpenAI. Das README beschreibt es als reine C/C++-Implementierung ohne Abhängigkeiten und führt als Eigenschaft an, dass zur Laufzeit keine Speicherzuweisungen erfolgen. Die High-Level-Implementierung des Modells befindet sich in whisper.h und whisper.cpp, der übrige Code gehört zur Machine-Learning-Bibliothek ggml. Das README kennzeichnet v1.9.2 als stabile Version und sagt, dass das Projekt nur Inferenz unterstützt; Trainings- oder Feinabstimmungspfade sind nicht enthalten. Diese Beschreibung ist eine Projektaussage; sie ersetzt weder einen Benchmark noch eine Zusage für jede Umgebung. Für die Einordnung zählt deshalb, welche Eingaben, Ausgaben und Betriebsgrenzen im Repository tatsächlich genannt werden.

Im Alltag entscheidet die Umgebung über den Nutzen. whisper.cpp passt zu Anwendungen, die Audio lokal oder eingebettet transkribieren möchten. Vor der Integration sollte ein repräsentatives WAV mit dem vorgesehenen Modell über die dokumentierte CLI verarbeitet werden; dabei zählen Sprachgenauigkeit, Zeitstempel, VAD-Verhalten und der Speicherbedarf auf der Zielplattform. Im Abschnitt 1 sollte der Test klein bleiben, aber genau den Pfad abbilden, den das Team später betreiben will. Fehler, fehlende Abhängigkeiten und nicht dokumentierte Randfälle gehören in die Entscheidung, statt durch allgemeine Leistungsannahmen verdeckt zu werden.

CLI bauen und ausführen und die praktische Einordnung

whisper.cpp: Spracherkennung als lokale C/C++-Pipeline wird im README als konkretes Projekt mit einer klar beschriebenen technischen Aufgabe vorgestellt. Der Schnellstart im README beginnt mit dem Klonen des Repositorys, dem Herunterladen eines konvertierten Modells mit sh ./models/download-ggml-model.sh base.en und dem Bauen des Beispiels whisper-cli mit cmake -B build, dann cmake --build build -j --config Release. Der Befehl ./build/bin/whisper-cli -f samples/jfk.wav transkribiert die beiliegende Audiodatei. Das README warnt, dass whisper-cli derzeit nur 16-Bit-WAV-Dateien akzeptiert, und zeigt einen ffmpeg-Befehl zur Konvertierung in 16 kHz Mono mit pcm_s16le. Ein make base.en Ziel lädt das base.en-Modell herunter und führt Inferenz auf allen .wav-Dateien im samples-Ordner aus. Diese Beschreibung ist eine Projektaussage; sie ersetzt weder einen Benchmark noch eine Zusage für jede Umgebung. Für die Einordnung zählt deshalb, welche Eingaben, Ausgaben und Betriebsgrenzen im Repository tatsächlich genannt werden.

Im Alltag entscheidet die Umgebung über den Nutzen. whisper.cpp passt zu Anwendungen, die Audio lokal oder eingebettet transkribieren möchten. Vor der Integration sollte ein repräsentatives WAV mit dem vorgesehenen Modell über die dokumentierte CLI verarbeitet werden; dabei zählen Sprachgenauigkeit, Zeitstempel, VAD-Verhalten und der Speicherbedarf auf der Zielplattform. Im Abschnitt 2 sollte der Test klein bleiben, aber genau den Pfad abbilden, den das Team später betreiben will. Fehler, fehlende Abhängigkeiten und nicht dokumentierte Randfälle gehören in die Entscheidung, statt durch allgemeine Leistungsannahmen verdeckt zu werden.

Modelldateien und Speicherbedarf und die praktische Einordnung

whisper.cpp: Spracherkennung als lokale C/C++-Pipeline wird im README als konkretes Projekt mit einer klar beschriebenen technischen Aufgabe vorgestellt. Whisper-Modelle werden in ein eigenes Binärformat namens ggml-Format konvertiert, das Modellparameter, Mel-Filter, Vokabular und Gewichte in einer einzigen Datei bündelt. Das Skript models/download-ggml-model.sh lädt diese Dateien herunter, und models/convert-pt-to-ggml.py dokumentiert den Konvertierungspfad. Das README enthält eine Tabelle zum Speicherbedarf für die Modelle tiny, base, small, medium und large. Beispielsweise benötigt tiny 75 MiB auf der Platte und etwa 273 MB im Speicher, large 2,9 GiB auf der Platte und etwa 3,9 GB im Speicher. Diese Zahlen gelten nur für die genannten Modelle und nicht für quantisierte Varianten. Diese Beschreibung ist eine Projektaussage; sie ersetzt weder einen Benchmark noch eine Zusage für jede Umgebung. Für die Einordnung zählt deshalb, welche Eingaben, Ausgaben und Betriebsgrenzen im Repository tatsächlich genannt werden.

Im Alltag entscheidet die Umgebung über den Nutzen. whisper.cpp passt zu Anwendungen, die Audio lokal oder eingebettet transkribieren möchten. Vor der Integration sollte ein repräsentatives WAV mit dem vorgesehenen Modell über die dokumentierte CLI verarbeitet werden; dabei zählen Sprachgenauigkeit, Zeitstempel, VAD-Verhalten und der Speicherbedarf auf der Zielplattform. Im Abschnitt 3 sollte der Test klein bleiben, aber genau den Pfad abbilden, den das Team später betreiben will. Fehler, fehlende Abhängigkeiten und nicht dokumentierte Randfälle gehören in die Entscheidung, statt durch allgemeine Leistungsannahmen verdeckt zu werden.

Hardware-Backends und Build-Optionen und die praktische Einordnung

whisper.cpp: Spracherkennung als lokale C/C++-Pipeline wird im README als konkretes Projekt mit einer klar beschriebenen technischen Aufgabe vorgestellt. Das README listet Unterstützung für macOS (Intel und Arm), iOS, Android, Java, Linux, FreeBSD, WebAssembly, Windows über MSVC und MinGW, Raspberry Pi und Docker. Auf Apple Silicon kann Inferenz über Metal auf der GPU laufen, und der Encoder kann über Core ML die Apple Neural Engine nutzen. Für x86 gibt es AVX-Intrinsics, für POWER VSX-Intrinsics. Das Projekt dokumentiert außerdem GPU-Backends für NVIDIA über cuBLAS und eigene CUDA-Kernel, AMD über HIP/ROCm, Vulkan, Intel über OpenVINO, Ascend NPU über CANN und Moore-Threads-GPUs über MUSA. CPU-only-Builds sind möglich, und OpenBLAS kann die Encoder-Verarbeitung beschleunigen. Für jedes Backend gibt es eigene cmake-Flags wie GGML_CUDA, GGML_VULKAN, GGML_HIP, GGML_OPENVINO, GGML_CANN und GGML_MUSA. Diese Beschreibung ist eine Projektaussage; sie ersetzt weder einen Benchmark noch eine Zusage für jede Umgebung. Für die Einordnung zählt deshalb, welche Eingaben, Ausgaben und Betriebsgrenzen im Repository tatsächlich genannt werden.

Im Alltag entscheidet die Umgebung über den Nutzen. whisper.cpp passt zu Anwendungen, die Audio lokal oder eingebettet transkribieren möchten. Vor der Integration sollte ein repräsentatives WAV mit dem vorgesehenen Modell über die dokumentierte CLI verarbeitet werden; dabei zählen Sprachgenauigkeit, Zeitstempel, VAD-Verhalten und der Speicherbedarf auf der Zielplattform. Im Abschnitt 4 sollte der Test klein bleiben, aber genau den Pfad abbilden, den das Team später betreiben will. Fehler, fehlende Abhängigkeiten und nicht dokumentierte Randfälle gehören in die Entscheidung, statt durch allgemeine Leistungsannahmen verdeckt zu werden.

Quantisierung und Zahlenformate und die praktische Einordnung

whisper.cpp: Spracherkennung als lokale C/C++-Pipeline wird im README als konkretes Projekt mit einer klar beschriebenen technischen Aufgabe vorgestellt. Die Implementierung verwendet gemischte F16/F32-Präzision und unterstützt Integer-Quantisierung der ggml-Modelle. Laut README benötigen quantisierte Modelle weniger Speicher und Platz auf der Platte und können auf mancher Hardware effizienter verarbeitet werden. Das Werkzeug quantize wird mit dem Projekt gebaut und kann ein Modell mit einer Methode wie q5_0 konvertieren, zum Beispiel ./build/bin/quantize models/ggml-base.en.bin models/ggml-base.en-q5_0.bin q5_0. Die erzeugte Datei wird dann mit -m an whisper-cli übergeben. Das README nennt keine Benchmarkzahlen für quantisierte Modelle und führt außer dem q5_0-Beispiel keine weiteren Quantisierungsmethoden auf. Diese Beschreibung ist eine Projektaussage; sie ersetzt weder einen Benchmark noch eine Zusage für jede Umgebung. Für die Einordnung zählt deshalb, welche Eingaben, Ausgaben und Betriebsgrenzen im Repository tatsächlich genannt werden.

Im Alltag entscheidet die Umgebung über den Nutzen. whisper.cpp passt zu Anwendungen, die Audio lokal oder eingebettet transkribieren möchten. Vor der Integration sollte ein repräsentatives WAV mit dem vorgesehenen Modell über die dokumentierte CLI verarbeitet werden; dabei zählen Sprachgenauigkeit, Zeitstempel, VAD-Verhalten und der Speicherbedarf auf der Zielplattform. Im Abschnitt 5 sollte der Test klein bleiben, aber genau den Pfad abbilden, den das Team später betreiben will. Fehler, fehlende Abhängigkeiten und nicht dokumentierte Randfälle gehören in die Entscheidung, statt durch allgemeine Leistungsannahmen verdeckt zu werden.

Beispielwerkzeuge und experimentelle Ausgabeoptionen und die praktische Einordnung

whisper.cpp: Spracherkennung als lokale C/C++-Pipeline wird im README als konkretes Projekt mit einer klar beschriebenen technischen Aufgabe vorgestellt. Im Ordner examples liegen mehrere Werkzeuge. whisper-cli ist das Hauptwerkzeug für Transkription und Übersetzung, whisper-bench misst die Ausführungszeit des Encoders, whisper-stream transkribiert Mikrofon-Eingabe in Echtzeit, whisper-command ist ein einfacher Sprachassistent, whisper-server bietet einen HTTP-Transkriptionsserver mit einer an OpenAI angelehnten API, und whisper-talk-llama verbindet Spracheingabe mit einem LLaMA-Bot. Einige Beispiele haben WebAssembly-Versionen. Das README dokumentiert auch experimentelle Ausgabeoptionen: --print-colors für Konfidenz-Farbkodierung, -ml zur Begrenzung der Zeilenlänge, -ml 1 für Wort-Zeitstempel, -owts für die Erzeugung von Karaoke-Videos und -tdrz für Sprechersegmentierung über tinydiarize. Spracherkennung ist über das --vad-Flag verfügbar und benötigt ein separates VAD-Modell wie Silero-VAD. Diese Beschreibung ist eine Projektaussage; sie ersetzt weder einen Benchmark noch eine Zusage für jede Umgebung. Für die Einordnung zählt deshalb, welche Eingaben, Ausgaben und Betriebsgrenzen im Repository tatsächlich genannt werden.

Im Alltag entscheidet die Umgebung über den Nutzen. whisper.cpp passt zu Anwendungen, die Audio lokal oder eingebettet transkribieren möchten. Vor der Integration sollte ein repräsentatives WAV mit dem vorgesehenen Modell über die dokumentierte CLI verarbeitet werden; dabei zählen Sprachgenauigkeit, Zeitstempel, VAD-Verhalten und der Speicherbedarf auf der Zielplattform. Im Abschnitt 6 sollte der Test klein bleiben, aber genau den Pfad abbilden, den das Team später betreiben will. Fehler, fehlende Abhängigkeiten und nicht dokumentierte Randfälle gehören in die Entscheidung, statt durch allgemeine Leistungsannahmen verdeckt zu werden.

Bindings, Paketierung und Lizenz und die praktische Einordnung

whisper.cpp: Spracherkennung als lokale C/C++-Pipeline wird im README als konkretes Projekt mit einer klar beschriebenen technischen Aufgabe vorgestellt. Das README listet Bindings für Rust, JavaScript, Go, Java, Ruby, Objective-C/Swift, .NET, Python, R und Unity mit Links zu externen Repositorys. Das Projekt bietet außerdem ein vorkompiliertes XCFramework für Apple-Plattformen und Docker-Images mit CUDA-, MUSA- und Vulkan-Varianten. Ein Conan-Paket ist mit conan install --requires="whisper-cpp/[*]" --build=missing verfügbar. Das Repository steht unter der MIT-Lizenz, die Nutzung, Vervielfältigung, Änderung, Zusammenführung, Veröffentlichung, Verbreitung, Unterlizenzierung und Verkauf erlaubt. Die Lizenz erklärt außerdem, dass die Software ohne jegliche Gewährleistung bereitgestellt wird. Das README beschreibt kein Supportmodell und nennt als einzige Einschränkung, dass das Projekt reine Inferenz ist. Diese Beschreibung ist eine Projektaussage; sie ersetzt weder einen Benchmark noch eine Zusage für jede Umgebung. Für die Einordnung zählt deshalb, welche Eingaben, Ausgaben und Betriebsgrenzen im Repository tatsächlich genannt werden.

Im Alltag entscheidet die Umgebung über den Nutzen. whisper.cpp passt zu Anwendungen, die Audio lokal oder eingebettet transkribieren möchten. Vor der Integration sollte ein repräsentatives WAV mit dem vorgesehenen Modell über die dokumentierte CLI verarbeitet werden; dabei zählen Sprachgenauigkeit, Zeitstempel, VAD-Verhalten und der Speicherbedarf auf der Zielplattform. Im Abschnitt 7 sollte der Test klein bleiben, aber genau den Pfad abbilden, den das Team später betreiben will. Fehler, fehlende Abhängigkeiten und nicht dokumentierte Randfälle gehören in die Entscheidung, statt durch allgemeine Leistungsannahmen verdeckt zu werden.

Redaktionelles Fazit

whisper.cpp passt zu Anwendungen, die Audio lokal oder eingebettet transkribieren möchten. Vor der Integration sollte ein repräsentatives WAV mit dem vorgesehenen Modell über die dokumentierte CLI verarbeitet werden; dabei zählen Sprachgenauigkeit, Zeitstempel, VAD-Verhalten und der Speicherbedarf auf der Zielplattform.

Offizielle Quellen

  1. Official README
  2. Project repository
  3. Release notes
Community-Notizen

Community-Notizen