none
Reconhecimento de voz RRS feed

  • Pergunta

  • Olá pessoal eu estava seguindo uns tutoriais sobre reconhecimento de voz, mas todos me retornam um erro assim:

     

    PlatformNotSupportedException was unhandled

     

    No recognizer is installed.

     

    este erro fica indicando onde eu coloco no codigo para que o som vem do microfone

    _recognizer.SetInputToDefaultAudioDevice();

     

    se alguem puder me ajudar agradeço.


    Bruno Garcia Analista Sistemas Junior
    segunda-feira, 24 de janeiro de 2011 16:19

Respostas

  • SISTEMAS OPERACIONAIS SUPORTADOS PELO SPEECH
    • Windows XP Professional or Home editions; all language versions.
    • Windows.NET Server editions; all language versions.
    • Microsoft Windows 2000 Professional Workstation or Server; all language versions.
    • Microsoft Windows Millennium edition.
    • Microsoft Windows 98 all editions.
    • Microsoft Windows ® NT Workstation or Server 4.0, service pack 6a, English, Japanese, or Simplified Chinese edition.
    • Windows 95 ou anterior nao suportado.

     

    Obs: Leia a documentação do pacote.

     

    Inicie uma aplicação em WPF no Visual Studio ou no Blend, adicione um TextBlock, e forneça o nome TxtVoz, feito isso, vá em REFERENCE e adicione SYSTEM.SPEECH.   

    Agora, adicione os seguinte NAMESPACE :

    using System.Speech.Recognition;

    using System.Globalization;

    using System.Threading;

     

     

    Crie o objeto para a gramática:  protected object grammar = new object ();

     

    No objeto gramática terá algumas palavras, que ao falar será reconhecida e adicionada no TextBlock. Agora dentro do construtor  adicionamos o evento LOADED, segue o exemplo: 

     

     

        public Window1() {

            InitializeComponent();

            Loaded += Window1_Loaded;

    }


    void Window1_loaded(object sender, RoutedEventArgs e)

     

            {

     

                Thread .CurrentThread.CurrentCulture = new CultureInfo (“en-GB” );

                Thread .CurrentThread.CurrentUICulture = new CultureInfo (“en-GB” );

     

     

                SpeechRecognitionEngine _recognizer = new SpeechRecognitionEngine ();

     

    // criando o objeto da classe SpeechRecognitionEngine

     

                _recognizer.SpeechRecognized +=new EventHandler <SpeechRecognizedEventArgs >(_recognizer_SpeechRecognized);

               

     

    // Este block dentro da thread indica para o objeto pegar o som que vem do microfone

                Thread t1 = new Thread (delegate ()

                {

     

                    _recognizer.SetInputToDefaultAudioDevice();

     

                });

     

               //  o lock é uma palavra reservada que marca uma seção crítica, executa e só depois libera.

             // Repare dentro do LoadGrammar, que eu coloque algumas palavras, o vocabulário.              

                   

                lock (grammar)

                {

                    t1.Start();

                    _recognizer.UnloadAllGrammars();

                    _recognizer.LoadGrammar(new Grammar (new GrammarBuilder (new Choices (“left” , “close” ,“green” ))));

                }

                _recognizer.RecognizeAsync(RecognizeMode .Multiple); // Esta   codigo ativa o reconhecimento

       }

     

    E por fim:

     

      void _recognizer_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)

        {

            txtVoz.Text = e.Result.Text;    // Simplesmente pega a fala e joga dentro do Texto.

        }

    • Marcado como Resposta bruno.garcia quinta-feira, 27 de janeiro de 2011 13:11
    quinta-feira, 27 de janeiro de 2011 12:56

