Around and About .NET World

Il blog di Marco Minerva
posts - 1671, comments - 2232, trackbacks - 2135

My Links

News

Contattami su Live Messenger:


MCTS: Windows, Web, Distributed Applications & SQL Server

MCPD: Enterprise Applications

Tag Cloud

Archives

Post Categories

Links

Attenzione alla lingua del riconoscimento vocale

Qualche tempo fa avevo mostrato come realizzare un sistema di riconoscimento vocale basato su grammatiche utilizzando il .NET Framework 3.0. In quell'occasione ho dimenticato di fare una precisazione importante: per impostazione predefinita, quando si crea una grammatica essa utilizza sempre la cultura del sistema operativo; nel caso in cui essa sia  diversa da quella dei motori di riconoscimento installati (ad esempio Windows XP italiano con lo Speech API 5.1 SDK), nel momento in cui si esegue il metodo SpeechRecognitionEngine.LoadGrammar, si ottiene una InvalidOperationException perché La lingua della grammatica non corrisponde alla lingua del riconoscimento vocale. Per evitare questo problema, è necessario impostare manualmente la lingua della grammatica: 

1 using (SpeechRecognitionEngine sre = new SpeechRecognitionEngine()) 2 { 3 Choices choices = new Choices(); 4 choices.Add("One"); 5 choices.Add("Two"); 6 choices.Add("Turn on the light"); 7 choices.Add("Turn off the light"); 8 //Altri termini da riconoscere... 9 10 GrammarBuilder builder = choices.ToGrammarBuilder(); 11 builder.Culture = CultureInfo.GetCultureInfo("en-US"); 12 Grammar grammar = new Grammar(builder); 13 sre.LoadGrammar(grammar); 14 sre.SetInputToDefaultAudioDevice(); 15 16 RecognitionResult result = sre.Recognize(); 17 //"result.text" contiene il testo riconosciuto. 18 }

In questo esempio (riga 11) si specifica che la lingua della grammatica è l'inglese: essendo la stessa del motore di riconoscimento, il caricamento (riga 13) avviene ora senza problema, anche se il sistema operativo è in italiano.

Technorati Tags: , ,

Print | posted on Tuesday, April 22, 2008 12:02 AM | Filed Under [ C# .NET 3.0 ]

Comments have been closed on this topic.

Powered by:
Powered By Subtext Powered By ASP.NET