• 1
  • 10
  • 11
  • 12(current)
  • 13
  • 14
  • 30
Xbmc not working for blind users.
(2014-03-23, 20:58)ruuk Wrote: I think with the gnu debugger GDB installed and debug logging enabeled, a crash will generate a stack trace in the crash log. My system puts a crashlog into my home directory.
I don't really know how to read a stack trace, so this is rarely useful for me Smile
I am also verry inexperienced when it comes to this.

(2014-03-23, 20:58)ruuk Wrote: I don't know if that's helpful or not. I'm about ready to give up on ctypes with espeak, unless you have any ideas.
Unfortunatelly I have no more ideas. So we will most likelly get rid of it or at least we should not include it in the settings.

(2014-03-23, 20:58)ruuk Wrote: By the way, is there a special way to start speech-dispatcher to get it to work with the addon. I tried with it running and not running and it fails to show up. Raising the exception in the available() method's try clause says something about the client and server expecting different paths.
The speechd.Speaker object can take autospawn keyword argument inside its __init__ method. If that's set to true python-speechd library attempts to start speech-dispatcher if it's not running.
However I have chosen not to start it because while using orca or emacs speak on linux these will make sure it's running. This is the only scenario anyone would like to use speech-dispatcher I think.
I think we may give it a lower priority when checking for available TTS backends to avoid lags, crashes etc.

(2014-03-24, 01:06)ruuk Wrote: pvagner: I added the ability to add arbitrary settings to a backend. You still have to manually add the settings.xml entry, but the rest is fairly simple.
I will have to check this out. Maybe during the weekend I might add rate control to more engines e.g. sapi, eSpeak XA.

Also does this supposed to now handle all text views or just changelog?
I am using this with speech-dispatcher on linux at the moment and unfortunatelly position info pauses speaking of th actual text while arrowing up / down inside the changelog. Perhaps I need to fix something in the speech-dispatcher TTS backend.
I have never imagined such cool things are possible. Handling typing echo when virtual keyboard is in focus is an example of such cool stuff. Still it's a pitty we are unable to monitor when the caret moves so we might add an ability to report characters under the cursor while pressing left / right arrow keys inside the virtual keyboard view. Or might that also be possible with some trick?

Thanks for all the hard work ruuk
I think I'll add an advanced section in the settings and have a setting which disables broken/unstable backends which defaults to true.

(2014-03-27, 01:52)pvagner Wrote: I will have to check this out. Maybe during the weekend I might add rate control to more engines e.g. sapi, eSpeak XA.
You can just use the speed setting for rate. You can set the setting label to whatever you want. Which reminds me. I'll have to start moving strings out to strings.po for localization.
(2014-03-27, 01:52)pvagner Wrote: Also does this supposed to now handle all text views or just changelog?
Just changelog for now. It seems that even if we have the ID of a text view, we can't get the text from the control, so we have to get it directly. I'll probably end up parsing XML and finding out what property or infolabel is set in the text views for ones that aren't standard.
(2014-03-27, 01:52)pvagner Wrote: I am using this with speech-dispatcher on linux at the moment and unfortunatelly position info pauses speaking of th actual text while arrowing up / down inside the changelog. Perhaps I need to fix something in the speech-dispatcher TTS backend.
No, right now it just speaks the changelog, and doesn't account for the up/down. I would like to be able to 'page' through the speech with up down. I have some ideas, but It will be somewhat involved Smile
(2014-03-27, 01:52)pvagner Wrote: I have never imagined such cool things are possible. Handling typing echo when virtual keyboard is in focus is an example of such cool stuff. Still it's a pitty we are unable to monitor when the caret moves so we might add an ability to report characters under the cursor while pressing left / right arrow keys inside the virtual keyboard view. Or might that also be possible with some trick?
I don't think there is any trick for that. The cursor isn't actually in the label, so there is no way to know where it is.

I've created a download page at:

http://ruuk.github.io/service.xbmc.tts/

Right now it has a short description of what to download and some links.

I made a new windows installer. It checks if XBMC is installed, and if not, downloads and installs it. It also downloads and installs the latest version of the addon.
So windows users can now install XBMC with speech with just one installer.

I'd love some testing and feedback on the installer Smile

Eventually I'll have to add some detailed instructions to the new page, but at least there is something there Smile
Ladies and Gentlemen,

We have speech on OpenELEC!

I just have installed the addons on my raspberry pi on the latest OpenELEC snapshot.
It basically stumbles all over its words but it works.
its pretty sluggish but the install worked pretty flawlessly.
espeak seems to regularly crash but also this is also known.

