~geb

https://johngebbie.com

pixel art John

Trackers

~geb/dotool

Last active a month ago

~geb/numen

Last active 3 months ago

#4 Ubuntu permissions 2 months ago

Comment by ~geb on ~geb/dotool

Great! Thanks for reporting back with the solution!

REPORTED RESOLVED CLOSED

#16 document key{down,up} and button{down,up} 3 months ago

Ticket created by ~geb on ~geb/numen

#4 Ubuntu permissions 3 months ago

Comment 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

#15 don't overwrite /etc/numen, instead have /usr/share/numen 6 months ago

Ticket created by ~geb on ~geb/numen

#9 switching model at runtime/separate models 8 months ago

Comment 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 a tmodel action to switch transcription model. I thought about a @transcribe parameter also, but I think a tmodel 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.

#14 backtrace: symbol not found 11 months ago

Comment by ~geb on ~geb/numen

REPORTED RESOLVED CLOSED

#14 backtrace: symbol not found 11 months ago

on ~geb/numen

#14 backtrace: symbol not found 11 months ago

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?

#3 mousemove support --absolute like ydotood 1 year, 4 days ago

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

#2 setting the required end of sentence silence 1 year, 1 month ago

Comment by ~geb on ~geb/numen

maybe instead call the actions csilence and tsilence (now that there's going to be tmodel).