рд╕реА #, рдПрдХ рдХрдВрдкреНрдпреВрдЯрд░ рдпрд╛ System.Speech рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд

рд╣рд╛рд▓ рд╣реА рдореЗрдВ, рдореИрдВ, рдПрдХ C # рдкреНрд░реЛрдЧреНрд░рд╛рдорд░, рдореЗрд░реЗ рдХрдВрдЯреНрд░реЛрд▓ рдкреИрдирд▓ рдореЗрдВ рдкрд╛рдпрд╛ рдЧрдпрд╛ рдЬреИрд╕реЗ рдХрд┐ рд╕реНрдкреАрдЪ рд░рд┐рдХреЙрдЧреНрдирд┐рд╢рдиред рдореИрдВрдиреЗ рднрд╛рд╖рд╛ рдХреЛ рдЕрдВрдЧреНрд░реЗрдЬреА рдореЗрдВ рдмрджрд▓ рджрд┐рдпрд╛, рдЗрд╕реЗ рдЪрд╛рд▓реВ рдХрд░ рджрд┐рдпрд╛ рдФрд░ рдкреВрд░реА рд░рд╛рдд рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рдмрд╛рдд рдХреАред рд╕реБрдмрд╣ рдореИрдВрдиреЗ рдПрдХ рдХреИрд▓рдХреБрд▓реЗрдЯрд░ рд▓рд┐рдЦрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛, рдЬрд╝рд╛рд╣рд┐рд░ рд╣реИред .Net'ovskie рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдореЗрдВ рдлрдВрд╕рдиреЗ рдХреЗ рдмрд╛рдж System.Speech рдорд┐рд▓рд╛ред рдпрд╣ рдЖрд╢рд╛рдЬрдирдХ рд▓рдЧ рд░рд╣рд╛ рдерд╛ред

рдкреБрд╕реНрддрдХрд╛рд▓рдп рдореЗрдВ 3 рдирд╛рдо рд╕реНрдерд╛рди рдереЗ: рдЫрд╡рд┐
рдорд╛рдиреНрдпрддрд╛ рдФрд░ рднрд╛рд╖рдг рдХреЗ рд╕рдВрд╢реНрд▓реЗрд╖рдг рдХреЗ рд▓рд┐рдП, рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдХреБрдЫ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдХреЗ рд▓рд┐рдП рднреА рдирд╣реАрдВ ред

рд╕рдВрд╢реНрд▓реЗрд╖рдг


рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╕рд┐рдВрдереЗрд╕рд┐рд╕ рд╕реЗ рдирд┐рдкрдЯреЗрдВ, рд╕реНрдкреАрдХ рдмрдЯрди рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдиреЛрдЯрдкреИрдб рд▓рд┐рдЦреЗрдВ:
рдкреНрд░рдкрддреНрд░ рдореЗрдВ textBoxText, рдФрд░ buttonSpeak рдЬреЛрдбрд╝реЗрдВред рдХреЛрдб рдореЗрдВ, System.Speech.Synthesis рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ, рдФрд░ рдлреЙрд░реНрдо рдореЗрдВ рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдПрдВ

SpeechSynthesizer ss = new SpeechSynthesizer();

рд╣рдо рдмрдЯрди рдкрд░ рд╣реИрдВрдбрд▓рд░ рд▓рдЯрдХрд╛рддреЗ рд╣реИрдВ, рдЗрд╕рдореЗрдВ рд╡рд╛рдХреНрдпрд╛рдВрд╢ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдб рд╣реИ:

ss.Volume = 100;// 0 100
ss.Rate = 0;// -10 10
ss.SpeakAsync(textBoxText.Text);


рд╡реИрд╕реЗ, рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдкрдврд╝рдиреЗ рдХреЗ рджреМрд░рд╛рди, рдЖрдк рдЧрддрд┐ рдФрд░ рдорд╛рддреНрд░рд╛ рдХреЛ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдк рд╕рд┐рд░реНрдл рд╕реНрдкреАрдХ () рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рдкреВрд░рд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдкрдврд╝рддреЗ рд╣реБрдП рд╣реА рд▓рдЯрдХ рдЬрд╛рддрд╛ рд╣реИред рдЕрдм рдлреЙрд░реНрдо рдореЗрдВ рдПрдХ рдФрд░ рдмрдЯрди рдЬреЛрдбрд╝реЗрдВ, SaveToWavред рдпрд╣рд╛рдВ рд╣рдо рдЪрдордХ рдФрд░ рдЧрддрд┐ рдХреЛ рднреА рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдмреЛрд▓рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ () рд╣рдо ss.SetOutputToWaveFile (/ * рдлрд╝рд╛рдЗрд▓ рдкрде * /) рд▓рд┐рдЦрддреЗ рд╣реИрдВ;
рдЕрдм рдордЬрд╝реЗрджрд╛рд░ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд▓рд┐рдП:

рдорд╛рдиреНрдпрддрд╛


рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЗ рдкрд╛рд╕ рдЕрдВрдЧреНрд░реЗрдЬреА рдореЗрдВ рд╡рд┐рдВрдбреЛрдЬ 7 / рд╡рд┐рд╕реНрдЯрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП

System.Speech.Recognition рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ, рдФрд░ рдлреЙрд░реНрдо рдореЗрдВ рдЪрд░ рдШреЛрд╖рд┐рдд рдХрд░реЗрдВ:

