Home
Name Modified Size InfoDownloads / Week
Readme.txt 2024-08-07 10.8 kB
mice-ttm 0.1 alpha.tar.gz 2024-08-07 83.2 kB
Totals: 2 Items   94.0 kB 1
Mice TTM
--------

Inhalt:
  - Name des Programms
  - Mice TTM, Sprachbefehl Interpreter, Barrierefreiheit für Linux
  - einige Ideen die ich bereits umgesetzt habe
  - Hinweis zur Spracherkennung
  - Ablauf der Spracherkennung und Befehle
  - macro.txt
  - Installiere folgende Programme damit Mice TTM funktioniert
  - Welche Dateien werden angelegt bzw. benötigt
  - noch vorstellbare Funktionen
  - mir bekannte Fehler(Bugs)

Vorwort:
falls Interesse besteht, werde ich das Programm und weitere PlugIns entwickeln und überhaupt an der Barrierefreiheit für Linux weiter arbeiten.
Verbesserte Bildschirmvorlesefunktionen und Einscannen von Briefen und diese Vorlesen usw.
eine Umsetzung für Windows währe denkbar. Da diese für Windows bereits gegeben ist aber unnötig, soviel ich weiß.
da ich noch kein Feedback erhielt und ich der einzige bin der dieses kleine Tool benutzt, gibt es noch einiges zu entwickeln.
Ich kann daher auch nicht alle Fehler finden.


Name des Programm und dessen Bedeutung
--------------------------------------
Mice, der Name meines Freundes. TTM = Text To Macro


Mice TTM, Sprachbefehl Interpreter, Barrierefreiheit für Linux
--------------------------------------------------------------

Dieses Tool wird speziell für die Barrierefreiheit unter Linux entwickelt.

Es ermöglicht das umwandeln/konvertieren/parsen von Texten die aus einer Spracherkennung stammen,
in Diktate sowie das Ausführen von Makros.
Dies funktioniert ohne das Internet, da die Spracherkennung auf dem PC selbst erfolgt.

Mausbewegungen auf benannte Wörter und dann entsprechend auswählen oder per Sprachbefehl
klicken. Außerdem können Textpassagen z.B. unter Libreoffice Wirter per Sprachbefehl
entsprechend ausgewählt und bearbeitet werden. Springe zum Satzende und so weiter.
Hausautomatisierungen können realiesiert werden.
Nach jedem Befehl kann ein Feedback per Sprachausgabe erfolgen.(tts)

Makros können das Licht einschalten oder den Fernseher per Broadlink steuern.
Je nach dem welche Idee man hat.
Ich stelle zu Hause die Wohnraumtemperatur auf eine per Sprachbefehl ausgewählte Temperatur.
Dabei kann eine Rückmeldung per Sprachausgabe folgen, "Die Wohnraumtemperatur wurde auf 20Grad eingestellt"

einige Ideen die ich bereits umgesetzt habe
-------------------------------------------
- Radiosender abspielen(Internet Radio per vlc abspielen)
- Geräte steuern per WLAN Steckdose
- Geräte per Infrarot Fernbedienung über Broadlink Adapter steuern

- Maus Bewegungen und Tastatur eingaben
- einen bestimmten Textbereich markieren, ersetzen oder löschen
- Fenster öffnen schließen speichern...
- Nachrichten verschicken
- mit zusätzliche PlugIns bzw. Unterprogrammen die beiliegen ist es möglich den Mauszeiger auf bestimmte Wörter
  zu navigieren und dort einen Klick auszuführen z.B. Ok oder Abbrechen klicken.


In der Datei speech-replace.txt werden falsch verstandene Wörter korrigiert, während in der Datei macro.txt
die Befehle geschrieben und abgearbeitet werden.
Es können Satzzeichen gesetzt werden, Zahlen können als solche oder als Wort geschrieben werden.
Starte ein YouTube-Video mit "starte youtube neues aus der welt" oder öffne Facebook mit "www facebook",
um Firefox mit Facebook zu starten. Fenster können geschlossen und Dokumente gespeichert werden, alles per Sprachbefehl.

