Mark Ku's Blog
Podcast ConversationAI dialogue version of this article · Mandarin audio

Foreword

When training your own AI voice, some common concerns are: Do I need a high-end graphics card? How stable is voice cloning? Are there many pitfalls with Chinese pronunciation? This post summarizes my own experience, documenting the entire process from hardware requirements and a comparison of mainstream open-source models, to a practical implementation of LoRA fine-tuning and how to handle Chinese pronunciation.

In the last year or two, LoRA fine-tuning has gradually matured, and with the emergence of open-source models like CosyVoice 3, the barrier to producing usable quality voices with consumer-grade hardware is now much lower than before.

I. Hardware and Training Thresholds

The phrase "it runs on 8GB of VRAM" is often misunderstood. We need to distinguish between two things: the requirements for inference and training are not the same.

  • Inference: Simply using a pre-trained model to generate speech. 8GB of VRAM is generally sufficient for most TTS models (like Qwen3-TTS 1.7B, CosyVoice 0.5B).
  • LoRA Fine-tuning: I personally use an RTX 5070 Ti (16GB) to run Qwen3-TTS LoRA and can train a voice of usable quality. A 16GB consumer-grade card is enough.
  • Full-parameter Fine-tuning: This requires industrial-grade resources (the original CosyVoice pre-training used 64 V100-32GB cards), something individuals typically don't need to consider.

The reason 16GB is viable is that LoRA only updates a small number of low-rank parameters; the main memory overhead comes from the base model's weights and activations. The TTS model itself (1.5B–1.7B) isn't that large, and combined with a moderate batch size and sequence length, it fits within 16GB.

Below are my measured VRAM usage figures at various stages of running Qwen3-TTS LoRA on an RTX 5070 Ti (16GB):

StageMeasured VRAM Usage16GB Headroom
LLM r64 Training (batch 2)~10.6 GB~5GB remaining
Flow r64 all-linear Training~8 GB~8GB remaining
Audition Synthesis (loading full model in fp16)~5 GBPlenty of room

As you can see, even during the most demanding LLM r64 training stage, the peak usage only reaches about 10.6GB, leaving about 5GB of headroom on a 16GB card. In other words, 16GB isn't a tight squeeze; it's quite comfortable, with still room to increase the batch size or rank.

Don't understand the terms in the table? This section is for you.

  • r64 / r32 (rank): This is LoRA's "capacity knob." LoRA doesn't touch the original massive model; instead, it adds a small, trainable "plugin" of parameters, and rank determines how large this plugin is. The higher the number, the more voice details it can learn, but it also consumes more VRAM and training time, and is more prone to "memorizing" training samples (overfitting) when data is insufficient. r64 means rank=64, and r32 means rank=32. The number of plugin parameters for r32 is about half that of r64, saving more VRAM and training faster, while the difference in voice fidelity is usually minor. When the dataset is small (10-30 minutes), r32 is often sufficient and less prone to overfitting. Go for r64 if you want to squeeze out a bit more detail. My table shows results for r64 with a peak of just 10.6GB, so switching to r32 would be even easier.
  • LLM Stage / Flow Stage: Qwen3-TTS is actually two models working in tandem. The LLM is responsible for "text -> what to say and the rhythm of phrasing." The Flow (flow matching acoustic decoder) is responsible for "turning that into an actual sound waveform" (timbre, quality). You need to fine-tune both with LoRA for the voice to sound like the target person.
  • all-linear: This refers to applying LoRA to "all linear layers" of the model, rather than just a few attention layers. Broader coverage means more complete learning, with slightly more parameters, which is why the "Flow all-linear" row is listed separately.

As for QLoRA (Quantized LoRA), it can theoretically reduce VRAM requirements by another ~75%, but it's not yet mature in the TTS field. Unsloth officially advises against using 4-bit QLoRA for the Qwen3.5 series because quantization errors significantly impact speech quality. Since running native LoRA on 16GB is already feasible, most people don't actually need QLoRA.

Training MethodVRAM RequirementSuitable ForMaturity
Inference8GB+EveryoneStable
LoRA Fine-tuning16GB+ (tested)Individuals / Small TeamsStable
QLoRATheoretical 6-8GBStable, but quality is not as good
Full-parameter Fine-tuningHundreds of GB+Enterprises / Research InstitutionsStable but high cost

