2013-08-20 2 views
1

저는 C# 응용 프로그램에서 .NET 말하기 인식 부분을 사용하여 기본적인 말하기 기능을 사용하고 있습니다.음성 인식을 사용하면서 오디오 데이터를 기록 하시겠습니까?

이 외에도 내 애플리케이션에서 인식 한 오디오를 내 애플리케이션과 동시에 인식하여 녹음 할 수 있습니까? 나중에 분석하여 분석 할 수 있습니다.

별도의 스레드를 만든 다음 마이크로 말할 때 .NET 오디오 녹음을 넣으시겠습니까? 그저 로컬 디렉토리에 .wav 형식으로 저장하고 싶습니다. 48khz 및 16 비트 샘플과 같은 간편한 녹음.

저는 정상적인 양식 응용 프로그램을 사용하고 있습니다. 이것은 지금 당신에게 아이디어를주기위한 음성 코드 유형입니다.

using System.Speech.Recognition; 

//then inside the class and namespace I have 
    public partial class Form1 : Form 
    { 
     SpeechRecognitionEngine _recognizer = new SpeechRecognitionEngine(); 


//declared variables here 
//now I initialize 

     public Form1() 
     { 
      InitializeComponent(); 
      _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); 
      systemOnline(); 
     } 

void _recognizer_SpeechRecognized(object sender, SpeechRecognizedEventArgs e) 
     { 
      string time = now.GetDateTimeFormats('t')[0]; 
      int ranNum; 
      string speech = e.Result.Text; 
      switch (speech) 
      { 

       //Open Google 
       case "Google": 
       //code opens google in default browser 
+1

이미 메모리에 저장되어있는 것처럼 보입니다. 따라서 응용 프로그램에서 녹음을 해제하기 전에 파일에 메모리 위치를 보내야합니다. 나는 생각한다. – Malachi

답변

2

Windows API를 살펴보십시오. 오디오 데이터를 얻기 위해 핸들러/이벤트 핸들러/인터셉터를 등록 할 수 있다고 확신합니다. 다음 링크를 확인하십시오 : maybe helpfull

+0

귀하의 링크 중 두 번째는 더 자세히 살펴 보겠습니다. 공유 이벤트로 사용할 수있는 것으로 보입니다. 감사합니다 :) – camdixon

+0

별도의 스레드에 넣는 것이 좋습니다 것이겠습니까? – camdixon

+0

확실하지 않다면, 스레딩은 나의 우수한 영역이 아닙니다. CPU와 그 기능을 살펴 봐야합니다. 멀티 코어이고 각 코어에서 다중 오디오 데이터/스트림 계산을 지원한다면 스레딩이 도움이 될 것입니다! –

관련 문제