Hallo, Computer….bist Du da?

Neulich so am Pinephone:

„Sophia, wie wird das Wetter morgen?“

Sophia: „Die Wetteraussichten für Morgen in Braunschweig : Morgens wird es Bedeckt 18 Grad Celsius. Mittags wird es Bedeckt 21 Grad Celsius. Abends wird es Leicht Bewölkt 22 bis 25 Grad Celsius. in der Nacht wird es Leicht Bewölkt 18 Grad Celsius“

Personal Voice Assistant für Linux

Ja, mein Pinephone redet jetzt mit mir und dafür gibt es einen Grund, es hört nämlich auch aufs Wort \o/

Möglich macht das die Spracherkennung Vosk und die Sprachmodelle von Alphacephei. Das besondere daran ist, es funktioniert lokal ohne Internetanbindung und es ist vergleichsweise schlank. Schlank genug jedenfalls, daß es auf einem Pinephone starten kann und gute Ergebnisse bekommt 🙂 Wo massiv viel Licht ist, ist natürlich auch Schatten: 100% auf einem Core des Pinephones sind normal und damit ist die Batterie leider sehr schnell, sehr leer 🙂

Was braucht man alles dafür?

Da die Lösung auch auf dem Desktop läuft, stell Ihr Euch jetzt natürlich die Frage, wo und wie Ihr die Software installiert. Ihr könnt zwar die Spracherkennung und die Sprachausgabe schon haben, aber leider ist „Sophia PVA“ noch nicht als Source verfügbar, weil ich da gerade die Alpha Version schreibe 😉

Hinweis: Wir benutzen hier Fedora 33/35.

Wir brauchen:

  • Python3
  • pip3
  • portaudio
  • mbrola
  • espeak
    vosk

Espeak:

sudo dnf  -y install espeak

Es könnte aber gut, das es auf Eurem PC schon drauf ist 😉

Mbrola:

Wie man Mbrola installiert könnte Ihr hier lesen:

Mbrola – etwas bessere Sprachsynthese

Von der Anleitung braucht Ihr auch mindestens das „say“ Bashscript und leider eine neue Version, denn aplay zickt rum. Ändert es von:

mbrola -t 1.2 -f 0.8 /usr/share/mbrola/$VOICE/$VOICE /tmp/out.pho -.au | aplay 1>/dev/null 2>/dev/null

nach:

FILENAME=/tmp/mbrola$RANDOM.wav
mbrola -t 1.2 -f 0.8 /usr/share/mbrola/$VOICE/$VOICE /tmp/out.pho $FILENAME
aplay $FILENAME 1>/dev/null 2>/dev/null

dann geht es wieder.

Python3 + Pip3 + portaudio

pip3 install sounddevice
sudo dnf install python3-pyaudio espeak

Vosk:

Wenn man das für den Desktop haben will:

pip3 install vosk

Wenn man es auf den Pine haben will, geht nur eine Beta:

pip3 install https://github.com/alphacep/vosk-api/releases/download/v0.3.30/vosk-0.3.30-py3-none-linux_aarch64.whl

Die Version 0.3.30 könnte sich natürlich bereits geändert haben, da müßt Ihr selbst mal nachsehen.

Das Sprachmodell

Das für Euch passende Sprachmodell kann man hier finden, ich nehme an Ihr wollt Deutsch mit Eurem PC reden 😉 : https://alphacephei.com/vosk/models

Es gibt große und kleine Modelle, die unterscheiden sich in den gelernten Sprachumfang, daher empfehle ich für den PC die große Deutschversion: https://alphacephei.com/vosk/models/vosk-model-de-0.6.zip

Nun noch installieren ( achtet auf die roten Zeilen, die müßt Ihr anpassen, die sind fürs Pine ):

mkdir Programme
cd Programme/
mkdir vosk
cd vosk/
git clone https://github.com/alphacep/vosk-api
cd vosk-api/python/example/
unzip vosk-model-small-de-0.15.zip
ln -s vosk-model-small-de-0.15 model
./test_microphone.py

Und schon läuft Eure Spracherkennungssoftware. Ihr könnt losreden 🙂

Diese Software tut nichts, außer Euch anzuzeigen, was Ihr sagt. Damit trainiert Ihr Euch. Der Personal Voice Assistent namens Sophia, der ist eine andere Sache:

Jetzt hat so ein Voice Assistent keine Oberfläche , also kann man Euch nichts außer seinen Taten zeigen:

