2013-07-24 2 views
0

Я использую microsoft.speech, чтобы распознать речь из волнового файла на моей машине.Использование грамматики из 10000 слов с помощью micorosft.speech

Вместо того, чтобы добавлять слова к выбору, я читаю слова из текстового файла, а затем добавляю слова в грамматику.

Но я узнал, что когда я пытаюсь добавить более 73 слов в грамматику, мой записанный файл никогда не узнается.

Вот мой код:

System.IO.StreamReader file = new System.IO.StreamReader(filePath); 
       while ((line = file.ReadLine()) != null) 
       { 
        if (line != "") 
        { 
         words.Add(line); 
         counter++; 
        } 
       } 

       file.Close(); 


       gb.Append(words); 

       // Create the actual Grammar instance, with the words from the source audio. 
       g = new Grammar(gb); 

       // Load the created grammar onto the speech recognition engine. 
       recognitionEngine.LoadGrammarAsync(g); 



public void recognizer_SpeechRecognizedRecording(object sender, SpeechRecognizedEventArgs e) 
     { 
      string text = e.Result.Text; 
} 

Но когда более 73 слов присутствуют в моем текстовом файле, я не получаю удар в случае речевой записи распознаватель.

Возможно, кто-нибудь поможет мне достичь этого?

+0

Я пробовал 73 слова, это сработало, но когда я пытаюсь увеличить слова, он не работает. Мне нужно около 10000 слов словарь –

ответ

2

попробуйте заказать несколько фраз и использовать метод Append(String, SubsetMatchingMode); в частности, OrderedSubset позволит сопоставить любое линейное подмножество строки.

Скорее всего, однако, что 10 000 слов - это слишком много данных для команды & контрольной грамматики. Лучшим вариантом является использование DictationGrammar, а не команды & контрольной грамматики. Добавьте слова в lexicon, чтобы убедиться, что механизм диктовки сможет распознать слова, а затем сопоставить распознавания с вашим списком слов.

При рассмотрении вашего вопроса, похоже, что вы используете пространство имен Microsoft.Speech, которое использует механизм сервера, который не поддерживает диктовку; тогда ваш единственный вариант - первый.

+0

спасибо за ответ apt.You сделал мой день. :) –

Смежные вопросы