From daeb19b69f4f94d1bb4591f224b534246dce1a44 Mon Sep 17 00:00:00 2001 From: Nordup Date: Mon, 15 Sep 2025 22:28:12 +0700 Subject: [PATCH] enable denoiser --- voip/voip_manager.gd | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/voip/voip_manager.gd b/voip/voip_manager.gd index dde1895..959f2b2 100644 --- a/voip/voip_manager.gd +++ b/voip/voip_manager.gd @@ -2,9 +2,12 @@ extends Node @export var user_scn: PackedScene @export var player_spawner: PlayerSpawner +@export var denoise_mic_input: bool = true var opuschunked: AudioEffectOpusChunked +var denoiser_available: bool var prepend: PackedByteArray = PackedByteArray() + var users = {} # {Peer ID: VoipUser} @@ -17,6 +20,9 @@ func _ready() -> void: var mic_bus = AudioServer.get_bus_index("Record") opuschunked = AudioServer.get_bus_effect(mic_bus, 0) + denoiser_available = opuschunked.denoiser_available() + print("Denoiser available: ", denoiser_available) + print_audio_server_info() func peer_connected(id: int) -> void: @@ -54,6 +60,9 @@ func _process(_delta: float) -> void: opuschunked.drop_chunk() continue + if denoiser_available and denoise_mic_input: + opuschunked.denoise_resampled_chunk() + var opusdata: PackedByteArray = opuschunked.read_opus_packet(prepend) opuschunked.drop_chunk() accumulated_opusdata.append(opusdata) @@ -68,3 +77,12 @@ func opus_data_received(opusdata_array: Array[PackedByteArray]) -> void: var sender_id = multiplayer.get_remote_sender_id() users[sender_id].opuspacketsbuffer.append_array(opusdata_array) + + +func print_audio_server_info() -> void: + # For debugging sample rate issues + print("AudioServer:") + print("Input device list: ", AudioServer.get_input_device_list()) + print("Output device list: ", AudioServer.get_output_device_list()) + print("Input mix rate: only available in Godot 4.4+") + print("Output mix rate: ", AudioServer.get_mix_rate())