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());
            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

调用 Windows 7 中英文混合朗读的更多相关文章

  1. ThinkPHP+Smarty模板中截取包含中英文混合的字符串乱码的解决方案

    好几天没写博客了,其实有好多需要总结的,因为最近一直在忙着做项目,但是困惑了几天的Smarty模板中截取包含中英文混合的字符串乱码的问题,终于解决了,所以记录下来,需要的朋友看一下: 出现乱码的原因: ...

  2. C#调用windows API的一些方法

    使用C#调用windows API(从其它地方总结来的,以备查询) C#调用windows API也可以叫做C#如何直接调用非托管代码,通常有2种方法: 1.  直接调用从 DLL 导出的函数. 2. ...

  3. mfc 调用Windows的API函数实现同步异步串口通信(源码)

    在工业控制中,工控机(一般都基于Windows平台)经常需要与智能仪表通过串口进行通信.串口通信方便易行,应用广泛. 一般情况下,工控机和各智能仪表通过RS485总线进行通信.RS485的通信方式是半 ...

  4. C#与JS实现 获取指定字节长度 中英文混合字符串 的方法

    平时在作数据库插入操作时,如果用 INSERT 语句向一个varchar型字段插入内容时,有时会因为插入的内容长度超出规定的长度而报错. 尤其是插入中英文混合字符串时,SQL Server中一般中文要 ...

  5. 【代码笔记】iOS-判断中英文混合的字符长度的两种方法

    一,代码. - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. ...

  6. C#调用Windows API函数截图

    界面如下: 下面放了一个PictureBox 首先是声明函数: //这里是调用 Windows API函数来进行截图 //首先导入库文件 [System.Runtime.InteropServices ...

  7. 【转】用C#调用Windows API向指定窗口发送

    一.调用Windows API. C#下调用Windows API方法如下: 1.引入命名空间:using System.Runtime.InteropServices; 2.引用需要使用的方法,格式 ...

  8. Lua截取utf-8编码的中英文混合字符串

    参考博客:UTF8字符串在lua的截取和字数统计[转载] 需求 按字面个数来截取子字符串 函数(字符串, 开始位置, 截取长度) utf8sub(,) = 好1世界哈 utf8sub(,) = 你好1 ...

  9. C#中调用Windows API的要点 .

    介绍 API(Application Programming Interface),我想大家不会陌生,它是我们Windows编程的常客,虽然基于.Net平台的C#有了强大的类库,但是,我们还是不能否认 ...

随机推荐

  1. wyx20162314实验报告二

    北京电子科技学院BESTI实验报告 课程:程序设计与数据结构 班级: 1623 姓名: 王译潇 学号:20162310 指导教师:娄佳鹏老师.王志强老师 实验日期:2017年3月26号 实验密级: 非 ...

  2. 在winform中,禁止combobox随着鼠标一起滑动!

    在winform中,如果form上或者是控件上有一个combobox控件,当你选择这个控件,当你鼠标移动其他地方,滑动鼠标时,这时combobox的选择值就会随之鼠标一起变化,如果你不想让comboB ...

  3. ActiveMQ 实现消息接收发送

    一.接收者 package com.demo.initservice; import javax.jms.Connection; import javax.jms.ConnectionFactory; ...

  4. 我的nodejs 快速入门

    每行以封号结尾(可有可无) 变量定义没有类型 都用var 或者直接const log打印:console.log(db); 内置属性这样写法:__filename.__dirname等 functio ...

  5. Minimum Window Substring, 包含子串的最小窗口,双指针

    问题描述:给定字符串S,子串T,求S中包含T的最小窗口 Given a string S and a string T, find the minimum window in S which will ...

  6. FTP的安装配置使用

    ///////////////////////////////FTP///////////////////////////////////////////////////写在前面:在linux 环境下 ...

  7. 基础的JavaScript函数

    基础的JavaScript函数 1.首字母大写 2.去除数组重复项 3.数组的排序 4.闭包 1. 把用户输入的不规范的英文名字,变为首字母大写,其他小写的规范名字(使用JavaScript的map函 ...

  8. vector push_back数量大的时候变慢

    才用15000个数据  push_back耗时就好几秒, 解决方法是 先resize 15000, 然后再 for (int i = 0; i < 15000; i++) { Data data ...

  9. LeetCode第[33]题(Java):Search in Rotated Sorted Array

    题目:在翻转有序中搜索 难度:Medium 题目内容: Suppose an array sorted in ascending order is rotated at some pivot unkn ...

  10. MySQL配置管理与安装方法

    数据库的安装: 版本:SQL2008 R2(下载地址为:http://www.accessoft.com/article-show.asp?id=11192) 这里说明一下: NT Authority ...