Tech-related Projects

VM Lab Web-Based VM Creation and management Kit

This package allows a competent linux user to deploy qemu vms, permitting user access through a web browser. Using the spice protocol, along with a preconfigured, slightly modified spice-html5 client, the scripts in this package, in combination with the free Lets Encrypt Certificate Authority, as well as the apache web server, allow users to access virtual machines, with audio forwarding for accessibility. If implemented correctly, this system will allow software training, demonstrations, and other previously inaccessible web based applications to be accessible to the blind, assuming a screen reader is able to be activated within the VM. After extracting this archive into your root directory and adding a system user called vmuser, with the home directory /home/vmuser, the following commands will be available:

Accessible Rockbox Simulator

This is a build of the open source rockbox software simulator with accessibility. While unofficial builds of the simulator already exist, they are not accessible to blind users because they do not include voice files. Since building voice files requires the use of the rockbox build system regardless, this prebuilt win64 rockbox simulator build was created using the ipodvideo target. To control the simulator, you can use the following keys:

To use this as a media player, unzip the file and place your music anywhere in the simdisk directory.

Talkback Installer For Android Custom roms

This flashable zip, installed as a module for the magisk root solution, will install the open source version of Google's Talkback screen reader, along with a build of the espeak speech synthesizer in order to make android roms without built-in TTS capabilities or Google Mobile Services accessible to the blind with no sighted assistance required for initial device setup. After installing your rom and magisk, download and place this zip on your device and install it like any other zip in recovery mode. Since this package is based on the Magisk Module Template Extended project, it does require magisk to be installed on your device. Once the module is installed, simply reboot and activate talkback with the standard accessibility shortcut provided by android. For your reference, an explanation of the shortcuts are listed below:

  1. For android 7.1 and lower, hold your devices' power button until you hear a sound or feel a vibration. Then, place and hold two fingers on the screen until you hear audio confirmation.
  2. For android 8.0 and higher, hold your device's volume buttons for several seconds until you feel a vibration.

If you hear earcons but no speech the first time, reboot your device. This happens because your rom does not have a built-in TTS Engine. The module installs espeak for you, but extraction of the data needed for speech synthesis is not attempted until the first time the TTS is accessed, which cannot be triggered programatically before talkback is activated. On the second reboot, talkback will come up talking as requested. In order to support accessible unlock when your device is encrypted, please install Google TTS or another TTS that supports android's direct boot facility, or use a pattern unlock until espeak adds direct boot support to their engine.

SAPI Cortana and OneCore Voice Enabler for Windows 10

This script, run as administrator, will add cortana and all installed OneCore/Mobile voices to both the 32-bit and 64-bit speech control pannels. This will give you the option of using the offline copy of Microsoft Eva, the current voice for cortana, and theoretically any other voices that microsoft adds in the future, assuming the internal registry formats do not change too much. Simply download the script, go to where you saved it, context menu or right click on it, and choose the run as administrator option. Since it also is registered as a 64-bit voice, it can also be used in Microsoft's default screen reader, Narrator. I have also tested it with several audio games written in the BGT language, as well as the free NVDA screen reader.

VM Creation script for qemu

This script can be used to create vms using qemu. It provides the following functions:

To connect to your vm after startup, copy the [vm name] file to the control host and run it through VirtViewer

To connect to the qemu monitor, copy the [vm name].pem file to your control host and run: openssl s_client -CAfile [vm name].pem -connect [remote host]:[remote port]

Before running the vm script, install the socat program, ovmf firmware and virtio-win iso, packages socat, virtio-win and ovmf in arch.

Digital Sign In Sheet for Windows

This program is designed to keep track of sign ins to an arbitrary number of activities where no complex solution is required. It logs names, dates, times and activities to a simple text file that can be printed or integrated into a more complex solution if required.

Keyboard tutorial for windows

This program will speak and display pressed keys. Most common keys are spoken, including letters, numbers, common symbols, and text editing keys such as arrow keys, backspace, and other commonly used keys. Using the learnkeys.ini file that the program creates in the current directory, you can change the font size of the interface, startup and shutdown messages, which key sequence is used to exit, shift escape by default, and how all supported keys are displayed and spoken.

Sound Board for braudcasters and augmented communication

This program, once executed, can be used to map key presses to sounds. It is configured using the soundboard.ini file that it generates in it's current directory. The default prefix key combination is control+alt. To program a sound, hold down the prefix key and press a letter, number, or function key. A file selection dialog will appear. Simply select a sound, and the program will remember and play back the sound every time the key is pressed. In case you edit the ini file, the program will reread it's config file every few seconds. To change the prefix key or other settings, change the prefix line in the general section of the config file. Two special values are supported, quit, which unloads the program from memory, and reload, which stops all currently playing sounds and force rereads the config file. By default, quit is bound to prefix+q, and reload is bound to prefix+r. Since the program can be activated using standard key presses, it can be used as a communication aid for those with physical disabilities using alternative input devices that can be programmed to mimic key presses. A caretaker can record and assign sounds for commonly used phrases or other messages.

Virtual Appliances for Virtual Box

As Discussed later in this page, I have developed many different operating systems for both standard PC hardware, as well as single board computers like the Raspberry Pi. If you would like to try preconfigured versions of these systems without installing them, which can be a daunting task for some, download and install the Virtual Box program linked above, as well as it's extension pack. Once both are installed, download either the virtual appliance file for jenux or android, open up Virtual Box, go to file>import appliance, and browse to the ova file you downloaded. For the jenux image, the login and password are "jenux" without the quotes. Enjoy!

ebook and document reader for cygwin, linux and mac OS X

