zoukankan      html  css  js  c++  java
  • 调用 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、其他未知

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

    AnySpeech.rar

    出处:http://www.cnblogs.com/Chinasf/archive/2010/01/04/1639282.html

  • 相关阅读:
    进击Node.js基础(一)
    关于bootstrap两个模态框的问题
    系列博文-Three.js入门指南(张雯莉)-网格 setInterval方法 requestAnimationFrame方法 使用stat.js记录FPS
    系列博文-Three.js入门指南(张雯莉)-照相机
    系列博文-Three.js入门指南(张雯莉)-静态demo和three.js功能概览
    for循环执行效率
    c/c++多维数组动态分配与释放
    C/C++数组指针与指针数组详解
    C/C++语言参数传递----值传递、引用传递、指针传递、指针引用传递
    float类型最大值和最小值
  • 原文地址:https://www.cnblogs.com/mq0036/p/7228409.html
Copyright © 2011-2022 走看看