Skip to content

Add VOSK Dictation (offline dictation) #3474

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 14 commits into
base: master
Choose a base branch
from

Conversation

LabOzzy
Copy link

@LabOzzy LabOzzy commented Apr 20, 2025

AppImage has been added and appdata.xml for VOSK Dictation — offline voice text input.
It works without the Internet, with support for system notifications, tray and text insertion via xdotool.

@probonopd
Copy link
Member

probonopd commented Apr 20, 2025

Hi @LabOzzy, please use English language in this project, thanks. You can use one of the many translation tools, doesn't need to be perfect.

@probonopd probonopd closed this Apr 20, 2025
@probonopd probonopd reopened this Apr 20, 2025
@LabOzzy
Copy link
Author

LabOzzy commented Apr 20, 2025

Thanks!

I've updated the appdata.xml file with a full English description.
It now includes usage, features, and compatibility in English.
Let me know if any changes are needed!

@LabOzzy
Copy link
Author

LabOzzy commented Apr 21, 2025

The CI test fails because this AppImage requires a graphical (X11) environment to work. This is expected — the test runner does not provide GUI, so window-based tools like xdotool cannot function.

However, the application has been fully tested in real-world environments (Linux Mint 21.3), and works as intended: offline voice recognition, tray icon, notifications, sound alerts, and automatic text insertion via xdotool.

Please consider manual review. The .AppImage is fully self-contained, portable, and offline.

Thank you!

@probonopd probonopd changed the title Добавлен VOSK Dictation (офлайн диктовка) Add VOSK Dictation (offline dictation) Apr 21, 2025
@probonopd
Copy link
Member

Thank you @LabOzzy. There is an X11 environment for n the test, that's how we test all the graphic applications :-)

The current issue is:

Traceback (most recent call last):
  File "/run/firejail/appimage/vosk_smal_mod.py", line 6, in <module>
    from pystray import Icon, Menu, MenuItem
  File "/run/firejail/appimage/usr/lib/python3.10/site-packages/pystray/__init__.py", line 64, in <module>
    Icon = backend().Icon
  File "/run/firejail/appimage/usr/lib/python3.10/site-packages/pystray/__init__.py", line 56, in backend
    return candidate()
  File "/run/firejail/appimage/usr/lib/python3.10/site-packages/pystray/__init__.py", line 28, in appindicator
    from . import _appindicator as backend; return backend
  File "/run/firejail/appimage/usr/lib/python3.10/site-packages/pystray/_appindicator.py", line 20, in <module>
    gi.require_version('Gtk', '3.0')
  File "/usr/lib/python3/dist-packages/gi/__init__.py", line 126, in require_version
    raise ValueError('Namespace %s not available' % namespace)
ValueError: Namespace Gtk not available

Gtk libraries and the Gtk Python libraries need to be bundled.

LabOzzy added 2 commits April 21, 2025 12:17
…libffi и др.), пересобран AppImage для полной автономной работы
@probonopd
Copy link
Member

probonopd commented Apr 21, 2025

Please do NOT upload AppImage files here. The only file you should create is data/VOSK_Dictation and it should ONLY contain the URL to your AppImage. Thanks!

The AppData goes INTO your AppImage. The test that is run by this repository will download your AppImage from the URL and extract the AppData from it if available.

@LabOzzy
Copy link
Author

LabOzzy commented Apr 21, 2025

All .typelib files, including Gtk-3.0.typelib, are bundled into the AppImage under usr/lib/girepository-1.0.
GI_TYPELIB_PATH is set before Python is executed in AppRun.
The application runs fine in a real X11 session (Linux Mint 21.3), and the tray icon works correctly.
If the test environment doesn’t respect this variable, could you advise how to adapt it for AppImageHub?

@LabOzzy
Copy link
Author

LabOzzy commented Apr 21, 2025

I understand you, thank you for the detailed explanation and clarification, I've fixed everything now.

@probonopd
Copy link
Member

FileNotFoundError: [Errno 2] No such file or directory: 'notify-send'

It needs to be bundled.

@probonopd
Copy link
Member

probonopd commented Apr 21, 2025

Also please remove the bottom two files from your branch. Thanks

image

…64.AppImage, обновление ссылки в VOSK_Dictation
@LabOzzy
Copy link
Author

LabOzzy commented Apr 21, 2025

I appreciate your patience, I did as you indicated.

@probonopd
Copy link
Member

Failed to load shared library 'libayatana-appindicator3.so.1' referenced by the typelib: libayatana-appindicator3.so.1: cannot open shared object file: No such file or directory

It needs to be bundled.

@probonopd
Copy link
Member

GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.Notifications was not provided by any .service files

Please make sure that your application launches even if D-Bus or Notifications are not available on the system.

@probonopd
Copy link
Member

probonopd commented Apr 21, 2025

How should your application main screen look like? Can you point me to a screenshot showing your application?

@LabOzzy
Copy link
Author

LabOzzy commented Apr 21, 2025

The stop program button VOSK Dictation
VOSK Dictation(Done)
VOSK Dictation(recognition )
VOSK Dictation(start of recording)
VOSK Dictation(starting in the system )

VOSK.Dictation.mp4

@probonopd
Copy link
Member

So your application has no main window, just a tray icon?

That would explain why the test fails to find a window for taking a screenshot...

@LabOzzy
Copy link
Author

LabOzzy commented Apr 21, 2025

That's right, it works without a window, just an icon in the tray.

@probonopd
Copy link
Member

probonopd commented Apr 21, 2025

Hmm, the automated test can't handle these yet.
And currently the test fails if no screenshot can be taken.
And with a failed test the application does not get added to the catalog.

Maybe we need to modify the test to skip trying to take a screenshot in these cases. I will need to think about it.

@LabOzzy
Copy link
Author

LabOzzy commented Apr 21, 2025

Looks like VOSK Dictation turned out to be a non-standard case — maybe it’ll help improve your test logic in the future 😉
I can wait without any problem while you think about it!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants