Nodes/Muse Collective Voice Swap/Muse Voice Room Match
ComfyUI Node

Muse Voice Room Match

The trick that makes separately-cloned voices sound like one room

By muse-collective-26·Created 2 months ago·Updated 2 months ago· 1
Muse Voice Room Match
  • voice_1
  • voice_2
  • voice_3
  • voice_1_out
  • voice_2_out
  • voice_3_out
environmentroom
target_lufs-20.0
wet_level-1.00
room_tone_level0.000
seed0

You've cloned three characters' voices for your video, and each one sounds perfectly like the right person - in a vacuum. Placed back to back they're clearly different recordings: different loudness, different rooms, one echoes and one is dry. The scene reads as three people who never met.

Muse Voice Room Match is the fix for exactly that problem. It takes up to three separately-cloned voice clips and makes them sound like they were captured in the same physical space. It's the glue step that goes after Muse Voice Swap V1 - the two nodes ship in the same pack and are built for each other: V1 re-voices the clip, this node makes the re-voiced speakers sound like they share a room.

How it works

Pure DSP, no models, nothing to download. The core insight is that "same room" is about shared acoustics, not vocal identity - matching pitch or tone between two different people isn't possible without changing who it sounds like, and this node doesn't try. Instead it applies three things identically to every voice:

  • Loudness - every voice is normalized to one target_lufs value first, so nobody's noticeably quieter or hotter.
  • One reverb impulse response - the node synthesizes a single IR per environment preset and convolves it into every voice identically. Same reflections, same tail on all of them: that's what actually sells "recorded together."
  • Room tone - an optional, very quiet shared noise bed mixed into all three, like the actual air of the room.

You pick the room from the environment dropdown - Room, Hall, Auditorium, Jazz Club, Rock Arena, Cathedral, Outdoor, Studio Dry - the same way you'd pick a reverb preset on a consumer audio system. The presets aren't just "more reverb": each one controls early-reflection patterns and separate low/high decay times, so a jazz club is warm and dark while a rock arena is bright and ringy. Outdoor is intentionally near-dry; its character comes from the room-tone bed instead.

The whole thing is seeded. Same seed = same synthesized IR and room tone every run, so you can iterate on other settings without the room changing under you.

Inputs that matter

Wire voice_1 (required) and optionally voice_2 / voice_3. Beyond that you'll touch maybe two knobs:

  • environment - the room. Start at room; it's the safe default.
  • target_lufs - shared loudness target, defaults to −20. Raise it for hotter output.
  • wet_level - reverb mix override; −1 means "use the preset's own default." Leave it at −1 until you know you want more or less.
  • room_tone_level - the shared noise bed; 0 is off. A small nonzero value adds a lot of "same air" realism.
  • seed - reproducibility. Bump it if the synthesized room sounds off.

Outputs

voice_1_out, voice_2_out, voice_3_out - the same three voices, re-processed, in the same order. Unused slots return silence rather than errors, so you can feed the outputs straight into your mix without guarding against missing inputs.

Install

Same pack as Muse Voice Swap V1 - ComfyUI Manager, search "Muse Collective Voice Swap", or:

cd ComfyUI/custom_nodes
git clone https://github.com/muse-collective-26/MuseVoiceSwap.git

Restart, and the pack's requirements.txt installs automatically via Manager. The good news: this node is the cheap one. Room Match has no model files, no download-on-first-run, and no real GPU load - it's a handful of DSP functions that run in seconds. The heavy requirements in the README (Whisper, speechbrain, Fish S2, a Gemma checkpoint) belong to the sibling V1 node; they install alongside, but this node won't make you fetch them.

Gotchas

  • It won't change who it sounds like. If the three voices have wildly different timbre, this node makes them share a room, not a voice. That's by design and it's the one expectation worth checking: the effect is spatial, not identity.
  • The "LUFS" target is RMS-based. Reading the source, loudness is computed from RMS with a constant offset rather than a full ITU-R measurement. Fine in practice for dialogue stems; don't expect broadcast-grade mastering from it.
  • Run it last. Room Match expects voices that are already individually processed - cloned, cleaned, EQ'd. Put it at the end, right before the final mix, and the shared reverb stays consistent.

It's a small node that does one thing, but it's the difference between "three voice clips" and "a scene." If you're doing multi-speaker dubbing at all, it's the finishing step you didn't know you were missing.

CategoryMuse Collective

Inputs (8)

NameTypeDefaultDescription
voice_1AUDIOFirst voice to blend into the shared space.
environmentCOMBOroomShared acoustic space applied IDENTICALLY to every connected voice -- same reverb impulse response, same room tone -- which is what actually sells 'recorded together', not matching pitch/tone (not possible between different voices without changing who it sounds like).
target_lufsFLOAT-20.0-40–0Common loudness target all voices are matched to before the shared reverb is applied.
wet_levelFLOAT-1.00-1–1Reverb wet mix override. -1 = use the environment preset's own default wet level.
room_tone_levelFLOAT0.0000–0.1Shared, very quiet background noise bed mixed identically into every voice (0 = off).
seedINT00–2147483647Same seed = same synthesized room impulse response/room-tone every run.
voice_2optAUDIOSecond voice, blended into the same shared space as voice_1.
voice_3optAUDIOThird voice, blended into the same shared space as voice_1.

Outputs (3)

NameTypeDescription
voice_1_outAUDIO
voice_2_outAUDIO
voice_3_outAUDIO