• Vui lòng đọc nội qui diễn đàn để tránh bị xóa bài viết
  • Tìm kiếm trước khi đặt câu hỏi

Phát âm văn bản tiếng Việt với Vnspeech.dll

Các thủ thuật về âm thanh, đồ họa, truyền thông đa phương tiện...
Hình đại diện của người dùng
truongphu
VIP
VIP
Bài viết: 4756
Ngày tham gia: CN 04/11/2007 10:57 am
Đến từ: Cam Đức, Khánh hòa
Has thanked: 14 time
Been thanked: 509 time

Phát âm văn bản tiếng Việt với Vnspeech.dll

Gửi bàigửi bởi truongphu » T.Ba 25/05/2010 9:02 pm

Thủ thuật: Phát âm văn bản tiếng Việt với Vnspeech.dll
Tác giả: Sưu tầm + truongphu
Mô tả: Phát âm văn bản tiếng Việt với Vnspeech.dll


Điều kiện bản quyền
Sản phẩm được xây dựng bởi Phòng Công nghệ Phần mềm (Softex) - Trung tâm Công nghệ Vi điện tử và Tin học,
Viện Ứng dụng Công nghệ - Bộ Khoa học và Công nghệ.
Phòng 413, C6 Thanh Xuân Bắc – Hà nội.
Tel. (04) 8547476; 0913079877

Việc sử dụng VNSpeech phải tuân thủ theo các quy định của tác giả:
- Phiên bản VnSpeech này được cung cấp để sử dụng cho mục đích học tập, nghiên cứu, không sử dụng cho các mục đích thương mại.
- Khi tích hợp với ứng dụng của bạn, đề nghị thêm dòng sau vào mục “About” của bạn: “Sử dụng thư viện Tổng hợp tiếng nói VnSpeech của Softex”
Nếu không tán thành các điều kiện trên, xin hãy xoá thư viện này khỏi máy của bạn.


phần mềm nầy tôi viết bổ sung để hoạt động trên font Unicode (gốc TCVN3)