Todas as Respostas

  • Olha Bruno,

     

    não sei se resolve mais se vc tem o dot net 4.0 instalado

    e da esse erro..

    tente instalar o 3.5 tambem.

    ou visse versa se tiver o 3.5 instale o 4.0

    ou vc ja fez o teste??

    • Sugerido como Resposta Alfredo Godoi terça-feira, 1 de fevereiro de 2011 17:50
    segunda-feira, 24 de janeiro de 2011 17:27
  • vou tentar fazer isso

     

     


    Bruno Garcia Analista Sistemas Junior
    segunda-feira, 24 de janeiro de 2011 17:28
  • Tenho os dois instalados e continua o mesmo erro

     

    ah eu esqueci de falar que na minha maquina é windows 7

     

    se tiver uma outra dica do que pode ser agradeço.


    Bruno Garcia Analista Sistemas Junior
    segunda-feira, 24 de janeiro de 2011 17:34
  • Tambem ja tentou rodar a aplicação..

    conectadando em todas as entradas de microfone??

     

    segunda-feira, 24 de janeiro de 2011 17:53
  • vou tentar

    Bruno Garcia Analista Sistemas Junior
    segunda-feira, 24 de janeiro de 2011 18:31
  • não deu certo

    Bruno Garcia Analista Sistemas Junior
    segunda-feira, 24 de janeiro de 2011 18:38
  • Segundo a documentação, este método da classe SpeechRecognitionEngine do .NET Framework diz que ela só suporta Fulltrust.

    Se o problema for configuração tente este kb: http://support.microsoft.com/kb/306537/pt-br

    segunda-feira, 24 de janeiro de 2011 18:46
  • O que seria esse Fulltrust.

    Bruno Garcia Analista Sistemas Junior
    terça-feira, 25 de janeiro de 2011 09:25
  • http://blogs.microsoft.co.il/blogs/maxim/archive/2008/03/05/wpf-xbap-as-full-trust-application.aspx
    terça-feira, 25 de janeiro de 2011 09:51
  • Dei umas olhadas por ai e vi que pelo meu windows estar em portugues naum tem reconhecimento de voz para ele em painel de controle.

    VOu dar mais umas olhadas.

    Se vc tiver alguma dica pra mim agradeço.


    Bruno Garcia Analista Sistemas Junior
    terça-feira, 25 de janeiro de 2011 10:14
  • Bruno acho que é por ai mesmo talvez seja pelo windows ser portugues e o reconhecimento de voz é ingles

    teria que fazer um teste... tambem...

    se souber de mais alguma coisa sobre posto aqui

     

     

    terça-feira, 25 de janeiro de 2011 10:17
  • vou verirficar

    e respondo aki


    Bruno Garcia Analista Sistemas Junior
    terça-feira, 25 de janeiro de 2011 10:22
  • achei esse link falando sobre e tem um exemplo tambem..

    http://flamoreira.wordpress.com/2009/03/03/wpf-e-reconhecimento-de-voz/

    terça-feira, 25 de janeiro de 2011 10:48
  • eu segui todos os passos mais mesmo assim o exemplo nao funcionou...

    terça-feira, 25 de janeiro de 2011 10:51
  • eu segui varios tutoriais e nenhum funcionou.
    Bruno Garcia Analista Sistemas Junior
    terça-feira, 25 de janeiro de 2011 11:29
  • http://virtualdreams.com.br/blog/2007/12/dica-usando-reconhecimento-de-voz-no-vista-sem-conflitar-com-o-sistema-operacional/

     

    Bruno ja viu este?? diz que o reconhecimento de voz só funciona no Vista em inglês ou XP com SAPI 5.1, e não no Vista em português.

    fiz o teste no XP com SAPI 5.1 e nao rodou não...

     

     

     

    terça-feira, 25 de janeiro de 2011 13:11
  • Esse naum cheguei a tentar

    jah vi outros falando que no xp funciona mas naum tentei

     

    vou fazer um teste usando o xp


    Bruno Garcia Analista Sistemas Junior
    terça-feira, 25 de janeiro de 2011 14:14
  • naum funcionou vichi de todo jeito q tento naum funciona.

    Bruno Garcia Analista Sistemas Junior
    terça-feira, 25 de janeiro de 2011 14:43
  • SISTEMAS OPERACIONAIS SUPORTADOS PELO SPEECH
    • Windows XP Professional or Home editions; all language versions.
    • Windows.NET Server editions; all language versions.
    • Microsoft Windows 2000 Professional Workstation or Server; all language versions.
    • Microsoft Windows Millennium edition.
    • Microsoft Windows 98 all editions.
    • Microsoft Windows ® NT Workstation or Server 4.0, service pack 6a, English, Japanese, or Simplified Chinese edition.
    • Windows 95 ou anterior nao suportado.

     

    Obs: Leia a documentação do pacote.

     

    Inicie uma aplicação em WPF no Visual Studio ou no Blend, adicione um TextBlock, e forneça o nome TxtVoz, feito isso, vá em REFERENCE e adicione SYSTEM.SPEECH.   

    Agora, adicione os seguinte NAMESPACE :

    using System.Speech.Recognition;

    using System.Globalization;

    using System.Threading;

     

     

    Crie o objeto para a gramática:  protected object grammar = new object ();

     

    No objeto gramática terá algumas palavras, que ao falar será reconhecida e adicionada no TextBlock. Agora dentro do construtor  adicionamos o evento LOADED, segue o exemplo: 

     

     

        public Window1() {

            InitializeComponent();

            Loaded += Window1_Loaded;

    }


    void Window1_loaded(object sender, RoutedEventArgs e)

     

            {

     

                Thread .CurrentThread.CurrentCulture = new CultureInfo (“en-GB” );

                Thread .CurrentThread.CurrentUICulture = new CultureInfo (“en-GB” );

     

     

                SpeechRecognitionEngine _recognizer = new SpeechRecognitionEngine ();

     

    // criando o objeto da classe SpeechRecognitionEngine

     

                _recognizer.SpeechRecognized +=new EventHandler <SpeechRecognizedEventArgs >(_recognizer_SpeechRecognized);

               

     

    // Este block dentro da thread indica para o objeto pegar o som que vem do microfone

                Thread t1 = new Thread (delegate ()

                {

     

                    _recognizer.SetInputToDefaultAudioDevice();

     

                });

     

               //  o lock é uma palavra reservada que marca uma seção crítica, executa e só depois libera.

             // Repare dentro do LoadGrammar, que eu coloque algumas palavras, o vocabulário.              

                   

                lock (grammar)

                {

                    t1.Start();

                    _recognizer.UnloadAllGrammars();

                    _recognizer.LoadGrammar(new Grammar (new GrammarBuilder (new Choices (“left” , “close” ,“green” ))));

                }

                _recognizer.RecognizeAsync(RecognizeMode .Multiple); // Esta   codigo ativa o reconhecimento

       }

     

    E por fim:

     

      void _recognizer_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)

        {

            txtVoz.Text = e.Result.Text;    // Simplesmente pega a fala e joga dentro do Texto.

        }

    • Marcado como Resposta bruno.garcia quinta-feira, 27 de janeiro de 2011 13:11
    quinta-feira, 27 de janeiro de 2011 12:56