Trong bài viết này mình sẽ hướng dẫn chi tiết từng bước từ cách tạo API key đến cách sử dụng API TTS để tạo ra những giọng đọc truyền cảm, như người thật. Bài viết này cũng phù hợp với những bạn không rành về công nghệ.
OpenAI TTS là gì?
TTS là viết tắt của Text-to-Speech, ngày nay công nghệ TTS (chuyển văn bản thành giọng nói) đã rất phổ biến và được ứng dụng rộng rãi.
TTS của OpenAI có khả năng chuyển đổi văn bản thành giọng nói tự nhiên và mượt mà, giọng nói được tạo ra có cảm xúc giống như người thật. Ví dụ như clip truyện ma dưới đây mình làm từ API TTS của OpenAI, giọng đọc không hề qua chỉnh sửa, mặc dù đang còn mới nhưng giọng đọc tiếng Việt cũng rất truyền cảm, nghe lần đầu có thể sẽ không nghĩ là giọng đọc của AI.
TTS của OpenAI có khả năng chuyển đổi văn bản thành giọng nói tự nhiên và mượt mà, giọng nói được tạo ra có cảm xúc giống như người thật. Ví dụ như clip truyện ma dưới đây mình làm từ API TTS của OpenAI, giọng đọc không hề qua chỉnh sửa, mặc dù đang còn mới nhưng giọng đọc tiếng Việt cũng rất truyền cảm, nghe lần đầu có thể sẽ không nghĩ là giọng đọc của AI.
Đăng nhập vào OpenAI và tạo API key
Những bạn nào cần hướng dẫn về API của OpenAI thì hãy xem bài viết bên dưới, mình đã có hướng dẫn rất chi tiết kèm hình ảnh minh họa:
Hướng dẫn cách lấy API Key
Hướng dẫn cách nạp tiền để sử dụng API
Hướng dẫn cách lấy API Key
Hướng dẫn cách nạp tiền để sử dụng API
Cách sử dụng OpenAI TTS
Ở thời điểm hiện tại đầu năm 2024, OpenAI TTS chưa có giao diện web, do đó để sử dụng được thì phải dùng thông qua API. Những bạn không chuyên về kỹ thuật cũng không cần để ý API nghĩa là gì đâu, tí nữa các bạn chỉ cần chạy code thông qua Terminal (macOS) hoặc Command Prompt (Windows)
Sau khi đăng nhập vào OpenAI, ở thanh menu bạn click vào Text-to-speech để chuyển đến trang hướng dẫn sử dụng chức năng này, hoặc có thể vào trực tiếp từ đường link bên dưới:
https://platform.openai.com/docs/guides/text-to-speech
Sau khi đăng nhập vào OpenAI, ở thanh menu bạn click vào Text-to-speech để chuyển đến trang hướng dẫn sử dụng chức năng này, hoặc có thể vào trực tiếp từ đường link bên dưới:
https://platform.openai.com/docs/guides/text-to-speech
Các giọng đọc hiện có của OpenAI TTS
OpenAI TTS hiện tại có các giọng đọc sau, model "tts-1" hiện tại còn khá mới mẻ nên phát âm tiếng Việt nhiều chỗ chưa chuẩn lắm, nhưng nói chung là đủ chất lượng để có thể dùng rồi.
Alloy - Giọng nam trung
Alloy - Giọng nam trung
Echo - Giọng nam truyền cảm, phù hợp cho kể chuyện
Fable - Giọng nam cao
Onyx - Giọng nam trầm
Nova - Giọng nữ cao
Shimmer - Giọng nữ trầm
Chạy đoạn code để chuyển văn bản thành giọng nói
Bạn có thể xem video hướng dẫn chi tiết bên dưới:
Mở Terminal nếu là macOS, hoặc Command Prompt nếu là Windows, sau đó paste đoạn code theo mẫu sau:
Nếu là Terminal của macOS
Copy
curl https://api.openai.com/v1/audio/speech \
-H "Authorization: Bearer <api_key>" \
-H "Content-Type: application/json" \
-d '{
"model": "<tts-1 hoặc tts-1-hd>",
"input": "<đoạn văn bản>",
"voice": "<tên giọng đọc>",
"speed": <tốc độ đọc>
}' \
--output <tên file>.mp3
Nếu là Command Prompt của Windows
Lưu ý là để tránh bị lỗi, các bạn nên dùng Notepad để viết sẵn đoạn code, sau đó chỉ copy và paste vào Command Prompt để chạy.
Copy
curl https://api.openai.com/v1/audio/speech ^
-H "Authorization: Bearer <api_key>" ^
-H "Content-Type: application/json" ^
-d "{""model"": ""<tts-1 hoặc tts-1-hd>"", ""input"": ""<đoạn văn bản>"", ""voice"": ""<tên giọng đọc>"", ""speed"": <tốc độ đọc>}" ^
--output <tên file>.mp3
Giải thích:
- <api_key>: Đây là API key mà bạn đã tạo ở bước trước, ví dụ: "sk-abcdef..."
-
model: Có 2 model là tts-1 và tts-1-hd, trong một số trường hợp, âm thanh có thể không có sự khác biệt rõ rệt trong 2 model này. Tuy nhiên theo trải nghiệm ban đầu của mình thì nếu đọc tiếng Việt dùng model "tts-1" sẽ chuẩn hơn.
- tts-1: Tốc độ tạo nhanh
- tts-1-hd: Chất lượng cao
- input: Đoạn văn bản cần đọc
- voice: Tên giọng đọc, danh sách giọng đọc mình có mô tả bên trên, bao gồm: alloy, echo, fable, onyx, nova, shimmer
- speed: Tốc độ đọc, trong khoảng 0.25 đến 4.0, 0.25 là đọc siêu chập, 4.0 là đọc siêu nhanh. Mặc định là 1.0
- <tên file>: Tên file kết quả sau khi tạo
Ví dụ:
Giả sử mình chạy đoạn code như sau:
Copy
curl https://api.openai.com/v1/audio/speech \
-H "Authorization: Bearer sk-abcdefghijklmno" \
-H "Content-Type: application/json" \
-d '{
"model": "tts-1",
"input": "Cảm ơn các bạn đã xem blog của mình",
"voice": "alloy",
"speed": 1.0
}' \
--output speech.mp3
Mình sẽ có file kết quả là speech.mp3 nằm ở thư mục hiện tại, giống như sau:
Chi phí sử dụng
Trên website của OpenAI có mô tả chi phí sử dụng như sau:
- Đối với model TTS: $0.015 / 1000 ký tự
- Đối với model TTS HD: $0.030 / 1000 ký tự
Có vẻ cũng khó hình dung 😂 Theo kinh nghiệm thực tế của mình khi dùng model tts-1-hd và tạo ra file khoảng 45 phút thì tốn tầm 1 USD, cũng không hẳn là đắt lắm.
Một vài mẹo nhỏ khi sử dụng OpenAI TTS
Chèn ngắt quãng
Trong một đoạn văn, bạn có thể chèn thêm [pause] vào giữa để cho AI ngắt quãng, thường thì AI sẽ ngắt quãng khoảng 1, 2 giây.
Ví dụ đoạn văn bản "Hôm nay trời đẹp quá [pause] đi chơi không em?" thì sẽ cho ra kết quả như sau:
Chèn giọng cười khẩy
Bên trong đoạn văn bản, bạn có thể thêm [laugh] để chèn giọng cười khẩy vào. Tuy nhiên lúc được lúc không.
Ví dụ đoạn văn bản "[laugh] Khá lắm, đúng là con trai của ta" thì sẽ cho ra kết quả như sau:
Giọng cảm xúc
Trong đoạn văn bản, ở những chỗ biểu lộ cảm xúc, nếu chèn dấu chấm than vào, thì có thể sẽ ra giọng đọc kiểu hốt hoảng.
Ví dụ đoạn văn bản "Trời ơi! Cái gì thế này!" thì sẽ cho ra kết quả như sau:
Ví dụ đoạn văn bản "Trời ơi! Cái gì thế này!" thì sẽ cho ra kết quả như sau:
Khắc phục khi không ra được tiếng Việt
Khi bạn viết một đoạn văn bản ngắn chỉ vài từ, sẽ có lúc kết quả cho ra là giọng đọc tiếng gì đó chứ không phải tiếng Việt. Lúc này để khắc phục thì các bạn có thể chèn [Vietnamese] vào đầu đoạn văn bản.
Ví dụ: [Vietnamese] Chào bạn
Ví dụ: [Vietnamese] Chào bạn
Khắc phục khi không đọc được số
Có lẽ do còn mới, nên AI này chưa đọc rõ những con số, để khắc phục, bạn thay số thành chữ thì AI sẽ đọc tốt hơn.
Ví dụ: 275 thì bạn nên viết là hai trăm bảy mươi lăm
Ví dụ: 275 thì bạn nên viết là hai trăm bảy mươi lăm
Một vài câu hỏi thường gặp
Làm thế nào tôi có thể kiểm soát phạm vi cảm xúc của âm thanh được tạo ra?
Không có cơ chế trực tiếp nào để kiểm soát đầu ra cảm xúc của âm thanh được tạo.
Một số yếu tố có thể ảnh hưởng đến âm thanh đầu ra như việc sử dụng chữ in hoa hoặc ngữ pháp, nhưng các thử nghiệm nội bộ của OpenAI đã cho kết quả không nhất quán.
Một số yếu tố có thể ảnh hưởng đến âm thanh đầu ra như việc sử dụng chữ in hoa hoặc ngữ pháp, nhưng các thử nghiệm nội bộ của OpenAI đã cho kết quả không nhất quán.
Liệu tôi có thể tạo bản sao giọng nói của mình không?
Không, điều này không phải là điều OpenAI hỗ trợ.
Tôi có sở hữu các tệp âm thanh được xuất ra không?
Có, giống như với tất cả sản phẩm đầu ra từ API của OpenAI, người tạo ra chúng sở hữu sản phẩm đầu ra.
Bạn vẫn cần phải thông báo cho người dùng cuối rằng họ đang nghe âm thanh được tạo bởi AI chứ không phải là giọng nói thực của một người.
Bài viết trên mình đã giới thiệu và hướng dẫn các bạn về chức năng TTS của OpenAI, chuyển văn bản thành giọng nói có cảm xúc như người thật. Ngoài ra các bạn có thể vào tài liệu chính thức trên trang chủ của OpenAI để xem chi tiết nhé.
Lưu ý quan trọng: Đừng bao giờ chia sẻ hoặc để lộ API key của bạn, vì nếu người khác dùng API key của bạn để sử dụng trong API, thì bạn sẽ là người phải trả tiền.
Bạn vẫn cần phải thông báo cho người dùng cuối rằng họ đang nghe âm thanh được tạo bởi AI chứ không phải là giọng nói thực của một người.
Bài viết trên mình đã giới thiệu và hướng dẫn các bạn về chức năng TTS của OpenAI, chuyển văn bản thành giọng nói có cảm xúc như người thật. Ngoài ra các bạn có thể vào tài liệu chính thức trên trang chủ của OpenAI để xem chi tiết nhé.
Lưu ý quan trọng: Đừng bao giờ chia sẻ hoặc để lộ API key của bạn, vì nếu người khác dùng API key của bạn để sử dụng trong API, thì bạn sẽ là người phải trả tiền.