Yêu cầu thg 11 14, 2020 1:57 SA 631 0 1
  • 631 0 1
0

Cách cài đặt ngôn ngữ tiếng Việt cho Speech Synthesis?

Chia sẻ
  • 631 0 1

Mình dùng đoạn mã sau để đọc chữ

<div id="text-to-speech">Xin chào mọi người.</div>
<br/>
<button type="button" onclick="textToAudio()">Speak</button>
<script>

            function textToAudio() {
                let msg = document.getElementById("text-to-speech").value;
                
                let speech = new SpeechSynthesisUtterance();
                speech.lang = "vi-VN"; //code gốc là en-US
                
                speech.text = msg;
                speech.volume = 1;
                speech.rate = 1;
                speech.pitch = 1;
                
                window.speechSynthesis.speak(speech);
            }
</script>

Mình muốn hỏi cách cài đặt ngôn ngữ tiếng Việt Như thế nào. Vì dù mình cài speech.lang = "vi-VN"; nhưng FireFox (Desktop) thì luôn đọc tiếng Anh, còn nếu có cài speech.lang = "en-US"; thì Google Chrome (Android) vẫn đọc tiếng Việt giọng chị Gu gồ.

Những cài đặt khác như speech.rate bên trên thì ok, mình chọn giá trị 0.5 thì tốc độ chậm lại.

Vậy là sao ta?

Avatar Dr Dokkan @dokkan7
thg 11 14, 2020 7:21 SA

Qua tìm hiểu thêm thì mỗi browser và hệ điều hành có cách xử lý khác nhau. Firefox + Windows thì chỉ có 3 giọng nói (2 tiếng Anh và 1 tiếng Nhật) nên hiện thời nó sẽ chỉ nói tiếng Anh thôi. Firefox app +Android nói tiếng Việt, Firefox Lite app + Android không nói gì... Với Google Chrome thì rộng rãi hơn...Dường như trên Android nó bỏ qua property lang của SpeechSynthesisUtterance mà ưu tiên chọn ngôn ngữ trong Android Settings. MacOS và iOS thì chắc cũng có cách xử lý riêng nhưng có lẽ mỗi thằng một kiểu giống như "tao thích thì tao làm".

1 CÂU TRẢ LỜI


Đã trả lời thg 11 15, 2020 9:17 SA
+2

Trc mình có làm chức năng đọc này, ban đầu cũng dùng Speech Synthesis.
Sau đó cảm giác nó ko ổn định lắm.
Do mỗi trình duyệt sẽ khác nhau, và nhiều trình duyệt nó không hoạt động nữa.
Trên chrome cũng k ổn định lắm, nhiều khi nó bị cached nên nó bị hiểu là chunk sai lớn, nên đang đọc nó tự dừng lại nữa.
Bạn thử dùng qua dịch vụ của FPT AI xem. Mình dùng thấy khá ổn.

Chia sẻ
Avatar Dr Dokkan @dokkan7
thg 11 15, 2020 1:00 CH

Cảm ơn bạn.

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí