Tại sao giọng nói tổng hợp của bạn nghe lại rất giả? Những chi tiết bản địa hóa đa ngôn ngữ mình đã thử nghiệm
Tháng trước mình nhận làm video quảng cáo cho một cửa hàng cà phê ở Quận 1, TP.HCM. Khách muốn bản tiếng Việt voiceover để đăng lên TikTok và Reels. Mình lười, lấy script dán vào một công cụ chuyển văn bản thành giọng nói miễn phí trên mạng, bấm play là xong. Kết quả là giọng đọc ra nghe giống máy gọi điện spam, ngắt ngứt, mỗi câu đều vặn về một tông như máy thu tin bưu điện. Khách xem xong ngay từ chối: 'Nghe như robot, không đăng được'.
Lúc đó mới hiểu, chỉ có 'đọc được' là chưa đủ. Ngạch ngữ, khoảng nghỉ, thậm chí là cách người Hà Nội và người Sài Gòn phát âm một từ, đều quyết định người nghe có cảm thấy 'đây là người thật' hay không.
Sau đó mình lấy cùng đoạn văn bản nén vào công cụ nhân bản giọng nói miễn phí trên web mình hay dùng, chỉ chỉnh tốc độ và đánh dấu ngắt nghỉ, kết quả khác trời với đất.
Ngạch ngữ, khoảng nghỉ và tiếng địa phương - cái bẫy không ai nói rõ
Ngạch ngữ không đơn thuần là cao hay thấp, nó là nơi chứa cảm xúc. Tiếng Việt có sáu thanh điệu, nếu bạn dùng một bộ tham số đồng nhất cho cả miền Bắc lẫn miền Nam, người nghe sẽ ngay lập tức phát hiện ra cái gì đó 'lạ'. Ví dụ, câu hỏi ở miền Bắc thường kết thúc bằng vần ngã hoặc sắc nhọn, còn ở miền Nam lại hơi nhẹ nhàng, hơi nặng nề khác. Nếu bạn ép toàn bộ video dùng giọng đọc hay miễn phí theo một khuôn mẫu, audiobook hay clip quảng cáo sẽ bị mất hồn.
Khoảng nghỉ là kẻ thù vô hình. Tiếng Việt người ta hay dùng dấu phẩy, dấu chấm để hít thở, nhưng nhiều công cụ tự động chèn khoảng nghỉ cố định, ví dụ 300 miligiây cho mọi câu. Kết quả là toàn bộ đoạn đọc giống máy đánh chữ, không có nhịp điệu tự nhiên. Mình từng thử đọc một đoạn giới thiệu món ăn ở Đà Nẵng, mỗi câu đều ngắt đúng như đồng hồ, khách bảo nghe như máy đọc tin tức cách đây mười năm.
Về tiếng địa phương, sự khác biệt giữa tiếng Hà Nội và tiếng Sài Gòn đủ lớn để người bản địa một tai là biết ngay bạn là 'ngoài tay'. Từ 'vàng' ở miền Bắc đọc hơi nhọn, miền Nam lại đậm hơn; từ 'dễ' và 'giấy' ở một số vùng còn phát âm gần như trùng nhau. Nếu không xây dựng mô hình riêng cho từng vùng, đừng hy vọng bản lồng tiếng video bằng ai miễn phí này có thể lừa được tai người bản địa.
Một lưu ý nhỏ về quy định: khi bạn dùng công cụ giọng nói ai miễn phí hoặc dịch vụ text to speech tiếng việt miễn phí, đừng tải giọng nói của khách hàng lên máy chủ nước ngoài mà không kiểm tra. Luật bảo vệ dữ liệu cá nhân của Việt Nam có quy định rất nghiêm ngặt về việc lưu trữ và xử lý dữ liệu sinh trắc học, giọng nói cũng nằm trong nhóm này. Mình hay chọn các nền tảng cho phép xử lý nội dung trong nước hoặc ít nhất có cam kết không chia sẻ dữ liệu với bên thứ ba.
Ngoài ra, nếu bạn định thu âm audiobook bằng ai miễn phí cho kênh YouTube hoặc podcast cá nhân, hãy kiểm tra kỹ nguồn gốc của công cụ. Không phải dịch vụ miễn phí nào cũng an toàn với dữ liệu âm thanh của bạn.
Bộ ký tự và dấu câu - ảnh hưởng vô hình
Nhiều công cụ xử lý dấu cách toàn角, ký tự khoảng trống không độ rộng, thậm chí cả biểu tượng cảm xúc (emoji) bằng cách bỏ qua hoặc báo lỗi, dẫn đến âm thanh bị treo hoặc nhảy đọc. Mình từng dán đoạn script có emoji cà phê ☕ vào công cụ, kết quả giọng đọc im lặng trong hai giây rồi tiếp tục, nghe cực kỳ quái. Trong cộng đồng content creator Việt Nam, emoji 😂, 💯, 🔥 xuất hiện rất nhiều trong caption TikTok và Reels, nếu bạn không xử lý sạch script trước khi nén vào công cụ đọc văn bản bằng giọng nói ai, audio ra sẽ bị lỡ nhịp.
Mẹo là trước khi nén vào công cụ, bạn nên chạy đoạn văn bản qua chuẩn hóa Unicode, thay các ký tự đặc biệt bằng biểu tượng âm thanh tương ứng. Bước này có thể tiết kiệm nửa công việc chỉnh sửa sau này.
Cái bẫy thực tế mà mình từng vấp: số và ngày tháng
Lần trước làm video sự kiện ở Đà Nẵng, script ghi '15/03/2024'. Công cụ đọc ra như thế này: 'mười lăm slash không ba slash hai nghìn không trăm hai mươi bốn'. Nghe giống học sinh tiểu học đọc bài lên lớp. Hầu hết các máy đọc mặc định theo quy tắc đọc số của ngôn ngữ, nhưng tiếng Việt có cách đọc ngày tháng riêng, không phải công cụ nào cũng biết.
Cách khắc phục là trước khi nén vào công cụ, hãy viết số dưới dạng chữ: 'mười lăm tháng ba năm hai nghìn không trăm hai mươi bốn'. Đừng lười, bước này thủ công một lần hơn sau này chỉnh tham số mười lần.
Còn định dạng giờ, tiếng Việt ta nói 'tám giờ ba mươi', nhưng nếu bạn thả '8:30' vào công cụ, nó có thể đọc 'tám chấm ba mươi', một nghe là biết ngay là máy dịch. Mình đã từng mất mấy tiếng chỉnh lại toàn bộ video chỉ vì lỗi sai này, hy vọng các bạn không phải trải qua tương tự.
Tốc độ và âm cao không phải huyền bí, là toán học
Nhiều người cho rằng tăng tốc độ là 'sôi động', giảm tốc độ là 'trầm ổn', nhưng thực tế cách nghe khác rất nhiều. Mình từng thử cùng một đoạn tiếng Việt, tốc độ 1.0 nghe như đang chạy đua, 0.8 lại như người vừa tỉnh ngủ, khoảng 0.92 đến 0.95 mới gần với nhịp điệu nói chuyện hàng ngày của người Việt. Có điều, người miền Nam thường nói nhanh hơn người miền Bắc một chút, nếu bạn làm nội dung cho khán giả Sài Gòn, có thể tăng lên 0.96-0.98, còn với khán giả Hà Nội thì giữ nguyên 0.92 là vừa.
Âm cao càng phức tạp. Tiếng Việt câu khẳng định thường hạ giọng ở cuối, câu hỏi lại nâng giọng. Mình từng dùng Audacity đo đạc, câu hỏi tiếng Việt nâng cao khoảng 2-3 nửa tiếng, còn câu khẳng định hạ xuống 2-3 nửa tiếng. Những con số này không phải đoán, mà là so sánh với podcast bản địa. Bạn có phần mềm ghi âm trên tay, hãy tìm một đoạn người bản địa đọc rồi đối chiếu, rất nhanh sẽ tìm ra quy luật.
Dùng công cụ miễn phí để thực hiện chi tiết
Quy trình của mình hiện nay là: trước hết dùng chuyển văn bản thành giọng nói miễn phí trên trang web để sinh từng đoạn script đa ngôn ngữ, sau đó dùng nhân bản giọng nói miễn phí để tinh chỉnh giọng người chủ, cuối cùng mở hướng dẫn chi tiết để áp dụng bảng tham số tốc độ, âm cao, ngắt nghỉ một lần cho toàn bộ.
Toàn bộ chuỗi này không cần đăng ký, không giới hạn số lần gọi, thực sự là công cụ voice clone không cần đăng ký và chuyển văn bản thành giọng nói miễn phí vĩnh viễn, bạn thậm chí có thể lấy API nối vào đường ống tự động hóa. Nếu bạn cần tạo giọng nói miễn phí cho video bán hàng trên Shopee hay Lazada, hay muốn thử voice cloning tiếng việt mà không phải trả phí, quy trình này vừa nhanh vừa tiết kiệm.
Nhãn mác như lồng tiếng video bằng ai miễn phí, AI giọng nói miễn phí, hay tổng hợp giọng người thật miễn phí nghe rất đẹp, nhưng chỉ khi bạn mài mẻ đến bốn lớp chi tiết: ngạch ngữ, khoảng nghỉ, tiếng địa phương và bộ ký tự, sản phẩm cuối cùng mới có thể lừa được tai người nghe.
Đừng bỏ qua tính năng 'dấu hiệu cảm xúc' ẩn
Nhiều công cụ hỗ trợ thẻ SSML, nhưng đa số người dùng chẳng bao giờ đụng tới. Ví dụ, trong câu bạn chèn <emphasis level="strong"> để nhấn mạnh một từ, <break time="300ms"/> để kiểm soát khoảng nghỉ, điều này chính xác hơn nhiều so với chỉnh toàn cục.
Lần trước mình làm clip quảng cáo tiếng Pháp, từ 'incroyable' mình thêm khoảng nghỉ 200ms trước và sau, đồng thời đánh emphasis, khách nghe xong ngay hỏi có phải thu âm thật người không. Tính năng này không tốn tiền, nhưng trong tài liệu thường được đặt sâu, không mở cài đặt thì chẳng ai tìm ra.
FAQ
Tại sao tiếng Việt xen tiếng Anh lại đọc từng chữ cái?
Hầu hết mô hình mặc định phân tách theo một ngôn ngữ, khi gặp xen kẽ nó sẽ hiểu tiếng Anh là từng chữ cái và đọc theo cách máy. Cách khắc phục là trong script bạn dùng thẻ <lang=en> bao quanh đoạn tiếng Anh, hoặc tách tiếng Anh ra sinh âm thanh riêng rồi ghép lại.
Làm sao để tốc độ tiếng Việt không nghe giống máy?
Đặt thông số tốc độ trong khoảng 0.92-0.95, thêm dấu ngắt nghỉ 150-200 miligiây trước và sau câu dài, kết hợp giảm nhẹ âm cao ở cuối câu, cách nghe sẽ gần với người thật đọc.
Công cụ miễn phí có được dùng cho mục đích thương mại không?
Điều khoản của trang web rõ ràng cho phép sử dụng thương mại, miễn là bạn không phân phối lại trọng số mô hình. Bản quyền âm thanh sinh ra thuộc về người tạo ra.
Lần tới khi làm quảng cáo tiếng Việt, mình sẽ trước hết chỉnh tốc độ về 0.93, sau đó thêm khoảng nghỉ 180 miligi sau mỗi mệnh đề, rồi nghe lại một lần, chắc chắn sẽ không còn giống máy nữa.