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; 调用 Windows 7 中英文混合朗读 .>
  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、其他未知

  说再多不如放个代码,所以本文从简,请下载后编译运行。

  /Files/Chinasf/AnySpeech.rar