UBports Robot Logo UBports Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Search
    • Register
    • Login

    SOTY - Speech-To-Text Recognition on Ubuntu Touch

    Scheduled Pinned Locked Moved App Development
    21 Posts 2 Posters 885 Views 1 Watching
    Loading More Posts
    • 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.
      • I Offline
        idonthatevests
        last edited by idonthatevests

        Here, in this thread we discuss

        SPEECH RECOGNITION ENGINE on UBUNTU TOUCH

        Yeah, it's real. I've made it so that it could run on UT. Locally. Without sending it to someone's server

        This solution is called SOTY and is free software. It is a port of VOSK API wrapper for Kaldi - pretty neat speech recognition framework.

        Well, back to the point. Post your test results here, be surprised how (in)accurate the results are, review the source code and propose changes, ask questions on adapting your application to this feature, and don't forget to ask again why this isn't working in background and how to use that. It is recommended you read all this long post before posting yourself.

        What is it?

        It is a speech recognition server, which means it receives input (raw audio data) from a client, processes it and then sends back a transcription of a data being recorded on a client.

        The server itself is completely useless without a client, it doesn't even have an access to audio subsystem.
        The server was made to be combined with other software that would utilize speech recognition, where it could be useful

        So, right now this is more like a framework for developers, who might be interested in it.

        Installation

        Downloading the application from OpenStore will not be enough.
        You also need to install models.

        To install English language model you need to run these commands in terminal:

        Models can be installed using the in-application installer, which is accessible through "gear" icon in top right corner of the app interface.
        Now it supports transcribing in English. You can test your accent with...

        List of applications that work with SOTY STT

        UT Translator (recent update)
        To enable SOTY integration run in terminal:

        sed -i 's/enableSTT=false/enableSTT=true/g' /home/phablet/.config/ut-dictionary-frontend.ut-dictionary-frontend/ut-dictionary-frontend.ut-dictionary-frontend.conf
        
        

        Then after installing and running SOTY properly

        1. Open SOTY first and start server
        2. Open UT Translator (WITHOUT CLOSING SOTY SERVER)
        3. Choose English language. Microphone icon will appear on a top panel. Click on it to start recording audio.

        I hope this list will grow bigger over time

        (I would be more than happy to have it integrated in lomiri keyboard, and that would probably eliminate the need to integrate it with any other app, but I don't know if that's ever going to happen)

        Quality

        It is now possible to transcribe everything you say on a device locally, your smartphone that runs Ubuntu Touch could totally do that.
        Too good to be true. There of course are limitations.
        If we use small models, which is the current case, they won't cover all the words in language. And our small models are not good at transcribing previously unknown words and separate letters.

        You could try using models that are much bigger and intended for use on servers, but they, however would require more RAM and more time to process your data. It is significally slower. You will not like it. Implementing VAD preprocessing might help a little. And might not.

        Another fly in the ointment is that models currently in use are not helpful with spelling words. At all. You need to re-train them for this specific task.

        Summary

        I hope it has some potential. Will it evolve into an open-source voice assistant for your device of the future, or will it remain a funny conceptual toy, it's up to you, dear Community.

        How can I help

        Here's what you can do for this project:

        • Design
        • Code improvements
        • Guides for other people
        • If you are an app developer : think of ways it could be useful in your application
        • Testing and reporting bugs
        • (The most important)Improving models

        Plans

        Add models installer.
        Make it configurable.
        System OSK integration.

        Improving models

        Under construction

        I 1 Reply Last reply Reply Quote 10
        • I Offline
          idonthatevests @idonthatevests
          last edited by

          New version is out
          Introducing protocol v2 - now client apps do not need to use the microphone, audio recording is performed on a server. There are some flaws for this decision, though.
          CPU load has been reduced in this release
          This release is also backwards compatible with protocol v1, where client sends recorded data to server, just in case someone wants to send audio data from other sources.

          Also, my apologies, I forgot to link
          Client library for v2 protocol
          Client library for v1 protocol (requires Microphone permission)

          1 Reply Last reply Reply Quote 4
          • I Offline
            idonthatevests
            last edited by

            New version is out
            Changes:

            • Fixed a few bugs
            • Added models installer (works for many languages listed in the menu, other models will be uploaded later)
            • The application UI can be translated.
            • Now it comes with amd64 build
            1 Reply Last reply Reply Quote 2
            • I Offline
              idonthatevests
              last edited by idonthatevests

              The Client library for v2 protocol is now a complete QML plugin, which can be easily added to your application and then used in your QML layout. The repository contains all steps to integrate speech recognition client in your project. No permissions needed, the only requirement is server application running in background locally.

              1 Reply Last reply Reply Quote 1
              • U Offline
                undrwater
                last edited by

                This is great, and I'll try it out soon!

                How much change to add TTS?

                I 1 Reply Last reply Reply Quote 0
                • I Offline
                  idonthatevests @undrwater
                  last edited by idonthatevests

                  @undrwater
                  Thanks for your interest. You can easily integrate TTS support in your application using espeak-ng. However, espeak data takes 20 MBytes of user storage space. If you want this functionality for Soty server, that would require changing communication protocol for both server and client. It also would not be too hard, but I personally think we should look for a more accurate solution for this task, that could be seamlessly integrated in system, such as speech-dispatcher.

                  U 1 Reply Last reply Reply Quote 1
                  • U Offline
                    undrwater @idonthatevests
                    last edited by

                    @idonthatevests I assume you're using LLM for STT. I'm doing that on my desktop in a python venv.

                    I'm still figuring my way around how UT is organized (I use gentoo, and it's quite different).

                    Anyway, I remember speech-dispatcher use in the past, but those generally were non-LLM targets (e-speak, sphinxs, etc...), but if it could be a wrapper for any target, it would be great!

                    I 1 Reply Last reply Reply Quote 0
                    • I Offline
                      idonthatevests @undrwater
                      last edited by idonthatevests

                      @undrwater said in SOTY - Speech-To-Text Recognition on Ubuntu Touch:

                      @idonthatevests I assume you're using LLM for STT. I'm doing that on my desktop in a python venv.

                      No, I use small ASR models. Running LLM on an old mobile CPU for this task would likely make the speech recognition expensive and slow. And I think the same situation would be with attempts to use it for speech synthesis. So, using LLMs for that on mobile OS is probably possible, but only if you implement it for non time-critical tasks. Yet, in my opinion espeak-ng is still a fine option for that and is highly configurable.

                      I'm still figuring my way around how UT is organized (I use gentoo, and it's quite different).

                      There are many things in UT that are not organized yet, but that's what is great about UT for me, that you can do it yourself! Have fun with your research

                      U 1 Reply Last reply Reply Quote 1
                      • U Offline
                        undrwater @idonthatevests
                        last edited by

                        @idonthatevests

                        Can you link the SAR model you're using?

                        Also, I'm not getting the microphone icon on the UT Translator app. enableSTT=true is set on the conf file, and Soty server is running (configured not to be killed by the tweak tool).

                        I am getting "failed to load Vosk model" in the Soty server, but not sure why. I unzipped the model into ~/.local/kl.soty/en, and permissions look good.

                        Can soty be started from the terminal?

                        I 1 Reply Last reply Reply Quote 0
                        • I Offline
                          idonthatevests @undrwater
                          last edited by idonthatevests

                          @undrwater
                          There's an automatic installer in Soty app. It is achieved by clicking settings button (gear pictogram) in the right corner of top panel.
                          For manual installation, models should be put in .local/share/kl.soty
                          Now I see that it's my mistake. I'm sorry for providing not working instructions. Editing op post right now

                          U 1 Reply Last reply Reply Quote 1
                          • U Offline
                            undrwater @idonthatevests
                            last edited by

                            @idonthatevests

                            Cool. I did try installing from the gear icon, but already had the language model downloaded and unzipped into 'en'.

                            When tapping the english model from the gear icon, it didn't seem to finish. Is this because the model I unzipped was in the way?

                            I'll move it to try.

                            U 1 Reply Last reply Reply Quote 0
                            • U Offline
                              undrwater @undrwater
                              last edited by

                              Still no luck. Getting the following message:

                              "THE INSTALLATION IS IN PROGRESS. THIS MAY TAKE A WHILE. DO NOT PRESS THAT BUTTON UNTIL THE INSTALLATION IS FINISHED PLEASE."

                              This message remains for...well...ever. Far too long for a model install. I've left it overnight (though of course the phone went to sleep). I've tried keeping the phone awake for about 30 minutes, but the message stays.

                              The reason I asked about running from cli is to see if there are any useful messages regarding why it's taking so long.

                              Thanks!

                              PS: I've got vosk running on my desktop. Amazing what it can recognize!

                              I 1 Reply Last reply Reply Quote 0
                              • I Offline
                                idonthatevests @undrwater
                                last edited by idonthatevests

                                @undrwater
                                It seems like some unusual bug here. The installer is specifically programmed to show all progress changes immediately, so it is probably really stuck somewhere. This message should only appear if a button is clicked multiple times and should be overriden almost immediately. Is there no other message displayed? On what architecture are you trying to run it? Is it mobile UT installation? What version of the UT? Can you check with netstat tool if it at least tries to connect to gitlab? Besides, UT Translator uses the same code for installation process, does it also not work for you?

                                You can of course try running it from command line, but that would still require GUI.

                                export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/opt/click.ubuntu.com/kl.soty/current/lib/aarch64-linux-gnu"
                                /opt/click.ubuntu.com/kl.soty/current/kl.soty
                                

                                If you want to see all printed messages, you may also use the LogViewer app from the OpenStore too.

                                Thanks for reporting this issue. I hope we can make the installer work properly.

                                U 1 Reply Last reply Reply Quote 0
                                • U Offline
                                  undrwater @idonthatevests
                                  last edited by

                                  @idonthatevests said in SOTY - Speech-To-Text Recognition on Ubuntu Touch:

                                  @undrwater
                                  It seems like some unusual bug here. The installer is specifically programmed to show all progress changes immediately, so it is probably really stuck somewhere. This message should only appear if a button is clicked multiple times and should be overriden almost immediately. Is there no other message displayed?

                                  No other message. Just that when pressing the language model for install.

                                  On what architecture are you trying to run it? Is it mobile UT installation? What version of the UT?

                                  It's a mobile device (Oneplus Nord N10 5G). UT 24.04 (12/5/2025)

                                  Can you check with netstat tool if it at least tries to connect to gitlab?

                                  root@ubuntu-phablet:~# netstat -pt
                                  Active Internet connections (w/o servers)
                                  Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
                                  tcp        0      0 192.168.1.13:39064      0.push.ubports.com:5001 ESTABLISHED 4423/lomiri-push-se 
                                  tcp        0      0 192.168.1.13:37132      believeability.co:imaps ESTABLISHED 3873/dekkod
                                  

                                  Besides, UT Translator uses the same code for installation process, does it also not work for you?

                                  I installed both through Open Store.

                                  You can of course try running it from command line, but that would still require GUI.

                                  export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/opt/click.ubuntu.com/kl.soty/current/lib/aarch64-linux-gnu"
                                  /opt/click.ubuntu.com/kl.soty/current/kl.soty
                                  
                                  phablet@ubuntu-phablet:~$ export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/opt/click.ubuntu.com/kl.soty/current/lib/aarch64-linux-gnu"
                                  /opt/click.ubuntu.com/kl.soty/current/kl.soty
                                  [QPA] QMirClientClientIntegration: connection to Mir server failed.
                                  Mir returned: "Failed to connect: not accepted by server"
                                  

                                  If you want to see all printed messages, you may also use the LogViewer app from the OpenStore too.

                                  [12/2/25 3:02 PM] library "eglSubDriverAndroid.so" not found
                                  [12/2/25 3:02 PM] Creating a QMirClientScreen now
                                  [12/2/25 3:02 PM] Starting app from main.cpp
                                  [12/2/25 3:02 PM] error calling result "An AppArmor policy prevents this sender from sending this message to this recipient; type=\"method_call\", sender=\":1.180\" (uid=32011 pid=173685 comm=\"kl.soty\" label=\"kl.soty_kl.soty_2025.11.18 (enforce)\") interface=\"com.lomiri.libertine.Service.Operations\" member=\"list\" error name=\"(unset)\" requested_reply=\"0\" destination=\"com.lomiri.libertine.Service\" (uid=32011 pid=46986 comm=\"/usr/bin/python3 /usr/bin/libertined\" label=\"unconfined\")"
                                  [12/2/25 3:02 PM] error calling result "An AppArmor policy prevents this sender from sending this message to this recipient; type=\"method_call\", sender=\":1.180\" (uid=32011 pid=173685 comm=\"kl.soty\" label=\"kl.soty_kl.soty_2025.11.18 (enforce)\") interface=\"com.lomiri.libertine.Service.OperationsMonitor\" member=\"running\" error name=\"(unset)\" requested_reply=\"0\" destination=\"com.lomiri.libertine.Service\" (uid=32011 pid=46986 comm=\"/usr/bin/python3 /usr/bin/libertined\" label=\"unconfined\")"
                                  [12/2/25 3:02 PM] lastError - no arguments?
                                  [12/2/25 3:02 PM] error calling result "An AppArmor policy prevents this sender from sending this message to this recipient; type=\"method_call\", sender=\":1.180\" (uid=32011 pid=173685 comm=\"kl.soty\" label=\"kl.soty_kl.soty_2025.11.18 (enforce)\") interface=\"com.lomiri.libertine.Service.OperationsMonitor\" member=\"last_error\" error name=\"(unset)\" requested_reply=\"0\" destination=\"com.lomiri.libertine.Service\" (uid=32011 pid=46986 comm=\"/usr/bin/python3 /usr/bin/libertined\" label=\"unconfined\")"
                                  [12/2/25 3:02 PM] lastError - no arguments?
                                  [12/2/25 3:02 PM] error calling result "An AppArmor policy prevents this sender from sending this message to this recipient; type=\"method_call\", sender=\":1.180\" (uid=32011 pid=173685 comm=\"kl.soty\" label=\"kl.soty_kl.soty_2025.11.18 (enforce)\") interface=\"com.lomiri.libertine.Service.OperationsMonitor\" member=\"result\" error name=\"(unset)\" requested_reply=\"0\" destination=\"com.lomiri.libertine.Service\" (uid=32011 pid=46986 comm=\"/usr/bin/python3 /usr/bin/libertined\" label=\"unconfined\")"
                                  [12/2/25 3:02 PM] lastError - no arguments?
                                  [12/2/25 3:03 PM] QObject::startTimer: Timers cannot be started from another thread
                                  [12/2/25 7:33 PM] Starting server poll
                                  [12/2/25 7:37 PM] Accepting signature from the client
                                  [12/2/25 7:37 PM] ERROR (VoskAPI:Model():src/model.cc:132) Folder '/home/phablet/.local/share/kl.soty/models/en' does not contain model files. Make sure you specified the model path properly in Model constructor. If you are not sure about relative path, use absolute path specification.
                                  [12/2/25 7:37 PM] failed to load Vosk model
                                  [12/2/25 7:37 PM] Accepting signature from the client
                                  [12/2/25 7:37 PM] ERROR (VoskAPI:Model():src/model.cc:132) Folder '/home/phablet/.local/share/kl.soty/models/en' does not contain model files. Make sure you specified the model path properly in Model constructor. If you are not sure about relative path, use absolute path specification.
                                  [12/2/25 7:37 PM] failed to load Vosk model
                                  [12/2/25 7:38 PM] Stopped server poll
                                  [12/2/25 7:38 PM] Starting server poll
                                  [12/2/25 7:39 PM] Stopped server poll
                                  [12/2/25 7:39 PM] Starting server poll
                                  [12/2/25 7:39 PM] qt.qpa.mirclient: Attempted to deliver an event to a non-existent window, ignoring.
                                  [12/2/25 7:39 PM] qt.qpa.mirclient: Attempted to deliver an event to a non-existent window, ignoring.
                                  [12/2/25 7:39 PM] library "eglSubDriverAndroid.so" not found
                                  [12/2/25 7:39 PM] Creating a QMirClientScreen now
                                  [12/2/25 7:39 PM] Starting app from main.cpp
                                  [12/2/25 7:39 PM] error calling result "An AppArmor policy prevents this sender from sending this message to this recipient; type=\"method_call\", sender=\":1.200\" (uid=32011 pid=214001 comm=\"kl.soty\" label=\"kl.soty_kl.soty_2025.11.18 (enforce)\") interface=\"com.lomiri.libertine.Service.Operations\" member=\"list\" error name=\"(unset)\" requested_reply=\"0\" destination=\"com.lomiri.libertine.Service\" (uid=32011 pid=46986 comm=\"/usr/bin/python3 /usr/bin/libertined\" label=\"unconfined\")"
                                  [12/2/25 7:39 PM] error calling result "An AppArmor policy prevents this sender from sending this message to this recipient; type=\"method_call\", sender=\":1.200\" (uid=32011 pid=214001 comm=\"kl.soty\" label=\"kl.soty_kl.soty_2025.11.18 (enforce)\") interface=\"com.lomiri.libertine.Service.OperationsMonitor\" member=\"running\" error name=\"(unset)\" requested_reply=\"0\" destination=\"com.lomiri.libertine.Service\" (uid=32011 pid=46986 comm=\"/usr/bin/python3 /usr/bin/libertined\" label=\"unconfined\")"
                                  [12/2/25 7:39 PM] lastError - no arguments?
                                  [12/2/25 7:39 PM] error calling result "An AppArmor policy prevents this sender from sending this message to this recipient; type=\"method_call\", sender=\":1.200\" (uid=32011 pid=214001 comm=\"kl.soty\" label=\"kl.soty_kl.soty_2025.11.18 (enforce)\") interface=\"com.lomiri.libertine.Service.OperationsMonitor\" member=\"last_error\" error name=\"(unset)\" requested_reply=\"0\" destination=\"com.lomiri.libertine.Service\" (uid=32011 pid=46986 comm=\"/usr/bin/python3 /usr/bin/libertined\" label=\"unconfined\")"
                                  [12/2/25 7:39 PM] lastError - no arguments?
                                  [12/2/25 7:39 PM] error calling result "An AppArmor policy prevents this sender from sending this message to this recipient; type=\"method_call\", sender=\":1.200\" (uid=32011 pid=214001 comm=\"kl.soty\" label=\"kl.soty_kl.soty_2025.11.18 (enforce)\") interface=\"com.lomiri.libertine.Service.OperationsMonitor\" member=\"result\" error name=\"(unset)\" requested_reply=\"0\" destination=\"com.lomiri.libertine.Service\" (uid=32011 pid=46986 comm=\"/usr/bin/python3 /usr/bin/libertined\" label=\"unconfined\")"
                                  [12/2/25 7:39 PM] lastError - no arguments?
                                  [12/2/25 7:39 PM] Starting server poll
                                  [12/2/25 7:40 PM] Accepting signature from the client
                                  [12/2/25 7:40 PM] ERROR (VoskAPI:Model():src/model.cc:132) Folder '/home/phablet/.local/share/kl.soty/models/en' does not contain model files. Make sure you specified the model path properly in Model constructor. If you are not sure about relative path, use absolute path specification.
                                  [12/2/25 7:40 PM] failed to load Vosk model
                                  [12/2/25 7:41 PM] [PERFORMANCE]: Last frame took 33 ms to render.
                                  [12/2/25 7:41 PM] [PERFORMANCE]: Last frame took 66 ms to render.
                                  [12/4/25 2:31 PM] [QPA] QMirClientClientIntegration: lost connection to Mir server.
                                  [12/4/25 2:32 PM] library "eglSubDriverAndroid.so" not found
                                  [12/4/25 2:32 PM] Creating a QMirClientScreen now
                                  [12/4/25 2:32 PM] Starting app from main.cpp
                                  [12/4/25 2:32 PM] error calling result "An AppArmor policy prevents this sender from sending this message to this recipient; type=\"method_call\", sender=\":1.89\" (uid=32011 pid=637717 comm=\"kl.soty\" label=\"kl.soty_kl.soty_2025.11.18 (enforce)\") interface=\"com.lomiri.libertine.Service.Operations\" member=\"list\" error name=\"(unset)\" requested_reply=\"0\" destination=\"com.lomiri.libertine.Service\" (uid=32011 pid=631177 comm=\"/usr/bin/python3 /usr/bin/libertined\" label=\"unconfined\")"
                                  [12/4/25 2:32 PM] error calling result "An AppArmor policy prevents this sender from sending this message to this recipient; type=\"method_call\", sender=\":1.89\" (uid=32011 pid=637717 comm=\"kl.soty\" label=\"kl.soty_kl.soty_2025.11.18 (enforce)\") interface=\"com.lomiri.libertine.Service.OperationsMonitor\" member=\"running\" error name=\"(unset)\" requested_reply=\"0\" destination=\"com.lomiri.libertine.Service\" (uid=32011 pid=631177 comm=\"/usr/bin/python3 /usr/bin/libertined\" label=\"unconfined\")"
                                  [12/4/25 2:32 PM] lastError - no arguments?
                                  [12/4/25 2:32 PM] error calling result "An AppArmor policy prevents this sender from sending this message to this recipient; type=\"method_call\", sender=\":1.89\" (uid=32011 pid=637717 comm=\"kl.soty\" label=\"kl.soty_kl.soty_2025.11.18 (enforce)\") interface=\"com.lomiri.libertine.Service.OperationsMonitor\" member=\"last_error\" error name=\"(unset)\" requested_reply=\"0\" destination=\"com.lomiri.libertine.Service\" (uid=32011 pid=631177 comm=\"/usr/bin/python3 /usr/bin/libertined\" label=\"unconfined\")"
                                  [12/4/25 2:32 PM] lastError - no arguments?
                                  [12/4/25 2:32 PM] error calling result "An AppArmor policy prevents this sender from sending this message to this recipient; type=\"method_call\", sender=\":1.89\" (uid=32011 pid=637717 comm=\"kl.soty\" label=\"kl.soty_kl.soty_2025.11.18 (enforce)\") interface=\"com.lomiri.libertine.Service.OperationsMonitor\" member=\"result\" error name=\"(unset)\" requested_reply=\"0\" destination=\"com.lomiri.libertine.Service\" (uid=32011 pid=631177 comm=\"/usr/bin/python3 /usr/bin/libertined\" label=\"unconfined\")"
                                  [12/4/25 2:32 PM] lastError - no arguments?
                                  [12/4/25 2:32 PM] Starting server poll
                                  [12/4/25 2:33 PM] Accepting signature from the client
                                  [12/4/25 2:33 PM] ERROR (VoskAPI:Model():src/model.cc:132) Folder '/home/phablet/.local/share/kl.soty/models/en' does not contain model files. Make sure you specified the model path properly in Model constructor. If you are not sure about relative path, use absolute path specification.
                                  [12/4/25 2:33 PM] failed to load Vosk model
                                  [12/4/25 2:33 PM] Accepting signature from the client
                                  [12/4/25 2:33 PM] ERROR (VoskAPI:Model():src/model.cc:132) Folder '/home/phablet/.local/share/kl.soty/models/uk' does not contain model files. Make sure you specified the model path properly in Model constructor. If you are not sure about relative path, use absolute path specification.
                                  [12/4/25 2:33 PM] failed to load Vosk model
                                  [12/4/25 2:33 PM] Accepting signature from the client
                                  [12/4/25 2:33 PM] ERROR (VoskAPI:Model():src/model.cc:132) Folder '/home/phablet/.local/share/kl.soty/models/uk' does not contain model files. Make sure you specified the model path properly in Model constructor. If you are not sure about relative path, use absolute path specification.
                                  [12/4/25 2:33 PM] failed to load Vosk model
                                  [12/4/25 2:33 PM] Accepting signature from the client
                                  [12/4/25 2:33 PM] ERROR (VoskAPI:Model():src/model.cc:132) Folder '/home/phablet/.local/share/kl.soty/models/en' does not contain model files. Make sure you specified the model path properly in Model constructor. If you are not sure about relative path, use absolute path specification.
                                  [12/4/25 2:33 PM] failed to load Vosk model
                                  [12/4/25 2:33 PM] Accepting signature from the client
                                  [12/4/25 2:33 PM] ERROR (VoskAPI:Model():src/model.cc:132) Folder '/home/phablet/.local/share/kl.soty/models/en' does not contain model files. Make sure you specified the model path properly in Model constructor. If you are not sure about relative path, use absolute path specification.
                                  [12/4/25 2:33 PM] failed to load Vosk model
                                  [12/4/25 2:33 PM] Accepting signature from the client
                                  [12/4/25 2:33 PM] ERROR (VoskAPI:Model():src/model.cc:132) Folder '/home/phablet/.local/share/kl.soty/models/uk' does not contain model files. Make sure you specified the model path properly in Model constructor. If you are not sure about relative path, use absolute path specification.
                                  [12/4/25 2:33 PM] failed to load Vosk model
                                  [12/4/25 2:33 PM] Accepting signature from the client
                                  [12/4/25 2:33 PM] ERROR (VoskAPI:Model():src/model.cc:132) Folder '/home/phablet/.local/share/kl.soty/models/uk' does not contain model files. Make sure you specified the model path properly in Model constructor. If you are not sure about relative path, use absolute path specification.
                                  [12/4/25 2:33 PM] failed to load Vosk model
                                  [12/4/25 2:33 PM] Accepting signature from the client
                                  [12/4/25 2:33 PM] ERROR (VoskAPI:Model():src/model.cc:132) Folder '/home/phablet/.local/share/kl.soty/models/en' does not contain model files. Make sure you specified the model path properly in Model constructor. If you are not sure about relative path, use absolute path specification.
                                  [12/4/25 2:33 PM] failed to load Vosk model
                                  [12/4/25 2:33 PM] Accepting signature from the client
                                  [12/4/25 2:33 PM] ERROR (VoskAPI:Model():src/model.cc:132) Folder '/home/phablet/.local/share/kl.soty/models/en' does not contain model files. Make sure you specified the model path properly in Model constructor. If you are not sure about relative path, use absolute path specification.
                                  [12/4/25 2:33 PM] failed to load Vosk model
                                  [12/4/25 2:33 PM] Accepting signature from the client
                                  [12/4/25 2:33 PM] ERROR (VoskAPI:Model():src/model.cc:132) Folder '/home/phablet/.local/share/kl.soty/models/uk' does not contain model files. Make sure you specified the model path properly in Model constructor. If you are not sure about relative path, use absolute path specification.
                                  [12/4/25 2:33 PM] failed to load Vosk model
                                  [12/4/25 2:33 PM] Accepting signature from the client
                                  [12/4/25 2:33 PM] ERROR (VoskAPI:Model():src/model.cc:132) Folder '/home/phablet/.local/share/kl.soty/models/uk' does not contain model files. Make sure you specified the model path properly in Model constructor. If you are not sure about relative path, use absolute path specification.
                                  [12/4/25 2:33 PM] failed to load Vosk model
                                  [12/4/25 2:34 PM] Accepting signature from the client
                                  [12/4/25 2:34 PM] ERROR (VoskAPI:Model():src/model.cc:132) Folder '/home/phablet/.local/share/kl.soty/models/en' does not contain model files. Make sure you specified the model path properly in Model constructor. If you are not sure about relative path, use absolute path specification.
                                  [12/4/25 2:34 PM] failed to load Vosk model
                                  [12/4/25 2:34 PM] Accepting signature from the client
                                  [12/4/25 2:34 PM] ERROR (VoskAPI:Model():src/model.cc:132) Folder '/home/phablet/.local/share/kl.soty/models/en' does not contain model files. Make sure you specified the model path properly in Model constructor. If you are not sure about relative path, use absolute path specification.
                                  [12/4/25 2:34 PM] failed to load Vosk model
                                  [12/4/25 2:36 PM] Accepting signature from the client
                                  [12/4/25 2:36 PM] ERROR (VoskAPI:Model():src/model.cc:132) Folder '/home/phablet/.local/share/kl.soty/models/en' does not contain model files. Make sure you specified the model path properly in Model constructor. If you are not sure about relative path, use absolute path specification.
                                  [12/4/25 2:36 PM] failed to load Vosk model
                                  [12/4/25 2:39 PM] Stopped server poll
                                  [12/4/25 2:39 PM] Starting server poll
                                  [12/4/25 2:40 PM] Stopped server poll
                                  [12/4/25 2:40 PM] [PERFORMANCE]: Last frame took 67 ms to render.
                                  [12/4/25 3:19 PM] Starting server poll
                                  [12/4/25 3:19 PM] Accepting signature from the client
                                  [12/4/25 3:19 PM] ERROR (VoskAPI:Model():src/model.cc:132) Folder '/home/phablet/.local/share/kl.soty/models/en' does not contain model files. Make sure you specified the model path properly in Model constructor. If you are not sure about relative path, use absolute path specification.
                                  [12/4/25 3:19 PM] failed to load Vosk model
                                  [12/4/25 3:25 PM] Accepting signature from the client
                                  [12/4/25 3:25 PM] ERROR (VoskAPI:Model():src/model.cc:132) Folder '/home/phablet/.local/share/kl.soty/models/en' does not contain model files. Make sure you specified the model path properly in Model constructor. If you are not sure about relative path, use absolute path specification.
                                  [12/4/25 3:25 PM] failed to load Vosk model
                                  [12/5/25 3:15 PM] qt.qpa.mirclient: Attempted to deliver an event to a non-existent window, ignoring.
                                  [12/5/25 3:15 PM] qt.qpa.mirclient: Attempted to deliver an event to a non-existent window, ignoring.
                                  [12/5/25 3:16 PM] library "eglSubDriverAndroid.so" not found
                                  [12/5/25 3:16 PM] Creating a QMirClientScreen now
                                  [12/5/25 3:16 PM] Starting app from main.cpp
                                  [12/5/25 3:16 PM] error calling result "An AppArmor policy prevents this sender from sending this message to this recipient; type=\"method_call\", sender=\":1.109\" (uid=32011 pid=802268 comm=\"kl.soty\" label=\"kl.soty_kl.soty_2025.11.18 (enforce)\") interface=\"com.lomiri.libertine.Service.Operations\" member=\"list\" error name=\"(unset)\" requested_reply=\"0\" destination=\"com.lomiri.libertine.Service\" (uid=32011 pid=631177 comm=\"/usr/bin/python3 /usr/bin/libertined\" label=\"unconfined\")"
                                  [12/5/25 3:16 PM] error calling result "An AppArmor policy prevents this sender from sending this message to this recipient; type=\"method_call\", sender=\":1.109\" (uid=32011 pid=802268 comm=\"kl.soty\" label=\"kl.soty_kl.soty_2025.11.18 (enforce)\") interface=\"com.lomiri.libertine.Service.OperationsMonitor\" member=\"running\" error name=\"(unset)\" requested_reply=\"0\" destination=\"com.lomiri.libertine.Service\" (uid=32011 pid=631177 comm=\"/usr/bin/python3 /usr/bin/libertined\" label=\"unconfined\")"
                                  [12/5/25 3:16 PM] lastError - no arguments?
                                  [12/5/25 3:16 PM] error calling result "An AppArmor policy prevents this sender from sending this message to this recipient; type=\"method_call\", sender=\":1.109\" (uid=32011 pid=802268 comm=\"kl.soty\" label=\"kl.soty_kl.soty_2025.11.18 (enforce)\") interface=\"com.lomiri.libertine.Service.OperationsMonitor\" member=\"last_error\" error name=\"(unset)\" requested_reply=\"0\" destination=\"com.lomiri.libertine.Service\" (uid=32011 pid=631177 comm=\"/usr/bin/python3 /usr/bin/libertined\" label=\"unconfined\")"
                                  [12/5/25 3:16 PM] lastError - no arguments?
                                  [12/5/25 3:16 PM] error calling result "An AppArmor policy prevents this sender from sending this message to this recipient; type=\"method_call\", sender=\":1.109\" (uid=32011 pid=802268 comm=\"kl.soty\" label=\"kl.soty_kl.soty_2025.11.18 (enforce)\") interface=\"com.lomiri.libertine.Service.OperationsMonitor\" member=\"result\" error name=\"(unset)\" requested_reply=\"0\" destination=\"com.lomiri.libertine.Service\" (uid=32011 pid=631177 comm=\"/usr/bin/python3 /usr/bin/libertined\" label=\"unconfined\")"
                                  [12/5/25 3:16 PM] lastError - no arguments?
                                  [12/5/25 3:16 PM] [PERFORMANCE]: Last frame took 37 ms to render.
                                  [12/5/25 3:20 PM] Starting server poll
                                  [12/5/25 3:21 PM] Accepting signature from the client
                                  [12/5/25 3:21 PM] ERROR (VoskAPI:Model():src/model.cc:132) Folder '/home/phablet/.local/share/kl.soty/models/en' does not contain model files. Make sure you specified the model path properly in Model constructor. If you are not sure about relative path, use absolute path specification.
                                  [12/5/25 3:21 PM] failed to load Vosk model
                                  [12/5/25 3:21 PM] Stopped server poll
                                  [12/5/25 5:26 PM] Starting server poll
                                  [12/5/25 5:27 PM] Accepting signature from the client
                                  [12/5/25 5:27 PM] ERROR (VoskAPI:Model():src/model.cc:132) Folder '/home/phablet/.local/share/kl.soty/models/en' does not contain model files. Make sure you specified the model path properly in Model constructor. If you are not sure about relative path, use absolute path specification.
                                  [12/5/25 5:27 PM] failed to load Vosk model
                                  [12/5/25 5:27 PM] Stopped server poll
                                  [12/5/25 10:01 PM] library "eglSubDriverAndroid.so" not found
                                  [12/5/25 10:01 PM] Creating a QMirClientScreen now
                                  [12/5/25 10:01 PM] Starting app from main.cpp
                                  [12/5/25 10:01 PM] error calling result "An AppArmor policy prevents this sender from sending this message to this recipient; type=\"method_call\", sender=\":1.91\" (uid=32011 pid=4615 comm=\"kl.soty\" label=\"kl.soty_kl.soty_2025.11.18 (enforce)\") interface=\"com.lomiri.libertine.Service.Operations\" member=\"list\" error name=\"(unset)\" requested_reply=\"0\" destination=\"com.lomiri.libertine.Service\" (uid=32011 pid=4342 comm=\"/usr/bin/python3 /usr/bin/libertined\" label=\"unconfined\")"
                                  [12/5/25 10:01 PM] error calling result "An AppArmor policy prevents this sender from sending this message to this recipient; type=\"method_call\", sender=\":1.91\" (uid=32011 pid=4615 comm=\"kl.soty\" label=\"kl.soty_kl.soty_2025.11.18 (enforce)\") interface=\"com.lomiri.libertine.Service.OperationsMonitor\" member=\"running\" error name=\"(unset)\" requested_reply=\"0\" destination=\"com.lomiri.libertine.Service\" (uid=32011 pid=4342 comm=\"/usr/bin/python3 /usr/bin/libertined\" label=\"unconfined\")"
                                  [12/5/25 10:01 PM] lastError - no arguments?
                                  [12/5/25 10:01 PM] error calling result "An AppArmor policy prevents this sender from sending this message to this recipient; type=\"method_call\", sender=\":1.91\" (uid=32011 pid=4615 comm=\"kl.soty\" label=\"kl.soty_kl.soty_2025.11.18 (enforce)\") interface=\"com.lomiri.libertine.Service.OperationsMonitor\" member=\"last_error\" error name=\"(unset)\" requested_reply=\"0\" destination=\"com.lomiri.libertine.Service\" (uid=32011 pid=4342 comm=\"/usr/bin/python3 /usr/bin/libertined\" label=\"unconfined\")"
                                  [12/5/25 10:01 PM] lastError - no arguments?
                                  [12/5/25 10:01 PM] error calling result "An AppArmor policy prevents this sender from sending this message to this recipient; type=\"method_call\", sender=\":1.91\" (uid=32011 pid=4615 comm=\"kl.soty\" label=\"kl.soty_kl.soty_2025.11.18 (enforce)\") interface=\"com.lomiri.libertine.Service.OperationsMonitor\" member=\"result\" error name=\"(unset)\" requested_reply=\"0\" destination=\"com.lomiri.libertine.Service\" (uid=32011 pid=4342 comm=\"/usr/bin/python3 /usr/bin/libertined\" label=\"unconfined\")"
                                  [12/5/25 10:01 PM] lastError - no arguments?
                                  [12/5/25 10:01 PM] [PERFORMANCE]: Last frame took 33 ms to render.
                                  [12/5/25 10:01 PM] [PERFORMANCE]: Last frame took 55 ms to render.
                                  [12/6/25 7:04 PM] qt.qpa.mirclient: Attempted to deliver an event to a non-existent window, ignoring.
                                  [12/6/25 7:04 PM] library "eglSubDriverAndroid.so" not found
                                  [12/6/25 7:04 PM] Creating a QMirClientScreen now
                                  [12/6/25 7:04 PM] Starting app from main.cpp
                                  [12/6/25 7:04 PM] error calling result "An AppArmor policy prevents this sender from sending this message to this recipient; type=\"method_call\", sender=\":1.104\" (uid=32011 pid=167656 comm=\"kl.soty\" label=\"kl.soty_kl.soty_2025.11.18 (enforce)\") interface=\"com.lomiri.libertine.Service.Operations\" member=\"list\" error name=\"(unset)\" requested_reply=\"0\" destination=\"com.lomiri.libertine.Service\" (uid=32011 pid=4342 comm=\"/usr/bin/python3 /usr/bin/libertined\" label=\"unconfined\")"
                                  [12/6/25 7:04 PM] error calling result "An AppArmor policy prevents this sender from sending this message to this recipient; type=\"method_call\", sender=\":1.104\" (uid=32011 pid=167656 comm=\"kl.soty\" label=\"kl.soty_kl.soty_2025.11.18 (enforce)\") interface=\"com.lomiri.libertine.Service.OperationsMonitor\" member=\"running\" error name=\"(unset)\" requested_reply=\"0\" destination=\"com.lomiri.libertine.Service\" (uid=32011 pid=4342 comm=\"/usr/bin/python3 /usr/bin/libertined\" label=\"unconfined\")"
                                  [12/6/25 7:04 PM] lastError - no arguments?
                                  [12/6/25 7:04 PM] error calling result "An AppArmor policy prevents this sender from sending this message to this recipient; type=\"method_call\", sender=\":1.104\" (uid=32011 pid=167656 comm=\"kl.soty\" label=\"kl.soty_kl.soty_2025.11.18 (enforce)\") interface=\"com.lomiri.libertine.Service.OperationsMonitor\" member=\"last_error\" error name=\"(unset)\" requested_reply=\"0\" destination=\"com.lomiri.libertine.Service\" (uid=32011 pid=4342 comm=\"/usr/bin/python3 /usr/bin/libertined\" label=\"unconfined\")"
                                  [12/6/25 7:04 PM] lastError - no arguments?
                                  [12/6/25 7:04 PM] error calling result "An AppArmor policy prevents this sender from sending this message to this recipient; type=\"method_call\", sender=\":1.104\" (uid=32011 pid=167656 comm=\"kl.soty\" label=\"kl.soty_kl.soty_2025.11.18 (enforce)\") interface=\"com.lomiri.libertine.Service.OperationsMonitor\" member=\"result\" error name=\"(unset)\" requested_reply=\"0\" destination=\"com.lomiri.libertine.Service\" (uid=32011 pid=4342 comm=\"/usr/bin/python3 /usr/bin/libertined\" label=\"unconfined\")"
                                  [12/6/25 7:04 PM] lastError - no arguments?
                                  [12/6/25 7:04 PM] [PERFORMANCE]: Last frame took 40 ms to render.
                                  [12/6/25 7:04 PM] [PERFORMANCE]: Last frame took 48 ms to render.
                                  [12/6/25 7:11 PM] qt.qpa.mirclient: Attempted to deliver an event to a non-existent window, ignoring.
                                  [12/6/25 7:11 PM] qt.qpa.mirclient: Attempted to deliver an event to a non-existent window, ignoring.
                                  [12/6/25 7:14 PM] library "eglSubDriverAndroid.so" not found
                                  [12/6/25 7:14 PM] Creating a QMirClientScreen now
                                  [12/6/25 7:14 PM] Starting app from main.cpp
                                  [12/6/25 7:14 PM] error calling result "An AppArmor policy prevents this sender from sending this message to this recipient; type=\"method_call\", sender=\":1.113\" (uid=32011 pid=169488 comm=\"kl.soty\" label=\"kl.soty_kl.soty_2025.11.18 (enforce)\") interface=\"com.lomiri.libertine.Service.Operations\" member=\"list\" error name=\"(unset)\" requested_reply=\"0\" destination=\"com.lomiri.libertine.Service\" (uid=32011 pid=4342 comm=\"/usr/bin/python3 /usr/bin/libertined\" label=\"unconfined\")"
                                  [12/6/25 7:14 PM] error calling result "An AppArmor policy prevents this sender from sending this message to this recipient; type=\"method_call\", sender=\":1.113\" (uid=32011 pid=169488 comm=\"kl.soty\" label=\"kl.soty_kl.soty_2025.11.18 (enforce)\") interface=\"com.lomiri.libertine.Service.OperationsMonitor\" member=\"running\" error name=\"(unset)\" requested_reply=\"0\" destination=\"com.lomiri.libertine.Service\" (uid=32011 pid=4342 comm=\"/usr/bin/python3 /usr/bin/libertined\" label=\"unconfined\")"
                                  [12/6/25 7:14 PM] lastError - no arguments?
                                  [12/6/25 7:14 PM] error calling result "An AppArmor policy prevents this sender from sending this message to this recipient; type=\"method_call\", sender=\":1.113\" (uid=32011 pid=169488 comm=\"kl.soty\" label=\"kl.soty_kl.soty_2025.11.18 (enforce)\") interface=\"com.lomiri.libertine.Service.OperationsMonitor\" member=\"last_error\" error name=\"(unset)\" requested_reply=\"0\" destination=\"com.lomiri.libertine.Service\" (uid=32011 pid=4342 comm=\"/usr/bin/python3 /usr/bin/libertined\" label=\"unconfined\")"
                                  [12/6/25 7:14 PM] lastError - no arguments?
                                  [12/6/25 7:14 PM] error calling result "An AppArmor policy prevents this sender from sending this message to this recipient; type=\"method_call\", sender=\":1.113\" (uid=32011 pid=169488 comm=\"kl.soty\" label=\"kl.soty_kl.soty_2025.11.18 (enforce)\") interface=\"com.lomiri.libertine.Service.OperationsMonitor\" member=\"result\" error name=\"(unset)\" requested_reply=\"0\" destination=\"com.lomiri.libertine.Service\" (uid=32011 pid=4342 comm=\"/usr/bin/python3 /usr/bin/libertined\" label=\"unconfined\")"
                                  [12/6/25 7:14 PM] lastError - no arguments?
                                  [12/6/25 7:15 PM] [PERFORMANCE]: Last frame took 33 ms to render.
                                  [12/6/25 7:15 PM] [PERFORMANCE]: Last frame took 60 ms to render.
                                  

                                  Thanks for reporting this issue. I hope we can make the installer work properly.

                                  Happy to help in any way possible.

                                  I 1 Reply Last reply Reply Quote 0
                                  • I Offline
                                    idonthatevests @undrwater
                                    last edited by idonthatevests

                                    @undrwater
                                    Well, I've never got anything like that before, which is funny, because I use the same phone model and the same OS. Perharps you are using 24.04-2.x? If that is the case, it is not recommended, unless you need a few features that are not in 24.04-1.x, such as volte and proper Docker support, as this version is still under heavy development, and I don't have it yet and for this reason I could not even test it. But if you are willing to invest some time in it, I think we could find a way to get it running properly, but that might require a lot of testing on your side. I see a lot of people chose running bleeding edge, so 24.04.2 support might quickly become a requirement.

                                    I installed both through OpenStore

                                    Does in-application models installer functionality work for UT Translator or are you getting the same results as for SOTY?

                                    About VOSK errors, could you share the contents of en directory?

                                    UPD:
                                    Seems like VoLTE has been rolled out for 24.04.1 on Nord N10 too.

                                    U 2 Replies Last reply Reply Quote 0
                                    • U Offline
                                      undrwater @idonthatevests
                                      last edited by

                                      @idonthatevests said in SOTY - Speech-To-Text Recognition on Ubuntu Touch:

                                      @undrwater
                                      Well, I've never got anything like that before, which is funny, because I use the same phone model and the same OS. Perharps you are using 24.04-2.x? If that is the case, it is not recommended, unless you need a few features that are not in 24.04-1.x, such as volte and proper Docker support, as this version is still under heavy development, and I don't have it yet and for this reason I could not even test it.

                                      I wanted the VoLTE support. OS Build Details show:
                                      24.04-1.x

                                      But if you are willing to invest some time in it, I think we could find a way to get it running properly, but that might require a lot of testing on your side. I see a lot of people chose running bleeding edge, so 24.04.2 support might quickly become a requirement.

                                      I'll delete the directory in the kl.soty directory for now (see below), and we can go from there. I'm happy to help out!

                                      Does in-application models installer functionality work for UT Translator or are you getting the same results as for SOTY?

                                      The installer for UT Translator works as expected. Models download and I get a progress bar.

                                      About VOSK errors, could you share the contents of en directory?

                                      From the previous instructions, I had downloaded an 'en' model. I moved that to 'en.bak', and that is still there. I'll remove it and see if that helps.

                                      UPD:
                                      Seems like VoLTE has been rolled out for 24.04.1 on Nord N10 too.

                                      That's been my experience! 😉

                                      I 1 Reply Last reply Reply Quote 0
                                      • U Offline
                                        undrwater @idonthatevests
                                        last edited by

                                        @idonthatevests said in SOTY - Speech-To-Text Recognition on Ubuntu Touch:

                                        About VOSK errors, could you share the contents of en directory?

                                        Ok, I removed the en.bak directory, uninstalled soty, removed kl.soty directory, then reinstalled soty, tapped gear icon, tapped "install English language model", received the same message as before (install in progress).

                                        Afterwards, there is no kl.soty directory.

                                        I 1 Reply Last reply Reply Quote 0
                                        • I Offline
                                          idonthatevests @undrwater
                                          last edited by

                                          @undrwater
                                          I just re-read my own message and realized the reason why it refuses to run from command line was because I provided wrong file paths in my instruction again. I'm sorry for for wasting your time on not working instructions again. Such an embarassment...
                                          The correct way to run it from command line would be

                                          export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/opt/click.ubuntu.com/kl.soty/current/lib/aarch64-linux-gnu"
                                          /opt/click.ubuntu.com/kl.soty/current/kl.soty
                                          
                                          1 Reply Last reply Reply Quote 0
                                          • I Offline
                                            idonthatevests @undrwater
                                            last edited by idonthatevests

                                            @undrwater
                                            And now I was able to reproduce it... It was all caused by that the directory kl.soty/models isn't properly creared. That's another shame on me. Thanks for finding it

                                            U 1 Reply Last reply Reply Quote 1
                                            • I Offline
                                              idonthatevests
                                              last edited by idonthatevests

                                              Models installer has been fixed in new release, the update will appear soon on the OpenStore

                                              1 Reply Last reply Reply Quote 0
                                              • First post
                                                Last post