Seite 1 von 1

DiktierApp (Vosk + Silero) mit Problemen

Verfasst: Sonntag 27. Juli 2025, 20:53
von pythia
Hi,

ich falle gleich mit der Tür ins Haus :D
Und gleich vorweg, ich habe recht wenig Ahnung vom Coden (vielleicht wird sich das ändern). Meine letzten 'Coder-Erfahrungen' liegen in zeiten, in denen man Webseiten mit HTML, Tabellen und Frames gemacht hat, also nciht gleich erschlagen :)

Es fragte mich jemand nach einer Diktierapp und ich dachte mir, warum nicht, ChatGPT, Grok und Co. können sowas bestimmt schreiben. Denn Ich hab seltsamerweise keine wirklich aktuell funktionierende (kostenlose) App gefunden.

Also habe ich mich an die Arbeit gemacht bzw. die KI-Chats zur Arbeit gezwungen.
Interessant ist es auf jeden Fall, was die Dinger rausspucken können!
Nach einer ganzen Weile herumdiskutieren und jede menge Verzweifelung (die Dinger sind doch noch blöd und ich nicht schlau genug) kam dieser code raus, den ich hier poste.

An sich funktioniert (fast) alles.
Die on/off-Funktion für Groß- und Kleinschreibung geht wohl noch nicht (habe es vor allem aus debugging Gründen implementieren lassen, damit man manche Prozesse abschalten kann), aber ansonsten läufts.

Das Problem:
1. es ist noch etwas langsam und ich frage mich, obs doch auch mit Silero + Großschreibung (german-nouns) schneller geht
2. die Spracherkennung ist dürftig

Ich habe davor ohne Silero-VAD nen Skript gebastelt, der geht mit deutlich besserer Erkennung und Geschwindigkeit, aber da kommt doch einiges an Müll mit.

Falls hier jemand mit Erfahrung Lust/Zeit hat, kann er gerne mal mitschauen. Ich denke, wenn man mit Vosk und Silero schon gearbeitet hat und Ahnung von Python hat, wird man das Problem eher erkennen.

Danke schon mal!

P.S.
Habe versucht den Code zu posten, der ist allerdings zu lang. Gibts eine andere Möglichkeit? Dateien hochladen kann man hier wie es aussieht nicht.
Habs jetzt erstmal so gelöst: https://codeshare.io/GL7Ng6

Re: DiktierApp (Vosk + Silero) mit Problemen

Verfasst: Montag 28. Juli 2025, 21:42
von pythia
habs in der Zwischenzeit auf customtkinter ändern lassen.
Die Spracherkennung ist nach dem Rumspielen mit Empfindlichkeit, Timeout und Pufferdauer ganz ok. Auch wenn natürlich nicht überragend. Weiß nicht, ob mans noch besser hinbekommt durch etwas.

Was könnte man noch dran verbessern?

Re: DiktierApp (Vosk + Silero) mit Problemen

Verfasst: Dienstag 29. Juli 2025, 15:42
von pythia
Noch ein paar Anpassungen untenrommen.

1. Sanftes scrollen der Zwischenergebnisse geht nicht.
2. Komma und Punkt werden sehr schlecht erkannt.
3. "Substantive automatisch großschreiben"-Schalter funktioniert nicht.

Falls jemand grundsätzlich etwas noch zu verbessern sieht, sehr gerne! :)

Re: DiktierApp (Vosk + Silero) mit Problemen

Verfasst: Mittwoch 30. Juli 2025, 06:22
von sparrow
Was genau ist denn jetzt deine Erwartung?
Du hast dir Code generieren lassen, der - vorsichtig ausgedrückt - unschön ist.
Ich empfehlen von LLMs Abstand zu nehmen und Python zu lernen, falls du wirklich lernen willst.
Ansonsten wird wohl niemand Zeit investieren, um Code zu prüfen, in den du keine Zeit investiert hast.

Re: DiktierApp (Vosk + Silero) mit Problemen

Verfasst: Mittwoch 30. Juli 2025, 11:58
von noisefloor
Was könnte man noch dran verbessern?
Den GUI-Teil _immer_ in einen Klasse packen, sofern nicht eine mega-triviale GUI generiert wird. Den Code sinnvoll aufteilen und nicht Spaghetti-mäßig eine Haufen Funktionen in eine Datei packen. Grundsätzlich _nie_ globale Variablen verwenden. Der Installationsteil via pip funktioniert mit neueren Python Versionen u.U. nicht, weil für die Installation von Modulen ein venv vorausgesetzt wird.

