Is it possible to programmatically train the recognizer giving .wavs instead of talking to a microphone?
If so, How to do it?, currently I have the code that performs recognition on the audio in a 0.wav file and writes the recognized text to the console.
Imports System.IO Imports System.Speech.Recognition Imports System.Speech.AudioFormat Namespace SampleRecognition Class Program Shared completed As Boolean Public Shared Sub Main(ByVal args As String()) Using recognizer As New SpeechRecognitionEngine() Dim dictation As Grammar = New DictationGrammar() dictation.Name = "Dictation Grammar" recognizer.LoadGrammar(dictation) ' Configure the input to the recognizer. recognizer.SetInputToWaveFile("C:\Users\ME\v02\0.wav") ' Attach event handlers for the results of recognition. AddHandler recognizer.SpeechRecognized, AddressOf recognizer_SpeechRecognized AddHandler recognizer.RecognizeCompleted, AddressOf recognizer_RecognizeCompleted ' Perform recognition on the entire file. Console.WriteLine("Starting asynchronous recognition...") completed = False recognizer.RecognizeAsync() ' Keep the console window open. While Not completed Console.ReadLine() End While Console.WriteLine("Done.") End Using Console.WriteLine() Console.WriteLine("Press any key to exit...") Console.ReadKey() End Sub ' Handle the SpeechRecognized event. Private Shared Sub recognizer_SpeechRecognized(ByVal sender As Object, ByVal e As SpeechRecognizedEventArgs) If e.Result IsNot Nothing AndAlso e.Result.Text IsNot Nothing Then Console.WriteLine(" Recognized text = {0}", e.Result.Text) Else Console.WriteLine(" Recognized text not available.") End If End Sub ' Handle the RecognizeCompleted event. Private Shared Sub recognizer_RecognizeCompleted(ByVal sender As Object, ByVal e As RecognizeCompletedEventArgs) If e.[Error] IsNot Nothing Then Console.WriteLine(" Error encountered, {0}: {1}", e.[Error].[GetType]().Name, e.[Error].Message) End If If e.Cancelled Then Console.WriteLine(" Operation cancelled.") End If If e.InputStreamEnded Then Console.WriteLine(" End of stream encountered.") End If completed = True End Sub End Class End Namespace EDIT
I understand using the Training wizard is useful to do this
accomplished by Opening Speech Recognition,clicking Start button->Control Panel->Ease of Access->Speech Recognition
.
How to custom train the speech recognition with custom wav or even mp3 files?
When using Training wizard (Control Panel training UI) training files are stored in {AppData}\Local\Microsoft\Speech\Files\TrainingAudio.
How can I use or make a custom training instead of using Training wizard?
The Speech Control Panel creates registry entries for the training audio files in the key HKCU\Software\Microsoft\Speech\RecoProfiles\Tokens{ProfileGUID}{00000000-0000-0000-0000-0000000000000000}\Files
Do the registry entries created by code have to be placed in there?
The reason to do this is I want to custom train with my own wav files and list of words and phrases, then transfer all to other systems.