# Làm sách nói bằng Claude hoặc ChatGPT

Source: https://docs.vieneu.io/vi/docs/integrations/mcp/audiobooks

Đưa trợ lý một truyện, một chương hay cả cuốn sách — dán vào hoặc đính kèm file —
rồi nhờ làm sách nói:

> "Làm sách nói từ truyện này. Giọng dẫn chuyện nữ miền Bắc, mỗi nhân vật một giọng riêng."

Trợ lý chuyển văn bản của bạn thành kịch bản — phần dẫn chuyện, và từng câu thoại
kèm nhân vật nói câu đó — chọn giọng dẫn chuyện và giọng cho từng nhân vật, rồi
báo chi phí. Bạn đồng ý thì VieNeu đọc lần lượt từng chương và xử lý âm thanh mỗi
chương thành một file MP3 sẵn sàng phát hành.

Tính năng này chạy trong mọi app kết nối [MCP server](./index.md). Claude và
ChatGPT còn có trình phát các chương ngay trong khung chat.

## Quy trình

1. **Kịch bản.** Trợ lý tạo sách rồi thêm lần lượt từng chương. Văn bản được
   chép nguyên từng chữ — trợ lý được dặn không tóm tắt, không viết lại — và bỏ
   qua mục lục, số trang, trang bản quyền. Miễn phí.
2. **Chi phí.** Trước khi trừ đồng nào, trợ lý báo số token ước tính: mỗi ký tự
   tính như mọi lần tạo giọng, theo đơn giá của engine mặc định
   (`get_token_balance` cho biết gói của bạn còn đủ bao nhiêu).
