Skip to main content

Sysadmin, interested in new technologies, communications, multimedia, accessibility, better Linux than Windows, better Android than IOS and similar.

twitter.com/pvagner

www.facebook.com/pvdeejay

mastodon.sk/@pvagner

Peter Vágner

Awesome explanation and a command line example of transcoding analog video to webm on linux with . Tip to a linux friendly capture device is great too!

Peter Vágner

Chromium is getting #Accessibility support on linux

2 min read

Update: More up to date snapshot than chromium-snapshot-bin 80 is now available. Make sure you are running the latest snapshot for testing and reporting bugs.

 

Accessibility support with Chromium on linux is a thing that developers are working very hard on this year and it turns out it’s getting better and better all the time. I’d say now it’s very usable already. Joan Marie has written a wiki article explaining its current state. I’ve expressed that it looks to be awesome, feels snappy.

Now I’ll add a few simple steps explaining how to install the latest chromium snapshot and enable its built-in accessibility support on Arch linux and other linux distros based off of it.

  • All the commands you are executing should be executed as a normal user i.e. not root. Those that require super user privileges are starting with sudo.

  • Download and install chromium-snapshot-bin package from the AUR

    wget https://aur.archlinux.org/cgit/aur.git/snapshot/chromium-snapshot-bin.tar.gz
    tar xvzf chromium-snapshot-bin.tar.gz
    cd chromium-snapshot-bin
    makepkg -s
  • Now pay attention what package version this will end up building for example as of today it’s chromium-snapshot-bin-80.0.3970.0.r716024-1-x86_64.pkg.tar.xz.

  • Install the package like this

    sudo pacman -U chromium-snapshot-bin-80.0.3970.0.r716024-1-x86_64.pkg.tar.xz 
  • Now set a required variable named ACCESSIBILITY_ENABLED to 1 and write it to your desktop session profile

    sudo bash -c 'echo "export ACCESSIBILITY_ENABLED=1" > /etc/profile.d/chromium-accessibility.sh'
  • Now Write suggested chromium command line flags to the config file wrapper script responsible for launching chromium is looking for

    echo "--force-renderer-accessibility --enable-caret-browsing " > ~/.config/chromium-flags.conf
  • Now relogin to your desktop session, launch chromium whatewer way you prefer and you should enjoy its accessibility support with orca.

Peter Vágner

Building eSpeak-ng for Android with libsonic built-in

2 min read

By a popular demand I have written a few steps how I am building espeak-ng for android.
ESpeak-ng has a optional dependency on a library called libsonic.
It's not critical for its functionality but it allows speeding up synthesised voice so we can get eSpeak-ng speaking at very very fast speech rates.
On linux the build system is configured to take advantage of system wide installation of all the required libraries. This does not nicely apply to the cross compilation for Android as all the libraries have to be prebuilt for the target platform.
And since there is no other distribution channel for the libsonic library other than its git repository with its source code, there are no prebuilt libraries for android.
To workaround this I am cloning libsonic repository, linking its files to the eSpeak-ng source tree and then patching eSpeak-ng source code to include the libsonic files as if these were part of eSpeak-ng it-self.

I am running all this on arch linux, but debian, ubuntu and any other linux distro with gradle, Android-SDK 26, android-sdk-build-tools 28.0.3, recent enough version of android-ndk will work fine.
I like to install all these components via the linux distro package manager.
Espeak-ng Readme has even more details I can write here. There are also some android specific dependencies

If everything is installed here are the commands I can run from the terminal:
mkdir ~/espeak # create a working folder
cd ~/espeak # enter that folder
git clone https://github.com/espeak-ng/espeak-ng.git # clone espeak-ng git repo
git clone https://github.com/espeak-ng/sonic.git # clone libsonic repository
ln -s ../../../sonic/sonic.{c,h} espeak-ng/src/libespeak-ng/ # link sonic files to eSpeak-ng source tree
wget https://files.pvagner.tk/f/e9c6874015fd4241b6c2/?dl=1 -O espeak-ng-libsonic-android.patch # download a patch
cd espeak-ng # change directory to the espeak-ng repo
patch -p1 < ../espeak-ng-libsonic-android.patch # apply the changes from the patch
./autogen.sh # prepare the configure script
./configure --prefix=/usr --with-gradle=gradle --with-extdict-ru --with-extdict-zh --with-extdict-zhy # run the configure script
make apk-debug # build the actual apk

The resulting app is placed in the path android/build/outputs/apk/debug/espeak-debug.apk
You can install this on your device and enjoy fast rates up to 800 WPM.

Peter Vágner

hmmm. I feel we all users relying on its shal start looking for a different platform of choice to the future. https://gitlab.gnome.org/GNOME/gtk/issues/1739

Peter Vágner

can be made accessible when running under linux. It's just that the working patch has not landed for some 10 years... https://bugzilla.abisource.com/show_bug.cgi?id=4736

Peter Vágner

Peter Vágner

Peter Vágner

Built PHP 5.4.45 on RPI3 Arch Linux ARM AARCH64. It took approx two hours.

Peter Vágner

Peter Vágner