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.

Gnome 40, Tablet & RDP

Als mein Pinephone heute morgen mal wieder soooo kleine Buchstaben zeigte, dachte ich mir: „Du hast doch RDP auf dem Tablet, wieso nicht damit aufs Pine?“ Gedacht, getan.

Gnome 40, Tablet & RDP

Auch wenn der Android FreeRDP Build ein bisschen zickig war, hat er am Ende doch die Verbindung hergestellt. Dabei kam es dann auch noch zu einer Ungereihmtheit, die unten am Dokumentiert ist. Mal sehen, wer die von Euch als erster in den Kommentaren postet 😉

Nicht wundern, auf allen Bildern sind Markierungen vom Screenshot unter Android zu sehen, das kann irgendwie nicht anders als sich mitzuteilen 😉

Es fängt ja erst einmal gut an, um nicht zu sagen, auf einem Tablet echt passend:

Allerdings wenn man dann zur Programmauswahl kommt, stellt man leider folgendes fest:

Suboptimale Namen an Symbolen

Das Layout hat halt noch seine Macken. Benutzbar ist es allerdings, wenn auch mit Abstrichen. Beispielsweise kann man nicht nach unten scrollen, dazu muß man erst die FreeRDP eigene Touchmaus aktivieren und auch damit klappt das nicht immer. Alles was man aber mit „Links“ machen kann, geht auch so.

Gnome Swipegesten funktionieren nicht, aber das wird am RDP liegen, nicht an Gnome.

Jetzt das Suchbild für Euch:

Mal sehen, wem es auffällt 🙂

Im Bild rechts ist auch die Touchmaus zu sehen, aber die ist nicht gemeint 😉

Wenn man aus dem RDP ( in dem Fall als ROOT ) jemanden mit Calls anruft, geht Calls auch auf der Desktopsession des Pineusers auf und sendet den Ton natürlich an die lokalen Lautsprecher des Pinephones. Telefonieren kann man also über RDP noch nicht. Witzig wars aber schon irgendwie 🙂

Demnächst mehr davon.

 

 

 

 

 

 

 

 

 

 

Supertuxkart auf dem Tablet

Seit einiger Zeit gibt es Supertuxkart mit einem Touch-Eingabegerät, also habe ich es mal ausprobiert … in groß 🙂

Supertuxkart auf dem Tablet

Wer meine Artikelserie zum Pinephone verfolgt hat, hat den Spieleartikel gesehen. Darin ist auch Supertuxkart und seine Problem auf der Fedoraversion des Pinephones beschrieben, z.b. die mangelnde OpenGL3 Funktionalität der Mali400 GPU, was Supertuxkart in den Softwarerendermodus versetzt.

Dies Problem haben wir auf meinem Surface Pro Tablet natürlich nicht:

Ja, es fuhr wirklich

Supertuxkart ist aufgrund der Bedienung auf Multi-Touchsupport angewiesen. Wenn der nicht da ist, dann kann man entweder lenken und Gas geben oder eine der Zusatzfunktionen nutzen, aber nicht beides gleichzeitig. In der Praxis bedeutet es die faktische Unspielbarkeit des beliebten Kartgames.

Zum Glück gibt es Jake Day

Wer sich an die ersten Artikel zum Surface Tablet im Blog erinnert, dem wird der Umstand wieder einfallen, daß es keinen Touchsupport fürs Tablet gab. Jake Day hatte das geändert, in dem er einen eigenen Kernel kompiliert hatte, in dem dieser Makel behoben wurde.

Mit dem alten Jake Day Kernel habe ich dann Supertuxkart so gespielt, wie das vorgesehen war. Leider auch hier nur mit mäßigem Erfolg, da zwar alle Zusatzfunktionen gleichzeitig zum Lenken auslösbar sind, aber die Lenkung selbst das Problem ist. Viel zu oft bleibt das Kart einfach stehen oder lenkt nicht mehr. Ein Lenkrad wie ein echtes Lenkrad zu drehen ist für Touch nicht die beste Lösung. Eine Wippensteuerung wie auf jedem Gamepad wärs gewesen.

Zusammen mit der Pressdruckerkennung des Touchdisplays wäre eine gelungene Steuerung sehr gut möglich gewesen. Vielleicht bekomme ich die Devs ja zu dieser Änderung 🙂

„Energie ist alles!“

Zu den „mechanischen“ Problemen der Steuerung kommt, daß man das Spiel nicht wirklich lange zocken könnte, da es viel zu viel Energie benötigt. Die 4 i7 CPU Kerne werden wegen 3D Berechnung für die 3K Auflösung schnell sehr warm, was die Lüfter dann kompensieren müssen, ein todsicheres Anzeichen für hohen Energieverbrauch 😉

Aber immerhin, für ein bisschen Unterhaltung reicht eine Akkuladung aus 😉 Da das Spiel netzwerkfähig ist, könnt Ihr fast überall mit anderen Zocken, ob Ihr gewinnen werdet, kann bezweifelt werden 😉

Ladet Euch mal das Bild aus dem Artikel runter, dann habt Ihr eine Idee zur Auflösung des Bildschirms. Natürlich kann man Supertuxkart sagen, es soll eine kleinere Auflösung benutzen, aber das das Display die M$ eigene 3:2 Auflösung benutzt, kommt es zu Verzerrungen, wenn man z.b. auf FullHD runterschaltet.

Gyroskopische Steuerung

Auf Android kann man SupertTuxKart tatsächlich über die Lagesteuerung spielen:

[dev] Gyroscope controls in SuperTuxKart, an opensource racing game from AndroidGaming

Das könnte das Problem tatsächlich lösen, da das Surface so groß ist, das ruckartige Steuerfehler wie im Video mit dem großen Tablet gar nicht möglich wären. Das ist definitiv wert einmal ausprobiert zu werden 🙂

Pinephone: Der Spiele Guide