This program, given a filename, will make a copy of a supported file and convert it to speech. Adding supported file formats simply requires adding a function that will copy the text of the document to standard output. As of now, the following file types are supported:

1: doc(old Microsoft Word files), uses the catdoc program, which can be installed using your package manager, apt-get, dnf, zypper in linux, and homebrew in Mac OS X

2: docx, uses infozip’s unzip program, and the textual lynx browser, also installable through your package manager.

3: pdf, both textual and images, uses programs from the popler package, pdftotext and pdfimages, as well as tesseract to ocr images if the pdf cannot be automatically converted to text

4: html, uses the lynx textual browser, which is usually called lynx in package managers

6: JPEG, JPG, PNG, and TIFF image files, uses the tesseract OCR program to extract readable text from these types of image files, even while offline.

5: epub, uses the same programs and methods as docx, but gets the text from different files

This program uses espeak to read the output of the text converter functions, and sox(Sound Exchange) to playback the generated files. A speech rate of 500 words per minute is used by default, however, the commands used to speak the text from the converter functions, as well as the commands used to play sounds, if necessary, can be changed by changing the syncmd, synargs, playcmd, and playargs variables near the top of the code. This script will run in cygwin. I plan to make a premade version with all of the dependencies and a GUI based file selection utility in the near future.


Youtube Music Downloader and player for linux and cygwin

This program, given a song title, or artist and title, will allow you to download and listen to the many songs available through youtube. It uses the curl, ffmpeg, youtube-dl, zsh, and sox programs. Upon playing any song, the program will place the file in the .cache/ytplay directory in your home folder, allowing you to play the songs you have downloaded, even without an internet connection. A Windows version of this program is available here.


Large Print and speaking Keyboard practice utility

This program, written for windows, allows you to practice your keyboarding skills. After indicating how many lessons you would like, the program will display and speak a key, requiring you to press the key, advancing to the next lesson if you typed the correct key, and flashing the screen red and re-dsplaying the key if you did not type it correctly.


Spiel Screen Reader for Android

This is a build of the spiel screen reader for android. Spiel was a popular and feature filled screen reader in the days of android 2.3 Gingerbread. Surprisingly, it is still being maintained and updated. This version is built from the source listed below:

https://github.com/beqabeqa473/Asra.git


Accessible wineprefix for 64-bit systems

This is a standalone 64-bit wine prefix with SAPI support included. To use, extract the archive, and move the .wine directory from etc/skel to your home directory on Mac OS X or linux. This is a standalone version of the wineprefix from the accessible wine installer program listed below.


Jenux Installer (x86_64)

This is a bootable DVD image that can be used to install either android or a fully accessible Arch Linux based System called Jenux. It runs on any intel-compatible (64-bit) computer. To start the install, select install Jenux on this device from the main menu. If you are familiar with the Linux command line, you can use this image to repair a damaged system. both csm(legacy bios) and uefi compatible systems. The Jenux installer also has the ability to flash an image to an sd card compatible with the Raspberry Pi series of single board computers, as well as reset a forgotten windows password.

Click Here for a sha512 checksum to verify iso integrity
A demonstration of the installation process, along with playthroughs of several audio games can be found here

Jenux Net Boot script for linux

This script, executed as root, will allow you to boot the above jenux iso on any machine that supports PXE. It takes the full path to the iso and the NIC that will be used to serve the bootloader, config file, kernel, initramfs, and the jenux root file system as arguments. Simply download the script and iso, connect the two machines with an RJ45 cable, and boot the target over the network. The bootloader, kernel, initramfs, and rootfs will be downloaded into the target's ram. As with other scripts, if your browser shows you the script instead of downloading it, open up a terminal and run
curl -O https://nashcentral.duckdns.org/projects/jenuxnetboot;chmod 755 jenuxnetboot

Access Stick Launcher for Windows

This program, once placed onto a USB flash drive, can allow anyone to use any windows computer that allows executing third-party code for free. This program presents a talking menu interface which lets you select speech using a preconfigured copy of the NVDA screen reader, magnification of on-screen elements using the Virtual Magnifying Glass magnification program, or a program that will convert a PDF file or a standard image file containing possibly unreadable text into a standard text file. All of these programs are contained in module files that get extracted on first use to the flash drive containing the main menu program. Please Note: while downloading the modules, it is normal for the program to appear as if it is not responding. If windows notifies you to close the program, please wait for the process to complete.


Accessible Wine Installer for linux and Mac OS X

On Mac OS X, this script will install the homebrew package manager, xquartz, which provides windowing support for UNIX applications since Apple removed the official x11 app from OS x, wine, and a customized wine prefix which allows you to run any self-voicing application. Unfortunately, screen reader support is not possible at this time. If clicking this link shows you the script instead of downloading it, go to utilities, terminal and copy and paste this text into the text field:

curl -O “/projects/wineinstall”;chmod 755 wineinstall;./wineinstall


Android Wear TalkBack Installer

This is a script that will make most android wear smartwatches with recent Android OS Versions use the talkback screen reader, making these useful classes of devices usable by those that cannot see the screen. Note that as part of the installation, you will need sighted assistance to enable USB debugging, accept an authorization prompt, and pair a bluetooth headset or speaker with your watch if it does not have a built-in speaker. To enable USB debugging, go to settings, scroll down and tap about, tap build number a few times until the screen reads “You are now a developer.”, go back to the main settings screen by swiping left, tap developer options, tap adb debugging, plug the device into the computer and accept the authorization prompt. To pair with a bluetooth speaker, go to settings, scroll down to bluetooth or bluetooth devices, make sure your audio device is in pairing mode and tap its name.


Back to Home