{"id":13345545,"url":"https://github.com/adrenak/UniVoice","last_synced_at":"2025-03-12T08:30:56.420Z","repository":{"id":41329361,"uuid":"166532482","full_name":"adrenak/univoice","owner":"adrenak","description":"Voice chat/VoIP solution for unity. ","archived":false,"fork":false,"pushed_at":"2025-01-29T14:56:50.000Z","size":26083,"stargazers_count":377,"open_issues_count":13,"forks_count":35,"subscribers_count":9,"default_branch":"master","last_synced_at":"2025-03-11T08:11:56.322Z","etag":null,"topics":["microphone","p2p","peer-to-peer","unity","voice","voice-call","voip"],"latest_commit_sha":null,"homepage":"http://www.vatsalambastha.com/univoice","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/adrenak.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-01-19T10:04:53.000Z","updated_at":"2025-02-14T01:54:55.000Z","dependencies_parsed_at":"2024-11-10T16:33:14.628Z","dependency_job_id":"ecdc1188-3b30-4034-a9e1-fb37564cfe63","html_url":"https://github.com/adrenak/univoice","commit_stats":null,"previous_names":[],"tags_count":22,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adrenak%2Funivoice","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adrenak%2Funivoice/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adrenak%2Funivoice/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adrenak%2Funivoice/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/adrenak","download_url":"https://codeload.github.com/adrenak/univoice/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243184356,"owners_count":20249966,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["microphone","p2p","peer-to-peer","unity","voice","voice-call","voip"],"created_at":"2024-07-29T20:01:03.094Z","updated_at":"2025-03-12T08:30:56.406Z","avatar_url":"https://github.com/adrenak.png","language":"C#","funding_links":[],"categories":["Game Development"],"sub_categories":["Unity Engine: Resources"],"readme":"# UniVoice\r\nUniVoice is a voice chat/VoIP solution for Unity.\r\n  \r\nSome features of UniVoice:\r\n- 👥 Group voice chat. Multiple peers can join a chatroom and exchange audio.  \r\n\r\n- ⚙ Peer specific settings. Don't want to listen to a peer? Mute them. Don't want someone listening to you? Mute yourself against them.\r\n \r\n- 🎨 Customize your audio input, output and networking layer. \r\n  * 🎤 __Configurable Audio Input__: UniVoice is audio input agnostic. It supports mic audio input out of the box and you can change the source of outgoing audio by implementing the `IAudioInput` interrace.  \r\n    \r\n  * 🔊 __Configurable Audio Output__:  UniVoice is audio output agnostic. Out of the box is supports playing peer audio using Unity AudioSource. You can divert incoming audio to anywhere you want by implementing the `IAudioOutput` interface.  \r\n\r\n  * 🌐 __Configurable Network__: UniVoice is network agnostic and supports Mirror out of the box. You can implement the `IAudioClient` and `IAudioServer` interfaces using the networking plugin of your choice to make it compatible with it.\r\n\r\n  * ✏️ __Audio Filters__: Modify outgoing and incoming audio by implementing the `IAudioFilter` interface. Gaussian blurring for denoising and Opus (Concentus) encoding \u0026 decoding for lower bandwidth consumption are provided out of the box.\r\n  \r\n## Installation\r\n⚠️ [OpenUPM](https://openupm.com/packages/com.adrenak.univoice/?subPage=versions) may not have up to date releases. Install using NPM registry instead 👇\r\n\r\nEnsure you have the NPM registry in the `manifest.json` file of your Unity project with the following scopes:\r\n```\r\n\"scopedRegistries\": [\r\n    {\r\n        \"name\": \"npmjs\",\r\n        \"url\": \"https://registry.npmjs.org\",\r\n        \"scopes\": [\r\n            \"com.npmjs\",\r\n            \"com.adrenak.univoice\",\r\n            \"com.adrenak.brw\",\r\n            \"com.adrenak.unimic\",\r\n            \"com.adrenak.concentus-unity\"\r\n        ]\r\n    }\r\n}\r\n```\r\nThen add `com.adrenak.univoice:x.y.z` to the `dependencies` in your `manifest.json` file (where x.y.z is the version you wish to install). The list of versions is available on [the UniVoice NPM page](https://www.npmjs.com/package/com.adrenak.univoice?activeTab=versions).\r\n\r\n## Docs\r\nAm API reference is available: http://www.vatsalambastha.com/univoice\r\n\r\n## Samples\r\nThis repository contains a sample scene for the Mirror network, which is the best place to see how UniVoice can be integrated into your project.  \r\n  \r\nTo try the sample, import Mirror and add the `UNIVOICE_MIRROR_NETWORK` compilation symbol to your project.\r\n  \r\n## Dependencies\r\n[com.adrenak.brw](https://www.github.com/adrenak/brw) for reading and writing messages for communication. See `MirrorServer.cs` and `MirrorClient.cs` where they're used.  \r\n\r\n[com.adrenak.unimic](https://www.github.com/adrenak/unimic) for easily capturing audio from any connected mic devices. See `UniMicInput.cs` for usage. Also used for streaming audio playback. See `StreamedAudioSourceOutput.cs` for usage.\r\n\r\n[com.adrenak.concentus-unity](https://www.github.com/adrenak/concentus-unity) for Opus encoding and decoding. See `ConcentusEncodeFilter.cs` and `ConcentusDecodeFilter.cs` for usage\r\n\r\n## License and Support\r\nThis project is under the [MIT license](https://github.com/adrenak/univoice/blob/master/LICENSE).\r\n\r\nCommunity contributions are welcome.\r\n  \r\n## Contact\r\nThe developer can be reached at the following links:\r\n  \r\n[Website](http://www.vatsalambastha.com)  \r\n[LinkedIn](https://www.linkedin.com/in/vatsalAmbastha)  \r\n[GitHub](https://www.github.com/adrenak)  \r\n[Twitter](https://www.twitter.com/vatsalAmbastha)  \r\nDiscord: `adrenak#1934`","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadrenak%2FUniVoice","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fadrenak%2FUniVoice","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadrenak%2FUniVoice/lists"}