Dự án này là một công cụ chuyển đổi giọng nói. Với mục tiêu tạo ra các sản phẩm chuyển đổi giọng nói chất lượng cao và hiệu suất tối ưu, dự án cho phép người dùng thay đổi giọng nói một cách mượt mà, tự nhiên.
Dự án này hướng tới sự thử nghiệm nghiên cứu của cá nhân hơn là về sự trải nghiệm, độ ổn định và có thể xảy ra lỗi trong quá trình sử dụng, nếu bạn muốn hướng đến một dự án có sự ổn định, mượt mà nhất hãy dùng thử Applio, nếu bạn muốn hướng tới thử nghiệm đây sẽ là dự án dành cho bạn.
Dự án này có thể sẽ không cung cấp bản đóng gói sẳn, chỉ cung cấp mã nguồn và một số hướng dẫn. Để sử dụng được dự án này bạn sẽ phải tự cài đặt thủ công, quá trình cài đặt có thể sẽ rất phức tạp nên nếu bạn vẫn muốn sử dụng có thể liên hệ tôi thông qua discord.
🔊 Nhóm Suy Luận (Xử Lý Âm Thanh)
-
Tách Nhạc: Sử dụng các thuật toán MDX-NET, VR, Demucs để tách lời hát và nhạc cụ một cách sạch sẽ.
-
Chuyển Đổi Giọng Nói: Hỗ trợ chuyển đổi đơn lẻ, theo tệp đã tách hoặc xử lý hàng loạt cùng lúc.
-
Chuyển Đổi Kết Hợp Nhận Diện Giọng Nói: Nhận dạng, chia tách và chuyển đổi với 2 mô hình giọng nói.
-
Chuyển Văn Bản Thành Giọng Nói: Tạo giọng nói tự nhiên từ văn bản, tệp văn bản và tệp SRT.
-
Chế Độ Thời Gian Thực: Chuyển đổi giọng nói trực tiếp với độ trễ thấp.
⚙️ Nhóm Huấn Luyện (Phát Triển Mô Hình)
-
Huấn Luyện Mô Hình: Tùy chỉnh các thông số kỹ thuật để huấn luyện ra mô hình giọng nói chất lượng nhất.
-
Tạo Dữ Liệu Huấn Luyện: Tự động cắt, lọc và tiền xử lý âm thanh thô từ đường dẫn Youtube.
-
Tạo Bộ Tham Chiếu: Trích xuất các đặc trưng giọng nói làm chuẩn kiểm tra cho quá trình huấn luyện.
🛠️ Nhóm Công Cụ Mở Rộng & Tùy Chỉnh
-
Điều Chỉnh Mô Hình: Dung hợp nhiều giọng nói, đọc thông tin tệp mô hình, chuyển đổi định dạng ONNX và SVC.
-
Xử Lý Nâng Cao: Trích xuất cao độ (F0), tự động tạo tệp phụ đề (SRT) và Phân tích âm thanh.
-
Tùy Chỉnh Hệ Thống: Thay đổi chế độ Sáng/Tối, ngôn ngữ, chủ đề và phông chữ linh hoạt.
-
Hiệu suất: Tùy chọn định dạng tính toán để tối ưu phần cứng: BF16, TF32, FP16, FP32, INT8 (Đối với ONNX).
-
Ngôn ngữ: Tiếng Việt và Tiếng Anh.
📥 Nhóm Tải Xuống
-
Mô Hình Giọng Nói: Tải trực tiếp qua liên kết, tìm kiếm trong kho dữ liệu và CSV hoặc tải lên từ máy tính.
-
Mô Hình Huấn Luyện Sẵn: Tải trực tiếp qua liên kết, cung cấp danh sách mô hình hoặc tải lên từ máy tính.
🎼 Phương Thức Trích Xuất Cao Độ (30+ Phương Pháp)
-
Các thuật toán:
pm, dio, crepe, fcpe, rmvpe, hpa-rmvpe, harvest, yin, pyin, swipe, piptrack, penn, djcm, swift, pesto... -
Chế độ Trộn (Hybrid): Kết hợp nhiều phương thức (ví dụ: hybrid[rmvpe+harvest]) để tối ưu chất lượng.
💡 Lời khuyên: Khuyến nghị sử dụng RMVPE cho hầu hết các trường hợp để đảm bảo chất lượng ổn định nhất.
🧠 Mô Hình Trích Xuất Nhúng (20+ Mô Hình)
-
Đa mô hình:
contentvec_base, hubert_base, vietnamese_hubert_base, japanese_hubert_base, korean_hubert_base, chinese_hubert_base, portuguese_hubert_base, spin -
Định dạng mô hình được hỗ trợ:
fairseq (.pt),onnx (.onnx),transformers (.bin - .json),spin (.bin - .json).
-
contentvec_base và hubert_base là một và có thể dùng thay cho nhau, chỉ khác nhau về dung lượng và độ chính xác khi suy luận.
-
Việc thay đổi mô hình nhúng yêu cầu huấn luyện lại mô hình RVC từ đầu. Các mô hình thông dụng hiện nay chủ yếu dùng contentvec_base và hubert_base.
🔊 Bộ Mã Hóa Giọng Nói (Vocoders)
-
Default (HiFi-GAN-NSF): Tùy chọn tiêu chuẩn, tương thích hoàn hảo với tất cả các phiên bản RVC.
-
MRF-HiFi-GAN: Nâng cấp độ trung thực của âm thanh lên một tầm cao mới.
-
RefineGAN: Mang lại chất lượng âm thanh vượt trội, trong trẻo và sắc nét.
-
BigVGAN: Đỉnh cao của chất lượng âm thanh (siêu cao), nhưng hãy cẩn thận vì nó có thể biến GPU của bạn thành một chiếc "lò nướng" thực thụ do yêu cầu tài nguyên rất lớn.
1. Yêu cầu phần mềm
-
Hệ điều hành: Windows 10/11 hoặc Linux.
-
Python: Phiên bản 3.10, 3.11 hoặc 3.12.
-
Thành phần bổ trợ bắt buộc:
-
Windows: Visual C++ Redistributable Runtimes.
-
Linux: Các thư viện bổ trợ (build-essential, libssl-dev, ffmpeg, v.v.).
-
2. Yêu cầu phần cứng
Cấu Hình Tối Thiểu
CPU: Hỗ trợ AVX và có ít nhất 2 nhân.
RAM: Tối thiểu 8GB (Khuyến nghị 16GB để xử lý các tệp âm thanh dài).
GPU: Không bắt buộc (Có thể chạy bằng CPU nhưng tốc độ siêu chậm).
Lưu trữ: 10GB trống (Nếu chỉ dùng cơ bản).
Cấu Hình Khuyến Nghị
CPU: Hỗ trợ AVX2, AVX512 và có ít nhất 4 nhân.
RAM: 16GB - 32GB trở lên.
GPU: NVIDIA RTX hoặc INTEL ARC (Tối thiểu 6GB hoặc 8GB trở lên).
Lưu trữ: 10GB trống (Nếu chỉ dùng cơ bản) hoặc hơn 120GB trống (Nếu dùng hết tất cả assets).
Đây chỉ là cấu hình tham khảo vì không có một cấu hình xác định, nó sẽ dựa vào những thứ bạn dùng, thời gian và độ kiên nhẫn của bạn. Bạn có thể chỉ có CPU và quyết định huấn luyện mô hình trên nó thì cũng chả ai cấm được bạn.
GPU AMD không được đề cập do nếu sử dụng thông qua DIRECTML hoặc OPENCL sẽ cực kỳ chậm chỉ nhanh hơn sử dụng CPU, dùng thông qua Zluda thì thiếu ổn định, thời gian biên dịch lâu và yêu cầu nằm trong danh sách hỗ trợ của AMD. ROCM thì chưa được thử nghiệm và nó không có phiên bản dành cho Windows.
Sử dụng với Google Colab
- Mở Google Colab: Vietnamese-RVC
- Bước 1: Chạy ô Cài đặt và đợi nó hoàn tất.
- Bước 2: Chạy ô Mở giao diện sử dụng (Khi này giao diện sẽ in ra 2 đường dẫn 1 là 0.0.0.0.7680 và 1 đường dẫn gradio có thể nhấp được, bạn chọn vào đường dẫn nhấp được và nó sẽ đưa bạn đến giao diện).
Sử dụng với Kaggle
- Mở Kaggle: Vietnamese-RVC
- Bước 1: Nhấn Copy - Edit.
- Bước 2: Chạy ô Cài đặt (Ô thứ nhất) và đợi nó hoàn tất.
- Bước 3: Chạy ô Mở giao diện sử dụng (Khi này giao diện sẽ in ra 3 đường dẫn 1 là đường dẫn đến localtunnel Tensorboard, 2 là 0.0.0.0.7680 và 3 đường dẫn gradio có thể nhấp được, bạn chọn vào đường dẫn nhấp được và nó sẽ đưa bạn đến giao diện).
Cài đặt:
-
Chạy tệp
run_install.batđể tự động cài đặt trên Windows (Lưu ý: hãy chắc chắn đã cài Driver và thư viện nhưVisual C++ Redistributable Runtimes) -
Chạy tệp
run_install.shđể tự động cài đặt trên Linux (Lưu ý: hãy chắc chắn đã cài Driver và các thư viện cần thiết) -
Nếu cần chi tiết hơn, tham khảo INSTALL
Sử dụng:
-
Chạy tệp
run_app.batđể khởi động giao diện người dùng vàrun_tensorboard.batđể khởi động biểu đồ giám sát khi huấn luyện (Windows) -
Chạy tệp
run_app.shđể khởi động giao diện người dùng vàrun_tensorboard.shđể khởi động biểu đồ giám sát khi huấn luyện (Windows)
Tài liệu văn bản: Words
ONNX (Open Neural Network Exchange): Là một định dạng trung gian dùng để chuyển đổi mô hình (đặc biệt là từ PyTorch). ONNX giúp tối ưu hóa mô hình, tăng tốc thời gian suy luận và cho phép mô hình chạy trên nhiều runtime khác nhau Nhờ đó, việc triển khai trở nên linh hoạt và dễ dàng hơn trên nhiều nền tảng phần cứng.
OCL (OpenCL - Open Computing Language): Là một tiêu chuẩn mở cho lập trình song song trên các hệ thống không đồng nhất. Trong dự án, OpenCL đóng vai trò là backend bổ trợ, giúp tận dụng các GPU không hỗ trợ tăng tốc xử lý máy học.
DML (DirectML): Là API máy học của Microsoft, hoạt động trên nền tảng DirectX 12. DML cho phép chạy mô hình AI trên GPU (NVIDIA, AMD, Intel) trên Windows mà không cần CUDA, rất hữu ích cho việc mở rộng khả năng tương thích phần cứng.
CUDA (Compute Unified Device Architecture): Là nền tảng tính toán song song của NVIDIA, cho phép khai thác sức mạnh GPU NVIDIA để tăng tốc các tác vụ AI và xử lý dữ liệu. Đây là backend phổ biến nhất do hiệu năng cao và hệ sinh thái cực kỳ mạnh mẽ.
XPU: Là khái niệm (thường được Intel sử dụng) để chỉ các thiết bị tăng tốc tính toán tổng hợp (CPU + GPU). Trong PyTorch hoặc các framework khác, XPU thường ám chỉ GPU Intel (qua oneAPI hoặc IPEX). Việc hỗ trợ XPU giúp mở rộng khả năng chạy trên phần cứng của Intel.
ROCm (Radeon Open Compute): Là nền tảng tính toán GPU của AMD, tương tự CUDA nhưng dành cho GPU AMD. ROCm cho phép chạy các mô hình AI trên GPU AMD với hiệu năng cao, đặc biệt trong môi trường Linux.
ZLUDA: Là một lớp tương thích cho phép chạy các ứng dụng CUDA trên GPU không phải của NVIDIA (đặc biệt là dành cho GPU AMD) bằng cách ánh xạ các API CUDA sang nền tảng khác (như HIP - ROCm). ZLUDA giúp tận dụng các phần mềm chỉ hỗ trợ CUDA trên phần cứng không phải NVIDIA, tuy nhiên mức độ tương thích chưa hoàn toàn đầy đủ và hiệu năng có thể không ổn định tùy trường hợp.
RVC (Retrieval-based Voice Conversion): Là một mô hình chuyển đổi giọng nói dựa trên truy hồi. RVC sử dụng embedding và chỉ mục để cải thiện chất lượng giọng nói đầu ra, giúp chuyển đổi giọng nhanh và tự nhiên hơn.
SVC (Singing Voice Conversion): Là kỹ thuật chuyển đổi giọng hát, tập trung vào việc giữ nguyên giai điệu và nhịp điệu trong khi thay đổi giọng người hát. SVC thường phức tạp hơn RVC do phải xử lý thêm yếu tố âm nhạc như cao độ và biểu cảm.
- Các thanh trượt, ô chọn hay hộp thả có thể ẩn hiện theo từng tùy chọn và có thể nó nằm ẩn trong các menu xếp lớp nên hãy kiểm tra
- Hiện tại các bộ mã hóa mới như MRF HIFIGAN, REFINEGAN và BIGVGAN vẫn chưa đầy đủ các bộ huấn luyện trước
- Bộ mã hóa MRF HIFIGAN, REFINEGAN và BIGVGAN không hỗ trợ huấn luyện khi không không huấn luyện cao độ
- Các mô hình trong kho lưu trữ Vietnamese-RVC được thu thập rải rác trên AI Hub, HuggingFace và các các kho lưu trữ khác. Có thể mang các giấy phép bản quyền khác nhau
- Chế độ thời gian thực khi dùng có thể tồn lại cache trên VRAM do nằm trong luồng chính nên việc giải phóng VRAM có thể không được triệt để
- Sử dụng Tăng độ phân giải âm thanh có thể làm tăng thời lượng chuyển đổi tệp âm thanh cực kì khủng kiếp
- Việc điều chỉnh Số lượng cụm thăm dò gần như vô dụng trong dự án này, vì dự án này sử dụng một cách thức khác để thăm dò mang độ chính xác 100%. Nó chỉ hữu ích nếu dùng faiss-cpu hoặc đem chỉ mục sang dự án khác
-
Dự án Vietnamese-RVC được phát triển với mục đích nghiên cứu, học tập và giải trí cá nhân. Tôi không khuyến khích cũng như không chịu trách nhiệm đối với bất kỳ hành vi lạm dụng công nghệ chuyển đổi giọng nói vì mục đích lừa đảo, giả mạo danh tính, hoặc vi phạm quyền riêng tư, bản quyền của bất kỳ cá nhân hay tổ chức nào.
-
Người dùng cần tự chịu trách nhiệm với hành vi sử dụng phần mềm này và cam kết tuân thủ pháp luật hiện hành tại quốc gia nơi họ sinh sống hoặc hoạt động.
-
Việc sử dụng giọng nói của người nổi tiếng, người thật hoặc nhân vật công chúng phải có sự cho phép hoặc đảm bảo không vi phạm pháp luật, đạo đức và quyền lợi của các bên liên quan.
-
Tác giả của dự án không chịu trách nhiệm pháp lý đối với bất kỳ hậu quả nào phát sinh từ việc sử dụng phần mềm này.
-
Bạn phải đảm bảo rằng các nội dung âm thanh bạn tải lên và chuyển đổi qua dự án này không vi phạm quyền sở hữu trí tuệ của bên thứ ba.
-
Không được phép sử dụng dự án này cho bất kỳ hoạt động nào bất hợp pháp, bao gồm nhưng không giới hạn ở việc sử dụng để lừa đảo, quấy rối, hay gây tổn hại đến người khác.
-
Bạn chịu trách nhiệm hoàn toàn đối với bất kỳ thiệt hại nào phát sinh từ việc sử dụng sản phẩm không đúng cách.
-
Tôi sẽ không chịu trách nhiệm với bất kỳ thiệt hại trực tiếp hoặc gián tiếp nào phát sinh từ việc sử dụng dự án này.
| Tác Phẩm | Tác Giả | Giấy Phép |
|---|---|---|
| Applio | IAHispano | MIT License |
| Python-audio-separator | Nomad Karaoke | MIT License |
| Retrieval-based-Voice-Conversion-WebUI | RVC Project | MIT License |
| RVC-ONNX-INFER-BY-Anh | Phạm Huỳnh Anh | MIT License |
| Torch-Onnx-Crepe-By-Anh | Phạm Huỳnh Anh | MIT License |
| Hubert-No-Fairseq | Phạm Huỳnh Anh | MIT License |
| Local-attention | Phil Wang | MIT License |
| TorchFcpe | CN_ChiTu | MIT License |
| ContentVec | Kaizhi Qian | MIT License |
| Mediafiredl | Santiago Ariel Mansilla | MIT License |
| Noisereduce | Tim Sainburg | MIT License |
| World.py-By-Anh | Phạm Huỳnh Anh | MIT License |
| Mega.py | Marco Trevisan | No License |
| Gdown | Kentaro Wada | MIT License |
| Whisper | OpenAI | MIT License |
| PyannoteAudio | pyannote | MIT License |
| StftPitchShift | Jürgen Hock | MIT License |
| Penn | Interactive Audio Lab | MIT License |
| Voice Changer | Yury deiteris | MIT License |
| Pesto | Sony CSL Paris | LGPL 3.0 |
| PolTrain | Artyom Bebroy | MIT License |
| Sovits-SVC-4.1 | SVC Develop-Team | AGPL 3.0 |
| RMVPE | yxlllc - Dream High | Apache-2.0 License |
| HPA-RMVPE | Phạm Huỳnh Anh - Vidalnt | No License |
| DJCM | Phạm Huỳnh Anh - Dream High | Apache-2.0 License |
| FlashSR | JakeOne IM | No License |
| FFMPEG-PYTHON | Karl Kroening | Apache-2.0 License |
| SOUNDDEVICE | Matthias Geier | MIT License |
| SortedContainers | Grant Jenks | Apache-2.0 License |
- Với trường hợp hệ thống báo cáo lỗi không hoạt động bạn có thể báo cáo lỗi cho tôi thông qua Discord
pham_huynh_anhHoặc ISSUE
- Cảm ơn Vidal đã cung cấp hỗ trợ phát triển HPA-RMVPE.
- Cảm ơn Artyom Bebroy đã đề xuất CosineAnnealingLR cho huấn luyện.
- Cảm ơn Dattobel đã cho mượn GPU Intel ARC để hỗ trợ phát triển dự án.
- Cảm ơn tất cả tác giả của các dự án được dựa vào đã cung cấp một nền tảng tuyệt vời để xây dựng dự án này.
- DISCORD: pham_huynh_anh
