Text To Speech Synthesis ËÃ×Í àÃÕ¡ÂèÍæÇèÒ TTS ¤Ó¨Ó¡Ñ´¤ÇÒÁÊÑ鹿¡ç¤×Í ¡ÒÃá»Å§¢éͤÇÒÁà»ç¹¤Ó¾Ù´ ... «Öè§·Ò§µèÒ§»ÃÐà·Èà¢Ò¡ç¾Ñ²¹Ò¡Ñ¹ÁÒä¡ÅÁÒ¡â¢áÅéÇ Ë¹èǧҹÀÒ¤ÃѰ¢Í§ä·Â ¡çÇԨѡѹÁҹѺÊÔº»Õ ... ÊèǹÀÒ¤àÍ¡ª¹¢Í§ä·Â¡çÁÕºéÒ§ áµèäÁèÁÒ¡¹Ñ¡ ... ¹ÕèàÅ ... µéͧ仴٢ͧµèÒ§»ÃÐà·È·ÕèÊÒÁÒöÍèÒ¹¤ÓÀÒÉÒä·Âä´é¹èФÃѺ www.oddcast.com ¼Á¤Ô´ÇèÒµéͧÁÕ¤¹ä·ÂÃèÇÁ¾Ñ²¹Ò´éÇÂá¹èæ áËÁ ÍÂÒ¡ÃÙé¨Ñ¡¨ÃÔ§æàÅÂà¹Õè àÃÕ¡ä´éÇèÒÊØ´ÂÍ´ÁÒ¡æ ... ·Õè¨ÃÔ§áÅéÇ¡ÒÃÍèÒ¹¢éͤÇÒÁÀÒÉÒÍѧ¡ÄÉã¹ Windows XP ¡ç¨ÐÁÕÍÂÙèáÅéÇ·Õè Start -> Programs -> Accessories -> Accessibility -> Narrator ËÃ×Íä»´Ù·Õè Control Panel -> Speech áµè¡çÍÂèÒ§ÇèÒáËÅФÃѺ àÃҡ礧ãªé§Ò¹Áѹà·èÒ·ÕèÁѹ¨Ð·Óä´é à¾ÃÒеéͧ»ÃÐÂØ¡µìãªé»ÃÐ⪹ì¢Í§ TTS ´éÇ¡ÒÃà¢Õ¹â»Ãá¡ÃÁ¢Öé¹ÁÒãªé§Ò¹àͧ ¹Í¡à˹×Í仨ҡ¡Ò÷ÕèÊÒÁÒö¹ÓÁÒãªéã¹·Ò§¡ÒÃÈÖ¡ÉÒä´éáÅéÇ ¡çÂѧÁÕ»ÃÐ⪹ìãËé¡Ñº¡ÅØèÁ¼Ùé¾Ô¡Ò÷ҧÊÒµÒä´éÍÕ¡ ËÃ×Í ãªé㹸ØÃ¡Ô¨áººÃкºµÍºÃѺ´éÇÂàÊÕ§ áÅÐ ¡ÒÃÊÑè§§Ò¹´éÇÂàÊÕ§ ÏÅÏ ... áµèº·¤ÇÒÁ¹Õé¨Ð¹ÓàʹÍá¹Ç¤Ô´¢Í§¡ÒûÃÐÂØ¡µìãªéà·¤â¹âÅÂÕ à¾×èÍãªéà»ç¹Ê×èÍã¹´éÒ¹¡ÒÃàÃÕ¹ ¡ÒÃÊ͹ÀÒÉÒÍѧ¡ÄÉ´éÇ MS Visual Basic 6.0/SP6 ¹èФÃѺ |
¡è͹·Õè¨Ðãªé§Ò¹ TTS ã¹ VB6 ä´é ¤Ø³µéͧ·Ó¡ÒôÒǹìâËÅ´ä¿Åì áÅÐ µÔ´µÑé§à¢éÒä»ã¹à¤Ã×èͧ¡è͹
¡ÒõԴµÑé§ä¿ÅìµèÒ§æ ¤èÒ Default ¨Ð»ÃÒ¡¯·Õè C:\Windows\Speech\ ¹èФÃѺ¼Á ... ¤Ô´ÇèÒ¤§äÁèÂÒ¡
Project --> Components ... Microsoft Direct Text-To-Speech
 Project --> References ... ¾ÍàÅ×Í¡ Component àÃÕºÃéÍ ä¿ÅìµÑǹÕéÁѹ¨Ðà¢éÒÁÒãËé·Ñ¹·ÕÍѵâ¹ÁѵÔ
 ¡ÒÃÍ͡Ẻ - Design Time
 µÍ¹ÊÑè§ãËéâ»Ãá¡ÃÁ·Ó§Ò¹ (Run Time) ... àÊÕ§·Õè»ÃÒ¡¯ à¢ÒÁÕª×èÍÇèÒ Microsoft Sam
 ¡ÒÃáÊ´§·Ñé§¢éͤÇÒÁ ÃÙ»ÀÒ¾ áÅÐ àÊÕ§ ... ÊÒÁÒö¹Óä»»ÃÐÂØ¡µìãªéãËé¡Ñºà´ç¡æàÃÕ¹ÃÙéàÃ×èͧ¢Í§¤ÓÈѾ·ìä´éÍÂèÒ§´ÕàÂÕèÂÁàÅ ...
