pixel art John



Last active a month ago


Last active 7 months ago

#15 don't overwrite /etc/numen, instead have /usr/share/numen a month ago

Ticket created by ~geb on ~geb/numen

#9 switching model at runtime/separate models 4 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 6 months ago

Comment by ~geb on ~geb/numen


#14 backtrace: symbol not found 6 months ago

on ~geb/numen

#14 backtrace: symbol not found 6 months ago

Ticket created by ~geb on ~geb/numen


Hi John,

I just installed the alpine numen package in an lxd container and came across the error below. Is that a known issue?


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 7 months 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.


#2 setting the required end of sentence silence 8 months ago

Comment by ~geb on ~geb/numen

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

#12 better recording implementation? 8 months ago

Ticket created by ~geb on ~geb/numen

Currently using the arecord command. Would be good to do it with a pure Go package.

#10 Support more VOSK models 8 months ago

on ~geb/numen

"~geb" outgoing@sr.ht writes:

The -small and -lgraph models should work, and I've had a good report form a user with the small French model. The big ones don't usually because their vocabulary can't be limited at runtime.

I've not looked into punctuation models yet.

Thank you for the info!


#11 Link to git repos from tracker and mailing list 8 months ago

Comment by ~geb on ~geb/numen

I've added a few links.