Cho mình hỏi cách đọc văn bản Tiếng Việt trong Excel ạ (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

hoang_le11

Thành viên mới
Tham gia
21/8/18
Bài viết
6
Được thích
1
Chào các bạn. Cho mình hỏi là mình muốn VBA đọc văn bản Tiếng Việt trong Excel thì phải viết như nào ạ. Mình có file kèm theo nhưng chỉ đọc được Tiếng Anh thôi ạ. Mình đang dùng Excel 2016 bản 32 bit.
 

File đính kèm

Thế trong công ty bạn muốn người phát ngôn tiếng Anh, tiếng Việt, tiếng Hàn thì phải thế nào? Muốn văn bản được đọc (người phát ngôn?) bằng tiếng Việt thì bạn phải có người đọc biết tiếng Việt. Nếu trong công ty chỉ có người biết đọc tiếng Anh thì bó tay. Nếu trong công ty có 3 người biết đọc tiếng Anh, tiếng Việt, tiếng Hàn mà bạn muốn văn bản được đọc bằng tiếng Việt thì thế nào? Thì chọn cô biết tiếng Việt là người đọc văn bản MẶC ĐỊNH. Thế thôi.

Trong Windows cũng thế. Muốn có cô đọc tiếng Việt thì phải "tuyển" 1 cô đọc tiếng Việt và chọn cô đó là người đọc mặc định.

Khi tôi cài Windows thì tôi chỉ có 1 anh biết đọc tiếng Anh (XP Home), hoặc 3 vị (Windows 8 của tôi) biết tiếng Anh. Một vị đã được chọn mặc định. Tôi có thể chọn vị khác vì vị được chọn mặc định có giọng hơi the thé, tôi thích giọng ấm áp của cô thứ 2.

speech.PNG

Nếu muốn đọc tiếng Việt thì phải tự viết, nhờ viết, hoặc tải từ mạng về một anh hoặc cô nào đấy đọc tiếng Việt, rồi thêm vào system, và chọn cô đó, anh đó làm mặc định.

Mọi thông tin thêm tự đọc trên mạng.
 
Thế trong công ty bạn muốn người phát ngôn tiếng Anh, tiếng Việt, tiếng Hàn thì phải thế nào? Muốn văn bản được đọc (người phát ngôn?) bằng tiếng Việt thì bạn phải có người đọc biết tiếng Việt. Nếu trong công ty chỉ có người biết đọc tiếng Anh thì bó tay. Nếu trong công ty có 3 người biết đọc tiếng Anh, tiếng Việt, tiếng Hàn mà bạn muốn văn bản được đọc bằng tiếng Việt thì thế nào? Thì chọn cô biết tiếng Việt là người đọc văn bản MẶC ĐỊNH. Thế thôi.

Trong Windows cũng thế. Muốn có cô đọc tiếng Việt thì phải "tuyển" 1 cô đọc tiếng Việt và chọn cô đó là người đọc mặc định.

Khi tôi cài Windows thì tôi chỉ có 1 anh biết đọc tiếng Anh (XP Home), hoặc 3 vị (Windows 8 của tôi) biết tiếng Anh. Một vị đã được chọn mặc định. Tôi có thể chọn vị khác vì vị được chọn mặc định có giọng hơi the thé, tôi thích giọng ấm áp của cô thứ 2.

View attachment 233814

Nếu muốn đọc tiếng Việt thì phải tự viết, nhờ viết, hoặc tải từ mạng về một anh hoặc cô nào đấy đọc tiếng Việt, rồi thêm vào system, và chọn cô đó, anh đó làm mặc định.

Mọi thông tin thêm tự đọc trên mạng.
Tôi đã tìm rồi bạn. Trong windows 10 SL tôi đang sử dụng thì có anh An đọc tiếng Việt. Nhưng bên Office chưa tích hợp anh An vào nên không thể đọc. Tôi đã dò ra được là trong excel chỉ có 2 giọng đọc là 1 nam, 1 nữ và đều là tiếng Anh. Tôi cũng liên hệ bên Microsoft nhưng lâu quá không thấy trả lời. Tôi lên hỏi xem có ai biết addIn hoặc gì đó đại loại thế.
 
Có thể sử dụng Google translate_tts hoặc có thể sử dụng FPT API có hỗ trợ giọng nam nữ.


Dưới đây là hướng dẫn sử dụng Google translate_tts:

Hãy click vào link dưới để thử:
http://translate.google.com/translate_tts?ie=utf-8&client=tw-ob&tl=vi&q=bạn và giải pháp excel

http://translate.google.com/translate_tts?ie=utf-8&client=tw-ob&tl=zh-CN&q=你好,世界

translate_tts chỉ hỗ trợ tối đa gần 200 ký tự


Cách 1:

Sử dụng lệnh Shell mở Chrome, chrome mở đường dẫn:

Shell "chrome.exe ""http://translate.google.com/translate_tts?ie=utf-8&client=tw-ob&tl=vi&q=bạn và giải pháp excel""", vbHide
hoặc:
Shell "c:\...\chrome.exe ""http://translate.google.com/translate_tts?ie=utf-8&client=tw-ob&tl=vi&q=bạn và giải pháp excel""", vbHide
----------------------------

Mở Chrome ở chế độ debugging để tạo tiến trình Chrome mới và cài đặt Chrome và tìm Process để đóng:

chrome.exe --remote-debugging-port=9333 --window-position=-100,0 --window-size=50,50 --user-data-dir=" & VBA.IIf(VBA.Environ("tmp") <> "", VBA.Environ("tmp"), VBA.Environ("temp")) & "\gspeech"

----------------------------
Tắt các cài đặt của Chrome để tránh hao tổn RAM, cài đặt toàn bộ Arguments của chrome bằng cách:

chrome.exe --disable-accelerated-2d-canvas
chrome.exe --disable-accelerated-2d-canvas --disable-auto-reload ..................
(Có cả trăm Argument như vậy)
Toàn bộ Argument Tại đây

----------------------------
Chờ cho đến khi Google đọc xong, đóng Process của chrome trên bằng cách sử dụng WMI. Nếu không đóng thì RAM sẽ bị chiếm dụng liên tục.



'--------------------------------

Cách 2:
Mã hóa chuỗi cần đọc thành Link với hàm Application.EncodeURL

Thực hiện download đường dẫn lưu vào thư mục TEMP (Có trên diễn đàn)
File download về có tên translate_tts.mp3
Mở file Mp3 và kiểm soát quá trình phát với các Hàm API trong VBA. (Có trên diễn đàn)


**************************
Và một cách khác là lập trình sử dụng Google Text to speech API (Hỗ trợ đầy đủ nhất) vận dụng thư viện VBA Web trên github. (Rất khó và phức tạp)


(Không hỗ trợ thêm)
 
Có thể sử dụng Google translate_tts hoặc có thể sử dụng FPT API có hỗ trợ giọng nam nữ.


Dưới đây là hướng dẫn sử dụng Google translate_tts:

Hãy click vào link dưới để thử:
http://translate.google.com/translate_tts?ie=utf-8&client=tw-ob&tl=vi&q=bạn và giải pháp excel

http://translate.google.com/translate_tts?ie=utf-8&client=tw-ob&tl=zh-CN&q=你好,世界

translate_tts chỉ hỗ trợ tối đa gần 200 ký tự


Cách 1:

Sử dụng lệnh Shell mở Chrome, chrome mở đường dẫn:

Shell "chrome.exe ""http://translate.google.com/translate_tts?ie=utf-8&client=tw-ob&tl=vi&q=bạn và giải pháp excel""", vbHide
hoặc:
Shell "c:\...\chrome.exe ""http://translate.google.com/translate_tts?ie=utf-8&client=tw-ob&tl=vi&q=bạn và giải pháp excel""", vbHide
----------------------------

Mở Chrome ở chế độ debugging để tạo tiến trình Chrome mới và cài đặt Chrome và tìm Process để đóng:

chrome.exe --remote-debugging-port=9333 --window-position=-100,0 --window-size=50,50 --user-data-dir=" & VBA.IIf(VBA.Environ("tmp") <> "", VBA.Environ("tmp"), VBA.Environ("temp")) & "\gspeech"

----------------------------
Tắt các cài đặt của Chrome để tránh hao tổn RAM, cài đặt toàn bộ Arguments của chrome bằng cách:

chrome.exe --disable-accelerated-2d-canvas
chrome.exe --disable-accelerated-2d-canvas --disable-auto-reload ..................
(Có cả trăm Argument như vậy)
Toàn bộ Argument Tại đây

----------------------------
Chờ cho đến khi Google đọc xong, đóng Process của chrome trên bằng cách sử dụng WMI. Nếu không đóng thì RAM sẽ bị chiếm dụng liên tục.



'--------------------------------

Cách 2:
Mã hóa chuỗi cần đọc thành Link với hàm Application.EncodeURL

Thực hiện download đường dẫn lưu vào thư mục TEMP (Có trên diễn đàn)
File download về có tên translate_tts.mp3
Mở file Mp3 và kiểm soát quá trình phát với các Hàm API trong VBA. (Có trên diễn đàn)


**************************
Và một cách khác là lập trình sử dụng Google Text to speech API (Hỗ trợ đầy đủ nhất) vận dụng thư viện VBA Web trên github. (Rất khó và phức tạp)


(Không hỗ trợ thêm)
Anh làm thử vào file của bạn í được không ạ
 
Có thể sử dụng Google translate_tts hoặc có thể sử dụng FPT API có hỗ trợ giọng nam nữ.


Dưới đây là hướng dẫn sử dụng Google translate_tts:

Hãy click vào link dưới để thử:
http://translate.google.com/translate_tts?ie=utf-8&client=tw-ob&tl=vi&q=bạn và giải pháp excel

http://translate.google.com/translate_tts?ie=utf-8&client=tw-ob&tl=zh-CN&q=你好,世界

translate_tts chỉ hỗ trợ tối đa gần 200 ký tự


Cách 1:

Sử dụng lệnh Shell mở Chrome, chrome mở đường dẫn:

Shell "chrome.exe ""http://translate.google.com/translate_tts?ie=utf-8&client=tw-ob&tl=vi&q=bạn và giải pháp excel""", vbHide
hoặc:
Shell "c:\...\chrome.exe ""http://translate.google.com/translate_tts?ie=utf-8&client=tw-ob&tl=vi&q=bạn và giải pháp excel""", vbHide
----------------------------

Mở Chrome ở chế độ debugging để tạo tiến trình Chrome mới và cài đặt Chrome và tìm Process để đóng:

chrome.exe --remote-debugging-port=9333 --window-position=-100,0 --window-size=50,50 --user-data-dir=" & VBA.IIf(VBA.Environ("tmp") <> "", VBA.Environ("tmp"), VBA.Environ("temp")) & "\gspeech"

----------------------------
Tắt các cài đặt của Chrome để tránh hao tổn RAM, cài đặt toàn bộ Arguments của chrome bằng cách:

chrome.exe --disable-accelerated-2d-canvas
chrome.exe --disable-accelerated-2d-canvas --disable-auto-reload ..................
(Có cả trăm Argument như vậy)
Toàn bộ Argument Tại đây

----------------------------
Chờ cho đến khi Google đọc xong, đóng Process của chrome trên bằng cách sử dụng WMI. Nếu không đóng thì RAM sẽ bị chiếm dụng liên tục.



'--------------------------------

Cách 2:
Mã hóa chuỗi cần đọc thành Link với hàm Application.EncodeURL

Thực hiện download đường dẫn lưu vào thư mục TEMP (Có trên diễn đàn)
File download về có tên translate_tts.mp3
Mở file Mp3 và kiểm soát quá trình phát với các Hàm API trong VBA. (Có trên diễn đàn)


**************************
Và một cách khác là lập trình sử dụng Google Text to speech API (Hỗ trợ đầy đủ nhất) vận dụng thư viện VBA Web trên github. (Rất khó và phức tạp)


(Không hỗ trợ thêm)
Cảm ơn bạn đã hướng dẫn. Nhưng còn thấy khó quá. Tôi sẽ dần tìm hiểu và thử xem
 
Năm 2003 tôi từng bỏ ra nửa ngày để thử giúp em Excel 2000 nói tiếng Việt. Kết quả là đã khiến mẹ tôi phải lò dò đi quanh đàn máy tính để tìm xem đứa nào vừa kêu "Bác Nhân ơi sang đây chơi". Nguyên lý của tôi có chút ít tương đồng với cách phiên âm tiếng Việt kỳ lạ của tụi Tây trong cái hình sau:
anh-chup-man-hinh-2020-02-23-l-1944-3069-1584191865.png

Có nhiều người sẽ bĩu môi :{{ chê bai cái tiếng Việt lơ lớ này nhưng tôi dám cá là với nhiều anh chị sinh ở miền Nam nó còn dễ hiểu hơn tiếng Việt do các anh chị đồng hương nào đó giao tiếp với nhau. Ngay cả tôi dù nói được giọng địa phương cuả quê ngoại nhưng cũng chả dám tự tin "hiểu được trên 70%" nội dung giữa 2 người quê tôi nói với nhau.
 
Năm 2003 tôi từng bỏ ra nửa ngày để thử giúp em Excel 2000 nói tiếng Việt. Kết quả là đã khiến mẹ tôi phải lò dò đi quanh đàn máy tính để tìm xem đứa nào vừa kêu "Bác Nhân ơi sang đây chơi". Nguyên lý của tôi có chút ít tương đồng với cách phiên âm tiếng Việt kỳ lạ của tụi Tây trong cái hình sau:
View attachment 233849

Có nhiều người sẽ bĩu môi :{{ chê bai cái tiếng Việt lơ lớ này nhưng tôi dám cá là với nhiều anh chị sinh ở miền Nam nó còn dễ hiểu hơn tiếng Việt do các anh chị đồng hương nào đó giao tiếp với nhau. Ngay cả tôi dù nói được giọng địa phương cuả quê ngoại nhưng cũng chả dám tự tin "hiểu được trên 70%" nội dung giữa 2 người quê tôi nói với nhau.
Cảm ơn bạn nhiều nhé. Có lẽ hiện tại dùng cái này sẽ ổn (ko phức tạp vì code, chỉ khó vấn đề phiên âm)
 
Cảm ơn bạn nhiều nhé. Có lẽ hiện tại dùng cái này sẽ ổn (ko phức tạp vì code, chỉ khó vấn đề phiên âm)
Tiếc là tôi ngu tiếng Anh nên phải bỏ dở ý tưởng năm 2003.

Để giải vấn đề của bạn tương đối trọn vẹn, đơn giản nhất là kiếm một người nắm vững ký âm tiếng Anh ký âm lại từng từ đơn (tiếng). Tiếng Việt có mấy trăm ngàn từ nhưng được lắp ghép bởi khoảng 4000 từ đơn và chừng tầm 1000 từ đơn là phổ biến (tôi ước đoán).

Nếu thành công, bạn không chỉ giúp bọn Tây dễ dàng đọc tiếng Việt, mà còn giúp người Việt dễ học tiếng Anh nếu cách ký âm này được dùng tương đương chữ quốc ngữ hiện tại. (có khi thành công tới mức bị các anh yêu nước với tôn sùng truyền thống chửi cho mướt mặt :vava:)

Có nhiều vị rành chữ sẽ lý lẽ "chữ quốc ngữ ra đời bởi người Bồ Đào Nha nên hiển nhiên phải dùng dấu". Nhưng buồn cười thay Indonesia là thuộc địa của Bồ Đào Nha cả trăm năm thì họ chả cần thêm dấu nào mà vẫn diễn tả đầy đủ tiếng nói của họ bằng chữ latin. Tôi ví dụ :
Tiếng Inđô đã viết:
Bisakah Vietnam diungkapkan dengan hanya dua puluh lima karakter dasar?
Và các vị này sẽ tiếp tục chống chế tiếng Indô hổng có thanh điệu, luyến láy như tiếng Việt ta thế thì mời các vị nghe thử tiếng Inđô có thanh điệu gì trong đoạn clip này không nhé?
 
Tiếc là tôi ngu tiếng Anh nên phải bỏ dở ý tưởng năm 2003.

Để giải vấn đề của bạn tương đối trọn vẹn, đơn giản nhất là kiếm một người nắm vững ký âm tiếng Anh ký âm lại từng từ đơn (tiếng). Tiếng Việt có mấy trăm ngàn từ nhưng được lắp ghép bởi khoảng 4000 từ đơn và chừng tầm 1000 từ đơn là phổ biến (tôi ước đoán).

Nếu thành công, bạn không chỉ giúp bọn Tây dễ dàng đọc tiếng Việt, mà còn giúp người Việt dễ học tiếng Anh nếu cách ký âm này được dùng tương đương chữ quốc ngữ hiện tại. (có khi thành công tới mức bị các anh yêu nước với tôn sùng truyền thống chửi cho mướt mặt :vava:)

Có nhiều vị rành chữ sẽ lý lẽ "chữ quốc ngữ ra đời bởi người Bồ Đào Nha nên hiển nhiên phải dùng dấu". Nhưng buồn cười thay Indonesia là thuộc địa của Bồ Đào Nha cả trăm năm thì họ chả cần thêm dấu nào mà vẫn diễn tả đầy đủ tiếng nói của họ bằng chữ latin. Tôi ví dụ :
Và các vị này sẽ tiếp tục chống chế tiếng Indô hổng có thanh điệu, luyến láy như tiếng Việt ta thế thì mời các vị nghe thử tiếng Inđô có thanh điệu gì trong đoạn clip này không nhé?
:) Hiện tại tôi cũng bận việc nhà và việc cơ quan nên chưa dám nghĩ đến ý định làm việc lớn như vậy. Tôi nghĩ nếu bên mảng office của Microsoft tích hợp giọng đọc tiếng việt vào (như google đã làm) thì vấn đề của tôi sẽ dễ thôi. Hoặc là đã có mà tôi chưa tự làm được. Cũng có thắc mắc là bên windows 10 thì có giọng đọc tiếng Việt nhưng bên excel lại không. Nãy giờ tôi tìm cái file để dò tìm có những giọng đọc nào trong excel nhưng không thấy để đưa lên. Tôi có file này về bán hàng (Xin từ một kênh dạy VBA online) đưa ở đây để bạn nào có quan tâm thì xem thử. Còn đây là link hướng dẫn:
 

File đính kèm

Lần chỉnh sửa cuối:
Web KT

Bài viết mới nhất

Back
Top Bottom