Carola – Personal Voice Assistent

Vor 2 Wochen hatte ich Euch schon von den ersten Schritten für Euren persönlichen Sprachassistenten für Linux berichtet, nun kommt der dafür nötige Code zu Euch.

Carola – Personal Voice Assistent

Das Projekt basiert noch immer auf VOSK, Mbrola und Java, so wie hier beschrieben:

Mbrola – etwas bessere Sprachsynthese

Wer eine deutsche Anleitung zum Installieren der Abhängigkeiten vorzieht, der wird oben fündig zusammen mit einigen nützlichen Infos. Jeder der gleich noch Carola mit installieren möchte, der muß hier auf Github in mein Repo schauen: https://github.com/Cyborgscode/Personal-Voice-Assistent

Neben der Anleitung zur Installation findet Ihr da alle Teile, die Ihr braucht um Euren PC ab sofort per Sprache zu bedienen.

Ziel von Carola

Das Ziel von Carola ist nicht, daß es für Euch Knöpfchen drückt oder Menüs öffnet. Vielmehr soll Carola ganz nebenbei Aufgaben erledigen, die einen perifer interessieren, z.B. im Programmieren oder Schreiben eines anderen Textes, die Musik zu steuern, damit Ihr aus dem Arbeitsfluß nicht rausfallt. Man muß auch nicht mehr zum PC laufen und leiser machen, wenn man gerade kein Handy in der Hose und KDE zur Hand hat, sprich auf einer Feier kann man Carola bitten die Musik leiser zu machen. Solche Dinge stehen hier im Fokus.

Natürlich könnt Ihr es auch produktiv zur Suche nach Dokumenten benutzen, Eure Emails diktieren oder jemanden anzurufen, wenn man die Möglichkeiten hat, die man dazu braucht.

Was Carola nicht tut

Carola wird Euch nicht Eure Lieblingsepisode auf Netflix abspielen oder WOW für Euch zocken, weil Ihr den Char leveln wollt … noch nicht 😉 Das ist zur Zeit zu komplex, wäre jetzt aber wiederum nicht so schwer, wie diverse Botscripte für Spiele beweisen. Eigentlich hapert es nur an den Programmen selbst, weil diese externen Input halt nur per Maus und Tastatur annehmen und keine API zur Verfügung stellen, wie QMMP das z.b. tut. Ich kann Firefox dazu bringen, Netflix zu öffnen, aber das wars dann auch schon.

Wie kann man Carola erweitern

Das erste was Ihr machen könnt ist Eure Apps in die Config einzutragen. Damit, sofern die Apps da funktional mitspielen, habt Ihr das schon einmal personalisiert.

Dann könnt Ihr die Befehlsworte natürlich selbst anpassen. Alles was es braucht ist ein Texteditor der idealerweise Java interpretieren kann und den Java Compiler, der bei Java dabei ist. Wer neue Funktionen einbauen möchte, muß leider Java können. Der universal Parser ist noch nicht fertig, kommt aber.

Wer nicht weiß wie man mit einem Javac Befehl umgeht, Carola weiß es. Solange Ihr keine Fehler einbaut, kann Sie sich selbst kompilieren, auf Zuruf 😉

Pinephone

Carola funktioniert auch auf dem Pinephone gut, klar ist ja auch ein Linux, braucht dort aber eine beta-Komponente von AlphaCephei. Wo man die her bekommt, steht in Github Readme drin. Ansonsten ist alles gleich. Nur eins muß einem klar sein: Wenn auf dem Pine Musik aus dem Lautsprecher kommt, übertönt das Eure Spracheingabe bei weitem! Also Sprachsteuerung und Musik geht nur bei Kopfhörereinsatz.

Alles weitere steht in den Sourcen des Projekts, also wünsche ich jetzt viel Vergnügen damit 🙂

Github: https://github.com/Cyborgscode/Personal-Voice-Assistent

Eine erfreuliche Entdeckung: Meeresalge produziert alles von Benzin bis Heizöl.

Die Meeresalge Dicrateria produziert gesättigte Kohlenwasserstoffe, darunter auch Benzine und Schweröle.

Eine erfreuliche Entdeckung: Meeresalge produziert alles von Benzin bis Heizöl.

Die Entdeckung ist deswegen erfreulich, weil so jeder Mineralöl im Bio-Reaktor herstellen kann und dabei das CO² aus der Luft verwendet wird. Beim Abbrennen dieser Bio-Öle, entsteht also wieder genau das CO², welches vorher verbraucht wurde: CO²-Neutralität mit Biosiegel 😉

