
KSayIt
Source (link to git-repo or to original if based on someone elses unmodified work):
very high quality, i.e. sound and pronounciation of the spoken text should be as (human)
natural as possible. To achieve this, KSayIt uses natively Text-To-Speech systems like
MBrola, any TTS system that can be controlled via a command line or any TTS system that
is supported by the upcoming KDE TTS system (i.e. Festival).
KSayIt offers three user interfaces: A simple text editor window in which you can enter
or paste text that should be spoken after pressing a play button, as well as an icon
in the systemtray that starts to speak by a single mouseclick the actual content
of the clipboard (if it contains something that looks like text). As a KDE application it
offers also a DCOP interface for the say and shut-up action (see 'kdcop').
Finally KSayIt provides an effectstack to postprocess the sound of the voice (currently
only a Freeverb effect is included)
0.7.1 pipefilt is no longer required.
0.7.2 Bug with KDE3.2 solved.
0.7.3 Problem with QT3.3 solved.
0.8.0
KSayIt now interfaces to various TTS systems via loadable modules (plugins).
Currently the following TTS plugins are in the package:
- Native support for MBrola/txt2pho.
- Support for any user defined command that accepts text from stdin,
therefore KSayIt can now speak languages other than German.
- Support for the upcoming KDE TTS Daemon (KTTSD is part of the
kdenonbeta package).
Additional controls (Pause, Resume, Next Sentence, Previous Sentence, if
supported by the plugin).
Audio Effects are also plugins now.
Ratings & Comments
21 Comments
Installing works fine... But if I try to run ksayit some stupid bug crashes the programm. The output: kfs: TTSPluginHandler::searchPlugins() kfs: Plugin-Directory: /home/Gottox/.kde/share/apps/ksayit/ttsplugins kfs: Plugin-Directory: /opt/kde3/share/apps/ksayit/ttsplugins kfs: Plugin KDE KTTSD Handle: 0x8168720 registered. kfs: Plugin Mbrola Handle: 0x81b8478 registered. kfs: Plugin User Handle: 0x81b8688 registered. kfs: TTSPluginHandler::getPlugins() kfs: FXPluginHandler::searchPlugins() kfs: FX-Plugin Synth_FREEVERB Handle: 0x8200810 registered. free(): invalid pointer 0x8223b28! KCrash: Application 'ksayit' crashing...
Many things to install, I'm too lazy to try this :P Any Slackware Packages? ^^ Oh, and would it be possible to do a Amsn plugin, lite SayIt! for MacOS? That would be awsome ^^
I suggest you add an audio sample of some text being read alound by KSayIt to the available downloads.
Make that a few samples, the same text read aloud by different synthesizers.
KSayIt is just a frontend for a synthesizer that is already installed on your system. e.g. if you use Mbrola than it sounds as Mbrola sounds, if you use Festival (supported by the commandline) than it sounds as you have configured it.
Txt2Pho is german only, right? Will KSayIt work with any of the other TTS systems listed here: http://tcts.fpms.ac.be/synthesis/mbrola/mbrtts.html Specifically, can i get KSayIt to speak English?
For the future I plan to implement KSayIt as a client for the coming KDE TTS system (ktts). Based on ktts KSayIt will support languages other than german.
MDK 10.1. KDE 3.2.2. QT 3.3.2 /qt3//include -I/usr/X11R6/include -I./ -I. -I./ -o ./audioplayer.o audioplayer.cpp audioplayer.cpp: In member function `bool PlayEngine::loadEffects(KConfig*)': audioplayer.cpp:46: error: call of overloaded `basic_string(QString&)' is ambiguous /usr/include/c++/3.3.2/bits/basic_string.tcc:226: error: candidates are: std::basic_string::basic_string(const _CharT*, const _Alloc&) [with _CharT = char, _Traits = std::char_traits, _Alloc = std::allocator] /usr/include/c++/3.3.2/bits/basic_string.tcc:192: error: std::basic_string::basic_string(const std::basic_string&) [with _CharT = char, _Traits = std::char_traits, _Alloc = std::allocator] make[1]: *** [audioplayer.o] Error 1 make[1]: Leaving directory `/home/virgilio/temp/ksayit-0.7.2/ksayit' make: *** [sub-ksayit] Error 2 [virgilio@localhost ksayit-0.7.
MDK 10.1. KDE 3.2.2. QT 3.3.2 /qt3//include -I/usr/X11R6/include -I./ -I. -I./ -o ./audioplayer.o audioplayer.cpp audioplayer.cpp: In member function `bool PlayEngine::loadEffects(KConfig*)': audioplayer.cpp:46: error: call of overloaded `basic_string(QString&)' is ambiguous /usr/include/c++/3.3.2/bits/basic_string.tcc:226: error: candidates are: std::basic_string::basic_string(const _CharT*, const _Alloc&) [with _CharT = char, _Traits = std::char_traits, _Alloc = std::allocator] /usr/include/c++/3.3.2/bits/basic_string.tcc:192: error: std::basic_string::basic_string(const std::basic_string&) [with _CharT = char, _Traits = std::char_traits, _Alloc = std::allocator] make[1]: *** [audioplayer.o] Error 1 make[1]: Leaving directory `/home/virgilio/temp/ksayit-0.7.2/ksayit' make: *** [sub-ksayit] Error 2 [virgilio@localhost ksayit-0.7.
MDK 10.1. KDE 3.2.2. QT 3.3.2 /qt3//include -I/usr/X11R6/include -I./ -I. -I./ -o ./audioplayer.o audioplayer.cpp audioplayer.cpp: In member function `bool PlayEngine::loadEffects(KConfig*)': audioplayer.cpp:46: error: call of overloaded `basic_string(QString&)' is ambiguous /usr/include/c++/3.3.2/bits/basic_string.tcc:226: error: candidates are: std::basic_string::basic_string(const _CharT*, const _Alloc&) [with _CharT = char, _Traits = std::char_traits, _Alloc = std::allocator] /usr/include/c++/3.3.2/bits/basic_string.tcc:192: error: std::basic_string::basic_string(const std::basic_string&) [with _CharT = char, _Traits = std::char_traits, _Alloc = std::allocator] make[1]: *** [audioplayer.o] Error 1 make[1]: Leaving directory `/home/virgilio/temp/ksayit-0.7.2/ksayit' make: *** [sub-ksayit] Error 2 [virgilio@localhost ksayit-0.7.
On my KDE-3.2.1/QT-3.2.1 the error doesn't appear, so I could need your help to fix this. Would you do me a favour and replace line 46 (starts with "std::string") in audioplayer.cpp by the following line (all in one line) and see what happens: std::string fxname = "Arts::"+std::string( (*fx_it).ascii() ); Thanks for your support.
MDK 10.1. KDE 3.2.2. QT 3.3.2 /qt3//include -I/usr/X11R6/include -I./ -I. -I./ -o ./audioplayer.o audioplayer.cpp audioplayer.cpp: In member function `bool PlayEngine::loadEffects(KConfig*)': audioplayer.cpp:46: error: call of overloaded `basic_string(QString&)' is ambiguous /usr/include/c++/3.3.2/bits/basic_string.tcc:226: error: candidates are: std::basic_string::basic_string(const _CharT*, const _Alloc&) [with _CharT = char, _Traits = std::char_traits, _Alloc = std::allocator] /usr/include/c++/3.3.2/bits/basic_string.tcc:192: error: std::basic_string::basic_string(const std::basic_string&) [with _CharT = char, _Traits = std::char_traits, _Alloc = std::allocator] make[1]: *** [audioplayer.o] Error 1 make[1]: Leaving directory `/home/virgilio/temp/ksayit-0.7.2/ksayit' make: *** [sub-ksayit] Error 2 [virgilio@localhost ksayit-0.7.
Using mandrake 9.2 and getting conpile problems. "audioprocessing.h:32:30: arts/artsmodules.h" I cant find artsmodules.h anywhere on my system or via rpmfind.net and i have libarts-devel installed and working. Anyone with a solution ?
Sorry. Found it 2 minuttes after posting in libkdemultimedia1-common-devel , and i swear i spent 1 hour looking for it ;-)
Well.. i still need a hand. Now it cannot load artsmodules - compilation fails in /usr//bin/ld: cannot find -lartsmodules Any ideas for Mandrake 9.2?
anyone knows where I can download pipfilt ? can't find it anywhere and ksayit won't run without it ! rgrds, Phil
It's fixed with version 0.7.1. pipefilt is no longer required.
Robert, if you are interested in this kind of software, then please have a look at the KDE Accessibility Project: http://accessibility.kde.org kdeaccessibility 1.0, released last spring, contains KMouth, which has similar functionality. It has features like phrasebooks and a history list, but does not have a system tray icon. Also, there is kttsd in the kdenonbeta CVS modules, which aims to become a general text-to-speech service for KDE. I currently have half-finished patches for kttsd on my harddisk that will provide systray functionality. While it is good to see other people are also interested in writing accessibility software for KDE, I do not want to duplicate work that has already been done elsewhere. I will also contact you by email and invite you to join or project. Maybe it is possible to merge KSayIt and KMouth, or KSayIt and kttsd. It must be quite frustrating for you to see that some of your great work has already be done and released for KDE, but on the other hand via cooperation your extra features could be included in KDE 3.3. I really hope you are willing to cooperate with us in the KDE Accessibility team, you would be very welcome indeed. Olaf Jan Schmidt (KDE Accessibility co-maintainer)
I'm gonna test it asap, but its nice to have something like this. can you make it read automatically all (error)messages that appear??? (or is it already able to do so? I'll see it when I'm home ;))
Yes, you can do this: Open 'System Notifications' in the KDE Control Center. Enable 'More Options'. Select 'Execute Program' Start 'kdcop &' in a shell. Drag and drop 'ASYNC dcopSayText(QString msg) from KDCOP to 'Execute Program' of the Control Center. Replace 'msg' by a string e.g. "Whatever is going wrong."
This type of aplication is needed in every Desktop, nowadays. It is a must have for people with disabilities. Keep on the good work.