:sad: Hello guys,
This is my first topic in this forum..
I need your help, I am trying to develop an Arabic voice recognition application using vb 6, does anyone know the code or what add on I should download, I am a total beginner…

((All I want it to do is to recognise my voice and type the letters or words I say in both languages Arabic and English))

Thanks

Recommended Answers

All 19 Replies

When you say "all I want it to do" seriously trivializes what you want to do. I built a program that does voice recognition, but you have to make sure that you install the microsoft voice recognition software, and after that, you have to "train" the voice recognition software (it takes some kind of algorithm with your voice and sets itself to function based on the way you talk). I believe the sdk is: http://www.microsoft.com/downloads/details.aspx?familyid=7D13964C-06FD-4BF9-B49C-814FAA6A86EA&displaylang=en
once you get what you need installed and running, let me know, and I can give you the code I used.

Hey Comatose,
Thanks for your fast reply, I already have speech sdk 5.1 installed on my pc will this do? or do i have to install sapi4 sdk???

I was researching it, and I don't remember which I used.... but here is the source:
Loading the app, complains that I'm missing: Xlisten.dll, Xvoice.dll, and Xcommand.dll, so I'm not sure which of those voice recognitions have those files...

in form_load:

Hear1.GrammarFromString "[Grammar]" + vbNewLine + _
                          "type=cfg" + vbNewLine + _
                          "[<start>]" + vbNewLine + _
                          "<start>=Firefox" + vbNewLine + _
                          "<start>=Comatose" + vbNewLine + _
                          "<start>=Visual Basic" + vbNewLine + _
                          "<start>=Calculator" + vbNewLine + _
                          "<start>=Play Pop" + vbNewLine + _
                          "<start>=Close" + vbNewLine + _
                          "<start>=Minimize" + vbNewLine + _
                          "<start>=Maximize" + vbNewLine + _
                          "<start>=Switch" + vbNewLine + _
                          "<start>=Check Mail" + vbNewLine + _
                          "<start>=Thank You" + vbNewLine + _
                          "<start>=Thunderbird" + vbNewLine + _
                          "<start>=Mozilla" + vbNewLine + _
                          "<start>=Yes" + vbNewLine + _
                          "<start>=No" + vbNewLine + _
                          "<start>=Good Night" + vbNewLine + _
                          "<start>=Send Enter" + vbNewLine + _
                          "<start>=Stop Running" + vbNewLine
Hear1.Activate

And here is the hear1's Phrase Finish (slightly modified for personal reasons):

Private Sub Hear1_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)
Select Case Phrase
    Case "Firefox"
        ShellExecute Me.hWnd, "open", "firefox.exe", "", "C:\", SW_MAXIMIZE
    Case "Calculator"
        ShellExecute Me.hWnd, "open", "calc.exe", "", "C:\", SW_MAXIMIZE
    Case "Play Pop"
        ShellExecute Me.hWnd, "open", "pop3.exe", "", "c:\", SW_MAXIMIZE
    Case "Close"
        SendKeys "%{F4}"
    Case "Minimize"
        SendKeys "% n"
    Case "Maximize"
        SendKeys "% x"
    Case "Switch"
        SendKeys "%{TAB}"
    Case "ThunderBird"
        ShellExecute Me.hWnd, "open", "thunderbird.exe", "", "c:\", SW_MAXIMIZE
    Case "Mozilla"
        ShellExecute Me.hWnd, "open", "firefox.exe", "", "c:\", SW_MAXIMIZE
        ShellExecute Me.hWnd, "open", "thunderbird.exe", "", "c:\", SW_MAXIMIZE
    Case "Yes"
        If Question = "thunderbird" Then
            DoEvents
            ShellExecute Me.hWnd, "open", "thunderbird.exe", "", "c:\", SW_MAXIMIZE
            Question = "null"
        End If
    Case "No"
        If Question = "thunderbird" Then
            Question = "null"
        End If
    Case "Good Night"
        SendMessage Me.hWnd, WM_SYSCOMMAND, SC_MONITORPOWER, MONITOR_OFF
   Case "Send Enter"
        SendKeys "{ENTER}"
    Case "Stop Running"
        For Each XFrm In Forms
            Unload XFrm
        Next XFrm
    Case Else
