Windows Sprachsteuerung

05/06/2008 - 13:37 von Wanzenböck Jürgen | Report spam
Hallo,

ist es möglich die Windows Sprachsteuerung in einem eigenen Programm zu
verwenden bzw. anzusteuern?

Danke und LG
 

Lesen sie die antworten

#1 Frank Dzaebel
05/06/2008 - 20:59 | Warnen spam
Hallo Jürgen,

ist es möglich die Windows Sprachsteuerung in einem eigenen Programm zu
verwenden bzw. anzusteuern?



ja, recht einfach.

Über den Namespace der .NET Assembly:
System.Speech.dll:
"C:\Program Files\Reference
Assemblies\Microsoft\Framework\v3.0\System.Speech.dll"

Hier ein kleines Beispiel-Notepad, was die eingegebenen
Buchstaben (ggf. Wörter) in Deutsch sagt, gibt Dir vielleicht
schon einen kleinen Einblick :

using System;
using System.Drawing;
using System.Windows.Forms;
using System.Speech.Synthesis;
using System.Diagnostics;
using System.Threading;
using System.Globalization;

namespace LucaNotepad
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

static public SpeechSynthesizer synth;
Properties.Settings Props = Properties.Settings.Default;

private void Form1_Load(object sender, EventArgs e)
{
textBox1.Font = Props.Schriftart;
synth = new SpeechSynthesizer();
try
{
synth.SelectVoice(Props.Sprache);
}
catch (Exception exp)
{
MessageBox.Show(exp.Message + "" +
"Sie werden auf die Webseite zur Installation der " +
"deutschen Stimmen geleitet.");
Process.Start("http://www.microsoft.com/reader/de/...mspx");
}
synth.SpeakAsync(String.Format(Props.Begrüßung, Props.Name));
timer1.Start();
}


private void einstellungenToolStripMenuItem_Click(object sender,
EventArgs e)
{
Einstellungen einst = new Einstellungen();
einst.ShowDialog();
}
int lastSpoken = -1;
int dgbCount = 0;

private void timer1_Tick(object sender, EventArgs e)
{
Application.DoEvents();
if (textBox1.Text == "")
{
lastSpoken = -1;
Debug.WriteLine((dgbCount++).ToString() + ":" + "textBox1 == leer");
return;
}
if (lastSpoken == textBox1.SelectionStart-1)
{
Debug.WriteLine((dgbCount++).ToString() + ":" + "lastSpoken ==
textBox1.SelectionStart-1");
return;
}

if (textBox1.SelectionStart == 0)
{
Debug.WriteLine((dgbCount++).ToString() + ":" +
"textBox1.SelectionStart == 0");
return;
}
string c = textBox1.Text[textBox1.SelectionStart - 1].ToString();
if (c == " ") synth.Speak(textBox1.Text);
else synth.SpeakAsync(c);
lastSpoken = textBox1.SelectionStart-1;
}
}
}

Siehe auch:

[speechSamples : System.Speech samples]
http://www.mperfect.net/speechSamples/

[Microsoft Reader - Download Microsoft Reader for PC]
http://www.microsoft.com/reader/de/...ds/pc.mspx

[Microsoft Text-to-Speech Package]
http://www.microsoft.com/reader/de/...s/tts.mspx


ciao Frank
Dipl.Inf. Frank Dzaebel [MCP/MVP C#]
http://Dzaebel.NET

Ähnliche fragen