Namespace Adrenak.UniVoice
Classes
ClientSession<T>
Handles a client session. Requires implementations of IAudioClient<T>, IAudioInput and IAudioOutput. Handles input, output along with filters over the entire client lifecycle. Adjusts to changes in configuration at runtime.
EmptyAudioInput
An audio input implementation that doesn't do anything. Use this when the device doesn't have any input mode. This is especially useful when setting up the ClientSession object on a dedicated server that likely isn't going to have and mic or other audio capture devices.
SimpleVad
A minimal, adaptive voice activity detector operating on time-domain PCM. Supports float [-1,1] and 16-bit samples, with per-call adaptation to input frequency and channel count. Multi-channel input is downmixed to mono.
SimpleVad.Config
Configuration for the MiniVad voice activity detector. All time-based parameters are expressed in milliseconds.
Utils
Utils.Audio
Utils.Bytes
Utils.Network
VoiceSettings
WavFileWriter
A utility to write audio samples to a file on disk. Construct using the path you want to store the audio file at. Invoke Write with the sampling frequency, channel count and PCM samples and it will lazily initialize.
Structs
AudioFrame
Interfaces
IAudioClient<T>
IAudioFilter
Offers ways to modify audio after being captured. To prevent the audio from being sent (for example when performing some pass or gating) return an empty byte array (new byte[0])
IAudioInput
Source of user voice input. This would usually be implemented over a microphone to get the users voice. But it can also be used in other ways such as streaming an mp4 file from disk. It's just an input and the source doesn't matter.
IAudioOutput
Responsible for handling incoming audio.
You'd normally want a
IAudioOutputFactory
An abstract factory that creates a concrete IAudioOutput