Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. QTextTospeech can't found engines

QTextTospeech can't found engines

Scheduled Pinned Locked Moved Solved General and Desktop
qtexttospeechlinuxqt5.15.2
12 Posts 3 Posters 2.7k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • . ._Miro_.

    Hello, I work with version QT 5.15.2 on a raspberry pi4.
    My goal is to develop software capable of doing TTS (text to speech).
    The problem I have is that the availabeEngines() method always returns only one engine namely speechd.
    I saw on the blog: https://www.qt.io/blog/qt-speech-coming-to-qt-6.4 that for Linux devices, flite in version 2.3 was also supported.
    So I installed this version:

    texttospeech git:(feature/multi-langs) ✗ flite --version
      Carnegie Mellon University, Copyright (c) 1999-2016, all rights reserved
      version: flite-2.3-current Mar 2022 (http://cmuflite.org)
    

    but when I run my application I always only have speechd. here is my code and the output I have:

    #include <QCoreApplication>
    #include <iostream>
    #include <QTextToSpeech>
    int main(int argc, char *argv[])
    {
       QCoreApplication a(argc, argv);
       for(auto const& v : QTextToSpeech::availableEngines()){
           std::cout << "engine:"<<v.toStdString() << std::endl;
       }
        return a.exec();
    }
    

    give me

    engine:speechd
    

    Why is flite not found ?
    Is it a bug in the class on. version 5.15.2 ?

    jsulmJ Offline
    jsulmJ Offline
    jsulm
    Lifetime Qt Champion
    wrote on last edited by
    #2

    @_Miro_ Take a look at https://doc.qt.io/qt-6/qttexttospeech-engines.html "Flite" and check whether you have Flite libs in one of the folders mentioned there.

    https://forum.qt.io/topic/113070/qt-code-of-conduct

    . 1 Reply Last reply
    0
    • jsulmJ jsulm

      @_Miro_ Take a look at https://doc.qt.io/qt-6/qttexttospeech-engines.html "Flite" and check whether you have Flite libs in one of the folders mentioned there.

      . Offline
      . Offline
      ._Miro_.
      wrote on last edited by
      #3

      @jsulm If I do the find command:

      sudo find / -name "flite" -type d
      

      I have this output:

      /usr/share/doc/flite
      /usr/local/include/flite
      /usr/include/flite
      
      jsulmJ 1 Reply Last reply
      0
      • . ._Miro_.

        @jsulm If I do the find command:

        sudo find / -name "flite" -type d
        

        I have this output:

        /usr/share/doc/flite
        /usr/local/include/flite
        /usr/include/flite
        
        jsulmJ Offline
        jsulmJ Offline
        jsulm
        Lifetime Qt Champion
        wrote on last edited by
        #4

        @_Miro_ You need to search for flite library files...

        https://forum.qt.io/topic/113070/qt-code-of-conduct

        . 1 Reply Last reply
        0
        • jsulmJ jsulm

          @_Miro_ You need to search for flite library files...

          . Offline
          . Offline
          ._Miro_.
          wrote on last edited by ._Miro_.
          #5

          @jsulm Something like :

          
          /.
          /usr
          /usr/lib
          /usr/lib/aarch64-linux-gnu
          /usr/lib/aarch64-linux-gnu/libflite.so.2.2
          /usr/lib/aarch64-linux-gnu/libflite_cmu_grapheme_lang.so.2.2
          /usr/lib/aarch64-linux-gnu/libflite_cmu_grapheme_lex.so.2.2
          /usr/lib/aarch64-linux-gnu/libflite_cmu_indic_lang.so.2.2
          /usr/lib/aarch64-linux-gnu/libflite_cmu_indic_lex.so.2.2
          /usr/lib/aarch64-linux-gnu/libflite_cmu_time_awb.so.2.2
          /usr/lib/aarch64-linux-gnu/libflite_cmu_us_awb.so.2.2
          /usr/lib/aarch64-linux-gnu/libflite_cmu_us_kal.so.2.2
          /usr/lib/aarch64-linux-gnu/libflite_cmu_us_kal16.so.2.2
          /usr/lib/aarch64-linux-gnu/libflite_cmu_us_rms.so.2.2
          /usr/lib/aarch64-linux-gnu/libflite_cmu_us_slt.so.2.2
          /usr/lib/aarch64-linux-gnu/libflite_cmulex.so.2.2
          /usr/lib/aarch64-linux-gnu/libflite_usenglish.so.2.2
          /usr/share
          /usr/share/doc
          /usr/share/doc/libflite1
          /usr/share/doc/libflite1/changelog.Debian.gz
          /usr/share/doc/libflite1/copyright
          /usr/share/lintian
          /usr/share/lintian/overrides
          /usr/share/lintian/overrides/libflite1
          /usr/lib/aarch64-linux-gnu/libflite.so.1
          /usr/lib/aarch64-linux-gnu/libflite_cmu_grapheme_lang.so.1
          /usr/lib/aarch64-linux-gnu/libflite_cmu_grapheme_lex.so.1
          /usr/lib/aarch64-linux-gnu/libflite_cmu_indic_lang.so.1
          /usr/lib/aarch64-linux-gnu/libflite_cmu_indic_lex.so.1
          /usr/lib/aarch64-linux-gnu/libflite_cmu_time_awb.so.1
          /usr/lib/aarch64-linux-gnu/libflite_cmu_us_awb.so.1
          /usr/lib/aarch64-linux-gnu/libflite_cmu_us_kal.so.1
          /usr/lib/aarch64-linux-gnu/libflite_cmu_us_kal16.so.1
          /usr/lib/aarch64-linux-gnu/libflite_cmu_us_rms.so.1
          /usr/lib/aarch64-linux-gnu/libflite_cmu_us_slt.so.1
          /usr/lib/aarch64-linux-gnu/libflite_cmulex.so.1
          /usr/lib/aarch64-linux-gnu/libflite_usenglish.so.1
          

          and

           export LD_LIBRARY_PATH=/usr/lib/aarch64-linux-gnu:$LD_LIBRARY_PATH ?
          

          Because, I have the same thing

          jsulmJ 1 Reply Last reply
          0
          • . ._Miro_.

            @jsulm Something like :

            
            /.
            /usr
            /usr/lib
            /usr/lib/aarch64-linux-gnu
            /usr/lib/aarch64-linux-gnu/libflite.so.2.2
            /usr/lib/aarch64-linux-gnu/libflite_cmu_grapheme_lang.so.2.2
            /usr/lib/aarch64-linux-gnu/libflite_cmu_grapheme_lex.so.2.2
            /usr/lib/aarch64-linux-gnu/libflite_cmu_indic_lang.so.2.2
            /usr/lib/aarch64-linux-gnu/libflite_cmu_indic_lex.so.2.2
            /usr/lib/aarch64-linux-gnu/libflite_cmu_time_awb.so.2.2
            /usr/lib/aarch64-linux-gnu/libflite_cmu_us_awb.so.2.2
            /usr/lib/aarch64-linux-gnu/libflite_cmu_us_kal.so.2.2
            /usr/lib/aarch64-linux-gnu/libflite_cmu_us_kal16.so.2.2
            /usr/lib/aarch64-linux-gnu/libflite_cmu_us_rms.so.2.2
            /usr/lib/aarch64-linux-gnu/libflite_cmu_us_slt.so.2.2
            /usr/lib/aarch64-linux-gnu/libflite_cmulex.so.2.2
            /usr/lib/aarch64-linux-gnu/libflite_usenglish.so.2.2
            /usr/share
            /usr/share/doc
            /usr/share/doc/libflite1
            /usr/share/doc/libflite1/changelog.Debian.gz
            /usr/share/doc/libflite1/copyright
            /usr/share/lintian
            /usr/share/lintian/overrides
            /usr/share/lintian/overrides/libflite1
            /usr/lib/aarch64-linux-gnu/libflite.so.1
            /usr/lib/aarch64-linux-gnu/libflite_cmu_grapheme_lang.so.1
            /usr/lib/aarch64-linux-gnu/libflite_cmu_grapheme_lex.so.1
            /usr/lib/aarch64-linux-gnu/libflite_cmu_indic_lang.so.1
            /usr/lib/aarch64-linux-gnu/libflite_cmu_indic_lex.so.1
            /usr/lib/aarch64-linux-gnu/libflite_cmu_time_awb.so.1
            /usr/lib/aarch64-linux-gnu/libflite_cmu_us_awb.so.1
            /usr/lib/aarch64-linux-gnu/libflite_cmu_us_kal.so.1
            /usr/lib/aarch64-linux-gnu/libflite_cmu_us_kal16.so.1
            /usr/lib/aarch64-linux-gnu/libflite_cmu_us_rms.so.1
            /usr/lib/aarch64-linux-gnu/libflite_cmu_us_slt.so.1
            /usr/lib/aarch64-linux-gnu/libflite_cmulex.so.1
            /usr/lib/aarch64-linux-gnu/libflite_usenglish.so.1
            

            and

             export LD_LIBRARY_PATH=/usr/lib/aarch64-linux-gnu:$LD_LIBRARY_PATH ?
            

            Because, I have the same thing

            jsulmJ Offline
            jsulmJ Offline
            jsulm
            Lifetime Qt Champion
            wrote on last edited by
            #6

            @_Miro_ said in QTextTospeech can't found engines:

            export LD_LIBRARY_PATH=/usr/lib/aarch64-linux-gnu:$LD_LIBRARY_PATH ?

            This is not needed for standard locations.
            You can also check what happens when plug-ins are loaded. See https://doc.qt.io/qt-6/debug.html QT_DEBUG_PLUGINS

            https://forum.qt.io/topic/113070/qt-code-of-conduct

            . 1 Reply Last reply
            0
            • jsulmJ jsulm

              @_Miro_ said in QTextTospeech can't found engines:

              export LD_LIBRARY_PATH=/usr/lib/aarch64-linux-gnu:$LD_LIBRARY_PATH ?

              This is not needed for standard locations.
              You can also check what happens when plug-ins are loaded. See https://doc.qt.io/qt-6/debug.html QT_DEBUG_PLUGINS

              . Offline
              . Offline
              ._Miro_.
              wrote on last edited by
              #7

              @jsulm When I load the plugin, only speechd is found in the keys

              ➜   export QT_DEBUG_PLUGINS=1
              
              ➜   ./speech
              QFactoryLoader::QFactoryLoader() checking directory path "/usr/lib/aarch64-linux-gnu/qt5/plugins/texttospeech" ...
              QFactoryLoader::QFactoryLoader() looking at "/usr/lib/aarch64-linux-gnu/qt5/plugins/texttospeech/libqtexttospeech_speechd.so"
              Found metadata in lib /usr/lib/aarch64-linux-gnu/qt5/plugins/texttospeech/libqtexttospeech_speechd.so, metadata=
              {
                  "IID": "org.qt-project.qt.speech.tts.plugin/5.0",
                  "MetaData": {
                      "Features": [
                      ],
                      "Keys": [
                          "speechd"
                      ],
                      "Provider": "speechd",
                      "Version": 100
                  },
                  "archreq": 0,
                  "className": "QTextToSpeechPluginSpeechd",
                  "debug": false,
                  "version": 331520
              }
              
              
              Got keys from plugin meta data ("speechd")
              QFactoryLoader::QFactoryLoader() checking directory path "/home/pi/Desktop/texttospeech/texttospeech" ...
              engine:speechd
              
              jsulmJ 1 Reply Last reply
              0
              • . ._Miro_.

                @jsulm When I load the plugin, only speechd is found in the keys

                ➜   export QT_DEBUG_PLUGINS=1
                
                ➜   ./speech
                QFactoryLoader::QFactoryLoader() checking directory path "/usr/lib/aarch64-linux-gnu/qt5/plugins/texttospeech" ...
                QFactoryLoader::QFactoryLoader() looking at "/usr/lib/aarch64-linux-gnu/qt5/plugins/texttospeech/libqtexttospeech_speechd.so"
                Found metadata in lib /usr/lib/aarch64-linux-gnu/qt5/plugins/texttospeech/libqtexttospeech_speechd.so, metadata=
                {
                    "IID": "org.qt-project.qt.speech.tts.plugin/5.0",
                    "MetaData": {
                        "Features": [
                        ],
                        "Keys": [
                            "speechd"
                        ],
                        "Provider": "speechd",
                        "Version": 100
                    },
                    "archreq": 0,
                    "className": "QTextToSpeechPluginSpeechd",
                    "debug": false,
                    "version": 331520
                }
                
                
                Got keys from plugin meta data ("speechd")
                QFactoryLoader::QFactoryLoader() checking directory path "/home/pi/Desktop/texttospeech/texttospeech" ...
                engine:speechd
                
                jsulmJ Offline
                jsulmJ Offline
                jsulm
                Lifetime Qt Champion
                wrote on last edited by
                #8

                @_Miro_ said in QTextTospeech can't found engines:

                /usr/lib/aarch64-linux-gnu/qt5/plugins/texttospeech

                I guess the texttospeech plug-in was built without Flite support?

                https://forum.qt.io/topic/113070/qt-code-of-conduct

                . 1 Reply Last reply
                0
                • jsulmJ jsulm

                  @_Miro_ said in QTextTospeech can't found engines:

                  /usr/lib/aarch64-linux-gnu/qt5/plugins/texttospeech

                  I guess the texttospeech plug-in was built without Flite support?

                  . Offline
                  . Offline
                  ._Miro_.
                  wrote on last edited by
                  #9

                  @jsulm I don't understand: <<. I assume the texttospeech plugin was built without Flite support? >>

                  Actually, I can't load the engine for example:

                  QTextToSpeech *tts = new QTextToSpeech("flite");
                  

                  return -> Text-to-speech plug-in "flite" is not supported.

                  jsulmJ 1 Reply Last reply
                  0
                  • . ._Miro_.

                    @jsulm I don't understand: <<. I assume the texttospeech plugin was built without Flite support? >>

                    Actually, I can't load the engine for example:

                    QTextToSpeech *tts = new QTextToSpeech("flite");
                    

                    return -> Text-to-speech plug-in "flite" is not supported.

                    jsulmJ Offline
                    jsulmJ Offline
                    jsulm
                    Lifetime Qt Champion
                    wrote on last edited by
                    #10

                    @_Miro_ You have /usr/lib/aarch64-linux-gnu/qt5/plugins/texttospeech/libqtexttospeech_speechd.so but no /usr/lib/aarch64-linux-gnu/qt5/plugins/texttospeech/libqtexttospeech_flite.so (or whatever the exact lib name is for Flite).

                    https://forum.qt.io/topic/113070/qt-code-of-conduct

                    . 1 Reply Last reply
                    0
                    • B Offline
                      B Offline
                      Bonnie
                      wrote on last edited by
                      #11

                      There seems no flite support according to the doc of 5.15 https://doc.qt.io/qt-5/qtspeech-index.html

                      The module depends on Speech Dispatcher (libspeechd) on the Linux platform.

                      1 Reply Last reply
                      0
                      • jsulmJ jsulm

                        @_Miro_ You have /usr/lib/aarch64-linux-gnu/qt5/plugins/texttospeech/libqtexttospeech_speechd.so but no /usr/lib/aarch64-linux-gnu/qt5/plugins/texttospeech/libqtexttospeech_flite.so (or whatever the exact lib name is for Flite).

                        . Offline
                        . Offline
                        ._Miro_.
                        wrote on last edited by
                        #12

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

                        qtspeech5-flite-plugin
                        

                        Thank you

                        1 Reply Last reply
                        1
                        • . ._Miro_. has marked this topic as solved on

                        • Login

                        • Login or register to search.
                        • First post
                          Last post
                        0
                        • Categories
                        • Recent
                        • Tags
                        • Popular
                        • Users
                        • Groups
                        • Search
                        • Get Qt Extensions
                        • Unsolved