C # и Microsoft Речь. Признание и Речь. Синтез - PullRequest
2 голосов
/ 08 октября 2010

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

Я скачал:

Я программирую локально, у меня Windows XP, .net framework 3.5.

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

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

«Не удалось найти типовое имя или пространство имен« SpeechSynthesizer »(отсутствует директива об использовании или сборка?»)

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 и Timeout

Ответы [ 2 ]

3 голосов
/ 08 октября 2010

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

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

0 голосов
/ 08 октября 2010

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

получить 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;
            }
        }
...