微软TTS尝试系列之开篇杂谈(仅思路)
第一次写博客,不知道如何下手,思路也乱,就先聊聊怎么进的园子吧,但愿不会浪费大家太多的宝贵时间>_<。
与博客园结缘应该是大三刚开始的时候。当时学校教务处想开发一个教务安排系统,为了省钱就从系里找人,于是我和另外两个同学就接了下来。Money什么的就不说了,接着了解需求、确定方案和分配任务(第一次做一个整体的小项目,比较乱)。我们三个从大二开始学习C#,因此开发使用的是C#和ASP.NET。当时对我们来说有两个棘手的问题:一是这个系统需要将录入的内容生成教务处给定格式的Word文档,二是需要根据录入的内容在Word中生成多个结构图。由于其中一个同学一直跟着系里的老师做项目,对C#处理Word比较熟悉,但考虑到利用代码直接控制Word绘制结构图不方便且格式不好控制,我们打算使用Visio绘制结构图,最后导出并插入Word的指定位置。因此最后由这位同学根据给定的模板处理Word并负责网页的布局(尽量Word模板相一致),而我和另外一个同学负责研究C#控制Visio绘图并导出。对于C#控制Visio绘图,当时一点都不会,于是查看Visio的帮助文档并且向度娘求助,就在这时发现了伍华聪老师Visio二次开发的博客,于是下载下来研究,从里面摘出自己需要的代码并修改后基本上可以在Visio中绘制结构图了,再加上不断地尝试,最终实现了根据数据库中的数据动态绘制结构图并自动缩放结构图方框的大小。也就是在这时,发现了一个新的天地——博客园,并开始持续关注,感谢伍老师^_^。
写完了入园过程,该进入主题了。
想到弄一个TTS的程序,其实和自己的眼睛有关。眼睛一直不好用,而且经常盯着电脑和手机,所以眼镜片越来越厚,于是想到既然眼睛总盯着电脑不好,用耳朵听总应该可以吧,还能锻炼耳朵。想到这头脑中的第一个想法就是自己整一个程序来读电脑中的文字,第二个想法是看看网上有没有现成的可用。搜了一下,网上是有一些这样的软件,比如懒人读书和方正畅听,但一个效果不太好,另一个资源不好找。还发现一个科大讯飞,语音效果很棒,但当然不会开源,只能体验一把。最后还是打算自己弄一个练练手,虽然不清楚最后能不能完成,效果能不能达到,因为毕竟能力有限,但很值得一试。幸运的是微软有自己的语音引擎,可以在C#中直接使用,倒也省去了很多麻烦。
接下来就是关于这个程序功能(自定义需求)的狂想了,既然是狂想,那就不一定能实现了,但还是得记下来。
1、首先要能够读本地的文件,包括word,txt以及pdf等。
2、可以读取网页上的内容,这个很重要,总不能每次都把网页上的文章复制粘贴到Word中吧。如果可以的话,最好是能够读取网页上指定的内容,例如标题和正文等。由于直接读取网页可能会麻烦,所以打算在程序中输入网址,然后获取网页的内容后分析。
3、由于微软的语音引擎好像只能识别文字(包括中英文等,与引擎有关),因此对于1和2所提供的内容,如果不可读,则提示是否为图片或者链接(即将不可读的内容根据类型替换为指定的提示信息)等,另外有些特殊的标记是不需要读出来的,这涉及到分析并处理获取到的内容。
4、语音引擎貌似断句不是特别准确,微软的引擎虽然能够区分词组,但词组间的时间间隔太明显,听着感觉有断层,而且如果选择不读取标点,则有些需要读的也不会读出,这时需要对这些内容进行替换,显示为文字,例如日期格式有多种,但都有标点符号分隔,需要将日期转换成汉字。
5、可以像有道词典那样取词并读取,或者鼠标放在某些文字上面就可以读取出来。
6、可以将获取的语音生成为可播放的文件,例如MP3,方便存入手机或以后使用。
脑子不太好使,目前就只能想到这些,也算是主要功能吧。由于目前在学习WPF,因此打算使用WPF来开发。写的有些乱,没有什么有用的内容,最主要的是不知道该算哪类的文章,也不知道该发布到哪个位置,希望大家不要介意。如果有什么意见或者建议希望能够提出来,共同讨论研究一下^_^。
微软TTS尝试系列之开篇杂谈(仅思路)的更多相关文章
- 【VC++技术杂谈004】使用微软TTS语音引擎实现文本朗读
本文主要介绍如何使用微软TTS语音引擎实现文本朗读,以及生成wav格式的声音文件. 1.语音引擎及语音库的安装 TTS(Text-To-Speech)是指文本语音的简称,即通过TTS引擎把文本转化为语 ...
- ASP.NET MVC+EF框架+EasyUI实现权限管理系列之开篇
原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列之开篇 前言:博客又有一段时间没有更新了,心里感觉这段时间空空的,好像什么都没有学下,所以就想写博客,所以就有了这个系列,这里当然也 ...
- 2019 年起如何开始学习 ABP 框架系列文章-开篇有益
2019 年起如何开始学习 ABP 框架系列文章-开篇有益 [[TOC]] 本系列文章推荐阅读地址为:52ABP 开发文档 https://www.52abp.com/Wiki/52abp/lates ...
- 跟我学: 使用 fireasy 搭建 asp.net core 项目系列之一 —— 开篇
==== 目录 ==== 跟我学: 使用 fireasy 搭建 asp.net core 项目系列之一 —— 开篇 跟我学: 使用 fireasy 搭建 asp.net core 项目系列之二 —— ...
- 一起学微软Power BI系列-使用技巧(2)连接Excel数据源错误解决方法
上一篇文章一起学微软Power BI系列-使用技巧(1)连接Oracle与Mysql数据库中,我们介绍了Power BI Desktop中连接Oracle和Mysql的方法,其实说到底还是驱动的问题, ...
- 一起学微软Power BI系列-官方文档-入门指南(1)Power BI初步介绍
我们在前一篇文章微软新神器-Power BI,一个简单易用,还用得起的BI产品中,我们初步介绍了Power BI的基本知识.由于Power BI是去年开始微软新发布的一个产品,虽然已经可以企业级应用, ...
- 一起学微软Power BI系列-官方文档-入门指南(2)获取源数据
我们在文章: 一起学微软Power BI系列-官方文档-入门指南(1)Power BI初步介绍中,我们介绍了官方入门文档的第一章.今天继续给大家介绍官方文档中,如何获取数据源的相关内容.虽然是英文,但 ...
- 一起学微软Power BI系列-官方文档-入门指南(3)Power BI建模
我们前2篇文章:一起学微软Power BI系列-官方文档-入门指南(1)Power BI初步介绍 和一起学微软Power BI系列-官方文档-入门指南(2)获取源数据 中,我们介绍了官方入门文档与获取 ...
- 一起学微软Power BI系列-官方文档-入门指南(4)Power BI的可视化
在前面的系列文章中,我们介绍了官方有关获取数据,以及建模的原始文档和基本介绍.今天继续给大家介绍官方文档中,有关可视化的内容.实际上获获取数据和建模更注重业务关系的处理,而可视化则关注对数据的解读.这 ...
随机推荐
- python核心编程 第二天
1.标准输入输出: import sys saveout=sys.stdout#保存当前输出状态 logfile=open('E://log.txt','r')# 打开文件 sys.stdout=lo ...
- redis学习(4)redis安装部署
下载redis-1.2.6.tar.gz 将下载包拷贝到/usr/local/webserver/redis-1.2.6/下 2.安装 tar -zxvf redis-1.2.6.tar.gz ce ...
- 在ASPxGridView的主从表显示中,有什么属性可以只让其每次选择只展开一列?
在ASPxGridView的主从表显示中,有什么属性可以只让其每次选择只展开一列?(效果图如下:): 在ASPxGridView的主从表显示中,有什么属性可以只让其每次选择只展开一列(效果图) 实现该 ...
- 对付ring0 inline hook
对付ring0 inline hook的基本思路是这样的,自己写一个替换的内核函数,以NtOpenProcess为例,就是MyNtOpenProcess.然后修改SSDT表,让系统服务进入自己的函数M ...
- highchart.js的使用
highchart.js是一个很实用的图表插件,涵盖柱状图.曲线图,区域图.3D图.饼图.散列图.混合图等等,功能很强大. 首先去官网下载最新版highchart.js插件,中文网地址:http:// ...
- 详解Ossim 4.3控制台
在Ossim 4.2以后的发行版中增加了控制台功能下面加以详细说明,当Ossim 启动之后,在控制台以root身份登录系统后会执行ossim-setup脚本,然后显示如下图1所示,了解这些功能,以及操 ...
- WPF和WINFORM的互操作
在WPF中使用Winform控件 <Window x:Class="WPFApplication.Window1" xmlns="http://schemas.mi ...
- IE6-IE9兼容性问题列表及解决办法总结
IE6-IE9兼容性问题列表及解决办法总结 概述 第一章:HTML. 3 第一节:IE7-IE8更新... 31.如果缺少结束标记的 P 元素后跟 TABLE.FORM.NOFRAMES 或 NOSC ...
- IEF could not decode Chinese character in IE history well
My friend is working on some case, and she looks not in the mood. I ask her what's going on. She wan ...
- leetcode 24
链表操作的,要注意标记头结点和边界问题. 代码如下: ListNode *swapPairs(ListNode *head) { if(head==NULL||head->next==NULL) ...