前言

今年,我参加学校举办的的一个嵌入式比赛,我的作品中需要用到中文文本语音转换的功能,由于是使用linux系统,所以不能使用MS提供的语音开发包,虽然linux上也有很多TTS功能的软件,但都只支持英语文本的转换,不支持中文的转换,当然支持中文语音转换的也有,但都需要money的,而且我们对语音的要求不高,所以就由我自己来实现。

我实现的中文TTS现有功能如下:基于中文二级字库,语音库的语音元素使用的是MS的语音库语音元素。

合成语音文件的格式为 WAV,  所以合成语音可以直接在声卡上播放。

提供简单的函数调用接口,支持程序开发

附:

我实现的中文TTS 需改进的N点:没有自己的语音播放功能(我是FORK 播放器进程来读语音文件的)需要在TTS中增加播放功能模块,才能算是完整的TTS系统,网上有很多LINUX上播放器的代码,由于时间关系我暂时没做,但以后我一定会加上去的,我也希望能有朋友能帮我完成这功能

语音库文件太大(没压缩前有40M左右,使用普通的压缩程序压缩后只有2M多点)我的发音元素是采用WAV格式的,所以有点大, 解决方法我暂时还没想到,我打算对压缩文件进行操作,但不知道行不行,自己没把握。

提供的函数功能太简单

3.1): 现在只提供了将GBK/GB2312编码 的中文文本转换, 如果程序使用的编码是其它格式的话,还需先自己转换成GBK/GB2312的编码 才能使用我提供的函数,我想在中文TTS中封装编码转换函数,这样能使应用程序更方便的使用。

3.2): 其他很多功能的实现:

太多功能需要来实现,写都写不来了。。比如说读数字的处理等等,太多了,所以暂时空着

读音效果

我想这点应该是评价一个TTS系统的最关键的因素,也是我自己认为最难的一点,我想这可能超出了我的知识范围,我的头脑中只存在着编程逻辑,对其他的知道得甚少,我想我自己得突破这点。了解其它学科的知识。 现在我只能说一句, 现在的读音效果超差,一听就知道是机器在读,没有一点人情味。

不支持中英文混读

现在只能读中文,英文是一个一个字母的读,虽然有很多关于英语转换的TTS软件是开源的,但要完成这功能还是需要一定的工作量的,想想如果让我一个人来做,就头晕,天哪,要看N多的代码.......

多音字的处理

我想这可能要用到中文分词了....

实现原理

采用波形拼接的语音生成方法来实现本系统。这种方法预先建立一个庞大的语音数据库,在合成时采用恰当的技术手段挑选出所需的语音基元进行拼接,从而形成语音输出。因此,语音拼接的重点是基本语音单元的拼接,我们选取字作为基本的语音拼接单位,语音数据库由若干以字为单位的WAV样本文件组成。[1]

所以实现本汉语TTS系统主要完成两项工作:

第一:建立一个语音库,语音库中记录了普通话中所有汉字的读音;

第二:建立汉字机内码到汉字读音的访问方法,实现由输人的汉字机内码得到该汉字的读音。并且合成WAV声音文件。[2]

语音库的实现

语音库保存着常用汉字的发音(多音的汉字只记录其一种发音,这也是本系统的一个缺陷,需要以后完善),所以先要得到一汉字集,这个汉字集包含了大部分常用的汉字,然后在根据这个汉字集,来一个个的取得汉字的发音,并且按一定的规则保存到语音库中。

所以实现语音库可以分为三步:取得常用汉字的集合

根据汉字集,使用一些朗读软件生成该汉字集的语音文件

处理汉字集语音文件的格式,使它能符合我们的要求

1.1根据汉字编码规则获取汉字字符集的文本文件

1.1.1编码知识:

所谓编码,是以固定的顺序排列字符,并以此作为记录、存贮、传递、交换的统一内部特征。一个汉字有ASC II码、区位码等与之对应。ASC II码中对应于码值161到254的字符用于表示汉字,每个汉字用两个ASC1I码值对应的字符表示。区位码用4位数字表示,前两位从01到94称区码,后两位从01到94称位码。一个汉字的前一半是 ASC II码为“160+区码”的字符,后一半是ASCII码为“160+位码”的字符。例如:“刘”的区位码是3385,其意为区码33和位码85,它是由 ASCII码为160+33=193和160+85=245的两个字符组成。

该文所说的汉字字符集一般是指ISO 10646.1 即GB13000.1。在Windows 95/98/2000中,微软提供了“汉字扩展内码规范(GBK)”以解决汉字的收字不足、简繁共存、简化代码体系间转换等汉字信息交换的瓶颈问题,利用 GBK可以方便解决“

