这篇主要介绍下flite和在windows下的cygwin中编译,以及选择espeak的原因。
         从flite的介绍中可以看到,它是festival-lite,即festival的精简版,相对于Festival结构过冗余,速度太慢,它是一款短小精悍,快速实时的TTS引擎。Flite设计中兼容Festival的voiees和models,Flite使用HRGS(heterogeneous relation graphs)作为它的基本的发音代表结构。而且合成器的大部分内容是数据,比如字典,单元数据库等(lexicons,unitdatabaseetc),实际的代码量相当的小。对于festival,大部分数据存在在外部文件中,依需要而下载,而对于Flite来说,因为它是非常小的一个引擎,所以允许核心数据在ROM中。从架构上看,Flite包括两个部分,核心库和声音,Flite库包含核心合成代码。Flite声音,这包含三个子部分(1)语一言模型:字串处理,韵律模型 textprocessing,  prosodymodelsete(2)字典不fJ字符到声音规则    Lexieonandxette:tosoundrules(3)单元库和声音定义 unitdat汕   aseandvoicedefinition。
         Flite是墓于diphone原理合成的,Diphone合成中所使用的是一种简约语音库,它包括一种语言中出现的所有diphone(汉语中叫做双因素),diphone的数量是基于这种语音的因素的数目,比如:西班牙语有大约800个diphone,德语有2500左右。在diphone合成中,每个dihone只有一个例子是包含在语音库里。在运行时,句子的韵律处理是基于这些最小单位的叠加,通过数字信号处理技术手段,诸如LPC、PSOLA或MBROA。由此而致的合成效果比单元必须系统的差一些,但是比共振峰好一点(espeak采用的方法)。由此的文本到语音的基本过程是,文字的预处理,从输入的文本到获得一个个的单词,界定出的标点符号等需停顿处,再由单词和diphone库词典,转换成相对应的diphone代表,该库由CMU语素库而来,支持超过175000个单词。再由录制好的diphone数据库对应的波形、韵律等属性,配合音高、音长等调节,最后采用PLOSA算法(基音同步叠加技术)拼接,确保平滑过渡。(来自参考【1】)
         说了些基本的原理,对于大部分使用的人来说足够了。(一)中已经提到过其在Linux的编译使用了,只是在Windows下以为会比较顺利,结果出了些问题:首先是官方文档中提示VC6无法编译通过,但是源码中给的VS下的工程文件在VS2008和VS2010下都是没办法编译的,可能配置有问题,在网上找到VS2005下编译成功的,且提供了编译出静态库的方法(flite的版本是1.4的),地址是http://geoffair.net/projects/flite.htm,我没有环境,因此没有进一步测试。我的做法是在cygwin下,类似Linux的方法直接./configure make编译,然后想单独拿出来使用,需要cygwin.dll库,只要从cygwin中拷贝出来放到同一个文件夹中即可。至于使用mingw32的方法还不会。

没有进一步编程测试flite,其官方文档里面有测试的例子及API说明。决定后期还是使用espeak分析,简单来说其还在一直更新中,而且支持的语言种类多,合成简单,代码也比较少。问题是flite的语音库支持好,而espeak的语音自然流畅没有多大的提升空间了,只能说是优化了。想做成高端产品的话,科大讯飞、中科院的都是不错的选择。最后补充一点的是Android上的移植之类也是比较方便的,参考文献里面可以看看。

参考:

【1】基于嵌入式平台的语音合成技术的研究与实现
                【2】中文文本转语音开源引擎EKHO http://my.oschina.net/hgneng/blog/68357

