请问在vs2008中有DotNetSpeech对象库么?怎么添加?  是不是添加以后就可以使程序正常运行且可以发出声音。。?

解决方案 »

  1.   

    实现平台:
    Microsoft Visual Studio 2005
    微软TTS5.1语音引擎(中文)
    所需要的东西:
    用TlbImp从SAPI.51 SDK中导出的DotNetSpeech.dll(160K)
    微软TTS5.1语音引擎(中文).msi(1.55M)以上两个东西由于大小关系没有传上来,需要的可以留下邮箱地址。如果你自己安装了SAPI.51 SDK,可以使用这个命令自己导出DotNetSpeech.dll
    Tlbimp sapi.dll /out: DotNetSpeech.dll(出现错误不用管,不影响使用)
    安装微软TTS5.1语音引擎(中文).msi,打开"控制面板",打开"语音"配置项目,在"文字-语音转换"的"语音选择"组合框中选择"Microsoft Simplified Chinese",这样才可以读出中文。如果要读英文,要选择"Microsoft Sam"。
    使用Microsoft Visual Studio 2005新建项目,添加引用,引用DotNetSpeech.dll。
    命名空间:
    using DotNetSpeech;
    读出文本框中的中文:
    SpeechVoiceSpeakFlags spFlags = SpeechVoiceSpeakFlags.SVSFlagsAsync;
    SpVoice voice = new SpVoice();
    voice.Speak(textBox1.Text, spFlags);
    将文本框中中文的读音保存为WAV文件:
    SpeechVoiceSpeakFlags spFlags = SpeechVoiceSpeakFlags.SVSFlagsAsync;
    SpVoice voice = new SpVoice();
    SaveFileDialog dialog = new SaveFileDialog();
    dialog.Filter = "All files (*.*)|*.*|wav files (*.wav)|*.wav";
    dialog.Title = "保存WAV文件";
    dialog.FilterIndex = 2;
    dialog.RestoreDirectory = true;
    if (dialog.ShowDialog() == DialogResult.OK)
    {
    SpeechStreamFileMode spFileMode = SpeechStreamFileMode.SSFMCreateForWrite;
    SpFileStream spFileStream = new SpFileStream();
    spFileStream.Open(dialog.FileName, spFileMode, false);
    voice.AudioOutputStream = spFileStream;
    voice.Speak(textBox1.Text, spFlags);
    voice.WaitUntilDone(1000);
    上面两句一定要写上,否则产生的文件没有声音
    WaitUntilDone的后面的smTimeout是一个int型
    spFileStream.Close();
      

  2.   

    我安装了microsoft speech SDK5.1,可是在vs中写好程序后还是不会用,谢谢!~邮箱:[email protected]
      

  3.   

    你好!
        请发个给我  [email protected]   小弟谢谢了!