linux tts 中文,基于linux的中文TTS 简单实现相关推荐

  1. 平板点餐linux系统下载,基于Linux的智能点餐系统.pdf

    软件应用与设计◆----一 SoftwareApplicationandDesign 基于Linux的智能点餐系统 周怡浩 (湖南科技学院,湖南永州 425007) 摘 要 :当今这个快节奏的社会,效 ...

  2. 如何学习修改linux系统固件,基于Linux的固件,如何实现更新的好方法?

    我正在使用alix 2d13开发基于linux的设备. 我开发了一个脚本,负责创建映像文件,创建分区,安装引导加载程序(syslinux),内核和initrd,并注意将根文件系统文件放入正确的分区. ...

  3. linux 无线 网桥,基于Linux无线网桥及无线网络设备驱动分析与研究

    摘要: 综合了局域网,无线通信等相关技术的无线局域网(WLAN)是非常方便的数据传输系统,它利用射频技术遵循IEEE 802.11协议,具有传输速率高,成本低廉,兼容和扩展能力强等优点,是近些年来通信 ...

  4. linux设备资源分配,基于Linux 简化 AMP 配置使其更方便更动态地分配资源

    描述 嵌入式系统一般分为两大类:需要硬实时性能的:和不需要硬实时性能的.过去,我们不得不做出艰难抉择: 选择实时操作系统的性能还是我们钟爱的 Linux 系统的丰富特性,然后努力弥补不足之处? 如今, ...

  5. linux电子相册程序,基于Linux电子相册的

    基于Linux电子相册的 (18页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 14.9 积分 本科毕业论文(设计) 题目: 基于Linux电子相册的 ...

  6. 限速linux c语言,基于Linux系统的流量控制程序的C语言代码

    基于Linux系统的流量控制程序的C语言代码 基于Linux系统的流量控制程序的C语言代码 mytbf.h头文件 ifndef MYTBF_H_ #define MYTBF_H_ typedef vo ...

  7. linux手机+华为,基于Linux打造,华为重磅宣布,开始在6款手机测试新系统

    原标题:基于Linux打造,华为重磅宣布,开始在6款手机测试新系统 全球智能手机的发展已经来到了十字路口,技术瓶颈越来越明显.有数据显示,苹果iphone手机的销量依然在下滑,没有很大的起色,这表明消 ...

  8. 基于linux的 设计,基于Linux的智能家居的设计(一)

    本课题主要目的是设计和实现一个基于Linux开发平台的智能家居系统.本系统主要使用PVC板做成的家居模型.本系统硬件使用基于ARM架构的samsung S3C6410芯片做成的OK6410开发板为手持 ...

  9. linux电机驱动程序,基于Linux系统的HHARM9电机驱动程序设计

    电子科学知识.电机,arm 第24卷 第4期 2005年12月南昌工程学院学报JournalofNanchangInstituteofTechnologyVol.24No.4Dec.2005文章编号: ...

  10. linux系统人机界面,基于Linux的人机界面可重构通信设计与实现

    1 前言 人机界面产品是工业现场常用的数字显示设备,它通过串行通信接口连接可编程逻辑控制器(Programmable Logic Controller,PLC)等工业设备,利用显示器和触摸屏或按键实现 ...

最新文章

  1. 2018-3-18Zookeep
  2. linux mq查看端口_通过rabbitmq的web监控mcollective的状态
  3. BERT论文阅读(一): Pre-training of Deep Bidirectional Transformers for Language Understanding
  4. 深入了解MyBatis返回值
  5. sql server系统表详细说明(二)(摘)
  6. ajax,php文件读取
  7. 钉钉老版本下载3.31_钉钉3.3.1老版本官方下载-钉钉3.3.1旧版本PC版官方版-东坡下载...
  8. mysql中如何删除空记录表_mysql删除表中的记录
  9. python解析html的库_python自带的用于解析HTML的库HtmlParser
  10. 谁动过你的电脑?小姐姐们要学会保护好自己电脑里的小秘密呀
  11. 中国数据总线电缆市场趋势报告、技术动态创新及市场预测
  12. Silverlight中Shape,Geometry
  13. pyqsplitter 保持一个窗口不能拖动_Axure教程:左侧导航如何自适应浏览器窗口高度?...
  14. Jinjia2模板控制语句
  15. 实现流程管理的五个步骤
  16. 【Chrome扩展程序】利用 background 实现跨域 fetch 访问
  17. 网络安全基础(十四)
  18. 【离散数学】点割集(割点集)与边割集详解
  19. apollo学习之---(19)commen-filter学习
  20. 重读《触龙说赵太后》

热门文章

  1. 游戏多开计算机内存不足,技术宅 解决天刀多开单开内存不足问题
  2. Android_应用程序权限
  3. Android高手笔记 - 网络优化
  4. Linux网络编程——千峰物联网笔记
  5. axis调用webservice不同参数的方法
  6. 五千来多字,就为了聊聊HTTP报文,请求响应头,cookie以及HTTPS加密方式
  7. mac版免费吃鸡游戏(荒野行动)
  8. 《 硬件创业:从产品创意到成熟企业的成功路线图》——1.2 当前的技术
  9. 剑指offer2.1
  10. 微型计算机系统中存储容量最大的部件,微型计算机中存储容量最大的部件是什么?...