# Hinweis:
# --------
# das Programm wurde für Linux geschrieben, da die Barrierefreiheit
# nur eingeschränkt möglich ist.
# Um einen leichteren Zugang zu ermöglichen, habe ich die Spracherkennung
# vosk mit der kleinen Spracherkennungsdatenbank gewählt und dieses Programm
# welches nur die Wörter in Befehle umwandelt dazu entwickelt.

# Dies ermöglicht die Spracherkennung auch auf dem Raspberry.
# Der unterschied zwischen der kleinen und großen Datenbank ist 45MB zu 1900MB.
# Das die größere Datenbank die Sprache besser erkennt versteht sich von selbst.
# Aber die Geschwindigkeit der Erkennung ist langsamer
# und der Energieaufwand ist auch deutlich höher. Somit auch nicht für
# den günstigen und langsamen Raspberry geeignet.


Ablauf der Spracherkennung und Befehle
--------------------------------------
du musst ein WakeWord sagen und dann folgen die Befehle. Der PC warte 10 Sekunden auf einen Befehl danach
ist das Wartefenster geschlossen, das WakeWord muss erneut gesagt werden.
im Diktiermodus oder schon vorbereiteten Fernsehmodus ist das WakeWord nicht nötig. Somit können Befehle
direkt ohne Ansprache des PC's erfolgen.
Wird das WakeWord im Diktiermodus erwähnt, wird der Modus automatisch beendet
mein PC heißt Computer. Sagt man Computer so schaltet sich der Lautsprecher aus, um somit Fremdgeräusche zu
unterdrücken und die Spracherkennung zu verbessern.


macro.txt:
----------
die macro.txt muss auf deinem Rechner konfiguriert werden.
Verzeichnisse müssen angepasst werden. Ich hoffe das versteht sich von selbst,
wenn man die Datei öffnet und durchließt. Bislang habe ich dafür kein
Einrichtungstool geschrieben. Falls erwünscht werde ich auch dies erledigen.
Warum macro.txt. Ich wollte das Tool möglichst leicht erweiterbar gestalten. Daher können Makros einfach
mit dem Texteditor erweitert werden. Du musst kein Programmierer sein nur kreativ.
Ich habe auf geschweifte Klammern wie im json Format verzichtet.
Man muss wenig schreiben, aber man muss sich an die Reihenfolge halten. Alles wird in dieser Datei
erklärt.

in der Datei macro.txt können die Befehle/Funktionen erweitert werden. Hier ist das WakeWord immer nötig
von dort aus gelangt man in die selbst ernannten Modus Dateien z.B. Fernsehmodus.txt oder Diktiermodus.txt.
im Modus benötigt man wie oben bereits erwähnt kein WakeWord, dieses darf auch nicht ausgesprochen werden,
ansonten geht er zurück zum macro.txt Modus.


Installiere folgende Programme damit Mice TTM funktioniert.
-----------------------------------------------------------
das Tool arbeitet mit(installiert werden muss):
vosk        als Spracherkennung
xdotool     Tastatur und Maus Makros ausführen
piper-tts   Sprachausgabe
scrot       Bildschirmfoto für die Erkennung an welcher Textstelle die Maus bewegt werden soll
tesseract   Texterkennung um die Bildschirmfotos lesen zu können und die Mausposition bestimmen
vosk ist Vorraussetzung ohne dies funktioniert nichts. Alle anderen Tools sind nicht unbedingt nötig,
sofern man Linux nicht steuern möchte

installieren muss man
im terminal mit den Befehlen:
    pip3 install vosk --break-system-packages
    pip3 install sounddevice --break-system-packages
    pip3 install piper-tts --break-system-packages
    sudo apt install xdotool scrot tesseract

    kopiere es und füge es im Terminal ein

für weiter infos: https://alphacephei.com/vosk/install
und               https://github.com/rhasspy/piper

das piper Model tts im gleichen Verzeichnis Speichern wie speech_to_makro
hier ein link zum Model von Thorsten:
https://huggingface.co/rhasspy/piper-voices/blob/v1.0.0/de/de_DE/thorsten/low/de_DE-thorsten-low.onnx
https://huggingface.co/rhasspy/piper-voices/blob/v1.0.0/de/de_DE/thorsten/low/de_DE-thorsten-low.onnx.json
beide Dateien im Verzeichnis speichern


das vosk model muss unter dem Verzeichnis model gespeichert werden
hier der Link zum Model:
https://alphacephei.com/vosk/models/vosk-model-small-de-0.15.zip