3个开源TTS(三)flite的简要分析与espeak的选择相关推荐

  1. java开源tts_开源TTS(Text To Speah)的选择和使用

    TTS是Text To Speech的缩写,即"从文本到语音",是人机对话的一部分,让机器能够说话. TTS是语音合成应用的一种,它将文件内容或应用上的文字等,如应用菜单或者网页, ...

  2. Android Hal层简要分析

    Android Hal层简要分析 Android Hal层(即 Hardware Abstraction Layer)是Google开发的Android系统里上层应用对底层硬件操作屏蔽的一个软件层次, ...

  3. RxJava Agera 从源码简要分析基本调用流程(2)

    2019独角兽企业重金招聘Python工程师标准>>> 版权声明:本文由晋中望原创文章,转载请注明出处:  文章原文链接:https://www.qcloud.com/communi ...

  4. 开源组件漏洞检查工具实践分析

    文章目录 Murphysec开源组件漏洞检查工具 介绍 检测原理 JetBrains IDE插件MurphySec Code Scan工具使用 介绍 支持功能 插件安装 插件配置 一键扫描 一键修复功 ...

  5. PyTorch多卡分布式训练:DistributedDataParallel (DDP) 简要分析

    ©作者 | 伟大是熬出来的 单位 | 同济大学 研究方向 | 机器阅读理解 前言 因为课题组发的卡还没有下来,先向导师问了实验室的两张卡借用.之前都是单卡训练模型,正好在这个机会实践以下单机多卡训练模 ...

  6. oracle查询表实际大小,简要分析估算oracle表的大小

    查询oracle表的大小有几种方法,笔者简要分析下他们的异同 环境,newsadmin.newlog,原本有244,459,078条记录,delete后,现在只有51,109,919记录. 一.seg ...

  7. oracle计算表的大小,简要分析估算oracle表的大小

    查询oracle表的大小有几种方法,笔者简要分析下他们的异同 环境,newsadmin.newlog,原本有244,459,078条记录,delete后,现在只有51,109,919记录. 一.seg ...

  8. 开源linux 二进制工具,又一款开源好物:逐字节分析的二进制数据分析工具bitinsight...

    项目名称:bitinsight 项目作者:compilelife 开源许可协议:GPL-3.0 项目地址:https://gitee.com/compilelife/bitinsight 项目简介 b ...

  9. 【u-boot】uboot代码简要分析 (u-boot 移植)

    uboot代码简要分析 (u-boot 移植) 2012-12-19 22:46:04 [转] 先来看看源码目录结构,再按照代码的执行顺序简单地分析源码 1.U-boot源码整体框架 源码解压以后,我 ...

  10. 计算机网络实验 ——wireshark抓包简要分析TCP、UDP协议

    [计算机网络实验 --wireshark抓包简要分析TCP.UDP协议] (1)分析 TCPheader: Source Port:16bit源端口,数据发起者的端口号: Destination Po ...

最新文章

  1. 什么是Sprint?
  2. 9 10次C语言上机作业,C语言第五次上机作业参考答案
  3. python getattr_Python中的getattr()函数详解
  4. pycharm 报错 IndentationError: unexpected unindent 解决办法
  5. Nginx实现tomcat集群进行负载均衡
  6. 多线程“基础篇”11之 生产消费者问题
  7. 【C】C语言内存字节对齐
  8. 在jmeter中怎么提取数据_Jmeter正则提取请求响应数据
  9. 社交媒体坏了 — 来自社会化媒体峰会报告
  10. 计算机相关专业的学生如何规划自己的职业?
  11. 21接力题典1800 数一 重积分 P46 T18
  12. Elasticsearch创建索引
  13. Qt音视频开发12-mpv解码播放
  14. 图像压缩编码——香农/哈夫曼编码
  15. 微信小程序使用骨架屏
  16. LDAP-openldap服务部署和测试(YUM安装)
  17. 滑动窗口提取特征-torch.unfold的应用
  18. 教师资格证2023年报名时间来了!
  19. OpenCV内部函数cvFindExtrinsicCameraParams2解析(一)
  20. 计算机电池维修方案,教你更换笔记本电脑电池芯的方法

热门文章

  1. C++ 11中几个我比较喜欢的语法
  2. android中的四种基本动画
  3. 高通处理器命名中文化
  4. Conflux吐槽君:IOTA物联网电磁炉-让PoW的耗电没有遗憾
  5. 大型网站应用中 MySQL 的架构演变史
  6. BRVAH分组功能原理分析
  7. ABP理论学习之发布说明
  8. Jquery操作select、checkbox、radio详细讲解
  9. 2.企业安全建设指南(金融行业安全架构与技术实践) --- 金融行业的信息安全
  10. 5.Linux性能诊断 --- 追踪技术