проблема с Speech Sdk 5.1? - PullRequest
       36

проблема с Speech Sdk 5.1?

0 голосов
/ 20 июня 2011

Я сохраняю аудио файл как test.wav снизу

        SpeechVoiceSpeakFlags SpFlags = SpeechVoiceSpeakFlags.SVSFlagsAsync;
        SpVoice Voice = new SpVoice();

        SaveFileDialog sfd = new SaveFileDialog();

        sfd.Filter = "All files (*.*)|*.*|wav files (*.wav)|*.wav";
        sfd.Title = "Save to a wave file";
        sfd.FilterIndex = 2;
        sfd.RestoreDirectory = true;

        SpeechStreamFileMode SpFileMode = SpeechStreamFileMode.SSFMCreateForWrite;

        SpFileStream SpFileStream = new SpFileStream();
        SpFileStream.Open(sfd.FileName, SpFileMode, false);

        Voice.AudioOutputStream = SpFileStream;
        Voice.Speak(txtSpeakText.Text, SpFlags);
        Voice.WaitUntilDone(Timeout.Infinite);
        SpFileStream.Close();            

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

        SpeechRecognitionEngine RecognitionEngine = new SpeechRecognitionEngine(new CultureInfo("en-US", true));
        RecognitionEngine.LoadGrammar(new DictationGrammar());
        RecognitionEngine.SetInputToWaveFile("test.wav");
        RecognitionResult result = RecognitionEngine.Recognize();
        Grammar g = result.Grammar;
        txt_vtc.Text = result.Text;   

Почему так получается?

1 Ответ

0 голосов
/ 20 июня 2011

Этот ответ не является причиной вашей проблемы, но я бы порекомендовал вам использовать SpeechSynthesizer Class , как в следующем коде.

        using (var speechSynthesizer = new SpeechSynthesizer())
        {
            speechSynthesizer.SelectVoice("Please enter your TTS engine name...");
            speechSynthesizer.SetOutputToWaveFile("test.wav");
            speechSynthesizer.Speak("test");
        }

Для использования SpeechSynthesizer Class у вас будет два преимущества.

  1. не нужно перераспределять Speech Sdk 5.1 клиентам из-за факта, уже включенного в .net framework(4, 3.5, 3.0).
  2. проще получить цель, чем вы упомянули.
...