ËÒ¡ÁÕ¤Ó¶ÒÁ ¢ÍãËéä»â¾Êµìŧ àÇ纺ÍÃì´¨Õ·Ù¨Õà¹çµ´Íµ¤ÍÁ µÑÇãËÁèá·¹¹èФÃѺ

ËÃ×͵ԴµèÍà¢éÒÁÒ·Ò§ Inbox ·Õè à¿«ºØê¤ ¼Á¤ÃѺ

˹éÒËÅÑ¡
¢èÒÇÊÒà - º·¤ÇÒÁ ·Ñé§ËÁ´
VB 6/VB.Net
ASP/ASP.Net
¨Ñº©èÒ¤ÍÁ¾ÔÇàµÍÃì
àÃÕ¹ÃÙé¼èÒ¹ Flash Movie
º·¤ÇÒÁ·ÕèÁÕ¼ÙéµÍºÅèÒÊØ´  
 RSS Feeds
 ´ÒǹìâËÅ´â»Ãá¡ÃÁ RSS Reader ä´é·Õè¹Õè ...   Download â»Ãá¡ÃÁ RSS Reader

Forum - www.g2gnet.com
Webmaster - www.g2gnet.com
Visitors - Session views
 5 6 1 6 1 7 1

7 ¸Ñ¹ÇÒ¤Á ¾.È.2549
126 Users On-Line.
Visitors - Page views
 8 9 7 3 9 1 4
1 ¡ØÁÀҾѹ¸ì ¾.È.2551

Google   
àÇçº g2gnet.com
¢¹Ò´µÑÇÍÑ¡ÉÃ:  

ᨡ¿ÃÕâ¤é´â»Ãá¡ÃÁ VB6 â»Ãá¡ÃÁªèÇÂÍèÒ¹¢éͤÇÒÁÀÒÉÒÍѧ¡ÄÉãËéà»ç¹àÊÕ§

Category »  VB 6/VB.Net
â´Â : Webmaster àÁ×èÍ 23/12/2553   àÇÅÒ: 09:28
(ÍèÒ¹ : 33688) 
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\ ¹èФÃѺ¼Á ... ¤Ô´ÇèÒ¤§äÁèÂÒ¡

 

´ÒǹìâËÅ´
´ÒǹìâËÅ´ Source Code ÊÓËÃѺ MS Visual Basic 6.0 - Service Pack 6
 ´ÒǹìâËÅ´ Visual Basic 6.0 SP5: Run-Time Redistribution Pack
 ´ÒǹìâËÅ´ Microsoft Data Access Object (MDAC) áÅÐ Jet 4.0 Update
 ´ÒǹìâËÅ´ Microsoft Visual Basic Service Pack 6

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áÅÐÍ×è¹æä´é ... ¡çÅͧ¹Óä»ãÊèµÔè§äÍà´Õ ¤Ô´æ´Ù¡Ñ¹àÍÒàͧÅèФÃѺ ... ¾Õè¹éͧ

¨Õ ·Ù ¨Õ à¹çµ ´Íµ ¤ÍÁ - g2gNet Dot Com
àÅ¢·ÐàºÕ¹¾Ò³ÔªÂìÍÔàÅç¡·Ã͹ԡÊì 0407314800231
CopyLeft © 2004 - 2099 g2gNet.Com All rights reserved.
Email: [email protected] ËÃ×Í â·Ã. 08-6862-6560