In short, if you want to create a custom voice, a 16GB VRAM consumer-grade graphics card (like an RTX 5070 Ti, or an RTX 4060 Super 12GB) is enough to get started. If you want a larger batch size, a higher rank, or faster training, you can then upgrade to 24GB (RTX 3090 / 4090), but that's an option for "faster and better," not the entry-level requirement.

II. Comparison of Open-Source TTS Models: Qwen, CosyVoice

The choice of base model affects the accent, quality ceiling, and the difficulty of subsequent training. Here are a few I've tested:

Qwen3-TTS (Alibaba, released in January 2026)

It's quite feature-complete, supporting ten languages, with a speaker similarity of about 0.95 and a Chinese Character Error Rate (CER) of about 0.77%. However, in my experience, the generated voice still has a noticeable "mainland Chinese accent," and for Traditional Chinese, it has a tokenizer byte-fallback issue, leading to pronunciation errors for out-of-vocabulary (OOV) words.

BreezyVoice (MediaTek, based on CosyVoice 2)

Its Taiwanese Hokkien speech effect is excellent (MOS reaching 5.0) and supports Bopomofo annotation for disambiguation. A major limitation is that the official release only provides inference scripts; it doesn't support secondary training, so you can't use it to customize your own voice.

CosyVoice 3 (Alibaba, December 2025)

Currently the most balanced choice overall. It has 1.5B parameters and was trained on a million-hour-level dataset, with a Chinese CER of about 0.71%. Its voice is closer to a Taiwanese accent, and its emotional control is relatively natural. It also has a "pronunciation patching" feature, which allows you to directly override mispronounced words with Pinyin to correct them, without retraining.

Comparison ItemQwen3-TTSCosyVoice 3BreezyVoice
Parameters1.7B1.5BBased on CosyVoice 2
Chinese CER0.77%0.71%
Accent TendencyLeans toward mainland Chinese accentCloser to Taiwanese accentBest for Taiwanese Hokkien
Secondary TrainingSupports LoRASupports LoRAInference only
Pronunciation PatchingRequires preprocessingBuilt-in Pinyin overrideBopomofo annotation
Emotional ControlAverageMore natural

If your goal is custom training in a Traditional Chinese context, CosyVoice 3 is the most practical starting point right now.

III. LoRA Fine-Tuning Implementation

Why Not Just Use Voice Cloning (ICL)?

Zero-shot voice cloning (In-Context Learning) is indeed convenient, requiring only a 3-10 second reference audio clip to work, and the results are good for short sentences. But as sentences get longer, the timbre tends to drift; this is a common problem across all current models. Extending the reference audio to about 20 seconds can improve stability, but for consistently stable quality, LoRA fine-tuning remains the more reliable approach.

Implementation Steps

Step 1: Prepare Training Data (The Most Time-Consuming Step)

The community commonly recommends 10-30 minutes of training data. You need to prepare clean, background-noise-free personal audio files and segment them into short 5-15 second clips.

In my experience, the training itself can be completed in about 30 minutes to an hour. The real time-sink is preparing the audio files: cleaning up noise, segmenting clips, and proofreading transcripts. This prep work accounts for over 70% of the entire process.

Step 2: Data Annotation

Map each audio file to its accurate transcript, usually in the format of a manifest file:

audio_001.wav|你好,歡迎來到我的技術部落格。
audio_002.wav|今天要分享的是關於語音合成的實戰經驗。

Step 3: Run LoRA Training

Taking CosyVoice 3 as an example, the basic training command is as follows:

python train_lora.py \
  --model_path pretrained/CosyVoice3-0.5B \
  --data_dir ./training_data \
  --output_dir ./output/my_voice \
  --lora_rank 64 \
  --epochs 50 \
  --batch_size 4 \
  --learning_rate 1e-4

Step 4: Validate Quality

After training is complete, you can use a TTS-ASR self-refinement loop for initial automated validation: first have the model generate speech, then use Whisper to transcribe it back to text, and compare the phoneme error rate. According to a 2025 study, this method can achieve a 55.88% relative error reduction in a mixed Chinese-English context.

However, the final quality must still be judged by the human ear. Automation can filter out obviously problematic samples, but determining if the intonation is natural and the emotion is appropriate is still something humans are better at.

IV. Handling Chinese Pronunciation

