0
0
Lập trình
Admin Team
Admin Teamtechmely

Nhân bản Giọng Nói Chỉ Với 10 Giây Âm Thanh — Không Giới Hạn

Đăng vào 6 ngày trước

• 8 phút đọc

🔊 Nhân Bản Giọng Nói Chỉ Với 10 Giây Âm Thanh — Không Giới Hạn

Bạn đã từng mệt mỏi với những hạn chế khi muốn nhân bản giọng nói của người khác? ElevenLabs và những sản phẩm tương tự không cho phép bạn sao chép giọng nói của ai ngoài giọng của chính mình. Dự án này không tuân theo những quy tắc đó. Đây là một giải pháp hoàn toàn độc lập, sử dụng máy tính cá nhân của bạn mà không cần đến đám mây. Không có kiểm tra danh tính. Chỉ có khả năng nhân bản giọng nói thuần túy.

Nếu bạn có một tệp âm thanh .wav sạch sẽ dài từ 5 đến 10 giây, bạn đã có một mô hình giọng nói. Hãy bắt tay vào xây dựng nó.


Kỹ Năng Nhân Bản Giọng Nói AI

Kỹ năng này yêu cầu ít nhất 2GB RAM để chạy (để tải mô hình).
AI không cần một tập dữ liệu lớn — chỉ cần một tệp âm thanh .wav dài 5–10 giây của ai đó đang nói.

Phác Thảo:

  • Bạn thêm tệp nhân bản và mẫu giọng nói vào các vị trí tương ứng.
  • Bạn chạy chương trình một lần để cài đặt các phụ thuộc và xác minh nó hoạt động.
  • Sau đó, kỹ năng LivinGrimoire sẽ hoạt động miễn là nó nhập đúng tệp nhân bản và chỉ đến mẫu giọng nói.

Giai Đoạn 1 (Thiết Lập Một Lần) Nhân Bản Mô Hình Giọng Nói:

Bước 1: Tạo Dự Án Mới

  1. Mở PyCharm → Dự án Mới → Đặt tên là voice_cloner_app → Tạo.

Bước 2: Tạo CHỈ MỘT TỆP

Nhấp chuột phải vào dự án → Tạo Mới → Tệp Python → Đặt tên là voice_cloner.py

Dán mã code hoàn chỉnh sau:

python Copy
import subprocess
import sys
import os
import torch
from TTS.api import TTS

class SelfInstallingVoiceCloner:
    def __init__(self):
        self.check_dependencies()
        self.device = "cuda" if torch.cuda.is_available() else "cpu"
        print(f"Loading AI model on {self.device}...")
        self.tts = TTS("tts_models/multilingual/multi-dataset/xtts_v2").to(self.device)
        self.voice_loaded = False

    def check_dependencies(self):
        """Cài đặt mọi thứ tự động nếu thiếu"""
        try:
            import TTS
            print("Tất cả các phụ thuộc đã được cài đặt.")
        except ImportError:
            print("Đang cài đặt các gói cần thiết...")
            requirements = [
                "torch==2.0.1+cu118",
                "torchvision==0.15.2+cu118",
                "torchaudio==2.0.2+cu118",
                "TTS==0.20.2",
                "soundfile==0.12.1",
                "librosa==0.10.1"
            ]
            for package in requirements:
                subprocess.check_call([sys.executable, "-m", "pip", "install", package])
            print("Cài đặt hoàn tất. Vui lòng khởi động lại tập lệnh.")
            sys.exit(1)

    def load_voice(self, audio_path):
        """Tải giọng nói từ tệp âm thanh"""
        if not os.path.exists(audio_path):
            raise FileNotFoundError(f"Tệp âm thanh không tồn tại: {audio_path}")
        self.reference_audio = audio_path
        self.voice_loaded = True
        print(f"Giọng nói đã được tải: {os.path.basename(audio_path)}")

    def speak(self, text, output_path="output.wav", language="en"):
        """Làm cho giọng nói nhân bản nói bất kỳ điều gì"""
        if not self.voice_loaded:
            raise ValueError("Tải một giọng nói trước với load_voice()")
        self.tts.tts_to_file(
            text=text,
            speaker_wav=self.reference_audio,
            language=language,
            file_path=output_path
        )
        print(f"Âm thanh đã được lưu: {output_path}")
        return output_path

# Tạo một thể hiện toàn cục
cloner = SelfInstallingVoiceCloner()

if __name__ == "__main__":
    # Ví dụ sử dụng
    cloner.load_voice("my_voice.wav")  # ← Đặt tệp âm thanh của bạn vào thư mục dự án
    cloner.speak("Thiết lập nhân bản giọng nói hoàn tất!", "test.wav")

Bước 3: Thêm Mẫu Giọng Nói Của Bạn

  1. Lấy tệp âm thanh .wav của bạn.
  2. Kéo và thả nó vào thư mục dự án PyCharm.
  3. Chỉnh sửa dòng 52 trong mã: Thay "my_voice.wav" bằng tên tệp thực tế của bạn.

