public
partial
class
FormMain : Form
{
public
FormMain()
{
InitializeComponent();
}
private
void
FormMain_Load(
object
sender, EventArgs e)
{
GetVoices();
}
private
void
GetVoices()
{
SpVoice voice
=
new
SpVoiceClass();
ISpeechObjectTokens voices
=
voice.GetVoices(
""
,
""
);
var list
=
new
List
<
string
>
();
foreach
(ISpeechObjectToken token
in
voices)
list.Add(token.GetDescription(
0
));
cbSpeechType.DataSource
=
list;
}
private
void
btnSpeechText_Click(
object
sender, EventArgs e)
{
SpeechText(
null
);
}
private
void
SpeechText(
string
fileName)
{
Cursor
=
Cursors.WaitCursor;
SpFileStream stream
=
null
;
SpVoice voice
=
new
SpVoiceClass();
if
(fileName
+
""
!=
""
)
{
stream
=
new
SpFileStreamClass();
stream.Open(fileName, SpeechStreamFileMode.SSFMCreateForWrite,
false
);
voice.AudioOutputStream
=
stream;
}
voice.Voice
=
voice.GetVoices(
""
,
""
).Item(cbSpeechType.SelectedIndex);
voice.Volume
=
tbVol.Value;
voice.Rate
=
tbSpeechSpeed.Value;
voice.Speak(tbText.Text, SpeechVoiceSpeakFlags.SVSFDefault);
if
(fileName
+
""
!=
""
&&
stream
!=
null
)
stream.Close();
Cursor
=
Cursors.Arrow;
}
private
void
btnRecordSpeech_Click(
object
sender, EventArgs e)
{
Cursor
=
Cursors.WaitCursor;
using
(var saveFileDialog
=
new
SaveFileDialog())
{
saveFileDialog.FileName
=
"
MyVoice.wav
"
;
saveFileDialog.Filter
=
"
Wave (*.wav)|*.wav
"
;
if
(saveFileDialog.ShowDialog()
==
DialogResult.OK)
{
SpeechText(saveFileDialog.FileName);
}
}
Cursor
=
Cursors.Arrow;
}
}