what i have done was:
1. downloaded the OpenELEC snapshot from http://snapshots.openelec.tv/
2. flashed it on my pi.
3. opened the sd card still on my pc and opened the file cmdline.txt and added the word ssh to the first line to enable ssh on startup.
4. downloaded the addons
service.xbmc.tts: http://ruuks-repo.googlecode.com/svn/tru....xbmc.tts/
script.module.comtypes: http://ruuks-repo.googlecode.com/svn/tru....comtypes/
and ruuk.addon.repository: http://ruuks-repo.googlecode.com/svn/tru...epository/
4. extracted the latest versions of each file to a directory.
5. opened the directory and saw the 3 directories from each addon and uploaded them on my pi using a scp client. used winscp for that.
the username for openelec is root and the password is openelec.
then i uploaded the files into the following directory:
/storage/.xbmc/addons/
i hope i have this right. basically its the root dir of the user and then the directory .xbmc and the subdir of this is the addons dir.
there you can copy the 3 addon directories and restart the pi.
it should talk then.


sorry for this rough guide but that should work.

greetings,
simon

Hi ruuk,

(2014-03-27, 03:32)ruuk Wrote: I'd love some testing and feedback on the installer Smile

works pretty well over here on my win xp machine.

greetings,
simon
I seem to be having a lot of hanging issues lately but I can't tell if it's caused by XBMC TTS or some other add-on I have. My sighted friend Duane has these hanging issues too and he doesn't have speech installed so I think it might be some common add-on that we both have installed. What happens is sometimes if I hit the up or down arrow during playback by accident or if I hit alt-f4 or power options/exit it gets stuck. I then have to do control shift escape and kill the XBMC process. I know this is off topic but I wondered if anyone else had this issue?
(2014-03-27, 17:59)byron27 Wrote: I seem to be having a lot of hanging issues lately but I can't tell if it's caused by XBMC TTS or some other add-on I have. My sighted friend Duane has these hanging issues too and he doesn't have speech installed so I think it might be some common add-on that we both have installed. What happens is sometimes if I hit the up or down arrow during playback by accident or if I hit alt-f4 or power options/exit it gets stuck. I then have to do control shift escape and kill the XBMC process. I know this is off topic but I wondered if anyone else had this issue?

There have been issues with XBMC hanging on shutdown because of the addon. Make sure you are using 0.0.30, because I fixed one cause in that version (hopefully that was the last cause).
I haven't had any issues with XBMC hanging other than on shutdown, other than the one version of eSpeak, and that was only when changing voices or reloading the backend - and it is being removed from the speech engine setting choices.

So if you're having problems with hanging on shutdown while using version 0.0.30 or later, let me know what backend you are using and I'll see if I can duplicate it.

For other hanging issues, it could be an addon, but for other than service addons, it is generally only going to happen when using or exiting the addon, so you'll want to look at what addon you are using when it happens. Most likely if it is an addon, it will not be a widely popular one, because lots of users means lots of complaints to devs, which means it usually gets fixed.

XBMC is pretty stable by itself, so most hanging issues will be because of an addon, or some weird hardware or software combo. XBMC has good development and testing practices which makes sure XBMC remains stable. Third party addons have no such guarantee, and can range anywhere from stable and well developed to XBMC killing anarchy Smile
Addons from the official repository are better because the have been checked for some basic requirements and will be marked broken if there are enough reports of problems.

Just to be clear, XBMC TTS would not be considered stable. It's not even released yet Smile While we try to make things work properly, we're still in early development, so bugs will be fairly common.
Also XBMC TTS is also more likely to hang XBMC than most addons because it's use of subprocesses and threads means some programming mistakes will cause that. But as I said, that should generally be on XBMC shutdown, and is usually because some subprocess or thread was not closed properly.
Added a new version to my repository: 0.0.31.

Get it or the repository from the Downloads Page.

Changes:
  • Added a settings section 'Advanced'
  • Added setting 'Advanced::Enable Debug Logging' - currently defaults to True
  • Added setting 'Advanced:Big Grinisable Broken TTS Engines' defaults to True
  • Changed name of ctypes eSpeak to eSpeak (ctypes) and marked as broken
  • Changed name of 'eSpeak (XBMC Audio)' to eSpeak, and it now works both via internal and external sound output
hi all,

i have something for the todo list.
there seems to be a heavy load when you run the addon on a raspberry pi.
the load seems to be peak at around 1.37.
is it planned to use speech dispatcher under linux to maybe ease the pressure on systems?