Hinweis: Das Abbrennen von Bio-Öl kann genauso umwelt- und gesundheitsschädliche Stoffe freisetzen, wie normales Öl oder Benzin. Nur falls Ihr Euch jetzt auf Bio-Mineralöl gefreut haben solltet 😉

Quelle: https://www.scinexx.de/news/biowissen/erdoel-produzierende-alge-entdeckt/

Linux Am Dienstag – Nachlese 3.8.

Was für ein verrückter Abschluss des gestrigen Vortragsabends 😀 Ein Filesystem, das Daten nicht auf einem Cloudserver speichert, sondern nur im Draht und der Netzwerkkarte zu dem Cloudserver. Wahnsinn! Und weil das nicht genug war, gibt es nächste Woche noch oben eins drauf: ein verschlüsseltes Filesystem auf dem Internetfilesystem drauf 😀

Linux Am Dienstag – Nachlese 3.8.

Für Alle die nicht dabei waren, gestern ging es um Dateisysteme, was drin ist und was man abgefahrenes damit machen kann.

Zuerst gab es einen Vortrag, was wo in einem Linuxfilesystem drin ist. Den könnt Ihr hier downloaden: LUG-2021-Linux-Dateisystem-101-v2

Dann haben wir uns ein Zip Filesystem auf FUSE Basis angesehen:

fuse-zip ./Download/Archivname.zip mntpoint/

Damit ist es möglich mit allen Programmen direkt Dateien aus einem Zip Archiv zu bearbeiten und direkt wieder zu speichern, ohne dafür extra ein Zip-Tool bemühen zu müssen. Dies vereinfacht den Zugriff darauf.

Der nächste Punkt war dann schon etwas ungewöhnlicher: Live Transcoding von MP3 Files

Das FUSE MP3-Filesystem „mp3fs“ kann z.b. FLAC Files „on-access“ in MP3 Files umwandeln:

mp3fs ~/Musik/flacs/  mntpoint/

Bei Mounten kann man diverse Optionen angeben, z.b. die Bitrate fürs Encoding, diverse Strategien.

Hier ein Beispiel wie das dann im Dateimanager aussieht:

Beim Zugriff auf die rechte Seite wird das Flac File von Links kurz kodiert und dann startet die Wiedergabe als MP3. Bis zu diesem Zeitpunkt gibt es das Mp3 File gar nicht. Natürlich hängt die Dauer der Kodierung auf vom PC ab, auf dem dies stattfindet 😉

Danach kam der feuchte Traum eines jeden Scriptkids : PingFS

Ein Filesystem, daß die Daten wortwörtlich im Netz speichert, OHNE Speicherplatz auf einem Server zu benötigen. Im Vortrag zum „Blackops of DNS“ Gedächtnisevent für Dan Kaminski vor ein paar Wochen hatte ich ja mal diverse Techniken gezeigt, wie man Datentransfers verheimlichen kann, u.a. auch den Datentransport per Ping. Das PingFS hat den Ansatz genutzt und speichert die Dateien in Ping-Paketen die zwischen den Servern hin und her geschoben werden. Die Speicherung der Daten erfolgt streng genommen als Bandbreite im Netz 😀

Da man die Pakete nur als Root verschicken kann, kann nur Root dies Filesystem mounten. Nutzer können es allerdings danach auch einsetzen, wenn Sie passende Zugriffsrechte haben.

Im Schritt 1 legt man eine möglichst lange Liste mit Servern als Textdatei an, die für das Netz benutzt werden sollen. Das können Domainnamen oder auch Ips sein, spielt keine Rolle.

Schritt 2 startet das Filesystem:

pingfs -t 5 hosts.txt /mnt/

Speichert man nun eine Datei im /mnt/ wird diese per Ping an die anderen Server übertragen. PingFS zeigt dabei die aktuellen Pakete pro Sekunde an, die dazu benötigt werden.

Verliert der PC den Strom, den Internetanschluss oder unmounted Root /mnt/ sind die Daten weg. Es schwirren für einige ms noch Pakete durchs Netz, aber das hört schnell auf.

Was mich noch interessieren würde ist, ob die anderen Server diese Pakete erkennen und als eigenes Filesystem zur Verfügung stellen können. Damit hätte man ein sprichwörtliches Netzwerklaufwerk 😉

Nächste Woche sichern wir dann PingFS mit einer Verschlüsselung ab, weil derzeit ist das noch Klartext 😉

Am Ende des Abends haben wir uns im 2,5h Stammtisch noch Pop!Os von System76 angesehen, das wirklich ausgesprochen flott unterwegs ist, und mit einer netten Ausstattung kommt. Leider funktionierte Fondo da nicht, was schade war.