Skip to content
  • 0 Votes
    12 Posts
    955 Views
    .

    @jsulm I finally found my mistake, I'm missing the install

    qtspeech5-flite-plugin

    Thank you

  • 0 Votes
    6 Posts
    990 Views
    SGaistS

    Can you test whether a more recent version of Qt still has that problem ?

    The Qt 5.9 series is at the 5.9.6 and 5.11.1 being the current version.

  • 0 Votes
    3 Posts
    3k Views
    ?

    @raven-worx I don't have any experience with TTS either, also I can't find much info about the current infrastructure on Linux, resp. on KDE. I have installed speech-dispatcher. And I can make it speak in the terminal, using its own spd-say command. I'm not sure how speech-dispatcher and flite are related. I think speech-dispacher is an abstraction layer / daemon, and flite is one of several "engines" it can use.

    spd-say --list-output-modules says:

    OUTPUT MODULES
    flite
    cicero
    generic
    dummy
    espeak

    The following packages that seem to be relevant have been installed:

    speech-dispatcher libspeechd2 flite libflite1 speech-dispatcher-flite libqt5texttospeech5 libqt5texttospeech5-dev qtspeech5-flite-plugin

    Note that no qtspeech5-speechdispatcher-plugin (or similar) exists in the repo. But looking at the Qt Speech sources, it seems there should be such a plugin.

    Anyways, when I build an application for testing ....

    QTextToSpeech::availableEngines() returns "flite" availableLocales() gives "en_US" and availableVoices() says "kal16".
  • 0 Votes
    4 Posts
    2k Views
    _

    Thanks a zillion. For the record:

    qtexttospeech.h already has on line 118 Q_DECLARE_METATYPE(QTextToSpeech::State)

    Hence, what's missing is the qRegisterMetaType part. Which I am adding in main.cpp before the QTextToSpeech module is loaded.

    qRegisterMetaType<QTextToSpeech::State>("State"); QTextToSpeech* speech = new QTextToSpeech;

    Then, in main.qml, I am catching the state changed signals and the state like this:

    Connections { target: speech onStateChanged: { console.log("speech.state "+ speech.state); if (speech.state == 1){ console.log("--- we are speaking! ---"); } else if (speech.state == 0){ console.log("--- speaking stopped! ---"); } } }
  • QTextToSpeech Locales

    Unsolved General and Desktop
    13
    0 Votes
    13 Posts
    4k Views
    SGaistS

    The module is not that big. What didn't you find ?

    As for the non-system voice, I don't know.