auf der Konsole sieht dies so aus:

Nicht für mich gedacht:
 spiele musik ab
Nicht für mich gedacht:vielen danke
Nicht für mich gedacht:ich helfe gerne
Nicht für mich gedacht:können
Nicht für mich gedacht:hm
stelle eine verbindung mit wolfgang her
Ich habe stelle eine verbindung mit wolfgang her nicht verstanden
Nicht für mich gedacht:das hatte schon anwendungen oder zumindest verstanden
Nicht für mich gedacht:klar

Sophia (so heißt mein PVA auf dem Pinephone 😉 ) kann:

Musik suchen und abspielen
Dokumente wie PDF,Text,Calc,Word suchen und öffnen
Videos suchen und abspielen
Musik starten, stoppen und die Lautstärke anpassen
Es weiß was Netflix bedeutet
sagt das aktuelle oder morgige Wetter an
öffnet Firefox, Blender und noch ein paar andere Programme 😉

außerdem kann Sie sich auf Zuruf selbst kompilieren, das macht das Programmieren echt einfacher 😀

Alle Musik nicht mehr selbst suchen zu müssen, sondern suchen zu lassen inklusive Abspielen, ist Gold wert sag ich Euch 😉 Sophia ist in Java geschrieben, also ein Bruch mit dem Pyhonframework Vosk, aber das macht rein gar nicht, da man ja eh nur die Texte braucht 😉

Das gibt einen hübschen Wettlauf, wenn Ihr jetzt alle PVAs programmiert und ins Netz stellt. Weil das absehbar passieren wird, habe ich bei Purism, auch ein bisschen als Scherz, einen Verbesserungsvorschlag gepostet, dafür doch einen ein/aus Button ins Panel zu integrieren 😉

Auf dem Pinephone

müßt Ihr unbedingt darauf achten, den wieder auszumachen. Es schluckt mit meisten 100% von einem Core doch sehr viel Leistung und damit Strom. Die Spracherkennungsleistung ist allerdings besser als auf dem Desktop, was am kleineren Modell liegen könnte.

Außerdem ist das so eine Sache mit Alice Cooper und dem Pinephone, da sitzt der Lautsprecher einfach viel zu dicht am Mikro, was es für Sprache dann taub macht, also ist er als Musikassistent bauartbedingt nicht so richtig brauchbar.

Pinephone: Jetzt wissen wir definitiv, daß es langsam ist :)

Gerade von meinem Pine erzeugt:

PassMark PerformanceTest Linux

Pine64 PinePhone (1.2) (AllWinner A64)
4 cores @ 1152 MHz | 2.9 GiB RAM
Number of Processes: 4 | Test Iterations: 1 | Test Duration: Medium
--------------------------------------------------------------------------
CPU Mark: 355
Integer Math 8031 Million Operations/s
Floating Point Math 1058 Million Operations/s
Prime Numbers 2 Million Primes/s
Sorting 1590 Thousand Strings/s
Encryption 109 MB/s
Compression 2 MB/s
CPU Single Threaded 157 Million Operations/s
Physics 36.1 Frames/s
Extended Instructions (NEON) 143 Million Matrices/s
Memory Mark: 228
Database Operations 281 Thousand Operations/s
Memory Read Cached 2143 MB/s
Memory Read Uncached 1201 MB/s
Memory Write 2725 MB/s
Available RAM 832 Megabytes
Memory Latency 405 Nanoseconds
Memory Threaded 1322 MB/s
--------------------------------------------------------------------------

Wir haben es gefühlt, jetzt wissen wir: Der CPU Kern des Pinephones ist eine langweilige Kartoffel 😀

Die CPU hat weniger Dampf als ein „AMD Athlon II 170u“ von 2010, aber immerhin braucht Sie weniger Leistung dafür ( AMD 20W, A64 4W ). Erstaunt bin ich über die 109 MB/s Encryption, das ist ja mal nicht übel für so eine ansonsten langweilige CPU 😉

Naja, ist ja auch ein Handy 😀

Pinephone: Firefox 89 (Un)Nutzbarkeit

Da aus dem anderen Zimmer meiner Wohnung gestern zwei Stunden lang Mozilla und deren Angestellte verflucht und auf das übelste beschimpft wurden, möchte ich Euch auf eine graphische Reise von Berg der Hoffnung, ins Tal der Tränen mitnehmen.

