Nodes/ComfyUI TS CosyVoice RU Edition/TS CosyVoice Cross-Language
ComfyUI Node

TS CosyVoice Cross-Language

One voice, nine languages, same timbre

By AlexYez·Created 5 months ago·Updated about a month ago· 3
TS CosyVoice Cross-Language
  • model
  • reference_audio
  • audio
textHello, this is cross-lingual speech synthesis.
speed1.00
target_languageauto
seed42
text_normalizetrue

TS CosyVoice Cross-Language is the localization node: reference audio in one language, text in another, and the output is the text spoken in the target language with the reference's timbre. Same voice, different tongue. That's a genuinely hard trick - most TTS models either clone or go multilingual, rarely both - and it's one of CosyVoice 3's headline features, right there in the release notes with cross-lingual cloning called out explicitly.

The practical version of this: you record one actor once, in their native language, and every locale of your game or trailer gets voiced by "the same person." Russian voice reading English lines, English voice reading Japanese lines, timbre intact. Localization teams use this kind of thing to keep a single vocal identity across markets instead of hiring nine actors.

How it works

Same shape as the other synthesis nodes: the reference clip gets trimmed to 30 seconds, downmixed to mono 24 kHz, written to a temp prompt file, and fed to CosyVoice's inference_cross_lingual. Your text is formatted for the chosen target_language, and the model re-speaks it while holding onto the reference's speaker embedding. The language list is: auto, zh, en, ja, ko, de, es, fr, it, ru.

One honest caveat the pack states plainly: quality varies a lot between languages. English and Chinese get the best treatment; some of the nine are noticeably weaker. Don't assume the take you love in English will be as clean in, say, Korean. And it's not a translator - you supply the translated text.

The inputs that matter

  • reference_audio - the voice to keep. Clean, single speaker, no music. Same rules as everywhere else in this pack: quality in, quality out.
  • text - already in the target language. This node doesn't translate.
  • target_language - the one combo worth touching. Unsure what language your text is in? Leave auto and the model guesses.
  • speed - 0.5× to 2×.
  • seed - 42 for reproducibility, -1 for a fresh take.

Output

A single audio output, into Save Audio / Preview Audio. Pipeline is dead simple: Model Loader → Cross-Language → Save Audio.

Installing

ComfyUI Manager, search TS CosyVoice, or:

cd ComfyUI/custom_nodes
git clone https://github.com/AlexYez/comfyui-ts-cosyvoice.git
cd comfyui-ts-cosyvoice
pip install -r requirements.txt

Then the two non-negotiable extras: one ONNX Runtime (pip install onnxruntime-gpu on NVIDIA, onnxruntime otherwise) and CUDA torch already in place before the pack's deps. The ~1.5 GB model auto-downloads on first Model Loader run.

Troubleshooting

  • Output is in the right language but the voice drifts - shorten and clean the reference; 5–15 seconds beats 30 noisy ones.
  • The target language option isn't there - you're on an older pack version, or your text is in a language outside the nine and auto is doing its best guess.
  • Quality is noticeably worse in one language than another - that's the model, not you. A/B a few languages before committing to the take.
  • Batch of clips vanishes - this pack refuses multi-clip batches on purpose. One clip at a time.

If your job is "same character, many markets," this is the node in the pack you came for. The other six are about cloning and emotion; this one is about taking a voice somewhere it's never been.

CategoryTS CosyVoice3/Synthesis

Inputs (7)

NameTypeDefaultDescription
modelCOSYVOICE_MODELЗагруженная модель CosyVoice из ноды загрузчика.
textSTRINGHello, this is cross-lingual speech synthesis.Текст, который нужно озвучить на целевом языке.
reference_audioAUDIOРеференсный голос; аудио будет обрезано до 30 секунд и приведено к mono 24 kHz.
speedFLOAT1.000.5–2Множитель скорости речи на выходе.
target_languageoptCOMBOautoЦелевой язык текста; auto пытается определить язык автоматически.
seedoptINT42-1–2147483647Зерно случайности; значение -1 использует случайный seed.
text_normalizeoptBOOLEANtrueВключает нормализацию текста; отключайте для фонем CMU и специальных тегов.

Outputs (1)

NameTypeDescription
audioAUDIO