Metadata-Version: 2.4
Name: jntts-cli
Version: 1.0.3
Summary: Một công cụ TTS sử dụng mô hình Bark/Suno để chuyển đổi văn bản thành giọng nói.
Author-email: Justin Nguyen 🇻🇳 <duchuy_1997@hotmail.com>
License: ================================================================================
        English Version (Bản Tiếng Anh)
        ================================================================================
        
        JNTTS Software License
        Copyright (c) 2025 Justin Nguyen
        
        IMPORTANT NOTICE: This is a license drafted in simple language for clarity, not a legal document prepared by a lawyer. By using, copying, or modifying this software, you agree to the terms outlined below.
        
        ---
        
        ### **Definitions**
        
        - **"The Software"**: Refers to all source code, documentation, and related assets within this project.
        - **"Commercial Use"**: Refers to any use of the Software for the purpose of generating profit or financial gain, either directly or indirectly. Examples include: selling the Software, using the Software as part of a fee-based product or service, or using the Software to generate content for a commercial channel.
        - **"Non-Commercial Use"**: Refers to use for personal purposes, education, academic research, or non-profit open-source projects.
        
        ---
        
        ### **1. Rights Granted (For Non-Commercial Use)**
        
        You are granted the following rights, free of charge, under the condition that your use is NON-COMMERCIAL:
        
        - **Right to Use:** You are permitted to use the Software for personal, educational, and research purposes.
        - **Right to Copy and Modify:** You are permitted to copy and modify the source code to serve your own non-commercial purposes.
        - **Right to Distribute:** You are permitted to share the Software (both original and modified versions), provided you adhere to the following conditions:
            1.  You must retain the original copyright notice and the full text of this license in all copies.
            2.  You must clearly state that the Software is licensed under these non-commercial terms.
        
        ---
        
        ### **2. Strictly Prohibited Actions**
        
        You are **NOT PERMITTED** to perform the following actions without obtaining a commercial license from the author:
        
        - **Commercial Use:** The use of this Software for any commercial purpose is strictly forbidden.
        - **Resale or Sublicensing:** You may not sell, rent, or sublicense the Software to any third party.
        
        ---
        
        ### **3. Commercial Licensing**
        
        If you wish to use this Software for commercial purposes, you are required to purchase a separate license. Please contact the author, Justin Nguyen, directly via the information provided in the README file to discuss the purchase of the source code and commercial licensing.
        
        ---
        
        ### **4. Disclaimer of Warranty**
        
        THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
        
        ================================================================================
        Vietnamese Version (Bản Tiếng Việt)
        ================================================================================
        
        Giấy Phép Phần Mềm JNTTS
        Bản quyền (c) 2025 Justin Nguyen
        
        LƯU Ý QUAN TRỌNG: Đây là một giấy phép được soạn thảo bằng ngôn ngữ đơn giản để dễ hiểu, không phải là một văn bản pháp lý được soạn bởi luật sư. Bằng cách sử dụng, sao chép, hoặc sửa đổi phần mềm này, bạn đồng ý với các điều khoản dưới đây.
        
        ---
        
        ### **Định Nghĩa**
        
        - **"Phần Mềm"**: Đề cập đến toàn bộ mã nguồn, tài liệu và các tài sản liên quan trong dự án này.
        - **"Mục Đích Thương Mại"**: Đề cập đến bất kỳ việc sử dụng Phần Mềm nào nhằm mục đích tạo ra lợi nhuận hoặc lợi ích tài chính, trực tiếp hoặc gián tiếp. Ví dụ bao gồm: bán Phần Mềm, sử dụng Phần Mềm như một phần của một sản phẩm hoặc dịch vụ có tính phí, sử dụng Phần Mềm để tạo ra nội dung cho một kênh thương mại.
        - **"Mục Đích Phi Thương Mại"**: Đề cập đến việc sử dụng cho mục đích cá nhân, giáo dục, nghiên cứu học thuật, hoặc các dự án mã nguồn mở không có mục tiêu tài chính.
        
        ---
        
        ### **1. Các Quyền Được Cấp (Cho Mục Đích Phi Thương Mại)**
        
        Bạn được cấp các quyền sau đây, miễn phí, với điều kiện việc sử dụng của bạn là PHI THƯƠNG MẠI:
        
        - **Quyền Sử Dụng:** Bạn được phép sử dụng Phần Mềm cho các mục đích cá nhân, học tập và nghiên cứu.
        - **Quyền Sao Chép và Sửa Đổi:** Bạn được phép sao chép và sửa đổi mã nguồn để phục vụ cho các mục đích phi thương mại của riêng bạn.
        - **Quyền Phân Phối:** Bạn được phép chia sẻ lại Phần Mềm (cả bản gốc và bản đã sửa đổi), miễn là bạn tuân thủ các điều kiện sau:
            1.  Bạn phải giữ nguyên thông báo bản quyền và nội dung của giấy phép này trong tất cả các bản sao.
            2.  Bạn phải nêu rõ rằng Phần Mềm này được cấp phép dưới các điều khoản phi thương mại.
        
        ---
        
        ### **2. Các Hành Vi Bị Cấm Tuyệt Đối**
        
        Bạn **KHÔNG ĐƯỢC PHÉP** thực hiện các hành vi sau đây nếu chưa có giấy phép thương mại từ tác giả:
        
        - **Sử Dụng cho Mục Đích Thương Mại:** Cấm tuyệt đối việc sử dụng Phần Mềm này cho bất kỳ mục đích thương mại nào.
        - **Bán Lại hoặc Cấp Phép Phụ:** Bạn không được bán lại, cho thuê, hoặc cấp phép phụ (sublicense) Phần Mềm này cho bên thứ ba.
        
        ---
        
        ### **3. Giấy Phép Thương Mại**
        
        Nếu bạn có nhu cầu sử dụng Phần Mềm này cho mục đích thương mại, bạn bắt buộc phải mua một giấy phép riêng. Vui lòng liên hệ trực tiếp với tác giả, Justin Nguyen, qua các thông tin được cung cấp trong file README để thảo luận về việc mua mã nguồn và cấp phép thương mại.
        
        ---
        
        ### **4. Tuyên Bố Miễn Trừ Trách Nhiệm**
        
        PHẦN MỀM NÀY ĐƯỢC CUNG CẤP "NGUYÊN TRẠNG", KHÔNG CÓ BẤT KỲ ĐẢM BẢO NÀO, DÙ RÕ RÀNG HAY NGỤ Ý, BAO GỒM NHƯNG KHÔNG GIỚI HẠN Ở CÁC ĐẢM BẢO VỀ KHẢ NĂNG BÁN ĐƯỢC, SỰ PHÙ HỢP CHO MỘT MỤC ĐÍCH CỤ THỂ VÀ VIỆC KHÔNG VI PHẠM BẢN QUYỀN. TRONG MỌI TRƯỜNG HỢP, TÁC GIẢ HOẶC NGƯỜI GIỮ BẢN QUYỀN SẼ KHÔNG CHỊU TRÁCH NHIỆM VỀ BẤT KỲ KHIẾU NẠI, THIỆT HẠI HOẶC TRÁCH NHIỆM PHÁP LÝ NÀO KHÁC.
