3 điểm bởi GN⁺ 2023-11-20 | 1 bình luận | Chia sẻ qua WhatsApp

Mô hình text-to-speech đạt cấp độ con người, StyleTTS 2

  • StyleTTS 2 đạt được tổng hợp văn bản thành giọng nói (TTS) ở cấp độ con người thông qua học đối kháng sử dụng khuếch tán phong cách và mô hình ngôn ngữ giọng nói quy mô lớn.
  • Mô hình này đạt được khuếch tán tiềm ẩn hiệu quả bằng cách mô hình hóa phong cách như một biến ngẫu nhiên tiềm ẩn thông qua mô hình khuếch tán để tạo ra phong cách phù hợp nhất với văn bản mà không cần giọng nói tham chiếu.
  • Mô hình sử dụng một mô hình ngôn ngữ giọng nói tiền huấn luyện quy mô lớn làm bộ phân biệt, đồng thời huấn luyện end-to-end với mô hình hóa thời lượng khả vi mới để cải thiện độ tự nhiên của giọng nói.

Chuẩn bị

  • Cần Python phiên bản 3.7 trở lên.
  • Clone kho lưu trữ StyleTTS 2 và cài đặt các yêu cầu Python cần thiết.
  • Tải bộ dữ liệu LJSpeech, upsample lên 24 kHz rồi giải nén vào thư mục dữ liệu.
  • Nếu sử dụng bộ dữ liệu LibriTTS, cần gộp train-clean-360train-clean-100, sau đó đổi tên thư mục thành train-clean-460.

Huấn luyện

  • Có thể chạy huấn luyện giai đoạn một và giai đoạn hai theo thứ tự, và mô hình sẽ được lưu theo một định dạng cụ thể.
  • Định dạng danh sách dữ liệu phải là filename.wav|transcription|speaker, và với mô hình đa người nói thì cần lấy mẫu audio tham chiếu để huấn luyện mô hình khuếch tán phong cách.

Cấu hình quan trọng

  • Tệp config.yml bao gồm các thiết lập quan trọng như đường dẫn văn bản OOD (out-of-distribution) cho huấn luyện đối kháng SLM, độ dài tối thiểu và tối đa cho huấn luyện, có huấn luyện mô hình đa người nói hay không, và tỷ lệ phần trăm batch để tránh sự cố OOM (out-of-memory).

Các mô-đun tiền huấn luyện

  • Thư mục ASR chứa bộ căn chỉnh văn bản tiền huấn luyện, thư mục JDC chứa bộ trích xuất cao độ tiền huấn luyện, và thư mục PLBERT chứa mô hình PL-BERT tiền huấn luyện.

Các vấn đề thường gặp

  • Bài viết đưa ra cách xử lý lỗi loss trở thành NaN và lỗi thiếu bộ nhớ bằng cách điều chỉnh kích thước batch hoặc giảm giá trị max_len.

Fine-tuning

  • Có cung cấp script fine-tuning dùng DP bằng cách chỉnh sửa script train_second.py, còn DDP hiện chưa hoạt động.

Suy luận

  • Hãy tham khảo các tệp notebook để suy luận trên bộ dữ liệu LJSpeech và LibriTTS; với LibriTTS thì cần có tệp audio tham chiếu.
  • Có thể tải về mô hình StyleTTS 2 tiền huấn luyện, và trước khi sử dụng cần thông báo cho người nghe rằng các mẫu giọng nói tổng hợp được tạo bởi mô hình StyleTTS 2, hoặc sử dụng giọng nói đã được cấp phép sử dụng.

Ý kiến của GN⁺

Điểm quan trọng nhất của bài viết này là StyleTTS 2 đã đạt được tổng hợp TTS ở cấp độ con người, cho thấy tiềm năng của học đối kháng sử dụng khuếch tán phong cách và mô hình ngôn ngữ giọng nói quy mô lớn. Công nghệ này có thể tác động lớn đến sự phát triển của giao diện dựa trên giọng nói và trợ lý số bằng cách cải thiện đáng kể độ tự nhiên của tổng hợp giọng nói, đồng thời cung cấp khả năng tạo ra nhiều phong cách khác nhau mà không cần giọng nói tham chiếu.

