Saraswati
Saraswati macht aus Sprachnotizen durchsuchbare Einträge auf meinem eigenen Server. Die Anwendung transkribiert Audiodateien lokal und speichert sie in SQLite. Danach können konfigurierbare LLM-Schritte die Texte zusammenfassen oder strukturiertes JSON erzeugen.
Auf GitHub ansehenZum Projekt
Saraswati führt die gesamte Notiz-Pipeline auf einem selbst gehosteten Server aus: Audio wird lokal transkribiert, das Ergebnis in SQLite gespeichert und optionale LLM-Schritte erzeugen Zusammenfassungen oder strukturiertes JSON. Die Replik unten nutzt vorbereitete Beispieldaten und kontaktiert keinen Server.
Demo:
Eine eigenständige Replik der Saraswati-Oberfläche. Alles läuft auf dieser Seite: Es wird kein Audio hochgeladen, kein Server kontaktiert und Transkripte sowie Modellausgaben sind vorbereitete Beispiele.
Pipeline-Steuerung
Startet die Pipeline manuell und verarbeitet wartende oder erneut fällige Dateien durch ASR und die LLM-Schritte der aktiven Voreinstellung.
- Starte die Pipeline, um die Beispieldateien durch ASR und die LLM-Schritte zu verarbeiten.
- Beobachte den Fortschritt unter Warteschlangen und Dateistatus.
- Öffne danach den Tab Einträge für die erzeugten Ergebnisse.
- Wechsle unter Einstellungen die Voreinstellung und starte erneut.
Audio hochladen
Die echte Anwendung nimmt Audio-, Videodateien oder ganze Ordner an, hasht jede Datei gegen Duplikate und verarbeitet die Warteschlange automatisch. Hier sind zwei Beispieldateien bereits eingereiht; die Auswahl ist nur eine Vorschau.
Dateien oder Ordner hier ablegen, oder:
Warteschlangen
Jeweils eine Datei durchläuft die Pipeline; die übrigen warten in FIFO-Reihenfolge. Die echte Anwendung überträgt Aktualisierungen per Server-Sent Events.
Dateistatus
Jede Datei zeigt ihren Status und aktuellen Schritt. Sobald eine Zeile done erreicht, führt ein Klick direkt zum Eintrag.
Verarbeitete Einträge
Ein Eintrag pro transkribierter Datei. Eine aufgeklappte Zeile zeigt Transkript, Ausgaben aller LLM-Schritte, Zeitachse und Laufhistorie. Der Typfilter grenzt die Ergebnisse ein.
Noch keine Einträge.
Vier Bereiche, standardmäßig eingeklappt. Die Auswahlfelder funktionieren; Textfelder und destruktive Aktionen bleiben schreibgeschützt.
Legt fest, welche Engine Audio auf welchem Gerät in Text umwandelt und wie Stille gekürzt wird. Änderungen gelten für die nächste Transkription; Gerät, Modell oder Berechnungstyp laden das Modell neu.
faster-whisper oder NVIDIA Nemotron Streaming-ASR.
auto wählt CUDA, wenn eine GPU verfügbar ist.
Aus bedeutet, dass Dateien auf einen manuellen Start warten.
Whisper
Größere Modelle sind genauer und langsamer. .en-Varianten unterstützen nur Englisch.
Die echte Anwendung akzeptiert jeden ISO-Code als Freitext.
Quantisierung: int8 läuft auf der CPU, float16 benötigt eine GPU.
Breite der Beam-Suche.
Überspringt Stille vor der Dekodierung.
Übernimmt Kontext zwischen Segmenten; kann Wiederholungen verstärken.
ffmpeg-Lautheitsnormalisierung vor ASR.
Nemotron
Beliebige Hugging-Face-Modell-ID; geladen über transformers.
auto entfernt das Locale-Tag und überlässt die Auswahl dem Modell.
0 deaktiviert Streaming-Blöcke.
Ein OpenAI-kompatibler Server versorgt alle LLM-Schritte. Die Modellliste kommt beim echten System von /v1/models; hier ist die Antwort vorbereitet. Änderungen gelten nur für zukünftige Läufe.
Die aktive Voreinstellung definiert die geordnete LLM-Kette nach ASR. Änderungen erzeugen eine neue unveränderliche Revision, damit laufende Verarbeitungen ihre Definition behalten.
Eingebaute Voreinstellungen sind schreibgeschützt.
Zusammensetzung (geordnete Schritte)
Jede Zeile ist eine Verwendung eines wiederverwendbaren Prompt-Schritts. Die Eingabequelle verbindet ihn mit der Transkription oder einer früheren Ausgabe.
Die gemeinsame Bibliothek enthält die Schritte der Voreinstellungen. Wähle einen Schritt, um Prompts und Dekodierungsparameter anzusehen. Eingebaute Schritte sind schreibgeschützt.