1、windows7内置语音识别
2、文本到语音转换增加了 Microsoft Lili - Chinese(China) ,支持中英文混合朗读
3、女声、部分词组基本发音准确
以上让我有做个小程序的冲动;如下:
1、引入SpeechLib.dll
2、创建form
3、编写代码
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;
}
}
以上功能支持朗读文本框内文本,支持讲文本输出语音文件;
参考应用场景:
1、尝尝鲜,再删除
2、将小说文本转化为音频放MP3内去听
3、骗骗小孩
运行环境需求:
1、WINDOWS 7
2、其他未知
说再多不如放个代码,所以本文从简,请下载后编译运行。
本文转自suifei博客园博客,原文链接:http://www.cnblogs.com/Chinasf/archive/2010/01/04/1639282.html,如需转载请自行联系原作者