Module:
  1. Declare Function VietTTS Lib "VNSPEECH.DLL" (ByVal test As String) As Integer
  2.  
  3. ''''''''''''''''''''' Phâ`n Code trong VBLib
  4. Public Const CF_UNICODETEXT As Long = 13
  5. Public Declare Function OpenClipboard Lib "user32.dll" (ByVal hWnd As Long) As Long
  6. Public Declare Function CloseClipboard Lib "user32.dll" () As Long
  7. Public Declare Function GetClipboardData Lib "user32.dll" (ByVal wFormat As Long) As Long
  8. Public Declare Function IsClipboardFormatAvailable Lib "user32.dll" (ByVal wFormat As Long) As Long
  9. Public Declare Function lstrcpy Lib "kernel32.dll" Alias "lstrcpyW" (ByVal lpString1 As Long, ByVal lpString2 As Long) As Long
  10. Public Declare Function GlobalLock Lib "kernel32.dll" (ByVal hMem As Long) As Long
  11. Public Declare Function GlobalUnlock Lib "kernel32.dll" (ByVal hMem As Long) As Long
  12. Public Declare Function GlobalSize Lib "kernel32" (ByVal hMem As Long) As Long
  13.  
  14. Public Function Get_clipboard() As String
  15.     Dim myStrPtr As Long, myLen As Long, myLock As Long, myData As String
  16.     OpenClipboard 0&
  17.     If IsClipboardFormatAvailable(CF_UNICODETEXT) = 0 Then MsgBox "Clipboard Text is not available now": Exit Function
  18.     myStrPtr = GetClipboardData(CF_UNICODETEXT)
  19.     If myStrPtr = 0 Then
  20.         MsgBox "Failed to get Clipboard Text"
  21.     Else
  22.         myLock = GlobalLock(myStrPtr)
  23.         myLen = GlobalSize(myStrPtr)
  24.         myData = String$(myLen \ 2 - 1, vbNullChar)
  25.         lstrcpy StrPtr(myData), myLock
  26.         GlobalUnlock myStrPtr
  27.     End If
  28.     CloseClipboard
  29.     Get_clipboard = myData
  30. End Function
  31.  
  32. ' code unitoabc truongphu
  33. Public Function UNItoABC(str$) As String
  34. Dim i&, arrABC() As String, sabc$, ABC$, uni$, STT
  35. ABC = "¸@µ@¶@·@¹@¨@¾@»@¼@½@Æ@©@Ê@Ç@È@É@Ë@Ð@Ì@Î@Ï@Ñ@ª@Õ@Ò@Ó@Ô@Ö@Ý@×@Ø@Ü@Þ@ã@ß@á@â@ä@«@è@å@æ@ç@é@¬@í@ê@ë@ì@î@ó@ï@ñ@ò@ô@­@ø@õ@ö@÷@ù@ý@ú@û@ü@þ@®@¸@µ@¶@·@¹@¡@¾@»@¼@½@Æ@¢@Ê@Ç@È@É@Ë@Ð@Ì@Î@Ï@Ñ@£@Õ@Ò@Ó@Ô@Ö@Ý@×@Ø@Ü@Þ@ã@ß@á@â@ä@¤@è@å@æ@ç@é@¥@í@ê@ë@ì@î@ó@ï@ñ@ò@ô@¦@ø@õ@ö@÷@ù@ý@ú@û@ü@þ@§"
  36. uni = "02259224784302277841025978557857785978617863022678457847784978517853023302327867786978650234787178737875787778790237023678810297788302430242788702457885024478897891789378957897041778997901790379057907025092497911036179090432791379157917791979210253792379277929792502730225022478430227784102587855785778597861786301947845784778497851785302330232786778697865020278717873787578777879023702367881029778830243024278870245788502127889789178937895789704167899790179037905790702500249791103617909043179137915791779197921025379237927792979250272"
  37. arrABC = Split(ABC, "@")
  38. For i = 1 To Len(str$)
  39. If InStr(uni, AscW(Mid(str$, i, 1))) > 0 And AscW(Mid(str$, i, 1)) > 127 Then
  40. STT = InStr(uni, AscW(Mid(str$, i, 1))) \ 4
  41.  sabc = sabc & arrABC(STT)
  42.  Else
  43.  sabc = sabc & Mid(str$, i, 1)
  44.  End If
  45. Next
  46. UNItoABC = sabc
  47. End Function
  48.  


Form:
cần Text1, TextBox1 (form 2.0) và 3 command1, 2, 3
  1.  
  2. Private Sub Command1_Click()
  3.     Dim rev As Integer
  4.     rev = VietTTS(Text1.Text)
  5. End Sub
  6.  
  7. Private Sub Command2_Click()
  8.     TextBox1 = ""
  9. End Sub
  10.  
  11. Private Sub Command3_Click()
  12.     On Error Resume Next
  13.     Open App.Path & "vb.txt" For Binary As #1
  14.         Put #1, , Trim$(StrConv(Get_clipboard, vbUnicode))
  15.     Close #1
  16.    Set FSO = CreateObject("Scripting.FileSystemObject").OpenTextFile(App.Path & "vb.txt", 1, , -2)
  17.    TextBox1 = FSO.Readall
  18. ' Ðua unicode tu Clipboard lên textbox thât khó, qua nhiê`u công Ðoan
  19. ' truongphu, có le~ se~ viê't gon lai
  20. End Sub
  21.  
  22. Private Sub Form_Unload(Cancel As Integer)
  23.     On Error Resume Next
  24.     Kill App.Path & "vb.txt"
  25.     Kill App.Path & "\AbbrDic.txt"
  26. End Sub
  27.  
  28. Private Sub Text1_Change()
  29.     If Len(Text1.Text) > 0 Then
  30.         Command1.Enabled = True
  31.     Else
  32.         Command1.Enabled = False
  33.     End If
  34. End Sub
  35.  
  36. Private Sub TextBox1_Change()
  37.     Text1 = UNItoABC(TextBox1)
  38. End Sub
  39.  


Project đính kèm có thư viện Vnspeech.dll

VietText To Speech.rar
(273.96 KiB) Đã tải 4265 lần


o0o--truongphu--o0o

.........
Ghé thăm:
Chuyện Linh Tinh

Hình đại diện của người dùng
float01
Thành viên năng nổ
Thành viên năng nổ
Bài viết: 97
Ngày tham gia: T.Ba 31/08/2010 2:46 pm
Has thanked: 20 time
Been thanked: 9 time

Re: Phát âm văn bản tiếng Việt với Vnspeech.dll

Gửi bàigửi bởi float01 » T.Tư 27/04/2011 7:29 pm

Tưởng là sử dụng thư viện VSpeech.dll chứ. Mà bác làm luôn ví dụ = thư viện VSpeech.dll đi. Thư viện VnSpeech.dll chỉ đọc thôi phải ko.


Quay về “[VB] Âm thanh và Đồ họa”

Đang trực tuyến

Đang xem chuyên mục này: Không có thành viên nào trực tuyến.1 khách