2013-11-27 2 views
1

나는 꽤 쉬웠다 C# voice to text으로 장난하고있다. 그러나 나는 내가 만든 프리셋 명령을 보는 대신 솔직한 문장을 어떻게 발견 할 수 있는지 알아 내려고 노력 중이다. C#으로 음성 녹음 - 문장 검색

현재 나는 키워드를 수신하여 다양한 작업을 수행 할 수 있습니다 : 내가 전에 말했듯이

SpeechRecognitionEngine _recognizer = new SpeechRecognitionEngine(); 
public Form1() 
{ 
    _recognizer.SetInputToDefaultAudioDevice(); 
    _recognizer.LoadGrammar(new Grammar(new GrammarBuilder(new Choices(File.ReadAllLines(@"Commands.txt"))))); 
    _recognizer.SpeechRecognized += new EventHandler<SpeechRecognizedEventArgs>(_recognizer_SpeechRecognized); 
    _recognizer.RecognizeAsync(RecognizeMode.Multiple); 
} 

void _recognizer_SpeechRecognized(object sender, SpeechRecognizedEventArgs e) 
{ 
    //magic happens here 
} 

이 잘 작동합니다. 필자는 SpeechHypothesized와 같은 음성 인식과 관련된 몇 가지 다른 기능을 사용하려고 시도했지만 미리 설정된 명령 인 프로그램에로드 된 문법 만 기반으로 단어를 추측합니다. 이것은 의미가 있습니다. 그러나 전체 라이브러리를 문법에로드하면 명령이 훨씬 정확하지 않게됩니다.

키워드를 말하면 (명령 중 하나 일 때) 실제 문장을 기록하려고 시도 할 때 프로그램을 설정하려고합니다.

+0

[여기] (http://michal.is/blog/speech-recognition-with-c-dictation-and-custom-grammar/)에서 알맞은 정보를 찾았습니다. 나는 "스피치 받아쓰기"를 찾고 있었지만 단어의 정확성을 설정해도 텍스트에 대한 연설은 정확하지 않았습니다. – Nick

+0

중복 된 http://stackoverflow.com/questions/10377054/how-to-recognize-a-phrase-from-a-voice-file/10379351#10379351 –

답변

0

나는 "Speech Dictation"을 찾고있었습니다. 문법에 내 명령 목록을로드하는 대신 완전한 문장을 수신하기 위해 C#에 빌드 된 을 사용할 수있었습니다.

SpeechRecognitionEngine recognitionEngine recognitionEngine = new SpeechRecognitionEngine(); 
recognitionEngine.SetInputToDefaultAudioDevice(); 
recognitionEngine.LoadGrammar(new DictationGrammar()); 
RecognitionResult result = recognitionEngine.Recognize(new TimeSpan(0, 0, 20)); 
foreach (RecognizedWordUnit word in result.Words) 
{ 
    Console.Write(“{0} “, word.Text); 
} 

이 방법은 내가 단지 올바른 단어를 절반 이하로 시간을 추측 보인다 word.Confidence를 사용하는 경우에도 매우 정확한 것 같지 않지만.

Google Voice API을 사용하여 후 처리를 위해 flac 파일을 보내도록 시도 할 수 있습니다.