Bước 4: CHẠY NÓ

Chỉ cần chạy tệp trực tiếp trong PyCharm:

  • Nhấp chuột phải vào voice_cloner.py → Chạy 'voice_cloner'

Điều gì xảy ra:

  1. Lần chạy đầu tiên: Tự động cài đặt tất cả các phụ thuộc.
  2. Yêu cầu bạn khởi động lại tập lệnh (chỉ cần chạy lại).
  3. Lần chạy thứ hai: Tải mô hình AI + giọng nói của bạn + tạo ra âm thanh thử nghiệm.

Tùy Chọn: Kiểm Tra Mô Hình Trong Một Dự Án .py Mới

python Copy
from voice_cloner import cloner  # Bộ nhân bản đã được thiết lập và sẵn sàng sử dụng

cloner.speak("Đơn giản hơn nhiều", "output1.wav")
cloner.speak("Không cần cài đặt riêng biệt", "output2.wav")

Giai Đoạn 2: Sử Dụng TTS Như Một Kỹ Năng LivinGrimoire (Mẫu Thiết Kế Phần Mềm)

Sao chép voice_cloner.py vào thư mục dự án mới.

Bao gồm mẫu giọng nói của bạn (ví dụ: my_voice.wav) trong cùng thư mục.

Copy
LivinGrimoireProject/
├── main.py
├── DLC/
│   ├── DiTTS_clone.py
│   ├── my_voice.wav
│   └── voice_cloner.py
python Copy
import os
from voice_cloner import cloner  # giả sử voice_cloner có thể được nhập
from LivinGrimoire import Skill

class DiTTS_clone(Skill):
    def __init__(self):
        super().__init__()
        self.set_skill_type(3)  # kỹ năng liên tục
        self.set_skill_lobe(2)  # lobe đầu ra
        # Đường dẫn đến mẫu giọng nói tương đối với tệp này
        self.voice_sample = os.path.join(os.path.dirname(__file__), "my_voice.wav")
        self.sounds_dir = os.path.join(os.path.dirname(__file__), "sounds")
        os.makedirs(self.sounds_dir, exist_ok=True)
        cloner.load_voice(self.voice_sample)

    def input(self, ear: str, skin: str, eye: str):
        if not ear:
            return
        filename = self.__sanitize_filename(ear)
        path = os.path.join(self.sounds_dir, f"{filename}.wav")
        if os.path.isfile(path):
            cloner.play(path)
        else:
            cloner.speak(ear, path)
            cloner.play(path)

    def __sanitize_filename(self, txt: str) -> str:
        return txt.translate(str.maketrans('', '', "?':,\n")).replace(" ", "_")

Thực Hành Tốt Nhất

  • Luôn kiểm tra độ dài của tệp âm thanh để đảm bảo nó nằm trong giới hạn 5–10 giây.
  • Nên sử dụng tệp âm thanh có chất lượng tốt để đạt được kết quả nhân bản tốt nhất.

Cạm Bẫy Thường Gặp

  • Không cài đặt đúng các phụ thuộc gây lỗi khi chạy mã.
  • Đảm bảo rằng tệp âm thanh đã được đặt đúng tên và trong thư mục dự án.

Mẹo Hiệu Suất

  • Tùy chỉnh các tham số của mô hình AI để tối ưu hóa hiệu suất nhân bản giọng nói cho các trường hợp sử dụng cụ thể của bạn.

Giải Quyết Vấn Đề

  • Nếu gặp lỗi không tìm thấy tệp âm thanh, hãy kiểm tra đường dẫn và đảm bảo tệp âm thanh tồn tại trong thư mục dự án.

Kết Luận

Nhân bản giọng nói giờ đây không còn là một điều xa vời với công nghệ AI. Bạn chỉ cần một tệp âm thanh ngắn và vài bước đơn giản để tạo ra một mô hình giọng nói của riêng bạn. Hãy bắt đầu thử nghiệm và sáng tạo với giọng nói của bạn ngay hôm nay! Nếu bạn có bất kỳ câu hỏi nào, đừng ngần ngại để lại câu hỏi bên dưới.

Câu Hỏi Thường Gặp

1. Tôi có thể sử dụng tệp âm thanh nào để nhân bản giọng nói?
Bạn có thể sử dụng bất kỳ tệp âm thanh .wav nào có độ dài từ 5 đến 10 giây.

2. Tôi có cần kết nối Internet để nhân bản giọng nói không?
Không, dự án này hoàn toàn có thể chạy trên máy tính cá nhân mà không cần kết nối Internet.

3. Có cần kiến thức lập trình để thực hiện dự án này không?
Một chút kiến thức về Python sẽ giúp bạn dễ dàng hơn trong việc thiết lập và chạy mã.

Hãy chia sẻ trải nghiệm của bạn khi sử dụng dự án này và cho chúng tôi biết nếu bạn gặp bất kỳ khó khăn nào!

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào