2010-10-08 1 views
2

Я новичок в C#, и я новичок в Speech.Recognition. Я очень долго искал учебники, но не нашел этого, я даже не уверен, правильно ли я включил все.C# и Microsoft Speech.Recognition and Speech.Synthesis

Скачал:

Я программирования на местном, у меня есть Windows XP, рамки .net 3.5.

Теперь я просто хочу начать с некоторых простых строк кода, например, сказать «привет мир» или сказать одно или два слова в качестве ввода.

Я попытался следующие, и, конечно, это не работает:> ошибка:

"The Typ- or Namespacename "SpeechSynthesizer" couldn't be found (Is a Using-Direktive or a Assemblyverweis missing?)"

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Speech.Recognition; 
using System.Speech.Synthesis; 

namespace System.Speech.Recognition { } 
namespace System.Speech.AudioFormat {} 
namespace System.Speech.Recognition.SrgsGrammar{} 
namespace System.Speech.Synthesis { } 
namespace System.Speech.Synthesis.TtsEngine { } 

namespace ConsoleApplication1 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      SpeechSynthesizer foo = new SpeechSynthesizer(); 
      foo.Speak("Test"); 
     } 
    } 
} 

редактировать:

привет, я попробовал ваш код, но с помощью SpeechLib; не может быть найдено:>

хорошо теперь я писал:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Speech.Recognition; 
using System.Speech.Synthesis; 
using System.SpeechLib; 

namespace System.SpeechLib { } 
namespace System.Speech.Recognition { } 
namespace System.Speech.AudioFormat {} 
namespace System.Speech.Recognition.SrgsGrammar{} 
namespace System.Speech.Synthesis { } 
namespace System.Speech.Synthesis.TtsEngine { } 

, но я получаю сообщение об ошибке с:

numericUpDown1,SpVoice,SpeechVoiceSpeakFlags,textBox1 and Timeout

ответ

3

Project + Добавить ссылку, вкладка .NET, выберите «System.Speech».

Шаблон проекта предварительно выбирает несколько сборок .NET. Но только общие, такие как System.dll, System.Core.dll и т. Д. Вы должны сами добавить «необычные».

+1

+1. 'Использование' просто создает ярлыки для пространств имен. Чтобы использовать их, вам необходимо связать сборки с проектом. – Mike

+0

спасибо, я взял system.speech, и теперь он работает! greate - (знаете ли вы, как я переключаюсь на немецкий язык?) – Tyzak

+0

Да, три года немецкого языка в средней школе помогли. Но я не думаю, что вы получите его на компьютере с Windows, если версия для Windows не является немецкой. Не уверен, что требуется, деньги, без сомнения. Начать новый вопрос на superuser.com –

0

вы можете попробовать это:

получить Interop.SpeechLib.dll

using SpeechLib; 

private void ReadText(string readText) 
     { 
      int iCounter = 0; 
      while (Convert.ToInt32(numericUpDown1.Value) > iCounter) 
      { 
       SpVoice spVoice = new SpVoice(); 
       spVoice.Speak(textBox1.Text, SpeechVoiceSpeakFlags.SVSFPurgeBeforeSpeak); 
       spVoice.WaitUntilDone(Timeout.Infinite); 
       iCounter = iCounter + 1; 
      } 
     }