Classifier: Development Status :: 4 - Beta
Classifier: Programming Language :: Python :: 3
Classifier: Operating System :: OS Independent
Classifier: Topic :: Multimedia :: Sound/Audio :: Speech
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: torch
Requires-Dist: transformers
Requires-Dist: sounddevice
Requires-Dist: numpy
Requires-Dist: tqdm
Requires-Dist: pydub
Requires-Dist: pyfiglet
Requires-Dist: psutil
Requires-Dist: pynvml
Requires-Dist: py-cpuinfo
Requires-Dist: appdirs
Dynamic: license-file

# Công Cụ Text-to-Speech Nâng Cao Sử Dụng Suno/Bark

Đây là một công cụ dòng lệnh (CLI) mạnh mẽ được xây dựng bằng Python, cho phép chuyển đổi văn bản thành giọng nói (Text-to-Speech) chất lượng cao bằng cách sử dụng mô hình AI `suno/bark`. Ứng dụng được thiết kế với giao diện tương tác, thân thiện với người dùng và cung cấp nhiều tính năng chuyên nghiệp để tạo và quản lý file âm thanh.

Công cụ này được phát triển bởi **Justin Nguyen 🇻🇳**.

## ✨ Tính Năng Nổi Bật

- **Box Voice Nghe Thử Giọng Nói:** Một menu tương tác cho phép người dùng nghe thử và khám phá hàng trăm giọng nói khác nhau từ nhiều ngôn ngữ.
- **Xử Lý Hàng Loạt (Batch Processing):** Tự động quét các file `.txt` trong thư mục `Input`, xử lý chúng theo thứ tự và lưu kết quả vào thư mục `Output`.
- **Hàng Đợi Thông Minh:** Tự động phát hiện các file mới được thêm vào thư mục `Input` trong quá trình xử lý và thêm chúng vào cuối hàng đợi.
- **Kiểm Tra Phần Cứng:** Tích hợp công cụ chẩn đoán, giúp người dùng kiểm tra thông số hệ thống (CPU, RAM, GPU, VRAM) và xác định xem máy tính có đủ điều kiện để chạy ứng dụng hiệu quả hay không.

## 🚀 Cài Đặt

Để chạy được công cụ này, máy tính của bạn cần đáp ứng các yêu cầu sau.

### Yêu Cầu Hệ Thống

