2014-09-18 2 views
-3

У меня есть некоторые wav-файлы, в которых говорят целые числа. Мне нужно обнаружить эти отдельные целые числа и преобразовать в строку. вы можете скачать mp3 файл с: hereречь к тексту из wav-файла C#

Использование Microsoft SpeechRecognitionEngine, я с трудом могу обнаружить целое число из любого из файлов wav.

Это SRE настройки:

sre.SetInputToWaveFile("D:\\Speeches\\Best3.wav"); 
sre.BabbleTimeout = new TimeSpan(Int32.MaxValue); 
sre.InitialSilenceTimeout = new TimeSpan(Int32.MaxValue); 
sre.EndSilenceTimeout = new TimeSpan(100000000); 
sre.EndSilenceTimeoutAmbiguous = new TimeSpan(100000000); 

ответ

0

Я думаю, что некоторые из значений тайм-аута являются экстремальными, но я был в состоянии получить различные wav файлы для анализа с кодом, как это:

using System; 
using System.Speech.Recognition; 

namespace SR 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      using (var sre = new SpeechRecognitionEngine()) 
      { 
       sre.SetInputToWaveFile(@"D:\test.wav"); 
       sre.LoadGrammar(new DictationGrammar()); 

       sre.BabbleTimeout = new TimeSpan(Int32.MaxValue); 
       sre.InitialSilenceTimeout = new TimeSpan(Int32.MaxValue); 
       sre.EndSilenceTimeout = new TimeSpan(100000000); 
       sre.EndSilenceTimeoutAmbiguous = new TimeSpan(100000000); 

       var result = sre.Recognize(); 
       Console.WriteLine(result.Text); 
      } 

      Console.ReadLine(); 

     } 
    } 
} 

Вам необходимо позвонить по телефону LoadGrammar(). Может быть лучший вариант, чем DictationGrammar, но он работал для моих образцов.

Вы также захотите проверить result на null, как и будет, если распознавание не удастся.

+0

Вы можете загрузить пользовательскую грамматику, содержащую только целые числа 0-9 или любой диапазон, который будет включен. Тогда будут распознаны только эти числа, а не любые нецелые числа, если они существуют. Граммары могут быть довольно сложными, но я сделал это для пользовательской грамматики, чтобы открывать элементы в списке на основе номера строки, поэтому это можно сделать – pinkfloydx33

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