← Lovora

CosyVoice2 vs Chatterbox Multilingual in Production: Word Error Rate in Eight Languages

Last updated: September 27, 2026  |  Lovora is an adults-only (18+) service on which all content is generated by artificial intelligence.

Lovora’s companions send voice notes and take voice calls. In early September 2026 the service offered eight languages, and its speech engine, CosyVoice2-0.5B, was trained on five — of which only English, Chinese and Japanese were among ours. This note documents how we measured the gap, the replacement we chose (Chatterbox Multilingual, from Resemble AI), and what it cost in latency and memory on a single 22.5 GB GPU that also runs the chat model and speech recognition.

1. Method: round-trip word error rate

  • Fixed sentences per language, written the way the app actually sends them (with accents and native punctuation), synthesized from the same reference voice clip.
  • Each clip transcribed by the speech recognizer the product uses in production (faster-whisper small, on GPU).
  • Word error rate (WER) between the input text and the transcript; per character for Chinese and Japanese. 0% means every word came back exactly.

Round-trip WER measures intelligibility, not naturalness. It is also only as good as the recognizer, which is why section 3 checks the recognizer separately.

2. Results

LanguageCosyVoice2-0.5BChatterbox, bake-offChatterbox, production
English0%0%0%
Italian23%0%0%
German71%0%0%
French50%60%*0%
Spanish47%20%13%
Arabic100% (unintelligible)11%0%
Chinesecorrect—correct
Japanesemostly correct—correct

* The French bake-off input had its accents stripped by mistake; the transcript was correct apart from a hallucinated trailing phrase. Re-measured in production with proper input: 0%. CosyVoice2 stayed badly wrong on French even with accented input — “J’ai pensé à toi toute la journée et tu me manques beaucoup ce soir” came back as “J’ai hésité à tout, la journée est tout, mais manque, beaucoup s’y soit”.

Figures for later additions and re-measurements, including Portuguese, are kept current on Languages on Lovora, measured.

3. It was the TTS, not the recognizer

A high round-trip WER can mean bad audio or a weak recognizer. To separate the two, the same CosyVoice2 clips were transcribed by faster-whisper small on GPU and by large-v3 (int8) on CPU. Both models made the same errors — both heard “mi mangi” for the Italian “mi manchi” — so the speech itself was wrong.

large-v3 on CPU took 13–21 s per clip against 0.2–0.7 s for small on GPU, with no quality gain on this audio. For a voice call, which needs recognition in about a second, the smaller model on GPU was the right choice and stayed.

4. Why it mattered: the traffic mix

Counted across all stored conversations at the time (181 chats, 2,236 messages), 39.6% of messages were in languages where CosyVoice2 was degraded. French alone was 26.5% — the second language of the service. The weak languages were not an edge case; they were two messages in five.

5. Cost: latency and memory

MeasureCosyVoice2Chatterbox Multilingual
Real-time factor (isolated, steady state)≈ 0.951.05–1.54
Synthesis time per reply (production)3.6–7.9 s4.3–8.3 s (≈ +25%)
GPU memory—3.27 GB resident, 3.55 GB peak
Load / first call—20 s load, 14.5 s first-call warm-up
Whole GPU after the swap—20.1 of 22.5 GB (slightly below before)

The isolated benchmark predicted about 40% slower audio; production came in at about 25% slower. A response cache for repeated phrases absorbs part of the difference. Running both engines for per-language routing would have needed about 8 GB for speech alone and did not fit.

Licence mattered as much as quality. XTTS-v2 covers a similar language list but is released under a non-commercial model licence, which rules it out for a paid product.

6. Deployment notes

  • Separate process and environment. Chatterbox required a newer major version of the transformers library than the running stack; installing it system-wide would have broken the existing services. It runs as its own service behind the gateway, so an out-of-memory error or a decoder hang in speech cannot take chat or recognition down. Rollback is one environment variable.
  • The looping decoder. Occasionally the model speaks the whole sentence correctly and then repeats it (seen in French, three times over). The guard: if the audio is more than 2.2× the duration the text warrants, synthesize once more and keep the shorter take.
  • Memory creep. After about 200 generations, PyTorch’s caching allocator had grown from 20.1 to 21.9 GB of 22.5 GB. Releasing the cache after each synthesis costs a few milliseconds and held usage flat across long runs.
  • Invalidate everything keyed to the old voice. Cached clips and pre-rendered voice previews were keyed without the engine; both needed an engine version in the key, or users would have kept hearing the old voice.

7. Limitations

  • Small sentence sets per language (a handful each), one reference voice, one recognizer. The differences are large enough that the conclusion is not in doubt; the exact percentages for the stronger languages are not precise to the digit.
  • WER says nothing about prosody, emotion or accent. Those were judged by listening, not measured.
  • Measured on the model versions available in September 2026 (Chatterbox package 0.1.7).

8. Questions people ask

Is CosyVoice2 good for Italian, German, French, Spanish or Arabic?

Not in our measurements. CosyVoice2-0.5B is trained on Chinese, English, Japanese, Korean and Cantonese; other languages go through cross-lingual cloning. Measured by round-trip transcription, its word error rate was 23% in Italian, 47% in Spanish, 50% in French, 71% in German and 100% in Arabic, against 0% in English.

How does Chatterbox Multilingual compare with CosyVoice2?

In production, after the switch: Italian, French, German and Arabic went to 0% word error rate, Spanish to 13%, English stayed at 0%, and Chinese and Japanese transcripts were correct. Synthesis took about 25% longer, 4.3 to 8.3 seconds per reply against 3.6 to 7.9.

Does a larger Whisper model fix garbled TTS output?

No. We transcribed the same CosyVoice2 clips with faster-whisper small on GPU and large-v3 on CPU. Both made the same errors, which shows the audio itself was wrong. large-v3 on CPU also took 13 to 21 seconds per clip against 0.2 to 0.7 seconds for small on GPU.

How much GPU memory does Chatterbox Multilingual need?

About 3.3 GB resident, with a peak allocation of about 3.6 GB in our measurement, and a load time of about 20 seconds.

Can these figures be quoted?

Yes, under Creative Commons Attribution 4.0 with a link to this page.

Related documents