ÁÒ´Ùâ¤é´¡Ñ¹à¶ÍÐ ...
Option Explicit
' #####################################################
' ¡´»ØèÁ CommandButton áµèÅеÑÇ
' #####################################################
Private Sub cmdShowPicture_Click(Index As Integer)
txtMessage.Visible = False
' àÅ×Í¡ Index µÒÁ»ØèÁ CommandButton ·Õè¡´
Select Case Index
' Dog
Case 0:
Call SpeakEnglish(cmdShowPicture(0).Caption)
' Cat
Case 1:
Call SpeakEnglish(cmdShowPicture(1).Caption)
' Pig
Case 2:
Call SpeakEnglish(cmdShowPicture(2).Caption)
' Ambulance
Case 3:
Call SpeakEnglish(cmdShowPicture(3).Caption)
End Select
End Sub
' #####################################################
' ¡Ò÷ӧҹ¤ÅéÒ¡ѹ «éӡѹ á¡ÍÍ¡ÁÒà»ç¹â»Ãá¡ÃÁÂèÍ«èÐ´Õæ
' â´ÂÊ觤èÒ Caption ¢Í§»ØèÁ¤ÓÊÑè§áµèÅеÑÇÁÒ
' #####################################################
Sub SpeakEnglish(cmdName As String)
Dim ctl As Control
' µÃǨÊͺ¡è͹ÇèÒÁÕ¡ÒÃÊÃéÒ§ Image áÅÐ Label Control ËÃ×ÍÂѧ ËÒ¡ÁÕãËéźÍÍ¡ä»
For Each ctl In Controls
If ctl.Name = "imageTemp" Then
Controls.Remove "imageTemp"
Controls.Remove "LabelTemp"
Exit For
End If
Next
' »ÃСÒÈãªé§Ò¹µÑÇá»Ã Image Control áÅÐ Label Control
Dim img As Image
Dim lbl As Label
' ¡ÒÃÊÃéÒ§ Image Control Ẻ Run Time
Set img = Controls.Add("VB.Image", "imageTemp")
' µÑ駤èҤسÊÁºÑµÔ (Properties) Ẻ Run Time
With img
' ¨Ñ´ÇÒ§µÓá˹觷ҧÁØÁ«éÒº¹ÊØ´
.Move 60, 90
.Visible = True
End With
' ¡ÒÃÊÃéÒ§ Label Control Ẻ Run Time
Set lbl = Controls.Add("VB.Label", "LabelTemp")
' µÑ駤èҤسÊÁºÑµÔ (Properties) Ẻ Run Time
With lbl
' ¨Ñ´ÇÒ§µÓá˹觵ÑÇÍÑ¡ÉÃ㹡ÒÃáÊ´§¼Å
.Move 60, sldSpeed.Top - 800
.Font.Name = "Tahoma"
.Font.Size = 16
.FontBold = True
' »ÃѺãËé¾Í´Õ¡Ñº¢éͤÇÒÁ
.AutoSize = True
' »ÃѺãËéÁբͺẺ Fixed Single
.BorderStyle = 1
' ÊÕµÑÇÍÑ¡ÉÃ
.ForeColor = vbRed
' ÊÕ¾×é¹ËÅѧ
.BackColor = vbYellow
.Visible = True
End With
' àÅ×Í¡ÃÒ¡ÒõÒÁ»éÒ (Caption) ¢Í§»ØèÁ¡´ (CommandButton) áµèÅеÑÇ
Select Case LCase(cmdName)
Case "dog"
img.Picture = LoadPicture(App.Path & "\images\dog.jpg")
lbl.Caption = "THEY ARE THE DOGS."
Case "cat"
img.Picture = LoadPicture(App.Path & "\images\cat.jpg")
lbl.Caption = "IT IS A CAT."
Case "pig"
img.Picture = LoadPicture(App.Path & "\images\pig.jpg")
lbl.Caption = "PIG, MOO NOI NOI."
Case "ambulance"
img.Picture = LoadPicture(App.Path & "\images\ambulance.jpg")
lbl.Caption = "THIS IS AN AMBULANCE."
End Select
' à¤ÅÕÂÃìàÊÕ§à´ÔÁ¡è͹ à¾ÃÒÐÍÒ¨ÁÕàÊÕ§à´ÔÁ¤éÒ§äÇéÍÂÙè
dssSpeak.AudioReset
' àÃÔèÁÍèÒ¹µÒÁ¢éͤÇÒÁã¹ Caption ¢Í§ Label Control
dssSpeak.Speak lbl.Caption
End Sub
' #####################################################
' ¨ÐÍèÒ¹»ÃÐ⤵ÒÁ·ÕèÍÂÙèã¹ TextBox Control (txtMessage)
' #####################################################
Private Sub cmdSpeakMessage_Click()
txtMessage.Visible = True
' à¤ÅÕÂÃìàÊÕ§à´ÔÁ¡è͹ à¾ÃÒÐÍÒ¨ÁÕàÊÕ§à´ÔÁ¤éÒ§äÇéÍÂÙè
dssSpeak.AudioReset
' àÃÔèÁÍèÒ¹µÒÁ¢éͤÇÒÁã¹ TextBox
dssSpeak.Speak txtMessage.Text
End Sub
' #####################################################
' àÃÔèÁµé¹¡Ò÷ӧҹ áÅÐ ÊÒ¸Ôµ¡ÒõÑ駤èҤسÊÁºÑµÔ¢Í§ Control Ẻ Run Time
' #####################################################
Private Sub Form_Load()
Me.Move (Screen.Width - Width) \ 2, (Screen.Height - Height) \ 2
' ¡ÒõÑ駤èҤسÊÁºÑµÔ¢Í§ Control Ẻ Run Time
With dssSpeak
.MaxPitch = 200
.MinPitch = 50
.Pitch = 100
.MaxSpeed = 450
.MinSpeed = 30
.Speed = 150
End With
' µÑ駤èÒ Speed SliderBar ãËéµÃ§¡Ñº Speed ¢Í§ DirectSS
With sldSpeed
.Max = 450
.Min = 30
.Value = 150
End With
' µÑ駤èÒ Pitch SliderBar ãËéµÃ§¡Ñº Pitch ¢Í§ DirectSS
With sldPitch
.Max = 200
.Min = 50
.Value = 100
End With
' ¡Ó˹´»ÃÐâ¤ãËé¡Ñº TextBox áÅÐÁÕà¤Ã×èͧËÁÒ ¤ÍÁÁèÒ , ¨Ð·ÓãËéËÂØ´ÃÍÊÑ¡¤ÃÙè
txtMessage.Text = "Hello world, my name is thongkorn."
End Sub
' #####################################################
' »ÃѺÃдѺàÊÕ§
' #####################################################
Private Sub sldPitch_Change()
dssSpeak.Pitch = sldPitch.Value
End Sub
' #####################################################
' »ÃѺ¤ÇÒÁàÃçÇàÊÕ§
' #####################################################
Private Sub sldSpeed_Change()
dssSpeak.Speed = sldSpeed.Value
End Sub
Private Sub cmdExit_Click()
' à¤ÅÕÂÃìàÊÕ§à´ÔÁ¡è͹ à¾ÃÒÐÍÒ¨ÁÕàÊÕ§à´ÔÁ¤éÒ§äÇéÍÂÙè
dssSpeak.AudioReset
' â»Ãá¡ÃÁàÁÍÃì¢ÕéàÅè¹ áÅÐ ¢ÕéàÁÒ 55555+
dssSpeak.Speak "Ja Joob, Program, chai maii, ha ha ha"
'dssSpeak.Speak "Ja Joob, Program, Click OK, ha ha ha"
If MsgBox("¤Ø³á¹èã¨ÇèÒµéͧ¡Ò躡Ò÷ӧҹ¢Í§â»Ãá¡ÃÁ ?", vbQuestion + _
vbOKCancel + vbDefaultButton2, "Â×¹Âѹ¡Òèºâ»Ãá¡ÃÁ") = vbOK Then
Set frmTextToSpeech = Nothing
End
End If
End Sub
|
Conclusion: ¹Õèà»ç¹á¤è¡ÒùÓàʹͺҧàÊÕéÂÇ ºÒ§µÍ¹à·èÒ¹Ñé¹àͧ¹èФÃѺ à¼×èͤÃÙ ÍÒ¨ÒÃÂì·èҹ㴷ÕèÊ͹ÀÒÉÒÍѧ¡ÄÉÍÂÙè ¨Ðä´éÁÕäÍà´Õ»Ôê§¡ÃЩٴ ¹Óä»»ÃÐÂØ¡µìãªé 㹡ÒèѴ·ÓÊ×èÍ¡ÒÃàÃÕ¹ ¡ÒÃÊ͹ ãËéà´ç¡æä·ÂàÃÒä´é¾Ñ²¹Ò·Ñ¡ÉÐ ·Ñé§´éÒ¹¡Òÿѧ ¡ÒÃÍèÒ¹ ·Ñé§´éÒ¹¤ÓÈѾ·ì ËÃ×ÍÍ×è¹æÍÕ¡ ... «Öè§ËÒ¡¨Ð¾Ñ²¹ÒãËé´Õ¡ÇèÒ¹Õé ¡ç¤§µéͧÈÖ¡ÉÒ àÃÕ¹ÃÙéÃкº°Ò¹¢éÍÁÙÅ (DataBase) à¢éÒÁÒ´éÇ à¾×èͪèǨѴà¡çº¢éÍÁÙŤÓÈѾ·ì ¤Ó͸ԺÒ µÓá˹è§à¡çºÃÙ»ÀÒ¾ µÓá˹觡ÒÃà¡çºàÊÕ§á»Å (¡çÍÑ´àÊÕ§¨Ò¡·Õè¹Õèä»àÅ www.oddcast.comáÅÐÍ×è¹æä´é ... ¡çÅͧ¹Óä»ãÊèµÔè§äÍà´Õ ¤Ô´æ´Ù¡Ñ¹àÍÒàͧÅèФÃѺ ... ¾Õè¹éͧ
|