Major changes have happened between UniVoice v3 and v4
- All previously separate UniVoice repositories have been archived and moved to the main UniVoice repository in efforts of making it a mono repo. This means no more dealing with a big list of package dependencies (and their dependencies)!
- Opus codec support has been added via Concentus-Unity. This means your bandwidth usage is <90% compared to v3, making it suitable for production use.
- Mirror is supported out of the box and a sample scene is included to help you get started!
- Old network implementations for PUN2, Telepathy, Mirror and Airpeer currently only work with UniVoice v3. They'll be added as in-built networks to v4 in future releases.
Changes to dependency repositories:
-
UniMic has moved to v3:
- Multiple mic devices can be used in parallel
- Major improvements to the API
- Fixes to the audio frame construction
- Performance improvements and reduced GC allocation
StreamedAudioSource.cs
for playback of audio frames as they arrive. Runtime changes in frequency, channel count and frame length are handled automatically.
-
Concentus-Unity for pure C# Opus functionality with Speex resampler.
- Encoding and decoding features are present in
ContentusEncodeFilter.cs
andConcentusDecodeFilter.cs
in the form of incoming and outgoing audio filters. - Even through it's C#, building with IL2CPP should help approaching native performance.
- Encoding and decoding features are present in
-
BRW used for writing and reading binary messages is unchanged.
-
UnityOpus for Opus features via interop calls to native libraries (not a dependency, but can be added easily)
- This isn't a dependency yet. The reason is that the pre-built native libraries in UnityOpus may cause build errors (on Android). Hence the move to Concentus-Unity for a pure C# approach that's build target independent.
- If you wish to use native libraries for Opus features, import UnityOpus into your project and add this file for encode and decode filters.
- Also if you can get new native libraries built for Windows, Linux, Android, iOS and Mac using the existing C++ code, I'd really appreciate a pull request π
UniVoice has some big improvements lined up, this includes:
- βοΈ Better documentation and maybe even some video tutorials
- π£οΈ Echo cancellation
- π Support for FishNet, Purr, Mirage, Network For GameObjects, PUN2 and maybe also Unity WebRTC
Thanks for the continued support! If you are joining or have been part of the UniVoice journey, give it a Github star β!