คู่มือ AI Voice Cloning ฉบับสมบูรณ์สำหรับสตูดิโออิสระ
— หลุดพ้นจากการพึ่งพาแพลตฟอร์ม พูดด้วยเสียงของตัวเอง
บันทึกการสร้างระบบโคลนเสียงในเครื่องตั้งแต่ต้น รวมทุกปัญหาที่เจอ
ทำไมต้องทำแบบนี้?
แพลตฟอร์มสังเคราะห์เสียงในปัจจุบันมีอยู่สองแบบ
ฟรี — เสียงซ้ำกันทุกที่ วิดีโอของคุณฟังเหมือนวิดีโอคนอื่นทุกประการ ไม่มีเอกลักษณ์ ผู้ฟังแค่สามวินาทีก็รู้ว่าคุณใช้แพลตฟอร์มไหน จะหาจุดเด่นได้จากที่ไหน?
เสียเงิน — คิดตามจำนวนตัวอักษร ทุกครั้งที่สร้างเสียงต้องนับในใจว่าประโยคนี้ราคาเท่าไหร่ กำลังบันทึกอยู่ยังลังเลว่าจะอัดใหม่ไหม พอสเกลขึ้น ค่าใช้จ่ายรายเดือนกลายเป็นตัวเลขที่ทำให้ขมวดคิ้ว
มีทางที่สามไหม?
มี สร้างเอง
ใช้โมเดล AI โอเพนซอร์ส สร้างบริการสังเคราะห์เสียงในเครื่องบนคอมพิวเตอร์ของตัวเอง ใช้เสียงของตัวเอง สร้างเนื้อหาของตัวเอง ไม่จำกัดตัวอักษร ไม่มีค่าบริการ เสียงเป็นของคุณ สไตล์เป็นของคุณ นี่คือสิ่งที่สตูดิโออิสระควรเป็น
ระบบนี้คืออะไร?
หลายคนพอได้ยินว่า "สร้าง TTS เอง" ก็นึกว่าต้องเขียนโปรแกรมสังเคราะห์เสียงตั้งแต่ต้น
ไม่ใช่แบบนั้น
แนวคิดใกล้เคียงกับการ "ตั้ง server เอง" มากกว่า:
| ชั้น | คืออะไร | คุณต้องทำอะไร |
|---|---|---|
| โมเดล AI | สมองของการสังเคราะห์เสียง ที่คนอื่นเทรนมาแล้ว | ดาวน์โหลดมาใช้ |
| Framework | สภาพแวดล้อมที่ทำให้โมเดลรันได้ | ติดตั้งและตั้งค่า |
| เสียงของคุณ | ตัวอย่างอ้างอิงสำหรับโมเดล | อัดเสียง 4–6 วินาที |
| โค้ดของคุณ | ส่วนเชื่อมต่อ input และ output | นี่คือส่วนที่คุณเขียน |
เมื่อตั้งค่าเสร็จแล้ว คอมพิวเตอร์ของคุณจะรัน local service ที่มี Web interface ได้ทั้งใช้งานผ่านเบราว์เซอร์ หรือเรียก API จากโปรแกรม ทำให้มันเป็นส่วนหนึ่งของ pipeline อัตโนมัติของคุณ
โมเดลที่ใช้ในบทความนี้คือ GPT-SoVITS เหตุผลง่ายๆ: ผลลัพธ์ภาษาจีนเยี่ยมยอด อินเทอร์เฟซเป็นภาษาจีนทั้งหมด Voice Cloning ต้องการแค่ 4–6 วินาที โอเพนซอร์สและใช้เชิงพาณิชย์ได้ฟรี
คุณต้องมีอะไร?
ฮาร์ดแวร์
ระบบนี้ไม่ต้องการฮาร์ดแวร์สูง สภาพแวดล้อมทดสอบของบทความนี้คือ แล็ปท็อปธรรมดาที่ไม่มี GPU รันบน CPU ล้วนๆ
| การตั้งค่า | เวลาสร้าง 100–200 ตัวอักษร |
|---|---|
| มี GPU NVIDIA (VRAM 6GB ขึ้นไป) | ~10–30 วินาที |
| CPU เท่านั้น | ~150–250 วินาที |
ถ้าใช้งานไม่หนัก CPU ล้วนๆ ก็เพียงพอ บันทึกเสียงวิดีโอวันละไม่กี่ตอน รอไม่กี่นาทีได้ไฟล์เสียง อยู่ในระดับที่รับได้
ซอฟต์แวร์
- Windows 10 / 11
- Python (บทความนี้ใช้ 3.11 — อธิบายเหตุผลด้านล่าง)
- Miniconda (เครื่องมือจัดการเวอร์ชัน Python)
- VS Code (สภาพแวดล้อมการพัฒนา)
- Git
แนวคิดที่คุณต้องเข้าใจก่อน: Python virtual environment
ก่อนเริ่มติดตั้ง มีแนวคิดหนึ่งที่คุณต้องเข้าใจให้ชัด — ไม่เช่นนั้นจะสะดุดปัญหาซ้ำซาก
การจัดการแพ็กเกจของ Python มีแนวคิด "สภาพแวดล้อม"
ลองนึกภาพว่าคอมพิวเตอร์มีคลังสินค้าอิสระหลายแห่ง:
คอมพิวเตอร์ของคุณ
├── Python 3.14 ระดับระบบ (ค่าเริ่มต้น)
├── conda environment tts (Python 3.11 ที่เราสร้าง)
└── .venv (VS Code บางครั้งสร้างอัตโนมัติ)แพ็กเกจในแต่ละคลัง แยกกันอย่างสมบูรณ์ สิ่งที่ติดตั้งในคลัง A มองไม่เห็นจากคลัง B
นี่คือเหตุผลที่หลายคนติดตั้งแพ็กเกจแล้วยังบ่นว่าหาไม่เจอ ติดตั้งแล้วแต่รันแล้วบอกไม่พบ สาเหตุมักมีอย่างเดียว — ติดตั้งผิดคลัง
GPT-SoVITS ต้องการ Python 3.11 แต่เครื่องคุณอาจมีเวอร์ชันใหม่กว่าอยู่แล้ว (สภาพแวดล้อมทดสอบของบทความนี้คือ 3.14) วิธีแก้คือใช้ Miniconda สร้าง environment Python 3.11 ที่แยกออกมาอย่างสมบูรณ์ ไม่กระทบกันกับ Python ของระบบ
เข้าใจแนวคิดนี้แล้ว ขั้นตอนติดตั้งด้านล่างจะไม่รู้สึกแปลก
ขั้นตอนการติดตั้ง
ขั้นที่ 1: ติดตั้ง Miniconda
รันคำสั่งใน VS Code terminal:
bash
winget install Anaconda.Miniconda3หลังติดตั้งเสร็จ ปิด VS Code และเปิดใหม่ เพื่อให้ environment variable มีผล (ผู้เขียนบทความนี้ทำทุกอย่างใน VS Code terminal คุณก็ใช้ terminal ของระบบแยกได้ — ผลลัพธ์เหมือนกัน)
หลังเปิดใหม่ อนุญาตให้ PowerShell รัน script:
bash
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUserยืนยันว่า conda ติดตั้งสำเร็จ:
bash
conda --versionเห็นเลขเวอร์ชันแสดงว่าสำเร็จ
ขั้นที่ 2: สร้าง environment Python 3.11
ยอมรับข้อกำหนดการให้บริการของ Anaconda (รันทีละบรรทัด แต่ละบรรทัดจะถามยืนยัน — พิมพ์ Y แล้วกด Enter):
bash
conda tos accept --override-channels --channel https://repo.anaconda.com/pkgs/main
conda tos accept --override-channels --channel https://repo.anaconda.com/pkgs/r
conda tos accept --override-channels --channel https://repo.anaconda.com/pkgs/msys2สร้าง environment เฉพาะ:
bash
conda create -n tts python=3.11 -yเปิดใช้งาน environment (ต้องทำทุกครั้งก่อนใช้):
bash
conda activate ttsเมื่อ terminal เปลี่ยนจาก (base) เป็น (tts) แสดงว่าสำเร็จ
ขั้นที่ 3: ดาวน์โหลด GPT-SoVITS
ไปที่โฟลเดอร์ทำงานและ clone โปรเจกต์:
bash
cd D:\โฟลเดอร์-ทำงาน-ของคุณ
mkdir tts-service
cd tts-service
git clone https://github.com/RVC-Boss/GPT-SoVITS.git
cd GPT-SoVITSขั้นที่ 4: ติดตั้งแพ็กเกจ
bash
pip install -r requirements.txtขั้นนี้จะดาวน์โหลดแพ็กเกจจำนวนมาก ใช้เวลาไม่กี่นาที ให้รันจนเสร็จ
⚠️ ปัญหาที่เจอ: เวอร์ชันขัดแย้ง
หลังติดตั้ง requirements.txt เสร็จ บางแพ็กเกจเวอร์ชันขัดแย้งกัน ต้องแก้ด้วยตนเอง:
bash
# gradio เวอร์ชันใหม่เกินไป — ดาวน์เกรด
pip install gradio==4.44.0
# ปัญหาเวอร์ชัน starlette และ fastapi
pip install "fastapi==0.115.0" "starlette>=0.37.2,<0.39.0"
# ปัญหาเวอร์ชัน jinja2
pip install jinja2==3.1.4
# แพ็กเกจที่ขาดหายไป
pip install psutil pyyaml ffmpeg-python
conda install -c conda-forge editdistance⚠️ ปัญหาที่เจอ: torchaudio บน Windows
torchaudio เวอร์ชันใหม่บน Windows ต้องพึ่ง torchcodec แต่ torchcodec ไม่รองรับ Windows ต้องติดตั้งเวอร์ชันที่เข้ากันได้:
bash
pip install torchaudio==2.9.0 torch==2.9.0⚠️ ปัญหาที่เจอ: ทรัพยากรภาษา NLTK
ครั้งแรกที่สร้างข้อความผสมจีน-อังกฤษ ต้องดาวน์โหลดโมเดลภาษาอังกฤษของ NLTK:
bash
python -c "import nltk; nltk.download('averaged_perceptron_tagger_eng')"ขั้นที่ 5: ดาวน์โหลดโมเดล pre-trained
GPT-SoVITS ต้องการโมเดล pre-trained หลายตัวเพื่อทำงาน รวมประมาณ 3GB ดาวน์โหลดจาก HuggingFace:
bash
python -c "from huggingface_hub import snapshot_download; snapshot_download('lj1995/GPT-SoVITS', local_dir='GPT_SoVITS/pretrained_models')"เวลาดาวน์โหลดขึ้นกับความเร็วอินเทอร์เน็ต — ประมาณ 30 นาทีถึง 1 ชั่วโมง ถ้าค้างให้กด Ctrl+C แล้วรันใหม่ รองรับการดาวน์โหลดต่อจากจุดที่หยุด
ต้องสร้างโฟลเดอร์ cache สำหรับโมเดลตรวจจับภาษา:
bash
mkdir GPT_SoVITS\pretrained_models\fast_langdetectขั้นที่ 6: เริ่มต้นบริการ
คำสั่งเริ่มต้นมาตรฐานสำหรับแต่ละเซสชัน:
bash
conda activate tts
cd D:\โฟลเดอร์-ทำงาน-ของคุณ\tts-service\GPT-SoVITS
C:\Users\ชื่อผู้ใช้\miniconda3\envs\tts\python.exe webui.pyทำไมต้องใช้ path Python แบบเต็ม? VS Code บางครั้ง auto-activate environment
.venvทับ environmentttsของเรา ใช้ path แบบเต็มรับประกันว่าจะรัน Python ที่ถูกต้องเสมอ ไม่ถูกรบกวน
เมื่อเริ่มต้นสำเร็จ terminal จะแสดง:
Running on local URL: http://0.0.0.0:9874เบราว์เซอร์จะเปิดอัตโนมัติและโหลด http://localhost:9874 — local server ของคุณทำงานแล้ว ทั้งระบบรันบนคอมพิวเตอร์ของคุณเอง
สร้างเสียงของคุณครั้งแรก
เตรียมตัวอย่างเสียง
ก่อนเริ่ม คุณต้องมีเสียงบันทึกของตัวเองเป็น reference audio
คำแนะนำการบันทึก:
- ความยาว: 5–10 วินาที
- สภาพแวดล้อม: ห้องเงียบ ปิดพัดลมและแอร์
- อุปกรณ์: โทรศัพท์ก็เพียงพอ ไมค์โทรศัพท์สมัยใหม่รองรับ Voice Cloning ได้ดี จริงๆ ผู้เขียนทดสอบครั้งแรกด้วยไมค์ในตัวแล็ปท็อป... แปลกดีที่ก็ได้ผล
- เนื้อหา: พูดตามธรรมชาติ ไม่ต้องเตรียมบท
- รูปแบบ: MP3 หรือ WAV ก็ได้
โอนไฟล์บันทึกไปเก็บในตำแหน่งที่แน่นอน (เช่น D:\tts-service\my_voice.wav) ทุกเซสชันใช้ไฟล์เดิมนี้ ไม่ต้องบันทึกใหม่
เปิด inference interface
- เปิด
http://localhost:9874ในเบราว์เซอร์ - คลิกแท็บ 1-GPT-SoVITS-TTS
- คลิก sub-tab 1C-Inference
- กดปุ่มสีส้ม "Open TTS Inference WebUI"
- ⚠️ ปุ่มอาจไม่ตอบสนองนานกว่า 30 วินาที — นี่เป็นเรื่องปกติ (บทความนี้ใช้แล็ปท็อปรุ่นเก่าไม่มี GPU ความเร็วช้ากว่าปกติ) รอด้วยความอดทน อย่ากดซ้ำ
- เมื่อเริ่มต้นแล้ว แท็บเบราว์เซอร์ใหม่จะเปิดและโหลด
http://localhost:9872— นี่คือ interface สร้างเสียงจริง
การตั้งค่าพารามิเตอร์
พารามิเตอร์แนะนำสำหรับสไตล์นำเสนอการเงินที่สงบนิ่ง:
| พารามิเตอร์ | ค่าแนะนำ | หมายเหตุ |
|---|---|---|
| ความเร็วพูด | 1.1 | เร็วกว่าธรรมชาติเล็กน้อย ฟังดูมีจังหวะมากขึ้น |
| หยุดระหว่างประโยค | 0.2 วินาที | การหยุดตามธรรมชาติระหว่างประโยค |
| top_k | 5 | ยิ่งน้อยยิ่งเสถียร เหมาะกับเนื้อหาทางการ |
| top_p | 0.8 | โหมดระมัดระวัง ลดการออกเสียงผิดธรรมชาติ |
| temperature | 0.7–1.0 | ยิ่งน้อยยิ่งแบน ยิ่งมากยิ่งมีอารมณ์ |
| ตัดตามเครื่องหมายวรรคตอน | เปิด | สำคัญมาก ทำให้น้ำเสียงเป็นธรรมชาติมากขึ้น |
"ตัดตามเครื่องหมายวรรคตอน" คือการตั้งค่าที่ส่งผลต่อความเป็นธรรมชาติมากที่สุด เมื่อเปิด โมเดลจะหยุดตามธรรมชาติที่จุดและลูกน้ำ ฟังดูเหมือนคนพูดมากกว่าเครื่องอ่านข้อความ
หมายเหตุสำหรับข้อความผสมจีน-อังกฤษ
การผสมจีน-อังกฤษยากที่สุดสำหรับ TTS — จุดเปลี่ยนภาษาทำให้มีความลังเลเล็กน้อย
การปรับปรุง: เพิ่มลูกน้ำก่อนคำนามเฉพาะภาษาอังกฤษเพื่อให้โมเดลมีช่วงเปลี่ยนภาษา นอกจากนี้ถ้าไม่อยากให้เสียง "มั่ว" เหมือนผู้เขียนตอนแรก ให้แยกชื่อแบรนด์ภาษาอังกฤษด้วยช่องว่าง เช่น Space X เพื่อให้โมเดลออกเสียงเป็นธรรมชาติแทนที่จะอ่านรวมกัน:
# เดิม
SpaceX จดทะเบียนในตลาดหลักทรัพย์
# ปรับปรุงแล้ว
,SpaceX จดทะเบียนในตลาดหลักทรัพย์เทคนิคเล็กๆ นี้ปรับปรุงความลังเลตอนเปลี่ยนภาษาได้ชัดเจน
เวลาสร้างอ้างอิง (โหมด CPU)
| ความยาวข้อความ | เวลาโดยประมาณ |
|---|---|
| น้อยกว่า 50 ตัวอักษร | ~50–80 วินาที |
| 100–200 ตัวอักษร | ~150–250 วินาที |
| 500+ ตัวอักษร | ~10–15 นาที |
⚠️ สำคัญ: อย่าใช้เบราว์เซอร์ขณะกำลังสร้างเสียง เมื่อ CPU ประมวล TTS ทรัพยากรทั้งหมดโฟกัสที่การคำนวณ การเลื่อนหน้าจะแย่งทรัพยากรและทำให้เสียงที่ออกมากระตุก
วิธีทำงานที่แนะนำ: กดสร้าง แล้วไปทำอย่างอื่น กลับมาฟังผลลัพธ์
ส่งออกและบันทึก
เมื่อสร้างเสร็จ interface จะแสดง player และปุ่มดาวน์โหลด
- คลิกดาวน์โหลด ชื่อไฟล์คือ
audio.wav - บันทึกในโฟลเดอร์ดาวน์โหลดเริ่มต้นของเบราว์เซอร์
- ⚠️ ทุกครั้งที่ดาวน์โหลดจะทับไฟล์เดิม — เปลี่ยนชื่อเวอร์ชันที่ถูกใจทันที
รวมเข้า pipeline อัตโนมัติ
GPT-SoVITS มี API ให้เรียกจากโปรแกรมได้โดยตรง ไม่ต้องใช้ Web interface ทุกครั้ง
การเรียกพื้นฐาน:
python
import requests
response = requests.get("http://localhost:9880", params={
"text": "วันนี้เราจะพูดถึง...",
"text_lang": "zh",
"ref_audio_path": "D:/tts-service/my_voice.wav",
"prompt_text": "เนื้อหาที่ reference audio พูด",
"prompt_lang": "zh"
})
with open("output.wav", "wb") as f:
f.write(response.content)แบบนี้ pipeline ผลิตวิดีโอทั้งสายสามารถทำงานอัตโนมัติได้ (ส่วนสร้างข้อความใช้ Claude หรือ AI แพลตฟอร์มอื่นก็ได้ แล้วแต่ความถนัด):
Claude สร้างบทพูด
↓
GPT-SoVITS API สร้างเสียง
↓
FFmpeg รวมวิดีโอ
↓
ผลลัพธ์สุดท้ายแผนอนาคต
- นำขึ้น cloud / MCP: นำบริการ TTS ในเครื่องไปไว้บน cloud server หรือห่อเป็น MCP tool ให้ AI เรียกตรงๆ ทั้งสองแนวทางมีสาระเหมือนกัน — ทำให้บริการนี้กลายเป็น API ที่เรียกจากระยะไกลได้ตลอดเวลา ไม่ต้องพึ่งแล็ปท็อปในเครื่อง
- Fine-tune เสียง: ใช้การบันทึกเสียงของตัวเองมากขึ้นเพื่อเทรนโมเดลเฉพาะ เพิ่มความคล้ายและความเป็นธรรมชาติของเสียง
บทสรุป
จาก "จ่ายเงินค่าแพลตฟอร์มจนเจ็บปวด" ถึง "รันบริการโคลนเสียงบนคอมพิวเตอร์ของตัวเอง" — ระยะทางนั้นแค่บ่ายวันเดียว (หรือนอนหลับแล้วสู้ต่ออีกครึ่งวัน) และความอดทนผ่านปัญหา
ปัญหามีจริง เวอร์ชันขัดแย้ง สภาพแวดล้อมยุ่งเหยิง ปัญหา Windows compatibility — ทั้งหมดนี้เป็นส่วนหนึ่งของกระบวนการ และนั่นคือเหตุผลที่บทความนี้บันทึกทุกข้อผิดพลาดไว้
คุณไม่จำเป็นต้องเป็นวิศวกรเพื่อทำสิ่งนี้ คุณแค่ต้องยินดีทำทีละขั้น — และเมื่อเจอข้อผิดพลาด อย่าตื่นตระหนก คัดลอกข้อความแจ้งข้อผิดพลาดไปถาม AI
เสียงเป็นของคุณ ระบบเป็นของคุณ เนื้อหาเป็นของคุณ
นั่นคือสิ่งที่สตูดิโออิสระควรเป็น
อ่านเพิ่มเติม
สภาพแวดล้อมทดสอบ: Windows 11, แล็ปท็อปไม่มี GPU, Python 3.11, GPT-SoVITS เวอร์ชันล่าสุด
วันที่สร้าง: มิถุนายน 2026