End Select
End Sub

Thanks a lot, you are a life saver...I will try this code

This is the code I used, something is wrong with it..
-----------------------------------------
Private Sub DirectSR1_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)

If Phrase = "baa" Then
Text1.Text = Chr$(199)
End If
End Sub
Private Sub Form_Load()

DirectSR1.GrammarFromString "[Grammar]" + vbNewLine + _
"type=cfg" + vbNewLine + _
"[<start>]" + vbNewLine + _
"<start>=one,1" + vbNewLine + _
"<start>=baa" + vbNewLine + _
"<start>=jeem" + vbNewLine + _
"<start>=four" + vbNewLine + _
"<start>=five" + vbNewLine + _
"<start>=six" + vbNewLine + _
"<start>=seven" + vbNewLine + _
"<start>=eight" + vbNewLine + _
"<start>=nine" + vbNewLine + _
"<start>=ten" + vbNewLine + _
"<start>=A" + vbNewLine + _
"<start>=B" + vbNewLine + _
"<start>=C" + vbNewLine + _
"<start>=D" + vbNewLine + _
"<start>=E" + vbNewLine + _
"<start>=F" + vbNewLine + _
"<start>=G" + vbNewLine + _
"<start>=H" + vbNewLine + _
"<start>=I" + vbNewLine + _
"<start>=J" + vbNewLine + _
"<start>=K" + vbNewLine
DirectSR1.Activate
End Sub

-------------------
i need to add more letters and numbers, but this code is limited, it allows you to define a limited number of characters
and i don't want to add a new line everytime, can I type characters one after the other to form words???

The example I gave uses words, but yes it is very limited, because you have to define all the words you want it to recognize.

Thanks comatose,

I tried your code (changed it a bit) and it worked..

the only problem is that the letters or words appear on top of the previous word, is there a way to make all the words appear next to each other???

are you meaning like sentences? Or are you meaning like in the declaration? (show me an example of what you mean.

I managed to make this part work, I can spell sentences now.. Thanks man..

Do you know how I can change the property of the text field to allow text to be written from right to left, it is locked, I try to change it to true but it sets itself back to false.

this is really stupid, because the righttoleft property IS indeed locked. In order to get the result that I believe you desire, you'll have to set the textbox's Alignment property to 1 (right justify) instead of the righttoleft property. If this isn't the desired outcome, let me know.

it fixed part of the problem, now the text appears from right to left, but the text is still written from left to right

written where? perhaps I'm lost on what you are trying to do exactly..

Sorry, it is my fault I can't explain things clearly..Let me try again
okay what I am trying to do is..When I speak the words in Arabic language which is written from right to left they should appear in the text box as sentences, what happens now is that the Arabic text appears from right to left but the sentence order is not correct, it is still from left to right... does this make sense??

I am nearly done with this project...

yeah,

What you'll want to do, is where you make it update the textbox, in the phrasefinish (or wherever you have it modify the textbox) it would look something like this:

Text1.Text = newspokenwordvariable & Text1.Text

Does that help?

Thanks a million it worked :)

you are the best

;) thanx.

I have a app for voice transcription (dictation) and use SAPI 4 and xlisten.dll. I need read a recorded audio file. But, I don´t undestand how a use InitAudioSourceObject in VB 6. This is way for a read the recorded file e transcibe to text ? Help me, please.

hye... i'm one of the newbie here.. can some one help me on get started with developing voice recognition using vb? currently i'm doing this topic as my final year project.. plzz..i need a guide as soon as possible..

is there anyone have xcommand.dll file to download it

Please PM me or send it to me i need it to finish my work

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.