Pinephone: Firefox 89 (Un)Nutzbarkeit

Vorweg, man kann mit Firefox auf dem Pinephone durchaus arbeiten, das gilt auch noch für Firefox 89. Es ist aber ein Weg voller Gefahren für Eure Stirn.

Natürlich habe ich es gestern nach dem Firefox 89 Update gleich mit WebRTC Videokonferenz und Matrix versucht, um zu sehen, ob dies noch funktioniert und/oder besser geworden ist. Zwei Dinge bleiben festzustellen:

  1. Megapixels gestartet zu haben, bevor man mit Firefox einen Matrixvideoanruf tätigen will, ist ganz schlecht. Da hilft nur der REBOOT aka. es geht dann nicht mehr.

  2. Firefox kann mit Jitsi Meet keine Kamera ansprechen, mit Matrix Web schon. Ich finde das mehr als merkwürdig.

und ein dringender Aufruf an alle Render-Engine-Hersteller dieser Welt:

„Hört endlich auf, Dinge außerhalb des physikalischen Bildschirms zu positionieren!“

Beispiele: ( ich habe keine Grafiken gemacht )

  • Es kommt ein Anruf rein, ein Requester geht auf, aber man kann keins der Buttons anklicken, weil beide Rechts aus dem Bildschirm raus sind. Dabei mehr als genug freier Platz im Restfenster!
  • Es gibt keine ZOOM Optionen, die man erreichen könnte, um den Zoomfaktor vom FF zu ändern. Das geht nur per Tastatur, welche durch notorische Abwesenheit auf einem Touchgerät glänzt 😉
  • Apps, die Navigationen extra breit machen, so daß für den eigentlich Hauptinhalt kein Platz mehr ist.
  • Buttons, die auf Teufel komm raus im Sichtfeld platziert werden, aber so klein sind, daß man sie nicht anklicken kann. Die Bilder die gleich kommen, vermitteln den falschen Eindruck, weil die auf Eurem Bildschirm viel zu groß dargestellt werden 😉

Fangen wir mal mit einer aufgeräumten Browseroberfläche an: Chromium

Chromium

Ja ja, man kann sich bei Netflix einloggen, aber zu sehen bekommt man leider nichts, weil das Widevine-Plugin fehlt.

Firefox – noch siehts ok aus

Nach dem Start sieht Firefox eigentlich ganz nett aus, oder? Bis man es nutzen möchte:

das nächste Bild zeigt nicht ein falsch gerendertes Aufklappmenü, es sind zwei 😀

ganz genau hinsehen!

Einige Menüs kann man nämlich nicht mehr zuklappen, bzw. die gehen beim Aufklappen von anderen Menüs nicht von alleine zu. Tja. Das ist das Hauptmenü:

Von „Zoom“ keine Spur mehr. DANKE MOZILLA! Das ist auf einem Display von 5,5 Zoll EXTREM HILFREICH!

Das einzige Menü, das was taugt, ist das Lesezeichenmenü:

und selbst das ist falsch positioniert: links noch Platz, aber Rechts was abschneiden.. das haben wir gerne.

Das liegt natürlich nicht am Firefox, sondern an dem mangelnden universellen UI-Toolkit für Handy. Gnome hat da schon mal was vorbereitet, aber nutzen muß es natürlich keiner und was dann passiert, sieht man hier.

Das ein Pinephone nicht einfach Desktopapps laufen lassen kann und alle erwarten könnten, daß das dann auch brauchbar ist, sollte jetzt allen klar sein. Man benötigt spezielle Bedien- und Layout-Ideen um auf einem physikalisch so kleinen Bildschirm zu bestehen. Da ist der Linuxansatz noch Lichtjahre vom normalen Appmarkt entfernt. Leider.

Dabei wäre es ja ein leichtes gewesen, von Android zu lernen, so wie es Plasma Mobil gemacht hat. App Uis müssen aufgeräumt und groß designt sein. Es hilft auch nicht, wenn der Desktop, warum auch immer, im laufenden Betrieb die DPI-Skalierung verändert. Das passiert öfter als man denkt.

Es gibt aber auch Lichtblicke: Portfolio, Lollypop, Fluffychat . Die können alle sauber auf dem Handy bedient werden.

Linux geht zwar mit großen Schritten auf dem Pinephone voran, aber bevor es nicht einen einheitlichen UI-Toolkit gibt, wird das ein steiniger Weg werden.