Spice may be your best bet. I think it supports audio.
*Might be a good starting point https://forum.proxmox.com/threads/noob-guide-to-getting-audio-to-work-in-linux-guests.127369/
A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don't control.
Rules:
Be civil: we're here to support and learn from one another. Insults won't be tolerated. Flame wars are frowned upon.
No spam posting.
Posts have to be centered around self-hosting. There are other communities for discussing hardware or home computing. If it's not obvious why your post topic revolves around selfhosting, please include details to make it clear.
Don't duplicate the full text of your blog or github here. Just post the link for folks to click.
Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).
No trolling.
No low-effort posts. This is subjective and will largely be determined by the community member reports.
Resources:
Any issues on the community? Report it using the report flag.
Questions? DM the mods!
Spice may be your best bet. I think it supports audio.
*Might be a good starting point https://forum.proxmox.com/threads/noob-guide-to-getting-audio-to-work-in-linux-guests.127369/
In my adventures I did look at this, but it appears to require that you install support for this inside the guest, which is possible for modern guests, but not for ancient ones like say Debian Wheezy or Win98se.
Ancient yeah, haha. Glaces at win311 and slackware 2.3 VMs. But yeah it does require guest addons but is probably going to be the closest to built in support you're going to find. I think there is a novnc audio project but have no idea what state that's in and what you'd have to do to roll it into the Proxmox novpn version.
so I figured that using pipewire to co-ordinate this would be the easiest way forward, except it turns out that it’s a (GUI) user space process, which doesn’t make sense on a server with no GUI users.
I'm not entirely sure what you mean by "(GUI) user space process", but if it's that it's a systemd user process (e.g. it shows up when you run $ systemctl --user status pipewire rather than $ systemctl status pipewire, which appears to be the case on my system, where there's one instance running per user session), then you probably can run it as a systemwide process, where there's just one always-running process for the whole system. IIRC, PulseAudio could run in both modes. I don't know if you have concerns about security on access to your mic or something, but that could be something to look into.
searches
Sounds like it's doable. Not endorsing this particular project, which I've never seen before, but it looks like it's possible:
https://github.com/iddo/pipewire-system
PipeWire System-wide Daemon Package (Arch Linux)
This package configures PipeWire, WirePlumber, and PipeWire-Pulse to run as a single system-wide daemon as the root user. This setup is optimized for headless media servers, HTPCs, or multi-user audio environments.
Not sure how, or if, I'd want to install an Arch package under Debian, but it's my understanding that the package I've raised a bug for under Debian implements, or is supposed to at least, the functionality you're describing.
What I haven't found is a recipe that documents exactly how it's supposed to work (not to mention, in a Debian way).
I'd love to discover something that doesn't start with instructions to remove all pipewire packages and install from source, since that completely defeats the purpose of running Debian Stable as the host.
The arch package has to be built somehow. You could look at that packages source and/or content to figure out how to manually do it on your system, or wait/hope the deb is being maintained and gets fixed.
It's likely mostly some plumbing, like a systemd service with it's configuration, to get the audio routed properly.
Tah. I'll have a look see.