tested with recent openelec and the tts addon 0.0.30.


greetings,
simon
(2014-03-27, 23:12)domasofan Wrote: hi all,

i have something for the todo list.
there seems to be a heavy load when you run the addon on a raspberry pi.
the load seems to be peak at around 1.37.
is it planned to use speech dispatcher under linux to maybe ease the pressure on systems?

tested with recent openelec and the tts addon 0.0.30.

greetings,
simon
Using speech dispatcher would actually increase pressure on the system, because it just adds another layer between the addon and the speech engine. The problem is probably due to the fact that we currently detect changes by polling the interface. For responsiveness I have eSpeak set to poll every 50ms. This combined with the slow speed of the Pi may also be responsible for the stumbling over words you mentioned before. I'm going to add the ability to override the poll frequency in settings and then you can play with that and see if it improves the situation. If you find a setting that works best, I can make that the default for the Pi.
Added a new version to my repository: 0.0.32.

Get it or the repository from the Downloads Page.

Changes:
  • Added setting to Advanced 'Override Poll Interval' and subsetting 'Poll Interval (ms)'
  • Various internal changes to eSpeak and pico2wave

domasofan: Try changing the poll interval to higher values and see if you get better results.
hi,

(2014-03-28, 22:36)ruuk Wrote: domasofan: Try changing the poll interval to higher values and see if you get better results.

I guess i found the culprit.
it seems that all the time this service seems to generate wav files which are saved to the sd card.
so basically you send a string of text maybe to the espeak command line program.
it generates a wav file and needs to play it back.

can't we just talk to the espeak library?
so we could directly output speech and not use wav files which would greatly redouce pressure on the sd card, the processor and all other things which could create a big lag.
maybe this is also why the service seems to crash after a while.

maybe also speech dispatcher might be useful to use many different synthesizers without the implementation of each synth into the addon.

greetings,
simon
(2014-03-28, 23:44)domasofan Wrote: hi,

(2014-03-28, 22:36)ruuk Wrote: domasofan: Try changing the poll interval to higher values and see if you get better results.

I guess i found the culprit.
it seems that all the time this service seems to generate wav files which are saved to the sd card.
so basically you send a string of text maybe to the espeak command line program.
it generates a wav file and needs to play it back.

can't we just talk to the espeak library?
so we could directly output speech and not use wav files which would greatly redouce pressure on the sd card, the processor and all other things which could create a big lag.
maybe this is also why the service seems to crash after a while.

maybe also speech dispatcher might be useful to use many different synthesizers without the implementation of each synth into the addon.

greetings,
simon

We have a speech-dispatcher backend already. The problems with speech dispatcher is that it doesn't work on all of XBMC's platforms, and it doesn't allow the same control that implementing the engines directly does, and it can't direct it's audio to a wav for playback in XBMC (which is necessary for some setups).

The thing about openelec, is that they have to include the backend in the installation. Sraue chose eSpeak, I believe, because it is available on on the platforms that openelec supports and because it can output to a wav file. I believe we have to output to a wav file because openelec has no audio outside of XBMC on some platforms, and the only way we can output sound is through XBMC by playing a wav. I'm sure ATV2 is one of these, and I think the Pi is the same.

If you can type 'espeak test' in a terminal on the Pi and get speech, let me know so I can add a version that uses eSpeak to output the audio, which I plan to do eventually anyway.

You said the service seems to crash after a while. What do you mean by that. Does XBMC lock up on shutdown, or does the addon just stop speaking, or does it crash XBMC at random times, and if so, how have you determined that the addon is causing the issue? The only issues I've had is with XBMC hanging on shutdown, for which I know the base cause and just need to work out where I'm not properly closing a thread or process. If the addon stops speaking while XBMC continues to run, a log would be useful to determine the cause.

In any case, the addon is still in early development, so many things will be added, improved and fixed as time goes on.

I also wanted to point out that outputting via eSpeak directly only saves the processing power it takes to read and write the wav file. Since they are generally small and likely cached, they are probably read by the audio player before even being written to disk.
hi,

i just sent stephan a message for looking into this.
i guess we might have some issues.
espeak seems not to talk on the command line but that should be fixable.
so when we have audio we might even be able to use espeaks c++ library directly via python.
we also have the thing that we are running everything from the sd card. so reading and writing wav files all the time is a bad thing to do. so if we can eliminate this that would be a good solution which saves us maybe 1-2 seconds which can cause this lag.