1 bình luận

 
GN⁺ 2023-11-20
Ý kiến trên Hacker News
  • Kinh nghiệm phát triển chatbot giọng nói 100% chạy cục bộ bằng StyleTTS2

    • Chatbot được tạo bằng cách tận dụng các mã nguồn mở như StyleTTS2, Whisper và OpenHermes2-Mistral-7B có tốc độ phản hồi nhanh hơn ChatGPT rất nhiều.
    • Khác với các trợ lý giọng nói truyền thống, nó có thể trò chuyện tự nhiên, và đặc biệt có thể cài đặt cũng như trò chuyện chỉ với một cú nhấp chuột trên PC gaming Windows trang bị GPU Nvidia 12GB.
    • Bản demo hơi thiếu ổn định một chút (cần tai nghe, chạy dưới dạng ứng dụng console, v.v.), nhưng cho thấy thoáng qua tiềm năng của tương lai, nơi các tổ hợp mã nguồn mở có thể chạy trên PC gaming.
  • Ý kiến cá nhân về chất lượng giọng nói của StyleTTS2

    • Giọng nói rất hay, nhưng trước khi dùng thì muốn clone sang một giọng dễ chịu đúng với sở thích cá nhân.
  • Chia sẻ trải nghiệm cài đặt và sử dụng StyleTTS2

    • Chia sẻ trải nghiệm thử nghiệm StyleTTS2 cùng các ghi chú từng bước có thể hữu ích cho việc thiết lập cục bộ.
    • Trong so sánh tốc độ/chất lượng với mô hình LJSpeech, StyleTTS2 rất nhanh và chất lượng cũng tốt.
  • Trải nghiệm về cài đặt và vận hành StyleTTS2

    • Tài liệu còn hơi thiếu đầy đủ nên việc cài đặt có phần hơi rắc rối, nhưng sau khoảng 20 phút thì nó đã chạy tốt trên WSL Ubuntu 22.04.
    • Chất lượng âm thanh rất tốt, và đặc biệt rất nhanh khi dùng GPU 4090.
    • Dù chưa đạt đến chất lượng của Eleven Labs, điểm mạnh của Eleven là thư viện giọng nói đa dạng, chất lượng cao và tính năng clone giọng tức thì hoạt động đáng kinh ngạc chỉ với mẫu dài 5 phút.
    • Mong rằng các tính năng này sẽ có mặt trọn vẹn trong các dự án mã nguồn mở.
  • So sánh ví dụ giọng nói của StyleTTS2 với giọng thật

    • Ví dụ giọng nói của TTS2 nghe tự nhiên hơn cả giọng thật.
    • Rất hào hứng với việc dùng công nghệ này cho các tệp ePub không có audiobook, đặc biệt là light novel Nhật Bản.
  • Đánh giá về chất lượng giọng nói của StyleTTS2

    • Chất lượng giọng nói cực kỳ ấn tượng, ở mức không thể tưởng tượng nổi vào đầu những năm 2000.
    • Có triển vọng thú vị cho game, nơi LLM đảm nhận vai nhân vật còn TTS cung cấp giọng nói cho NPC.
  • Ý kiến về tiêu đề và nội dung của StyleTTS2

    • Hiện tại tiêu đề trên Hacker News là "StyleTTS2 – công nghệ chuyển văn bản thành giọng nói mã nguồn mở chất lượng Eleven Labs", nhưng trong tiêu đề thực tế hoặc bài báo trên arXiv không hề nhắc đến Eleven Labs.
    • Bày tỏ lo ngại về cách diễn đạt mang tính biên tập như vậy.
  • Câu hỏi về thời gian suy luận của StyleTTS2

    • Đặt câu hỏi về mức ước lượng đại khái cho thời gian suy luận trên CPU hiện đại.
  • Câu hỏi về giấy phép của StyleTTS2

    • Đặt câu hỏi liệu vì giấy phép không phải MIT nên có phải không thể dùng cho mục đích thương mại hay không.
  • Triển vọng marketplace cho mô hình chuyển văn bản thành giọng nói

    • Tò mò liệu một marketplace LoRA kiểu Civitai có xuất hiện cho các mô hình chuyển văn bản thành giọng nói hay không.