Comment by ~geb on ~geb/dotool
Great! Thanks for reporting back with the solution!
REPORTED
RESOLVED CLOSEDComment by ~geb on ~geb/dotool
I'm not sure why the udev rule isn't working, being in the group (can check
id -Gn
for certainty) and rebooting should be enough normally.It's the permissions of /dev/uinput which are the issue, and what the udev rule is supposed to set. Here's what I get running
ls -l /dev/uinput
:crw-rw---- 1 john input 10, 223 Aug 10 11:08 /dev/uinput
You could
chown
/chmod
/dev/uinput as a sad workaround, it would need to be done every reboot.The udev rule could technically be being overridden by another udev rule, but that's never came up before. A systemd release last year broke its support for uinput udev rules, but the next release resolved it: https://bugs.archlinux.org/task/79391
Ticket created by ~geb on ~geb/numen
Yeah, I've since decided against command model switching, there's little to justify it. There's WIP transcription model switching on the "switching" branch.
On the branch there's a new
--models
argument (but might revert to an environment variable) and atmodel
action to switch transcription model. I thought about a@transcribe
parameter also, but I think atmodel
action and a special<transcription>
phrase that runs before transcription (no implemented yet) would give the most flexibility with the least funkiness. That way you could switch model and keep using the same "scribe" phrases (in addition to being able to have a dedicated "french scribe" phrase), and<transcription>
would also be useful in it's own right for playing a sound or displaying a notification or whatever on transcription.
Ticket created by ~geb on ~geb/numen
A COPY PASTE TO HIDE THE SUBMITTER'S EMAIL ADDRESS
Hi John,
I just installed the alpine numen package in an lxd container and came across the error below. Is that a known issue?
Max
numen:~# numen --audio=test.wav Error relocating /usr/lib/libvosk.so: backtrace: symbol not found Error relocating /usr/lib/libvosk.so: backtrace_symbols: symbol not found numen:~# apk list --installed |grep numen numen-0.7-r4 x86_64 {numen} (AGPL-3.0-only) [installed] numen:~# version NAME="Alpine Linux" ID=alpine VERSION_ID=3.18.4 PRETTY_NAME="Alpine Linux v3.18" HOME_URL="https://alpinelinux.org/" BUG_REPORT_URL="https://gitlab.alpinelinux.org/alpine/aports/-/issues" numen:~# numen:~# numen --help Error relocating /usr/lib/libvosk.so: backtrace: symbol not found Error relocating /usr/lib/libvosk.so: backtrace_symbols: symbol not found numen:~#
~geb 3 days ago
Hi Max,
Sorry, I've never seen that before and I'm not sure what it's about. I use Alpine and the package on my machine all good, but have never done anything with containers.
No clue if it's related, but I remember building vosk for musl required avoiding the backtrace function: https://gitlab.alpinelinux.org/alpine/aports/-/blob/master/community/vo sk-api/APKBUILD#L59
Hope you figure it out, John
~masq 2 days ago
Thanks John. The error suggests indeed that backtrace is somehow required in an lxd container but I'm not going to pursue in that direction. I realised in the meantime that a setup based on an lxd container is not going to cut it in my use case. The idea i had was to use it as a server to execute commands remotely on an android smartphone. Since Vosk is an offline solution this would simply obliterate its main advantage. Now i'm looking into running it locally with termux and chroot. The installation is smooth but dotool gets permission denied on /dev/uinput during numen processing. I've granted all permissions that was possible to grant to termux, but i think i need to do more digging
~geb 2 days ago
Cool! I'd really like to have an input solution for android too.
Later on you might want to see: https://lists.sr.ht/~geb/numen/%3C55fe1488feeb1cee2627d61b9b7e16a74ef5f ca0.camel%40dalibo.com%3E#%3CCWQ1POME5GNO.1LLY1OSMAO2X6@johngebbie.com% 3E about making numen less trigger-happy.
If you're going for more of a voice assistant, I know of dicio for android that also uses vosk: https://github.com/Stypox/dicio-android
But I'm interested in if you get termux input working!
~masq a day ago
It works : ) and pretty well actually. In this setup root privileges are required for dotool. I couldn't figure out how to unmute the microphone with alsa in the chroot environment but i was able to bridge over from termux using pulseaudio and sox. pulseaudio --start; sox -d -V0 -c1 -r16000 -t raw alpine-fs/root/fifo.raw [Ctrl-Z] ; bg; sudo ./exec-alp numen --audio=fifo.raw
~masq a day ago
Your project is brilliant by the way
~geb a day ago
That's really cool! Still a hack but maybe you could avoid the fifo by piping the audio to numen --audio=/dev/stdin? And thank you :)
~masq a day ago*
Well yes, it's a hack but it's getting cold outside and if i can change the music i'm listening to or taking notes without taking my hands out of my pockets this qualifies as a technological acme.
And the named pipe, albeit ugly, is still needed in this case i think because of chroot. I can't make your suggestion work
~geb REPORTED CLOSED 9 hours ago
Yeah, I'm so glad open-source speech recognition can be as good as it can now. And you're probably right about the pipe and chroot.
I'll mark this ticket resolved but feel free to message me wherever. I've started a list of cool things using numen (https://sr.ht/~geb/awesome-numen) and I'd totally add a script or blog post about termux+numen if you'd like to contribute. All the best!
~masq 4 hours ago
Thanks John, and you. I'll keep an eye on your page and will help if i can.
In the meantime - unrelated, do you see a possibility to remove my email address from the issue tracker or at least obfuscate it in a way that it doesn't fall prey to spiders? I looked into my account settings and couldn't see any option. Did i miss anything?
Comment by ~geb on ~geb/dotool
This is already implemented, see the mouseto action. The X and Y are percentages, so for the center of the screen you'd use:
echo mouseto 0.5 0.5 | dotool
iirc ydotool just whips a relative pointer device into a corner before trying to position it (which gets it extra wrong if there's mouse acceleration) and hence has pretty arbitrary units.
REPORTED
RESOLVED CLOSED