overte icon indicating copy to clipboard operation
overte copied to clipboard

Add support for OVRLipSync-style visemes

Open JulianGro opened this issue 2 years ago • 4 comments

We lack viseme support, but unfortunately there doesn't seem to be any proper library for it.

The industry standard is OVRLipSync which is closed source, proprietary, and doesn't support Linux. Since lip-syncing is handled client side, we could theoretically make it available as an optional plugin, but probably no one would want to work on it, since it wouldn't work on Linux without depending on Wine or Qemu/Binfmt. Alternatively, there is a well documented open source implementation for Unity which we could use as a starting point to create a C++ library. https://github.com/hecomi/uLipSync

Since almost all social VR platforms are in the same boat here, maybe it could be viable to collaborate on such library. Neos seems to have issues with OVRLipSync, so if a Neos 2 ever emerges, they could be a candidate to collaborate with. V-Sekai for instance is going to have exactly the same problem as we do. As an open-source platform, they cannot just include such proprietary library.

There is apparently also some open source neural network based stuff made by Chinese anime girls: https://github.com/Magicboomliu/Viseme-Classification https://github.com/marty1885/OpenViseme

JulianGro avatar Aug 03 '23 08:08 JulianGro

To directly give an update about the issue on Resonite side if you don't want to check the issue

The community is working on  https://github.com/KyuubiYoru/OpenLipSync this is still experimental, but works (tho lack laughter detection compared to ovrlipsync)

A C# implementation can be found here https://github.com/KyuubiYoru/VisemesAtHome (it's a mod to implement it in Resonite)

No idea if this'll be usable for y'all, but it's here

Naia-love avatar Aug 21 '25 00:08 Naia-love

@Naia-love thank you for sharing this. If it ends up working okay it indeed looks like a viable option.

JulianGro avatar Aug 22 '25 14:08 JulianGro

Resonite have implemented it directly https://youtu.be/oSVugEX_4ng / https://store.steampowered.com/news/app/2519830/view/526480495508196129?l=english

using it by default if OVRLipSync isnt available, leaving it as an option otherwise

Naia-love avatar Sep 23 '25 22:09 Naia-love

OpenLipSync sounds like a very good choice, especially since it's Apache-2.0 licensed.

ksuprynowicz avatar Sep 24 '25 06:09 ksuprynowicz