- **Python:** Phiên bản **3.11** được khuyến nghị để đảm bảo tương thích với tất cả các thư viện.
- **Pip:** Trình quản lý gói của Python.
- **FFmpeg:** Một công cụ xử lý đa phương tiện cần thiết cho thư viện `pydub`.
  - **Trên macOS (dùng Homebrew):** `brew install ffmpeg`
  - **Trên Windows:** Tải về từ [trang chủ FFmpeg](https://ffmpeg.org/download.html) và thêm vào biến môi trường PATH.

### Các Bước Cài Đặt

1.  **Tạo và kích hoạt môi trường ảo:** (Rất khuyến khích)
    ```bash
    # Sử dụng đúng phiên bản python 3.11
    python3.11 -m venv venv
    ```
    - **Trên macOS/Linux:**
      ```bash
      source venv/bin/activate
      ```
    - **Trên Windows:**
      ```bash
      .\venv\Scripts\activate
      ```

2.  **Cài đặt các thư viện cần thiết:**
    Tất cả các gói phụ thuộc đã được liệt kê trong file `requirements.txt`. Chạy lệnh sau:
    ```bash
    pip install -r requirements.txt
    ```
    *Lưu ý: Để tối ưu hóa cho GPU NVIDIA, hãy đảm bảo bạn đã cài đặt phiên bản PyTorch hỗ trợ CUDA theo hướng dẫn trên trang chủ PyTorch.*

## ⚙️ Hướng Dẫn Sử Dụng

Sau khi cài đặt thành công, bạn có thể khởi chạy công cụ bằng một lệnh duy nhất.

1.  **Chạy ứng dụng:**
    ```bash
    python3 app.py
    ```
    Chương trình sẽ khởi động, tải mô hình AI (có thể mất vài phút ở lần chạy đầu tiên) và hiển thị menu chính.

2.  **Các Chức Năng Chính:**
    - **1. Nghe thử các giọng nói (Box Voice):**
      - Hiển thị menu chọn ngôn ngữ, sau đó là danh sách các giọng nói có sẵn.
      - Chọn một giọng để nghe thử. Âm thanh sẽ được tạo và lưu vào cache ở lần đầu, và phát ngay lập tức ở những lần sau.
    - **2. Tạo âm thanh từ file (Text To Speech):**
      - Đặt các file `.txt` của bạn (ví dụ: `1_Chapter1.txt`, `2_Chapter2.txt`) vào thư mục `Input`.
      - Chọn chức năng này, chương trình sẽ tự động tìm và xử lý tất cả các file theo thứ tự.
      - File âm thanh đầu ra sẽ được lưu trong thư mục `Output`.
    - **3. Kiểm tra phần cứng:**
      - Hiển thị một báo cáo chi tiết về phần cứng máy tính của bạn và đưa ra kết luận xem máy có đủ điều kiện để chạy mượt mà hay không.
    - **4. Thông tin tác giả:**
      - Hiển thị thông tin về người phát triển và các công nghệ đã được sử dụng.
    - **5. Thoát chương trình.**

## 📂 Cấu Trúc Dự Án

```
project_voice/
│
├── audio_cache/          # Lưu cache 
├── Input/                # Chứa các file .txt đầu vào
├── Output/               # Chứa các file .wav đầu ra
│
├── config.py             # Cấu hình giọng nói, văn bản mẫu, yêu cầu hệ thống
├── tts_utils.py          # Các hàm cốt lõi liên quan đến model TTS
├── box_voice.py          # Logic cho chức năng "Nghe thử"
├── file_tts.py           # Logic cho chức năng "Xử lý hàng loạt"
├── hardware_check.py     # Logic cho chức năng "Kiểm tra phần cứng"
├── ui.py                 # Quản lý giao diện người dùng (banner, menu)
├── about.py              # Logic cho màn hình "Thông tin tác giả"
├── app.py                # Điểm khởi đầu của ứng dụng
└── requirements.txt      # Danh sách các thư viện cần thiết
```

---
## ❤️ Ủng Hộ Tác Giả

Công cụ này được phát triển và duy trì hoàn toàn miễn phí. Nếu bạn thấy nó hữu ích và muốn hỗ trợ tác giả để có thêm động lực phát triển các dự án mã nguồn mở khác, bạn có thể ủng hộ qua các kênh dưới đây. Sự ủng hộ của bạn, dù nhỏ, cũng là một nguồn động viên to lớn.

Xin chân thành cảm ơn!

| Kênh | Thông Tin |
| :--- | :--- |
| 🏦 **MB Bank** | **STK:** `079 88888 88888` <br> **Tên:** NGUYEN DUC HUY |
| 📱 **Momo** | `0982 579 098` |
| 🌐 **PayPal** | KZN2CVN5QM9EN |

## 📬 Thông Tin Liên Lạc

- **Telegram:** [@Justin_Nguyen_SG](https://t.me/Justin_Nguyen_SG)