Two of the more troublesome problems with Chinese TTS are:

  1. Polyphonic characters: The two "好" characters in "好好學習" (hǎo hǎo xué xí - study hard) have different pronunciations.
  2. Specific vocabulary: "軟體" (ruǎntǐ) vs. "軟件" (ruǎnjiàn). The model's training data is primarily Simplified Chinese, so it hasn't seen many Traditional Chinese terms.

Traditional Approach: Three-Layer Preprocessing

輸入文字 → 字典覆寫(phrase override)
         → OpenCC 繁轉簡
         → g2pW 轉漢語拼音
         → 送入 TTS 模型

This process can solve most problems, but the maintenance cost is not low. Every time a new pronunciation error is encountered, the dictionary must be updated manually. Polyphonic characters are disambiguated using neural network models like Polyphone BERT or g2pW.

CosyVoice 3's Approach: Pronunciation Patching

CosyVoice 3's built-in pronunciation patching feature allows you to directly override the pronunciation of specific characters in the input text using Pinyin:

# 原始輸入(「軟體」的「體」可能被唸錯)
軟體工程師的日常

# 使用發音修補(拼音標註)
軟<phoneme ph="ti3">體</phoneme>工程師的日常

According to official tests, the correction rate of this method is close to 100%. It requires no code changes or retraining and can be handled directly at the input stage. This is quite practical for Traditional Chinese users.

Conclusion

To summarize, here are three key points for training a personal AI voice:

  1. Hardware: A 16GB VRAM consumer-grade card (like an RTX 5070 Ti) is enough to get started; a 24GB card is not a must.
  2. Model: Start with CosyVoice 3, which offers a good balance of sound quality, accent, and trainability.
  3. Data: Spend time recording 10-30 minutes of high-quality training audio.

Although AI can already perform partial self-training and validation through TTS-ASR loops, the preparation of training data and the final auditory judgment of the results are still difficult to fully replace.

Also worth noting is that new technologies like LoRP-TTS (inference-time LoRA optimization) are making the process more automated. In the future, it might not be necessary to prepare training data in advance, as models could adapt to the target voice in real-time during inference. The overall barrier to entry should continue to decrease.

References

Author

Mark Ku

擁有 10+ 年經驗的資深軟體工程師,現為 AI 應用 Builder,專注於大型平台架構與簡化複雜系統設計,從電商系統到訂閱與收費平台,結合 AI Agent、AI 整合與自動化開發,打造高效率且可持續演進的產品技術基礎。Read More

Found this useful?

The author's free tools, daily podcasts and newsletter are all here.

Mark Ku · This article is licensed under CC BY 4.0. Credit the author and link back to the original when reusing it.

Comments

Subscribe to Newsletter

Subscribe to get new posts delivered instantly — never miss a tech share.

By submitting, you agree to receive emails. You can anytime.

Popular Posts

View all
Mark Ku
··599

Oracle Cloud Always Free Tier: Linux Host and Static IP for a $0 Cloud Solution

Oracle Cloud Always Free Tier: Linux Host and Static IP for a $0 Cloud Solution
Mark Ku
··503

Say Goodbye to Postman's Fee Trap! A Hands-on Guide to Bruno, the Open-Source Git-Native API Testing Powerhouse.

Say Goodbye to Postman's Fee Trap! A Hands-on Guide to Bruno, the Open-Source Git-Native API Testing Powerhouse.
Mark Ku
··341

A Free, Open-Source, Notion-like Knowledge Base — A Complete Guide to Deploying and Backing Up Outline Wiki

A Free, Open-Source, Notion-like Knowledge Base — A Complete Guide to Deploying and Backing Up Outline Wiki
Mark Ku
··273

Training Your Own AI Voice: Hardware Requirements, Open-Source Model Comparison, and LoRA Fine-Tuning

Training Your Own AI Voice: Hardware Requirements, Open-Source Model Comparison, and LoRA Fine-Tuning
Mark Ku
··220

Setting Up Samba on Ubuntu to Share Folders with Windows 11

Setting Up Samba on Ubuntu to Share Folders with Windows 11
Mark Ku
··219

Building an Efficient API Management Platform: Deploying Kong Gateway from Scratch - Part 1

Building an Efficient API Management Platform: Deploying Kong Gateway from Scratch - Part 1
訓練自己的 AI 語音:硬體門檻、開源模型比較與 LoRA 微調 - Mark Ku's Tech Notes