3. **Bắt đầu.** Bạn đồng ý thì trợ lý bắt đầu tạo. Mỗi chương bị trừ token khi bắt
   đầu được tạo; chương nào lỗi thì tự được hoàn token và tự tạo lại (xem
   [chương lỗi](#stopping-resuming-failures)).
4. **Chờ.** Sách nói được tạo vào lúc máy chủ VieNeu không bận phục vụ người đang
   chờ audio — thường mất vài giờ, nhiều khi qua đêm. Các cuốn cùng chờ được tạo
   xen kẽ, mỗi lượt một chương, nên sách ngắn không phải xếp sau sách dài. Không
   cần để mở khung chat:
   xong cả cuốn, bạn nhận thông báo ở biểu tượng chuông trên vieneu.io.
5. **Nghe.** Hỏi *"Sách nói xong chưa?"* — trợ lý báo tiến độ và đưa link tải của
   từng chương đã xong (dùng được 24 giờ; hỏi lại để lấy link mới). Trong Claude
   và ChatGPT có trình phát liệt kê các chương và phát nối tiếp nhau. Mọi chương
   cũng nằm trong **Thư viện** của bạn trên vieneu.io.

## Giọng đọc

- **Giọng dẫn chuyện** đọc phần dẫn chuyện và tên chương.
- **Nhân vật** — tối đa 30 — mỗi người một giọng riêng. Nhân vật phụ có thể để
  giọng dẫn chuyện đọc: trợ lý viết lời của họ như lời dẫn chuyện.
- Cứ tả giọng bạn muốn ("một bà cụ miền Nam", "cậu bé tám tuổi"), trợ lý tự tìm
  trong kho bằng `list_voices`. Giọng bạn tự nhân bản chưa dùng được cho sách nói.

## Một chương nghe ra sao

| Chỗ | Cách xử lý |
|---|---|
| Giữa các đoạn văn và câu thoại | Lặng 0,6 giây |
| Sau tên chương | 2,5 giây |
| Khi chuyển cảnh | 2 giây |
| Đầu và cuối file | Lặng 0,5 giây ở đầu, 3,5 giây ở cuối |
| Độ lớn | −19 LUFS tích phân, đỉnh không quá −3 dBTP |
| File | MP3, 128 kbps, mono, 48 kHz, gắn sẵn tên chương, tên sách, tác giả, số thứ tự |

Mỗi nền tảng nhận file theo yêu cầu riêng — chẳng hạn Audible đòi 192 kbps ở
44,1 kHz — nên hãy xem yêu cầu của nơi bạn đăng trước khi tải lên.

## Các công cụ {#tools}

| Công cụ | Làm gì | Chi phí |
|---------|--------|---------|
| `create_audiobook` | Tạo sách: tên, tác giả, giọng dẫn chuyện, giọng các nhân vật | Miễn phí |
| `add_audiobook_chapter` | Thêm một chương dưới dạng kịch bản theo thứ tự đọc, hoặc nối tiếp một chương dài | Miễn phí¹ |
| `start_audiobook` | Bắt đầu tạo — cũng dùng để chạy tiếp sách đã dừng và tạo lại chương lỗi | Trừ token |
| `get_audiobook` | Tiến độ, và link tải từng chương đã xong | Miễn phí |
| `list_audiobooks` | Các sách của bạn, mới nhất trước — tìm lại sách từ cuộc trò chuyện cũ | Miễn phí |
| `cancel_audiobook` | Dừng: chương chưa bắt đầu không bị tính tiền; chương đang tạo thì làm nốt | Miễn phí |

¹ Chương thêm vào một cuốn đang được tạo sẽ vào hàng chờ của cuốn đó, và bị trừ
token khi được tạo.

Kịch bản của một chương là danh sách các đoạn: lời dẫn chuyện (không có người nói),
hoặc đúng lời một nhân vật nói. Câu *"— Đi thôi! — Lan nói."* thành Lan nói
*"Đi thôi!"*, rồi giọng dẫn chuyện đọc *"Lan nói."*

## Giới hạn {#limits}

| Giới hạn | Mức |
|---|---|
| Số chương mỗi cuốn | 200 |
| Ký tự mỗi chương | 60.000 (khoảng 80 phút), ít hơn nếu gói có hạn mức ngày¹ |
| Ký tự mỗi cuốn | 1.500.000 |
| Nhân vật có giọng riêng | 30 |

¹ Mỗi chương được tính tiền trong một lần, nên phải vừa hạn mức token theo ngày
(hoặc tuần) của gói — với gói dùng thử 50.000 token mỗi ngày là khoảng 12.800 ký
tự. Sách báo sẵn mức trần này (`chapter_chars_max`), và chương vượt trần bị từ
chối ngay lúc thêm, kèm độ dài vừa gói, thay vì nằm chờ số token không bao giờ
đủ. Trợ lý sẽ chia chương đó thành nhiều chương.

Trợ lý phải viết lại từng chữ của cuốn sách vào lời gọi công cụ, mỗi lần vài nghìn
ký tự, nên chương dài được gửi thành nhiều phần — chuyện bình thường. Mỗi phần ghi
rõ chương đang có bao nhiêu đoạn (`after_segment`): phần gửi hai lần bị từ chối
chứ không bị thêm hai lần, phần bị sót được phát hiện trước khi phần sau vào, và
mỗi câu trả lời cho thấy chương hiện kết thúc bằng câu nào. Trước khi bắt đầu, trợ
lý đối chiếu từng chương với văn bản của bạn. Cả một cuốn tiểu thuyết là một cuộc
trò chuyện dài: cứ sang khung chat mới mà nói *"làm tiếp sách nói …"*, trợ lý sẽ
tìm lại được cuốn sách.

## Dừng, chạy tiếp, chương lỗi {#stopping-resuming-failures}

- **"Dừng sách nói"**: chương chưa bắt đầu không bị tính tiền; chương đang tạo vẫn
  làm nốt vì đã trả tiền.
- **"Làm tiếp"**: chạy tiếp, kèm chi phí của phần còn lại.
- Chương tạo bị lỗi — máy chủ khởi động lại giữa chừng, máy chủ giọng gặp sự cố —
  được hoàn token và tự tạo lại sau vài phút, dùng tiếp các phần đã xong, tối đa
  hai lần. Chỉ lần lỗi thứ ba mới tính: khi đó sách kết thúc ở trạng thái *xong
  một phần*, và bắt đầu lại thì chỉ các chương lỗi được tạo lại.
- Chương có job đứng yên 45 phút cũng được xử lý như vậy, nên một chương bị kẹt
  không bao giờ chặn các sách xếp sau.
- Nếu bước hoàn thiện file MP3 lỗi, hệ thống thử lại với thời gian chờ tăng dần
  trong khoảng một giờ; chỉ sau đó chương mới được giao dạng WAV.

## Văn bản của bạn

VieNeu đọc văn bản bạn đưa, nên hãy chắc bạn có quyền: tác phẩm của chính bạn, tác
phẩm đã hết thời hạn bảo hộ, hoặc tác phẩm bạn có quyền làm sách nói.

## Từ code của bạn

Cùng tính năng có trong Cloud API: `POST /v1/audiobooks`, rồi
`POST /v1/audiobooks/{bookId}/chapters` và `POST /v1/audiobooks/{bookId}/start`;
theo dõi bằng `GET /v1/audiobooks/{bookId}`. Xem
[Toàn bộ các thao tác](../../cloud-api/overview.md#every-operation) và
[tài liệu tham chiếu API](/api-reference).
