Sunday, June 22, 2008

Using your voice, you can control a key board.


Aim of this project
Using your voice, you can control a key board.

Main Title: Voice Recognition
Project: Voice controlled key board
Developer: Md. Redwanur Rahman
Location: Dhaka, Bangladesh.
Date: 15 November, 2007

I am here to share idea with other.

Operation of this Project
You have to say first “Start” then Start menu will open. Then say left or right. You may say up or down to control cursor position also and then say “Open” or “Ok”. After open a MS word file say “A” to write A. Like this, you can control your key board. This project has some limitations for some accent problem like I or E.

Program Details

Start Here…………………………………
Dim Temp As Variant
Private Const KEYEVENTF_EXTENDEDKEY = &H1
Private Const KEYEVENTF_KEYUP = &H2
Private Const VK_Backspace = &H8
Private Const VK_Tab = &H9
Private Const VK_Shift = &H10
Private Const VK_Control = &H11
Private Const VK_Alter = &H12
Private Const VK_Pause = &H13
Private Const VK_CapsLock = &H14
Private Const VK_Return = &HD
Private Const VK_Lshift = &HA0
Private Const VK_Rshift = &HA1
Private Const VK_Rcontrol = &HA
Private Const VK_Escape = &H1B
Private Const VK_Space = &H20
Private Const VK_End = &H23
Private Const VK_Home = &H24
Private Const VK_Left = &H25
Private Const VK_Up = &H26
Private Const VK_Right = &H27
Private Const VK_Down = &H28
Private Const VK_Insert = &H2D
Private Const VK_Delete = &H2E
Private Const VK_1 = &H61
Private Const VK_2 = &H62
Private Const VK_3 = &H63
Private Const VK_4 = &H64
Private Const VK_5 = &H65
Private Const VK_6 = &H66
Private Const VK_7 = &H67
Private Const VK_8 = &H68
Private Const VK_9 = &H69
Private Const VK_help = &H70 '''any help file open
Private Const VK_0 = &H60
Private Const VK_a = &H41
Private Const VK_b = &H42
Private Const VK_c = &H43
Private Const VK_d = &H44
Private Const VK_e = &H45
Private Const VK_f = &H46
Private Const VK_g = &H47
Private Const VK_h = &H48
Private Const VK_i = &H49
Private Const VK_j = &H4A
Private Const VK_k = &H4B
Private Const VK_l = &H4C
Private Const VK_m = &H4D
Private Const VK_n = &H4E
Private Const VK_o = &H4F
Private Const VK_p = &H50
Private Const VK_q = &H51
Private Const VK_r = &H52
Private Const VK_s = &H53
Private Const VK_t = &H54
Private Const VK_u = &H55
Private Const VK_v = &H56
Private Const VK_w = &H57
Private Const VK_x = &H58
Private Const VK_y = &H59
Private Const VK_z = &H5A
Private Const VK_star = &H6A '*
Private Const VK_plus = &H6B '+
Private Const VK_sub = &H6D '-
Private Const VK_dot = &H6E '.
Private Const VK_b_sls = &H6F '/

Private Declare Sub keybd_event Lib "user32.dll" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)

Private Type NOTIFYICONDATA
cbSize As Long
hwnd As Long
uId As Long
uFlags As Long
uCallBackMessage As Long
hIcon As Long
szTip As String * 64
End Type
Private Const WM_MOUSEMOVE = &H200
Private Const WM_LBUTTONDOWN = &H201 'Button down
Private Const WM_LBUTTONUP = &H202 'Button up
Private Const WM_LBUTTONDBLCLK = &H203 'Double-click
Private Const WM_RBUTTONDOWN = &H204 'Button down
Private Const WM_RBUTTONUP = &H205 'Button up
Private Const WM_RBUTTONDBLCLK = &H206 'Double-click
Private Declare Function Shell_NotifyIcon Lib "shell32" Alias "Shell_NotifyIconA" (ByVal dwMessage As Long, pnid As NOTIFYICONDATA) As Boolean

Private nid As NOTIFYICONDATA

Private Sub Form_Load()
Dim FileN As String
FileN = App.Path & "commands.txt"
SR.Deactivate
SR.GrammarFromFile FileN
SR.Activate
SR.AutoGain = 99
CMD_List
End Sub

Private Sub SR_PhraseFinish(ByVal flags As Long, ByVal beginhi As Long, ByVal beginlo As Long, ByVal endhi As Long, ByVal endlo As Long, ByVal Phrase As String, ByVal parsed As String, ByVal results As Long)

Debug.Print Phrase
If Trim(Phrase) = "" Then
Exit Sub
Else
Text2.Text = Trim(Phrase)
SelMSG (Phrase)
Process_Message (Trim(Phrase))
End If
End Sub

Function Process_Message(Msg As String)
Select Case (UCase(Msg))
Case ("CLOSE")
Call Close_window
Case ("START")
Call Start
Case ("UP")
keybd_event VK_Up, 0, 0, 0 'Key Press
keybd_event VK_Up, 0, KEYEVENTF_KEYUP, 0 'Key Unpress
Case ("DOWN")
keybd_event VK_Down, 0, 0, 0
keybd_event VK_Down, 0, KEYEVENTF_KEYUP, 0
Case ("LEFT")
keybd_event VK_Left, 0, 0, 0
keybd_event VK_Left, 0, KEYEVENTF_KEYUP, 0
Case ("RIGHT")
keybd_event VK_Right, 0, 0, 0
keybd_event VK_Right, 0, KEYEVENTF_KEYUP, 0
Case ("OPEN")
keybd_event VK_Return, 0, 0, 0
keybd_event VK_Return, 0, KEYEVENTF_KEYUP, 0
Case ("OK")
keybd_event VK_Return, 0, 0, 0
keybd_event VK_Return, 0, KEYEVENTF_KEYUP, 0
Case ("ONE")
keybd_event VK_1, 0, 0, 0
keybd_event VK_1, 0, KEYEVENTF_KEYUP, 0
Case ("TWO")
keybd_event VK_2, 0, 0, 0
keybd_event VK_2, 0, KEYEVENTF_KEYUP, 0
Case ("THREE")
keybd_event VK_3, 0, 0, 0
keybd_event VK_3, 0, KEYEVENTF_KEYUP, 0
Case ("FOUR")
keybd_event VK_4, 0, 0, 0
keybd_event VK_4, 0, KEYEVENTF_KEYUP, 0
Case ("FIVE")
keybd_event VK_5, 0, 0, 0
keybd_event VK_5, 0, KEYEVENTF_KEYUP, 0
Case ("SIX")
keybd_event VK_6, 0, 0, 0
keybd_event VK_6, 0, KEYEVENTF_KEYUP, 0
Case ("SEVEN")
keybd_event VK_7, 0, 0, 0
keybd_event VK_7, 0, KEYEVENTF_KEYUP, 0
Case ("EIGHT")
keybd_event VK_8, 0, 0, 0
keybd_event VK_8, 0, KEYEVENTF_KEYUP, 0
Case ("NINE")
keybd_event VK_9, 0, 0, 0
keybd_event VK_9, 0, KEYEVENTF_KEYUP, 0
Case ("ZERO")
keybd_event VK_0, 0, 0, 0
keybd_event VK_0, 0, KEYEVENTF_KEYUP, 0
Case ("A")
keybd_event VK_a, 0, 0, 0
keybd_event VK_a, 0, KEYEVENTF_KEYUP, 0
Case ("B")
keybd_event VK_b, 0, 0, 0
keybd_event VK_b, 0, KEYEVENTF_KEYUP, 0
Case ("C")
keybd_event VK_c, 0, 0, 0
keybd_event VK_c, 0, KEYEVENTF_KEYUP, 0
Case ("D")
keybd_event VK_d, 0, 0, 0
keybd_event VK_d, 0, KEYEVENTF_KEYUP, 0
Case ("E")
keybd_event VK_e, 0, 0, 0
keybd_event VK_e, 0, KEYEVENTF_KEYUP, 0
Case ("F")
keybd_event VK_f, 0, 0, 0
keybd_event VK_f, 0, KEYEVENTF_KEYUP, 0
Case ("G")
keybd_event VK_g, 0, 0, 0
keybd_event VK_g, 0, KEYEVENTF_KEYUP, 0
Case ("H")
keybd_event VK_h, 0, 0, 0
keybd_event VK_h, 0, KEYEVENTF_KEYUP, 0
Case ("I")
keybd_event VK_i, 0, 0, 0
keybd_event VK_i, 0, KEYEVENTF_KEYUP, 0
Case ("J")
keybd_event VK_j, 0, 0, 0
keybd_event VK_j, 0, KEYEVENTF_KEYUP, 0
Case ("k")
keybd_event VK_k, 0, 0, 0
keybd_event VK_k, 0, KEYEVENTF_KEYUP, 0
Case ("L")
keybd_event VK_l, 0, 0, 0
keybd_event VK_l, 0, KEYEVENTF_KEYUP, 0
Case ("M")
keybd_event VK_m, 0, 0, 0
keybd_event VK_m, 0, KEYEVENTF_KEYUP, 0
Case ("N")
keybd_event VK_n, 0, 0, 0
keybd_event VK_n, 0, KEYEVENTF_KEYUP, 0
Case ("O")
keybd_event VK_o, 0, 0, 0
keybd_event VK_o, 0, KEYEVENTF_KEYUP, 0
Case ("P")
keybd_event VK_p, 0, 0, 0
keybd_event VK_p, 0, KEYEVENTF_KEYUP, 0
Case ("Q")
keybd_event VK_q, 0, 0, 0
keybd_event VK_q, 0, KEYEVENTF_KEYUP, 0
Case ("R")
keybd_event VK_r, 0, 0, 0
keybd_event VK_r, 0, KEYEVENTF_KEYUP, 0
Case ("S")
keybd_event VK_s, 0, 0, 0
keybd_event VK_s, 0, KEYEVENTF_KEYUP, 0
Case ("T")
keybd_event VK_t, 0, 0, 0
keybd_event VK_t, 0, KEYEVENTF_KEYUP, 0
Case ("U")
keybd_event VK_u, 0, 0, 0
keybd_event VK_u, 0, KEYEVENTF_KEYUP, 0
Case ("V")
keybd_event VK_v, 0, 0, 0
keybd_event VK_v, 0, KEYEVENTF_KEYUP, 0
Case ("W")
keybd_event VK_w, 0, 0, 0
keybd_event VK_w, 0, KEYEVENTF_KEYUP, 0
Case ("X")
keybd_event VK_x, 0, 0, 0
keybd_event VK_x, 0, KEYEVENTF_KEYUP, 0
Case ("Y")
keybd_event VK_y, 0, 0, 0
keybd_event VK_y, 0, KEYEVENTF_KEYUP, 0
Case ("Z")
keybd_event VK_z, 0, 0, 0
keybd_event VK_z, 0, KEYEVENTF_KEYUP, 0
Case ("CAPS")
keybd_event VK_CapsLock, 0, 0, 0
keybd_event VK_CapsLock, 0, KEYEVENTF_KEYUP, 0
Case ("BACK")
keybd_event VK_Backspace, 0, 0, 0
keybd_event VK_Backspace, 0, KEYEVENTF_KEYUP, 0
Case ("GAP")
keybd_event VK_Space, 0, 0, 0
keybd_event VK_Space, 0, KEYEVENTF_KEYUP, 0
Case ("EXIT")
End
End Select
End Function

Public Sub Start()
keybd_event VK_Control, 0, 0, 0
keybd_event VK_Escape, 0, 0, 0
keybd_event VK_Down, 0, 0, 0
keybd_event VK_Control, 0, KEYEVENTF_KEYUP, 0
keybd_event VK_Escape, 0, KEYEVENTF_KEYUP, 0
keybd_event VK_Down, 0, KEYEVENTF_KEYUP, 0
End Sub

Public Sub Close_window()
keybd_event VK_Alter, 0, 0, 0
keybd_event VK_F4, 0, 0, 0
keybd_event VK_Alter, 0, KEYEVENTF_KEYUP, 0
keybd_event VK_F4, 0, KEYEVENTF_KEYUP, 0
End Sub

Function CMD_List()
Dim TxT As String, Temp As String
Open App.Path & "commands.txt" For Input As #1
Do Until EOF(1)
Line Input #1, TxT
Temp = Left(TxT, 8)
If Temp = "{{Start}}=" Then
TxT = Mid(TxT, 9, Len(TxT))
List1.AddItem TxT
End If
Loop
Close #1
End Function
Function SelMSG(Msg As String)
Dim Temp As String
Dim i As Integer
For i = 0 To List1.ListCount
Temp = List1.List(i)
If Trim(UCase(Temp)) = Trim(UCase(Msg)) Then
List1.ListIndex = i
Exit Function
End If
Next
End Function

End Here…………………………………

Need Fille :Command.txt

[Grammer]
Type=Cfg

[{{Start}}]

{{Start}}=Start
{{Start}}=Open
{{Start}}=Ok
{{Start}}=Close
{{Start}}=Exit
{{Start}}=Up
{{Start}}=Down
{{Start}}=Left
{{Start}}=Right
{{Start}}=One
{{Start}}=Two
{{Start}}=Three
{{Start}}=Four
{{Start}}=Five
{{Start}}=Six
{{Start}}=Seven
{{Start}}=Eight
{{Start}}=Nine
{{Start}}=Zero
{{Start}}=A
{{Start}}=B
{{Start}}=C
{{Start}}=D
{{Start}}=E
{{Start}}=F
{{Start}}=G
{{Start}}=H
{{Start}}=I
{{Start}}=J
{{Start}}=K
{{Start}}=L
{{Start}}=M
{{Start}}=N
{{Start}}=O
{{Start}}=P
{{Start}}=Q
{{Start}}=R
{{Start}}=S
{{Start}}=T
{{Start}}=U
{{Start}}=V
{{Start}}=W
{{Start}}=X
{{Start}}=Y
{{Start}}=Z
{{Start}}=Caps
{{Start}}=Gap
{{Start}}=Back

For help email me: redu0007@yahoo.com

Conclusion: Some people in our world have some sorrow. """"With out hand how can we control a Computer?"""" Because of that I tried to do some.

No comments: