• 调用 Windows 7 中英文混合朗读


    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、其他未知

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

    /Files/Chinasf/AnySpeech.rar

  • 相关阅读:
    写页面得来的体会
    C#&java重学笔记(面向对象)
    C#&java重学笔记(函数)
    C#&java重学笔记(变量与操作符)
    深入JS第一天:原型和它的小伙伴们(一)
    兼容性积累
    再深入一点ajax
    Android之内存泄漏调试学习与总结
    优雅地实现Android主流图片加载框架封装,可无侵入切换框架
    优雅地实现Android主流图片加载框架封装,可无侵入切换框架
  • 原文地址:https://www.cnblogs.com/Chinasf/p/1639282.html
Copyright © 2020-2023  润新知