Gruß, noisefloor

Re: DiktierApp (Vosk + Silero) mit Problemen

Verfasst: Mittwoch 30. Juli 2025, 15:27
von __blackjack__
Installation von Modulen würde ich sowieso nicht mit in ein Programm stecken. Dafür gibt es doch die requirements.txt. Und ohne venv zerschiesst man sich eventuell auch das System. Keiner möchte so ein Programm einsetzen.

Re: DiktierApp (Vosk + Silero) mit Problemen

Verfasst: Sonntag 3. August 2025, 22:54
von pythia
danke schon mal für Tadel und Tipps :D

In der Zwischenzeit kam ich etwas weiter, mit manchen dämlichen Schleifen von Grok.

Es gibt ein Problem mit Speicherleak bei Vosk, da habe ich eine automatische Speicherentleerung eingebaut.
Der RAM füllt sich nach und nach, wenn man so vor sich hin aufnimmt. Jetzt gibts ne Einstellung, das man ihn nach so und so viel MB-Zuwachs und so und so viel Minuten Standby durch das Neuladen des Modells entleert. Eine bessere Möglichkeit fand ich nicht. Dazu habe ich einen ausgelagerten Daemon drin, der die Arbeit erledigt.

Dann habe ich versucht den Code etwas besser umzusetzen bzw. umsetzen zu lassen.
Das ist natürlich so eine Sache, wenn man Laie ist. Aber ich glaub, es ist etwas besser als die erste Chaosvariante.
Aber ja, lang nicht fertig. Wollte zuerst mich auf Funktionalität konzentrieren.

Für Mac habe ich mittlerweile eine dmg gebaut, die funktioniert! Und zwar bisher gar nicht schlecht.
Weiß allerdings noch nicht, ob sie auf anderen Geräten läuft, wird demnächst gecheckt (ich vermute, nicht).
Gebaut habe ich für MacOS mit dieser spec: https://codeshare.io/5XNd4l

Bei Windows kämpfe ich schon seit Tagen und bekomme keine lauffähige (vor allem auf anderen PCs) exe hin.
Es gab eine Tonne an verschiedenen Fehlern, fehlenden DLLs etc.
Jetzt bin ich soweit, dass onedir auf meinem Win-PC (VM via UTM auf MacOS) läuft.
Nur das large Modell gibt beim Laden nach etwas über 5GB im RAM einen Ladefehler aus.
Bisher hat nichts geholfen, ich dachte an Auslagerungsdatei, aber es liegt nicht daran.
RAM wurde der VM mehr als genug gegeben, samt 6 CPUs.
Gebaut wurde die onedir mit dieser spec: https://codeshare.io/29jKDK
Es gab zick versionen davon, mit und ohne DLL-Einbindung, aber so hats zumindest mal funktioniert (auf meinem PC).
Übertrage ich die exe und _internal auf einen anderen PC, bekomme ich quasi nen Windows-Fehler:

Code: Alles auswählen

Ein wichtiges Paket fehlt: None.
Bitte installiere alle Pakete mit: pip install customtkinter pillow numpy etc.
Und lade danach das deutsche Sprachmodell von spacy herunter
Nicht im wortlaut, aber sinnegmäß.

Das ist der im Skript eingebaute Check.
Ich dachte, vielleicht ist er einfach bei einem build unnötig und führt zum Absturz, weil die Pakete ja intern drin sind.
Habe aber noch nicht versucht ihn auszukommentieren.

Bei onefile sind noch mehr Probleme. Da will die exe gar nicht starten. Hab gefühl alles versucht.
Einmal mit Python 3.12: https://codeshare.io/5w4AYK
Hier war der direkte, harte Pfad zu Python-DLL nötig, anders wollte er sie nicht einbinden.
Einmal mit Python 3.11: https://codeshare.io/GkJBKw

Am Ende fehlt immer die python311.dll oder *312.dll, obwohl sie eingebunden wird. Egal was ich mache.
Der Fehler zeigt, dass sie im _internal-Ordner gesucht wird, den gibts aber natürlich nicht, weil es onefile ist.

Soweit erstmal :)

Was ich erwarte? Gar nichts.
Ich hab halbwegs Spaß dran und mach mir nichts draus. Fand einfach keine App, die das kann.
Wenn hier jemand vielleicht mit Ahnung auch mal an so eine App gedacht hat, wäre das vielleicht eine gute Grundlage.
Aber das könnt ihr besser beurteilen.