หากมีคำถาม ขอให้ไปโพสต์ลง เว็บบอร์ดจีทูจีเน็ตดอตคอม ตัวใหม่แทนน่ะครับ

หรือติดต่อเข้ามาทาง 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 5 9 1 6 9 5

7 ธันวาคม พ.ศ.2549
45 Users On-Line.
Visitors - Page views
 8 9 4 6 7 4 5
1 กุมภาพันธ์ พ.ศ.2551

Google   
เว็บ g2gnet.com
ขนาดตัวอักษร:  

แจกฟรีโค้ดโปรแกรม VB6 โปรแกรมช่วยอ่านข้อความภาษาอังกฤษให้เป็นเสียง

Category »  VB 6/VB.Net
โดย : Webmaster เมื่อ 23/12/2553   เวลา: 09:28
(อ่าน : 33511) 
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