weitere Sprachmodelle
https://alphacephei.com/vosk/models


Welche Dateien werden angelegt bzw. benötigt
--------------------------------------------
/home/deinName/deinPfad/macro.txt
/home/deinName/deinPfad/Readme.txt
/home/deinName/deinPfad/speech-replace.txt
/home/deinName/deinPfad/number-replace.txt
/home/deinName/deinPfad/diktiermodus.txt
/home/deinName/deinPfad/fernsehmodus.txt
/home/deinName/deinPfad/micestt
/home/deinName/deinPfad/mousetotext
/home/deinName/deinPfad/microphone.py
/home/deinName/deinPfad/de_DE-thorsten-low.onnx
/home/deinName/deinPfad/de_DE-thorsten-low.onnx.json
/home/deinName/deinPfad/model/
/home/deinName/deinPfad/model/AUTHORS
/home/deinName/deinPfad/model/disambig_tid.int
/home/deinName/deinPfad/model/LICENSE
/home/deinName/deinPfad/model/mfcc.conf
/home/deinName/deinPfad/model/word_boundary.int
/home/deinName/deinPfad/model/README.md
/home/deinName/deinPfad/model/final.mdl
/home/deinName/deinPfad/model/Gr.fst
/home/deinName/deinPfad/model/HCLr.fst
/home/deinName/deinPfad/model/ivector/global_cmvn.stats
/home/deinName/deinPfad/model/ivector/online_cmvn.conf
/home/deinName/deinPfad/model/ivector/splice.conf
/home/deinName/deinPfad/model/ivector/final.dubm
/home/deinName/deinPfad/model/ivector/final.ie
/home/deinName/deinPfad/model/ivector/final.mat

welche Dateien werden noch angelegt:
/tmp/mousetotextscreen.jpg  Bildschirmlesen um die Maus auf bestimmte Wörter zu setzen, wenn man möchte
/tmp/lastspeech.txt         Um die letzten Befehle wiederholen zu können.
/tmp/out.hocr               Für die Bilderkennung an welcher Position welches Wort auf dem Bildschirm steht.

Außerdem werden die Sprachausgabe(tts text to speech) Dateien im Arbeitsverzeichnis vom Tool gespeichert.
Die Sprachausgabe braucht dann nicht ständig neue Ausgaben generieren, welches Rechenzeit und Strom spart.
Falls man mit dem Raspberry arbeitet.


noch vorstellbare Funktionen
----------------------------
- Bildschirm Vorlesefunktion, der Mauszeiger steht an bestimmter Stelle und ab dort wird alles Vorgelesen.
- Bildschirm Vorlesefunktion, die Maus steht an einer Stelle und der Bereich wird vorgelesen sobald man
  eine Tastenkombination drückt(bereits fertig aber nicht veröffentlicht und vollst. getestet)
- Groß/Kleinschreibung automatisieren. evtl. schon in Vosk
- GUI um die Befehle zu erweitern
- Fehler in der macro.txt automatisch finden und korrigieren, sortieren der richtigen Reihenfolge, lange Befehle
  zuerst dann die kürzeren.
- Befehle per Sprachbefehl erweiterbar machen.
- evtl. KI für die Umsetzung der Befehle nutzen oder einfache Unterhaltung
  für mich nicht interressant, da KI zu langsam und rechenintensiv ist
  Aber eine witizige Spielerrei

mir bekannte Fehler
---------------------
- beim langsamen PC kommt die Spracherkennung nicht hinterher. Besonders wenn der Fernseher läuft.
  die Spracherkennung kann dann teilweise nichts mehr verstehen. Dies liegt an vosk. Ich hatte
  bislang keinen Bedarf den Fehler zu korrigieren. Einfach das Tool neu starten und es läuft wieder
- das gleiche passiert hin und wieder wenn man den PC aus dem Standby Modus holt.
- mehrere Zahlen hintereinander gesagt ergibt eine Summe aber keine einzelne Zahlen.
  man kann aber auch einzelne Ziffern sagen. Somit kann man das Problem umgehen
- nur Kleinschreibung.
- verschlucken von Befehlen, er führt bereits etwas aus, obwohl der Satz nicht zu ende gesprochen wird

Source: Readme.txt, updated 2024-08-07