Как вывести звуковую карту в реальном времени в AudioStream с помощью NAudio - PullRequest
0 голосов
/ 26 января 2019

Я пытаюсь сделать программу распознавания речи с NAudio. Я могу записать звук моей системы с помощью WasapiLoopbackCapture, но не могу передать его на AudioStream или WaveStream. Я выполнил действия, описанные в этой статье, но не могу воспроизвести аудио https://ourcodeworld.com/articles/read/702/how-to-record-the-audio-from-the-sound-card-system-audio-with-c-using-naudio-in-winforms

private SpeechSynthesizer speechsynth = new SpeechSynthesizer();
private SpeechRecognitionEngine receng = new SpeechRecognitionEngine();
private Choices choice = new Choices();
private WaveFileWriter RecordedAudioWriter = null;
private WasapiLoopbackCapture CaptureInstance = null;

private void DoStuff() {

 WasapiLoopbackCapture CaptureInstance = new WasapiLoopbackCapture();

 WaveFileWriter RecordedAudioWriter = new WaveFileWriter(@ "C:\1.wav", CaptureInstance.WaveFormat);

 CaptureInstance.DataAvailable += (s, a) => {
  RecordedAudioWriter.Write(a.Buffer, 0, a.BytesRecorded);
 };

 CaptureInstance.RecordingStopped += (s, a) => {
  RecordedAudioWriter.Dispose();
  RecordedAudioWriter = null;
  CaptureInstance.Dispose();
 };

 CaptureInstance.StartRecording();

 recorder = new WaveIn();
 recorder.DataAvailable += RecorderOnDataAvailable;

 bufferedWaveProvider = new BufferedWaveProvider(recorder.WaveFormat);
 savingWaveProvider = new SavingWaveProvider(bufferedWaveProvider, "temp.wav");

 player = new WaveOut();
 player.Init(savingWaveProvider);

 player.Play();
 recorder.StartRecording();

 choice.Add(new string[] {
  "hello"
 });
 Grammar gr = new Grammar(new GrammarBuilder(choice));
 receng.RequestRecognizerUpdate();
 receng.LoadGrammar(gr);
 receng.SpeechRecognized += new EventHandler < SpeechRecognizedEventArgs >(receng_SpeechRecognized);
 receng.SetInputToAudioStream(STREAM, waveIn.WaveFormat);
 receng.RecognizeAsync(RecognizeMode.Multiple);
}

Я должен иметь возможность захватывать звук в режиме реального времени и выводить его как AudioStream на вход распознавания речи.

...