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

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

    /Files/Chinasf/AnySpeech.rar

  • 相关阅读:
    [JSOI2012][bzoj4332] 分零食 [FFT]
    [MUTC2013][bzoj3513] idiots [FFT]
    [bzoj4259][bzoj4503] 残缺的字符串 [FFT]
    [bzoj3160] 万径人踪灭 [FFT+manacher]
    [AHOI2017/HNOI2017][bzoj4827] 礼物 [FFT]
    [ZJOI2014][bzoj3527]力 [FFT]
    [CQOI2012][bzoj2668] 交换棋子 [费用流]
    [CQOI2014][bzoj3504] 危桥 [最大流]
    [ZJOI2011][bzoj2229] 最小割 [最小割树]
    移动游戏ui设计(一)
  • 原文地址:https://www.cnblogs.com/Chinasf/p/1639282.html
Copyright © 2011-2022 走看看