Seeing Dog Puppy for Blind

What features/apps/bugfixes needed in a future Puppy
Message
Author
muggins
Posts: 6724
Joined: Fri 20 Jan 2006, 10:44
Location: hobart

#46 Post by muggins »

I've uploaded an espeak .pet here:

http://www.murga-linux.com/puppy/viewtopic.php?t=25046

It can read text files, in a stilted, staccato, voice, by entering:

espeak -f Path_to_text_file/File_name.txt

djringjr
Posts: 157
Joined: Sun 14 Jan 2007, 21:08

#47 Post by djringjr »

raffy,

Have your students - especially the "no eyes" ones write down what they need to have. Particularly ask them if my idea for a command line driven distro with uniform key bindings and a hirearchy structure (press 1 to send mail, press 2 to read mail... etc.) will work for them.

If any use Emacspeak - ask them if they think this is too difficult. It can always be provifded from the command line - it is very powerful but difficult for people who forget the key chords. If an X interface - which you could navigate with up/down arrow cursor, it could be under "advanced".

Best to all - and happy 2008.

David

djringjr

Trobin
Posts: 968
Joined: Fri 19 Aug 2005, 03:16
Location: BC Canada

#48 Post by Trobin »

A lot of stuff about Emacspeak can be found here

http://www.cs.vassar.edu/~priestdo/emacspeak/

mcewanw
Posts: 3169
Joined: Thu 16 Aug 2007, 10:48
Contact:

wiakspeak

#49 Post by mcewanw »

djringjr wrote:Hello Eric - and others,

I'm using 3.01 right now. It would be amazing if someone could do the command line puppy with speech - that would mean that even a 486 with small ram could get on internet, read mail using a text or even telnet etc. If your blackness blind, you don't need an X server.

Thanks

David
I've written a small demo app called "wiakspeak" which uses cvoicecontrol and espeak to interpret voice-commands and speak back. I put a small gtkdialog GUI with buttons on it as an alternative to the voice-commands, but that can be cut out and the whole thing just used from the commandline.

I discussed it briefly on this thread:

http://www.murga-linux.com/puppy/viewto ... 428#164428

You can download it from:

http://wiakapps.freehostia.com/downloads.html

You also need to download wiak to use wiakspeak. Please read the provided wiakspeakreadme.txt file carefully before use. Wiakspeak is just a simple demonstration of what is possible. Could easily be expanded though.

Any application written in the form of a wiakapp can be controlled by voice in this manner; the design of wiakapps separates the user interface from the main program functions - that's why it is so easy to put a voice-controlled frontend onto them straight away without much work at all. Wiakapps are not at all difficult to write, though you do need to understand programming of course. Working through the WIAKtutorial, which is a very simple programming exercise, is the best way to learn how to write a wiakapp:

http://wiakapps.freehostia.com/wiaktutorial.html

Trobin
Posts: 968
Joined: Fri 19 Aug 2005, 03:16
Location: BC Canada

#50 Post by Trobin »

Avery basic version of Speak-Pup has come into existance, kicking and screaming. It really doesn't do very mch at the moment. It doesn't even speak. At least not yet.

(Forgive my rambling)

Essentially it is Puppy-OneBone-210-Elinks with a menu. A menu that will talk as soon as I can download a version of festival.pup that won't give an error message when I try to install it. I would very much like to use espeak because I think the quality of the voice is much better. However, I have yet to discover how to install a .pet file in a command line Puppy.

The menu is as follows:
#!/bin/bash
let "loop=0"
while test $loop == 0
do
clear
echo "Please choose the letter of the game you want to run and enter"
echo "------------------------------------------------------"
echo "a. Check your email"
talk "Check your email'
echo "b. Text Editor"
talk "text editor"
echo "c. Text-mode internet browser"
Type " Text mode internet browser"
echo "d. IRC Chat"
echo "------------------------------------------------------"
echo "q. quit"
echo "choice?"
read choice

case $choice in q)
let "loop=1"
esac
case $choice in a)
talk "You are starting up elmo for your email!"
elmo
esac
case $choice in b)
talk "You are starting up your text editor!"
mp
esac
case $choice in c)
talk "You are starting up elinks for your browsing!"
/elinks
esac
case $choice in d)
echo "You are starting up IRC on dalnet!"
/usr/bin/pregnant dogX irc.dal.net
esac
done
Once i get a working Festival.pup installed, the menu options will be read out to me. When I make a selection, the selection will be read out to me, hopefully I would, if I actually were blind, rech out and make changes if I had made a mistake.

