# Unity Socket Voice Chat Example 🎙️ This Unity project demonstrates a real-time voice chat system using: - 🎧 **Microphone input with Opus codec (via Concentus)** - 🔊 **Dynamic bandpass audio filtering** - 📡 **WebSocket communication (via WebSocketSharp)** - 🎮 **Unity AudioSource streaming with a circular buffer** --- ## Features - ✅ Record microphone audio in real time. - ✅ Apply a bandpass filter with adjustable `lowFreq` and `highFreq`. - ✅ Encode audio using Opus codec for low-latency transmission. - ✅ Transmit voice data over a WebSocket connection. - ✅ Decode and playback received voice with a continuous audio stream. --- ## Setup ### 🔧 Requirements - Unity 2020.3 or newer (tested on Unity 2021+) - [NuGetForUnity](https://github.com/GlitchEnzo/NuGetForUnity) plugin for package management - A WebSocket server (see below) --- ## 📦 Dependencies (via NuGet) ### 1. Install NuGetForUnity 1. Download the latest `.unitypackage` from [NuGetForUnity Releases](https://github.com/GlitchEnzo/NuGetForUnity/releases) 2. Import it into your Unity project (`Assets → Import Package → Custom Package`) 3. A new **NuGet** menu will appear in the Unity toolbar. ### 2. Install Required Packages Use the **NuGet → Manage NuGet Packages** menu and search for: - `Concentus` (e.g., `Concentus.Oggfile` or `Concentus` by `lostromb`) Once installed, Unity will generate `.csproj` references for you. > ✅ No need to manually copy DLLs! --- ## Project Structure ### 🎙️ `OpusMicRecorder.cs` Captures microphone audio, filters it, and encodes using Opus. ### 📤 `OpusVoiceSender.cs` Sends encoded voice packets to a WebSocket server. ### 📥 `OpusVoiceReceiverWithBuffer.cs` Receives Opus packets, decodes them, and streams via `AudioSource`.