Assigning lyrics to voices

#18
by msze - opened

I couldn't find any examples where the input caption describes multiple voices and they are assigned within the lyrics (e.g. I want voice 2 to sing this verse).

I had a look through the MiniMax Music 3 demo page (https://minimax-ai.github.io/music3-demo/) but wasn't able to see any examples of being able to do this.

Anyone had luck doing this?

Yes, it works. Not 100% of the time, but pretty well. I'd recommend using the Claude/Codex still to write the prompt if you aren't already. Basically you just need to define your two singers and have lots of verbiage around e.g., "Singer A will only sing the chorus and first verse, Singer B will only sing the second verse and nothing else" etc. Your LLM can probably do a good job of writing out those rules.

Yes, it works. Not 100% of the time, but pretty well. I'd recommend using the Claude/Codex still to write the prompt if you aren't already. Basically you just need to define your two singers and have lots of verbiage around e.g., "Singer A will only sing the chorus and first verse, Singer B will only sing the second verse and nothing else" etc. Your LLM can probably do a good job of writing out those rules.

Thanks! Just confirming you don't put anything in the lyrics, just in the input captions instructions?

Right I didn't need to put anything special in the lyrics. I did put "[Verse 1]" and "[Verse 2]" to make things more explicit, but I'm not sure that's even necessary.

I used Claude Code to work through some practical tests and had some/limited success in being able to control voices. For my tests I described two voices, a male and female.

Overall there's some improvement but it's, by no means, deterministic.

I've put Claude's findings below:

Findings: controlling which voice sings which lyrics (MiniMax Music 3)

Based on ~30 controlled generations (local ComfyUI repack, FP16 DiT + INT8 text encoder, fixed seeds, one variable per test) using a male/female duet.

TL;DR: short voice tags in the lyrics AND both voices described in the caption. Caption-only verbiage went 0/4. Tags at section level went 4/4 (male-first).

What reliably works

1. Voice tags in the lyrics are generally effective. With identical captions, adding tags flipped results from total failure to success:

[Verse 1]
[male vocal]
...his lines...

[Verse 2]
[female vocal]
...her lines...

2. Tags must stay short (1-2 words). [male vocal], [female vocal], [duet] were never sung aloud in 30 renders. A five-word tag, [male and female vocal duet], was sung as lyrics once. Longer meanings belong in the caption; the tag itself should be terse.

3. The granularity floor is two lines. Section-level and couplet-level (2-line) switching both work. Line-by-line alternation failed every attempt - the voices smear.

4. An "anti-choir" clause fixes the second voice rendering as a group. Without it, the female consistently came out doubled or as multiple women. In the caption's harmony section:

"There are exactly two voice tracks in this entire recording, one male and one female. No multi-tracking, no doubling, no stacked harmonies, no backing vocals, no choir or group vocals of any kind. Never more than two human voices are audible at any moment."

5. Caption side: declare both singers plainly ("A dual-vocal arrangement featuring Singer A, a deep Male Baritone, and Singer B, a bright, clear Female Soprano...") and state assignments redundantly ("Singer B sings the second verse entirely alone; the male is completely silent there, not present as harmony"). Also state which voice opens: "The very first voice heard in the recording is the male baritone."

What fails / the mechanics

  • Structure control is near-deterministic; voice casting is probabilistic (~60-80% per render). In failed takes the model still executed the full structural program - audible trading seams, choruses thickening into a real second part, correct dynamics - just cast one gender in both roles. The form follows; the casting is a dice roll.
  • First-voice capture: whichever voice actually opens tends to keep the track. Notably asymmetric in these tests: male-first songs switched to the female fine (4/4 at section level), female-first songs never let the male in (0/3). Male material first is the safer ordering.
  • Tag influence decays with hold time. A switch after ~25-45s of one voice held; after ~85s the incoming voice decayed back within two lines. Adding more tags did NOT fix this - over-instruction consistently made things worse (in two separate tests, describing a voice too aggressively made it vanish entirely). Keep the second voice's entry early, or restructure.
  • Duet sections need context. Both-voices choruses came out genuinely two-voice 3/3 in a song where both singers had already had solo verses. An isolated cold-open duet chorus failed. When a second voice joins a section one singer has owned for a while, it tends to inherit that singer's gender.
  • Description tone matters: plain and confident works ("a bright, clear Female Soprano"); hedged or miniaturized descriptions ("small, quiet, intimate, never doubled...") made the voice disappear.

Practical workflow

Since casting is a roll: apply all of the above, then check the first ten seconds of each render. Right voice opening -> the rest almost always follows. Wrong voice -> abort and re-roll immediately; the opening decides the song. Budget 1-3 attempts per track.

Caveats: single model build, one voice pairing (baritone/soprano), small n per cell - the percentages are indicative rather than precise. But every claim above comes from A/B pairs with pinned seeds.

Sign up or log in to comment