Changes that I would like
--use espeak for the sound
--find and install a better test editor than MP. Not that I have anything mucach against MP, but editors that allow the lines of keep going to the left bothe me. I want to be able to read what I wrote without scrolling continuously to the left. A personal foible but there it is.
--I need a screen reader to use. Can WIAK be used to create one?
--I've been playing a bit with the WIAK system and, at least right now, don't see a voice controlled puppy as being impossible.

muggins
Posts: 6724
Joined: Fri 20 Jan 2006, 10:44
Location: hobart

#51 Post by muggins »

Trobin,

regarding installing of the espeak .pet, it should be as easy as renaming it to a .tgz, extracting it to ./espeak-xxx directory, then copying everything from ./espeak-xxx/usr/* to /usr.

Code: Select all

cp espeak-1.30-i486.pet espeak.tgz
tar zxvf espeak.tgz
cp -rf ./espeak-1.30-i486/usr/* /usr

mcewanw
Posts: 3169
Joined: Thu 16 Aug 2007, 10:48
Contact:

CLI screen reader article

#52 Post by mcewanw »

Trobin wrote: --I need a screen reader to use. Can WIAK be used to create one?
--I've been playing a bit with the WIAK system and, at least right now, don't see a voice controlled puppy as being impossible.
wiak could be used to send control commands to a server program which is running a commandline console-based screen reader. You'd still need to find a suitable commandline-based screen reader utility. It is easy enough to pipe command outputs into, for example, espeak, but screen-reading itself is not an easy undertaking. Perhaps not so bad on a text console based system though.

You might find the following article interesting:

http://eklhad.net/cli.html

Trobin
Posts: 968
Joined: Fri 19 Aug 2005, 03:16
Location: BC Canada

#53 Post by Trobin »

Thanks to both of you.

Trobin
Posts: 968
Joined: Fri 19 Aug 2005, 03:16
Location: BC Canada

#54 Post by Trobin »

Well I'm at a dead end. I need a working screen reader.

Screader installs, except for the man pages, but when I click on the executable file the executable file can't be found. But it might be able to work with espeak. Assuming I can figure out how to make puppy find the file I just clicked on, or typed into a terminal. Even if the terminal is made in the directory the file is in, and the file is made executable and searhable. I've tried copying the files to the /usr/bin and /usr/bin/local directories, but Puppy sttill can't find them.

YASR apparently needs eflite to act as an interface between Flite, espeak, or festival. When I try to install eflite is looks for all kinds of FLITE headers, libraries, .H files, etc, that it can't find if I use flite.pet or festival.pup. It wouldn't be so bad if I was presented with a list of the files i can't find. Instead it tells me that it can't find a file, I find it download it, stick it whare it can be found, and recompile. Then it tells me that it can't find another file.

Emacspeak also requires the eflite interface.

I've tried compiling flite 1.3 from the tar.gz file but no luck.

Jupiter appears to need a specific synthesizer, or at least I haven't figured out how to tie it in with any of the software synthesizers I can get working. Also it wants to patch the kernel, and I'm a little wary about that.

Speakup is set for external synthesizers.

I javen't completely tossed in the towel yet, but I get the feeling hat I'm way over my head. There's a Java script one that "m going to try, assuming Puppy has java in it. But I.m going to wait until I'm a little less frustrated.

djringjr
Posts: 157
Joined: Sun 14 Jan 2007, 21:08

#55 Post by djringjr »

Don't feel bad. It seems that everyone who has attempted such a thing has gotten to a dead end.

Maybe one of the Puppy Superstars will beam warmly on us!

Thanks for the great try.

A wag of the tail and a big bow wow to you!

djringjr

muggins
Posts: 6724
Joined: Fri 20 Jan 2006, 10:44
Location: hobart

#56 Post by muggins »

Hello djringjr,

From my minimal comprehension of the subject, jupiter & speakup require their particular support to be compiled into the linux kernel.

Also I just thought I should comment here that, as I've mentioned in a pm to trobin previously, that it seems that the best software available, in this genre, is for the gnome desktop. So anyone seriously looking for a such a friendly linux distro, the easiest solution is to look for a gnome-based distro, not puppy.

l.

Trobin
Posts: 968
Joined: Fri 19 Aug 2005, 03:16
Location: BC Canada

#57 Post by Trobin »

Hate to say it but Muggins is probably right. Puppy isn't the best platform for this.

Becuse I'm stubborn, I thought I'd give FreeTTS a try this morning. FreeTTS is a speech engine, based on Flite 1.2, written in java, and I had some partial success before I ran into segementation faults, whil;e trying to get the emacspeak demo running.

Asfar as I can tell. segmentation faults have something to do with Core File Size, and I have no idea what that is. All I know is that the default setting is 0
# ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
file size (blocks, -f) unlimited
max locked memory (kbytes, -l) 32
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 3831
virtual memory (kbytes, -v) unlimited
It can be changed which I tried with no luck.
# ulimit -c 1
# java -jar bin/FreeTTSEmacspeakServer.jar

Using voice: kevin16

Segmentation fault
# ulimit -c 2
# java -jar bin/FreeTTSEmacspeakServer.jar

Using voice: kevin16

Segmentation fault
# ulimit -c 3
# java -jar bin/FreeTTSEmacspeakServer.jar

Using voice: kevin16

Segmentation fault
# ulimit -c 4
# java -jar bin/FreeTTSEmacspeakServer.jar

Using voice: kevin16

Segmentation fault (core dumped)
Anything above 3 and the core gets dumped.
I'm using the Java_Jamjikescairo-1: java package that Puppy 2.17' Rox-Installer found. It is possible that another flavour of java will have better luck. Or maybe some linux guru will have better luck.

Information on Freetts can be found here
http://freetts.sourceforge.net/docs/index.php

Includes a link where you can download Freetts if you wish to try your luck.

I think though your best bet may be to go to ubuntu, or, dare I say it, Microsoft Vista.

I believe that knoppix may be still working on a version for the blind. I don't know. I understand that earlier versions of Knoppix had cheat codes that would allow it to use a braille monitor or out put to accessability hardware.

Trobin
Posts: 968
Joined: Fri 19 Aug 2005, 03:16
Location: BC Canada

#58 Post by Trobin »

This thing may not be dead yet. A different version of Java is what was needed. Guestoo's .Sun Java 1.5.0_06 pup file to be exact.
java -jar bin/FreeTTSEmacspeakServer.jar
Using voice: kevin16

Waiting on ServerSocket[addr=0.0.0.0/0.0.0.0,port=0,localport=2222]
That is what is supposed to appear on screen. Can I assume that since the command line does not reappear, that the speech server is running?

I have not been successful at connecting Emacspeak to it yet. Despite their claims of it working out of the box. :)

Trobin
Posts: 968
Joined: Fri 19 Aug 2005, 03:16
Location: BC Canada

#59 Post by Trobin »

Success of sorts. Enough, maybe, and I'm stressing maybe, to indicate that a command line puppy for the blind might be possible. I'm putting this up for those that might wish to experiment.

You need to download and install the following:

Guestoo's java1506.pup

FREETTS

I'm using FreeTTS-1.2.1 from http://sourceforge.net/project/showfile ... p_id=42080

decompress it I did it in the root directory, it'll mmake a directory for FREETTS-1.2.1
First you need to set up the jsapi environment
* Go to the lib directory and open a terminal
* Type chmod +x ./jsapi.sh.
* Type sh ./jsapi.sh and view the BCL.
* If the BCL is acceptable, accept it by typing "y". The jsapi.jar file will be unpacked and deposited into the lib directory.

You may need to copy the speech,properties file to the home directory. If you aren't sure try running a demo. That'll tell you where to copy nthe file if FreeTTS can't find it.

At this point FreeTTS should be ready to run

That's the easy one, the next will need to be compiled, and for that you'll need the devs_version.sfs for your puppy

YASR (Yet Another Screen Reader)

I'm using yasr 0.6.8
http://yasr.sourceforge.net/

decompress the tar fale
Enter the directory and open a termonal
./configure
make
make install

You'll need to edit the yasr.conf file.
Change the following section
synthesizer=emacspeak server
#synthesizer=speech dispatcher
#synthesizer port=S0
#synthesizer port=l0
synthesizer port=|/usr/local/bin/eflite
# Below line appropriate for Speech Dispatcher in its default configuration
#synthesizer port=127.0.0.1:6560
To
synthesizer=emacspeak server
#synthesizer=speech dispatcher
#synthesizer port=S0
#synthesizer port=l0
#synthesizer port=|/usr/local/bin/eflite <-
# Below line appropriate for Speech Dispatcher in its default configuration
synthesizer port=0.0.0.0:2222<-
I've noted the lines that I've changed. Copy the file to /root and rename it to .yasr.conf. Don't ask me why it needs to be hidden but yasr looks for it.

Now the fun part

In the freetts directory open a terminal and type:
java -jar bin/FreeTTSEmacspeakServer.jar &
What you should get is:
# java -jar bin/FreeTTSEmacspeakServer.jar &
[1] 10862
#
Using voice: kevin16

Waiting on ServerSocket[addr=0.0.0.0/0.0.0.0,port=0,localport=2222]
The speech server is now running.

CTrl-c to get back to the cursor

Type in

yasr
# yasr
... new socket connection
You'll hear a bunch of gobble-de-gook and the screen reader is running. This does not, repeat - not- work with the GUI going. Any commands you enter into the terminal, along with any messages that pop up, will be read to you.

If you start freetts and yasr in seperate terminals then you can flip back and forth and see a lot of stuff that is way over my head.

Enjoy.

Trobin
Posts: 968
Joined: Fri 19 Aug 2005, 03:16
Location: BC Canada

#60 Post by Trobin »

Everything is in Puppy-OneBone-210-elinks and working. In fact the sound is better and easier understood than when run in a terminal in either Puppy 2.17 or Puppy 2.10

I listened to this forum for a bit, just one message to ensure that I could understand it. Miracle of Miracles I could, though something has to be done about that voice, and it would be nice if it could seperate the message from the other stuff on the screen that it has to read. Still, if I needed it I could get used to it.

A couple questions:

1-I need to write a script that will run FreeTTS and then Yasr. The issue is that after I get FreeTTS started I have to use CTRL-C to return to the cursor so the yasr command can be entered. How can that be dome in a script?

2-What file do I need to edit to get the script running once Speak-Pup boots?

3-Can I do a remaster from a command line Puppy?

mcewanw
Posts: 3169
Joined: Thu 16 Aug 2007, 10:48
Contact:

#61 Post by mcewanw »

Trobin wrote: A couple questions:

1-I need to write a script that will run FreeTTS and then Yasr. The issue is that after I get FreeTTS started I have to use CTRL-C to return to the cursor so the yasr command can be entered. How can that be dome in a script?
I don't have any of these programs you mention, so I'm partly only guessing at what you mean. However, the usual way of starting up a program, from a bash console commandline or from a bash script, such that you don't need to wait on the program finishing before starting another program, is to run it as a "background" process.

To run a program in the background, put a space followed by an ampersand sign at the end of its name on the commandline (or in the startup script):

whatever_the_commandname_is &

For example: freetts &
(or whatever the program name is, and assuming that the program is in your executable search PATH).

Note that the '&' means: run the command in the background.

If you already know the above, you'll need to explain your problem in more detail before I could suggest anything else.
Trobin wrote: 2-What file do I need to edit to get the script running once Speak-Pup boots?
Again, I'm not absolutely sure if this is what you mean, but:

The script /etc/rc.d/rc.local is often used to add commands or programs you want to start up automatically and immediately after your system has booted up.

As for remastering from a commandline Puppy, I'm afraid I have no idea about that, sorry. Perhaps someone else will volunteer an answer.

raffy
Posts: 4798
Joined: Wed 25 May 2005, 12:20
Location: Manila

remaster

#62 Post by raffy »

The remaster script is in /usr/sbin, and you can edit it to remove xdialog and provide direct answers from within the script.
Puppy user since Oct 2004. Want FreeOffice? [url=http://puppylinux.info/topic/freeoffice-2012-sfs]Get the sfs (English only)[/url].

Trobin
Posts: 968
Joined: Fri 19 Aug 2005, 03:16
Location: BC Canada

#63 Post by Trobin »

Thank you

Trobin
Posts: 968
Joined: Fri 19 Aug 2005, 03:16
Location: BC Canada

#64 Post by Trobin »

I don't have any of these programs you mention, so I'm partly only guessing at what you mean. However, the usual way of starting up a program, from a bash console commandline or from a bash script, such that you don't need to wait on the program finishing before starting another program, is to run it as a "background" process.
What I needed was for the script to run the speech synthesizer in the background and then run yasr.

This works
#!/bin/sh
# yasr-freetts - execute yasr (Yet Another Screen Reader) using FreeTTS
# (running as an emacspeak server) as the text to speech synthesizer.
#
#
echo Starting the FreeTTS text to speech synthesizer.
java -jar bin/FreeTTSEmacspeakServer.jar &

sleep 10

echo Starting yasr.
yasr

Trobin
Posts: 968
Joined: Fri 19 Aug 2005, 03:16
Location: BC Canada

#65 Post by Trobin »

Again, I'm not absolutely sure if this is what you mean, but:

The script /etc/rc.d/rc.local is often used to add commands or programs you want to start up automatically and immediately after your system has booted up.
When Puppy-OneBone boots it goes into Elinks. I don't want it to run Elinks. I need it to run my script and a menu.

Post Reply