Подобный вопрос был задан на Джоэла о программном обеспечении некоторое время назад. Вы можете использовать пространство имен System.Speech.Recognition , чтобы сделать это ... с некоторыми ограничениями. Добавьте System.Speech (должен быть в GAC) к вашему проекту. Вот пример кода для приложения WinForms:
public partial class Form1 : Form
{
SpeechRecognizer rec = new SpeechRecognizer();
public Form1()
{
InitializeComponent();
rec.SpeechRecognized += rec_SpeechRecognized;
}
void rec_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)
{
lblLetter.Text = e.Result.Text;
}
void Form1_Load(object sender, EventArgs e)
{
var c = new Choices();
for (var i = 0; i <= 100; i++)
c.Add(i.ToString());
var gb = new GrammarBuilder(c);
var g = new Grammar(gb);
rec.LoadGrammar(g);
rec.Enabled = true;
}
Это распознает числа от 1 до 100 и отображает результирующее число в форме. Вам понадобится форма с меткой lblLetter.
System.Speech работает только с заранее определенным списком слов или фраз; это не совсем NaturallySpeaking, ни в универсальности, ни в качестве распознавания. Но вам не нужно обучать его голосу пользователя, и если у вас есть только несколько разных вещей, которые пользователь может сказать, это работает достаточно хорошо. И это бесплатно! (если у вас есть Visual Studio)
Это не сработает, если вы используете очень короткие фразы; Я сделал программу для моего ребенка, чтобы произносить буквы алфавита и видеть их на экране, но это не очень хорошо, поскольку многие буквы звучат одинаково (особенно из уст четырехлетнего ребенка). 1010 *
Что касается более гибких опций ... ну, есть вышеупомянутый NaturallySpeaking, который имеет SDK. Но вы должны связаться с отделом продаж, чтобы получить какой-либо доступ к нему, и цены не указаны, поэтому он выглядит как один из тех, «Сколько это стоит? вид вещей. Кажется, не существует опции «скачай и поиграй с этим». (
Что касается преобразования текста в речь, System.Speech.Synthesis делает это. Это даже проще, чем распознавание речи. Я написал небольшую программу, чтобы позволить мне печатать, нажимать Enter и читать текст вслух. Мой четырехлетний загипнотизирован этим. :) («Папа, я хочу поговорить с да воботом».)