bug-guix
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#61236: ibus-speech-to-text engine fails to run (?)


From: Luis Felipe
Subject: bug#61236: ibus-speech-to-text engine fails to run (?)
Date: Thu, 02 Feb 2023 19:46:53 +0000

I can add `ibus-speech-to-text` (aka IBus STT) to my input methods, and set it 
up, but once selected for input, it doesn't work.


## STEPS TO REPRODUCE

1. `guix install ibus ibus-speech-to-text`
2. In GNOME Settings → Keyboard, add IBus STT to the list of input methods (it 
is displayed as `Other (Speech To Text)`)
3. In IBus STT Settings → General:

    + Preload models: ON
    + Active on start: ON
    + System locale: OFF
    + Locales: Select the lightweight model for English (USA)

4. In the desktop, start an app and place the text cursor in a text field 
(tried on IceCat, Ungoogled Chromium, GNOME Text Editor, GNOME Shell)
5. Switch to IBus STT input method using Super+Space (give it about 1 second to 
load).
6. Dictate to the machine.


## EXPECTED RESULT

Text is typed magically as you speak in the text field selected in step 4.


## UNEXPECTED RESULT

No text is added to the text field I selected in step 4.


## SYSTEM INFORMATION

~~~
OS: Guix System x86_64 fb3085e
Kernel: 6.1.5-gnu 

DE: GNOME 42.4 (tried on Wayland and Xorg)
ibus: 1.5.27
ibus-speech-to-text: 0.4.0
~~~


## ADDITIONAL INFORMATION

Could it be that the speech-to-text engine is failing to run because it can't 
find the GTK 4.0 namespace through Gobject Introspection. For example, after 
being pointed to the following command by IBus STT developer 
(https://github.com/PhilippeRo/IBus-Speech-To-Text/discussions/7) I see the 
following error:

~~~
$ /gnu/store/HASH-ibus-speech-to-text-0.4.0/libexec/ibus-engine-stt 
--gapplication-replace -g
Traceback (most recent call last):
  File 
"/gnu/store/87dgkps8sp1jb4z2w4m1dnp0zvnq050l-ibus-speech-to-text-0.4.0/share/ibus-stt/main.py",
 line 38, in <module>
    from sttenginefactory import STTEngineFactory
  File 
"/gnu/store/87dgkps8sp1jb4z2w4m1dnp0zvnq050l-ibus-speech-to-text-0.4.0/share/ibus-stt/sttenginefactory.py",
 line 26, in <module>
    from sttengine import STTEngine
  File 
"/gnu/store/87dgkps8sp1jb4z2w4m1dnp0zvnq050l-ibus-speech-to-text-0.4.0/share/ibus-stt/sttengine.py",
 line 29, in <module>
    gi.require_version('Gtk', '4.0')
  File 
"/gnu/store/5ijhwr127smgxrp5dls7dxnr9jwa4m8p-python-pygobject-3.40.1/lib/python3.9/site-packages/gi/__init__.py",
 line 129, in require_version
    raise ValueError('Namespace %s not available for version %s' %
ValueError: Namespace Gtk not available for version 4.0
~~~

In the command above, HASH is the hash corresponding to 
`ibus-speech-to-text-0.4.0` in my user profile.


## WORKAROUND

The input method works after making sure `gtk` and `python-pygobject` are in 
the environment where `ibus-engine-stt` is run:

1. Start an augmented shell:

   guix shell ibus-speech-to-text gtk python-pygobject

2. Run `ibus-engine-stt` as follows (where HASH is the hash for 
ibus-speech-to-text-0.4.0 in the profile created for the shell in step one):

   /gnu/store/HASH-ibus-speech-to-text-0.4.0/libexec/ibus-engine-stt 
--gapplication-replace -g

After this, you should see INFO and DEBUG information printed out. You can now 
launch an application, place the caret in any text box, switch to 
speech-to-text input method, and start dictating to the machine. Selecting 
other languages in "IBus STT settings → General → Locale" also work (I tried 
dictating in English, Japanese and Spanish).



---
Luis Felipe López Acevedo
https://luis-felipe.gitlab.io/

Attachment: publickey - luis.felipe.la@protonmail.com - 0x12DE1598.asc
Description: application/pgp-keys

Attachment: signature.asc
Description: OpenPGP digital signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]