From 12ec54e0cf4ff37b04ec21b28b78ed4df1da3618 Mon Sep 17 00:00:00 2001 From: dadechinunity Date: Sat, 28 Jun 2025 11:34:19 +0330 Subject: [PATCH] Update README.md --- README.md | 62 +++++++++++++++++++++++++++---------------------------- 1 file changed, 30 insertions(+), 32 deletions(-) diff --git a/README.md b/README.md index c458b67..1c4545d 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ This Unity project demonstrates a real-time voice chat system using: ## Features - ✅ Record microphone audio in real time. -- ✅ Apply a tunable bandpass filter to remove noise and improve voice clarity. +- ✅ 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. @@ -24,49 +24,47 @@ This Unity project demonstrates a real-time voice chat system using: ### 🔧 Requirements - Unity 2020.3 or newer (tested on Unity 2021+) -- [WebSocketSharp](https://github.com/sta/websocket-sharp) library -- [Concentus Opus codec for C#](https://github.com/lostromb/concentus) -- A WebSocket server (you can use a basic Python or Node.js echo server for testing) +- [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. -- Applies a bandpass filter with adjustable `lowFreq` and `highFreq`. -- Encodes audio using Opus (20ms frame). -- Sends encoded data through `OnEncodedAudio` event. +Captures microphone audio, filters it, and encodes using Opus. ### 📤 `OpusVoiceSender.cs` - -- Connects to a WebSocket server. -- Listens for encoded audio from `OpusMicRecorder`. -- Sends voice packets via WebSocket. +Sends encoded voice packets to a WebSocket server. ### 📥 `OpusVoiceReceiverWithBuffer.cs` - -- Connects to the same WebSocket server. -- Receives encoded Opus packets. -- Decodes them into PCM audio. -- Buffers the audio into a ring buffer for continuous playback using an `AudioSource`. +Receives Opus packets, decodes them, and streams via `AudioSource`. --- -## Usage Instructions - -### 1. Add Required Libraries - -- Import `WebSocketSharp.dll` into your Unity project. -- Add the `Concentus` library (via Unity Package Manager or DLL). - -### 2. Setup Scene - -- Create an empty GameObject in your scene. -- Attach: - - `OpusMicRecorder` - - `OpusVoiceSender` - - `OpusVoiceReceiverWithBuffer` +## 🔌 WebSocket Server +You can use a simple WebSocket server for voice routing. Here’s a Python example: +```bash +pip install websockets