微软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的可视化
在前面的系列文章中,我们介绍了官方有关获取数据,以及建模的原始文档和基本介绍.今天继续给大家介绍官方文档中,有关可视化的内容.实际上获获取数据和建模更注重业务关系的处理,而可视化则关注对数据的解读.这 ...
随机推荐
- 设置.Net多线程默认CultureInfo
.net编码过程中,当我们新开一个线程时,其默认的CurrentCulture属性为当前系统的Culture,在软件的本地化没有完成的情况下,采用默认系统的文化编码方式,可能会导致软件在界面显示,数字 ...
- 2014年值得学习的25个PS CS6教程(一)
热爱PS的朋友看过来~~~下面跟大家推荐10个高端大气上档次的PS教程(都是英文的哦) 1.为4D电影创建一副3D海报 2.制作3D水果文字 3.肖像图混合数字工艺 4.‘Doctrich – Pos ...
- xml中俩种解析方式
两种解析方式 1.from xml.etree import ElementTree as ET 利用ElementTree模块下的xml方法可以把一个字符串类型的东西转换成Element类,从而利用 ...
- mongodb分组,的两种方式,先记一下
using MongoDB.Bson; using MongoDB.Driver; using MongoDB.Driver.Builders; using NationalUnion.AdGalle ...
- Android 类库打包、发布方法
开发Android应用的时候,对于可用于多个应用的公用的部分,或是打算发布给第三方进行应用集成的部分,要把这部分打包成类库怎么做呢? Android应用使用ADT打包成apk,apk中包含了运行程序所 ...
- android + javascript 相互通信实例分析
1. AndroidManifest.xml中必须使用许可 "android.permission.INTERNET", 否则会出Web page not available错误 ...
- vc不用IDE编译方法
一个EXE是如何形成的 比如一个源程序有以下两个文件. 1.c 1.rc 首先cl.exe 会把源代码编译为1.obj rc.exe会把1.rc编译为1.res link.exe会把1.obj 1.r ...
- Alfresco安装与配置图解
Alfresco安装与配置图解 Alfresco是一款开源的企业内容管理系统(ECM),为企业提供了日常的文档管理.工作流(可以和企业目前的OA协同接合使用).工作记录管理.知识管理.网络内容管理.图 ...
- coffeeScript 语法总结
CoffeeScript ---->安装node.js ---->安装coffeeScript 语句: 注意:没有分号,语句由新的一行结束:多条语句写到同一行时需要分号表示一条语句的结束( ...
- html5 搖一搖
<script> // 首先在页面上要监听运动传感事件 function init(){ if (window.DeviceMotionEvent) { // 移动浏览器支持运动传感事件 ...