the service seem to crash while i am in the addons settings dialog.
in other windows i don't know. i had a pretty nice lag so i haven't tested further but will do.
where are the logs for the tts addon stored

and yeah i know we are pretty early in the development stages.
it works pretty fluently on my windows box where i tested it the first time.
i might also try raspbmc this weekend which is another xbmc distro for the pi where i also have a possibility to install packages by myself using apt.

hope i haven't forgotten anything to answer.

greetings,
simon

(2014-03-29, 00:57)ruuk Wrote: We have a speech-dispatcher backend already. The problems with speech dispatcher is that it doesn't work on all of XBMC's platforms, and it doesn't allow the same control that implementing the engines directly does, and it can't direct it's audio to a wav for playback in XBMC (which is necessary for some setups).

The thing about openelec, is that they have to include the backend in the installation. Sraue chose eSpeak, I believe, because it is available on on the platforms that openelec supports and because it can output to a wav file. I believe we have to output to a wav file because openelec has no audio outside of XBMC on some platforms, and the only way we can output sound is through XBMC by playing a wav. I'm sure ATV2 is one of these, and I think the Pi is the same.

If you can type 'espeak test' in a terminal on the Pi and get speech, let me know so I can add a version that uses eSpeak to output the audio, which I plan to do eventually anyway.

You said the service seems to crash after a while. What do you mean by that. Does XBMC lock up on shutdown, or does the addon just stop speaking, or does it crash XBMC at random times, and if so, how have you determined that the addon is causing the issue? The only issues I've had is with XBMC hanging on shutdown, for which I know the base cause and just need to work out where I'm not properly closing a thread or process. If the addon stops speaking while XBMC continues to run, a log would be useful to determine the cause.

In any case, the addon is still in early development, so many things will be added, improved and fixed as time goes on.

I also wanted to point out that outputting via eSpeak directly only saves the processing power it takes to read and write the wav file. Since they are generally small and likely cached, they are probably read by the audio player before even being written to disk.
(2014-03-29, 01:25)domasofan Wrote: espeak seems not to talk on the command line but that should be fixable.
I think you would need to add alsa or something to the openelec Raspberry Pi version, which I don't think is going to happen.
(2014-03-29, 01:25)domasofan Wrote: so when we have audio we might even be able to use espeaks c++ library directly via python.
This works but is unstable. Crashes XBMC when changing voices or re-loading the backend. We've tried a to make it work, but have given it up as probably unworkable.
(2014-03-29, 01:25)domasofan Wrote: we also have the thing that we are running everything from the sd card. so reading and writing wav files all the time is a bad thing to do. so if we can eliminate this that would be a good solution which saves us maybe 1-2 seconds which can cause this lag.
If we can't get audio out, we can make an option to set the path for the wav files. This could point to an external USB drive or ramdisk.
(2014-03-29, 01:25)domasofan Wrote: the service seem to crash while i am in the addons settings dialog.
in other windows i don't know. i had a pretty nice lag so i haven't tested further but will do.
What do you mean by the service crashes? Does XBMC crash, or does the service stop speaking?
Also, if you load the old eSpeak which uses ctypes, it will crash XBMC when changing settings (as alluded to above). It has been marked as broken on the most recent versions and disabled.
(2014-03-29, 01:25)domasofan Wrote: where are the logs for the tts addon stored
The logs are in the XBMC logs. I don't know where that is with OpenElec on the Pi, but it might be in ~/.xbmc/temp/xbmc.log.
You can also share the log with the XBMC Log Uploader addon.
Hi,

here are the logs i found.
openelec puts them in a very nice place to access them directly from the samba share.

https://dl.dropboxusercontent.com/u/1598...03-29-1.7z


btw i tested xbian and raspbmc and they don't speak out of the box. i forgot to try to set the audio from maybe HDMI which they might have set as default to the 3.5 mm jack i am currently using.


i don't know how much ram we have free on the pi so a ramdisk might be difficult.
the old pis like mine has 256 mb in total and currently there are 128 mb reserved for the GPU.
but i might play around to see if it does any harm to it when i set it lower.

greetings,
simon
unfortunally the latest git master version currently prevents xbmc of exiting cleanly. I can't yet figure this out but I just thing I should mention it. While I am on home screen pressing ctrl+end makes xbmc to hang and by using the keyboard I can do nothing.
I am looking to play with it a bit in ordet to try figure out what's going on.
  • 1
  • 10
  • 11
  • 12(current)
  • 13
  • 14
  • 30

Logout Mark Read Team Forum Stats Members Help
Xbmc not working for blind users.5