private SpeechRecognitionEngine sr;

рдЕрдм рдлреЙрд░реНрдо рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдореЗрдВ рдХреЛрдб рдХреА рдХреБрдЫ рдФрд░ рдЕрд╕реНрдкрд╖реНрдЯ рд▓рд╛рдЗрдиреЛрдВ рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдПрдБ:

sr.SetInputToDefaultAudioDevice();//
GrammarBuilder grammarBuilder = new GrammarBuilder();
grammarBuilder.Append(new Choices("left", "right", "up", "down"));//
sr.UnloadAllGrammars();
sr.LoadGrammar(Grammar(grammarBuilder));// ""
sr.SpeechRecognized += new EventHandler<SpeechRecognizedEventArgs>(SpeechRecognized);//
sr.RecognizeAsync(RecognizeMode.Multiple);//


рднрд╛рд╖рдг рдШрдЯрдирд╛ рдореЗрдВ рд╣рдо рд▓рд┐рдЦрддреЗ рд╣реИрдВ:

MessageBox.Show("Recognized phrase: " + e.Result.Text);

рдЕрдм, рдЬрдм рдПрдХ рд╡рд┐рд╢рд╛рд▓ рд░реВрд╕реА рдЙрдЪреНрдЪрд╛рд░рдг рдХреЗ рдмрд┐рдирд╛, "рдмрд╛рдПрдВ", "рд╕рд╣реА", "рдКрдкрд░", "рдиреАрдЪреЗ" рд╡рд╛рдХреНрдпрд╛рдВрд╢реЛрдВ рдХрд╛ рдЙрдЪреНрдЪрд╛рд░рдг рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╕рдВрдмрдВрдзрд┐рдд рд╕рдВрджреЗрд╢ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдк рдмрд╣реБрдд рдЬреЛрд░ рджреЗрддреЗ рд╣реИрдВ, рддреЛ рд╣рдорд╛рд░рд╛ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХрдИ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ рдкрд╣рдЪрд╛рдирддрд╛ рд╣реИред рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ SpeechHypothesized рдЗрд╡реЗрдВрдЯ рд╣реИред рдЗрд╕рдХрд╛ рд╣реИрдВрдбрд▓рд░ рдЬреЛрдбрд╝реЗрдВ:

sr.SpeechHypothesized += new EventHandler<SpeechHypothesizedEventArgs>(recognizer_SpeechHypothesized);

рд╣рдо рдЗрд╕рдореЗрдВ рд╕рдВрджреЗрд╢ рднреА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВрдЧреЗ:

MessageBox.Show("Hypothesized phrase: " + e.Result.Text);

рдЕрдм рд╣рдорд╛рд░рд╛ рдХрд╛рд░реНрдпрдХреНрд░рдо рджрд┐рдП рдЧрдП рдЖрджреЗрд╢реЛрдВ рдХреЛ рдкрд╣рдЪрд╛рди рд╕рдХрддрд╛ рд╣реИ, рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЕрдЪреНрдЫрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХрднреА-рдХрднреА рдРрд╕реЗ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдХрдорд╛рдВрдб рд╣реЛрддреЗ рд╣реИрдВ, рдпрд╛ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд╡реЗ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, "рдЯреИрдм рдирдВрдмрд░ рдкрд╛рдВрдЪ рдЦреЛрд▓реЗрдВ"), рдпрд╛ рд╣рдо рдзреНрд╡рдирд┐ рдирд┐рдпрдВрддреНрд░рдг рдХреЗ рд╕рд╛рде рдиреЛрдЯрдкреИрдб рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ ...
рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдЖрдкрдХреЛ рдПрдХ рдЕрдиреНрдп рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ:

private DictationGrammar dictationGrammar;

рдФрд░ рдирд┐рд░реНрдорд╛рддрд╛ рдореЗрдВ:

dictationGrammar = new DictationGrammar();
sr.LoadGrammar(dictationGrammar);


рдЕрдм рд╣рдорд╛рд░рд╛ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХрд┐рд╕реА рднреА рдЕрдВрдЧреНрд░реЗрдЬреА рдкрд╛рда рдХреЛ рдкрд╣рдЪрд╛рди рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рдлреНрд░реЗрдВрдЪ, рд╕реНрдкреЗрдирд┐рд╢, рдЬрд░реНрдорди, рдЬрд╛рдкрд╛рдиреА рдФрд░ рдЪреАрдиреА рдХреЗ рд▓рд┐рдП рднреА рдЙрдкрд▓рдмреНрдз рд╣реИред рд▓реЗрдХрд┐рди рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдореИрдВ рдЙрдиреНрд╣реЗрдВ рдирд╣реАрдВ рдмреЛрд▓рддрд╛ (

PS рдореБрдЭреЗ рдпрд╛рдж рджрд┐рд▓рд╛рдПрдВ рдХрд┐ рдЖрдкрдХреЛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдЕрдВрдЧреНрд░реЗрдЬреА рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЕрдиреНрдпрдерд╛ рдПрдХ рд╡реНрдпрд╛рдХрд░рдг рд╢рдмреНрджрдХреЛрд╢ рдирд╣реАрдВ рдмрдирд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛!

Source: https://habr.com/ru/post/In125432/


All Articles