前言

~~~~~      TTS技术,TTS是Text To Speech的缩写,即“从文本到语音”。它将计算机自己产生的、或外部输入的文字信息转变为可以听得懂的、流利的汉语口语(或者其他语言语音)输出的技术,隶属于语音合成(SpeechSynthesis)。
~~~~~      Ekho(余音)是一个免费、开源的中文语音合成(TTS)软件。它目前支持粤语、普通话(国语)、广东台山话、诏安客语、藏语、雅言(中国古代通用语)和韩语(试验中),英语则通过eSpeak或Festival间接实现。Ekho支持Linux、Windows和Android平台。

下载源码包

~~~~~      下载地址:http://www.eguidedog.net/ekho.php

~~~~~      Ekho支持Linux和Windows平台,使用时需要同时下载源文件和声音数据,解压到"jyutping"或"pinyin"。(以jyutping开头的声音数据是粤语,而以pinyin开头的声音数据是国语。文件名中的44100和16000表示的是采样率。采样率高意味着声音质量高。)

支持库的安装

sudo apt-get install libespeak-dev libsndfile1-dev libpulse-dev libncurses5-dev libestools-dev festival-dev libvorbis-dev libmp3lame-dev libdotconf-dev texinfo

配置、编译及安装:

~~~~~      如果需要阅读英语,则需要配置编译Festival,在configure选项中加上–enable-festival,如果需要编译speech-dispatcher API和支持屏幕阅读的话,就加上–enable-speechd。(speech-dispatcher是一个平台独立的语音合成API,其框架是基于client/server模型的,两者通信是通过TCP连接使用Speech Synthesis Independent Protocol (SSIP)协议通信或者接口库通信的。)
解压源码包:
$ tar xvf ekho-7.7.1.tar.xz

源码包里的主要文件如下;
speechd-api:speech-dispatcher API(平台独立的语音合成API);
sonic:一个语音变速的算法实现;
ekho-data:ekho的字典文件和声音数据,TTS是通过文本分析,再查找字典,找到对应的声音数据,然后通过语音合成出来的;
Utfcpp:处理Unicode编码字符串的库。
src:(ekho的主要实现)和lib(上面说的这几部分的静态链接库*.a)了,就没什么特别的了。

编译安装:
$ ./configure

$ make

$ sudo make install

~~~~~      安装后,ekho这个可执行文件和声音数据ekho-data都会复制到系统目录下。但是好像头文件(除ekho.h外)和库等就没有复制进去,所以编程链接时需要注意指定位置。

指令使用及测试

ekho指令的使用方法如下:

Ekho text-to-speech engine.
Version: 7.7.1Syntax: ekho [option] [text]
-v, --voice=VOICESpecified language or voice. ('Cantonese', 'Mandarin', 'Toisanese', 'Hakka', 'Tibetan', 'Ngangien' and 'Hangul' are available now. Mandarin is the default language.)
-l, --symbolList phonetic symbol of text. Characters' symbols are splited by space.
-f, --file=FILESpeak text file. ('-' for stdin)
-o, --output=FILEOutput to file.
-t, --type=OUTPUT_TYPEOutput type: wav(default), ogg or mp3
-p, --pitch=PITCH_DELTASet delta pitch. Value range from -100 to 100 (percent)
-a, --volume=VOLUME_DELTASet delta volume. Value range from -100 to 100 (percent)
-s, --speed=SPEEDSet delta speed. Value range from -50 to 300 (percent)
--english-speed=SPEEDSet English delta speed. Value range from -50 to 150 (percent)
--serverStart Ekho TTS server.
--request=TEXTSend request to Ekho TTS server.
--portSet server port. Default is 2046.
--versionShow version number.
-h, --helpDisplay this help message.Please report bugs to Cameron Wong (hgneng at gmail.com)

~~~~~      如上,-v是选择语种,-p是设置音高(与声音的频率相关),-a是设置音量,-s是设置语速。
~~~~~      下面来测试一个很魔性的声音,当时测试乐了半天,O(∩_∩)O哈哈~

ekho -p 200 "改革春风吹满地 中国人民真争气"

编程举例

~~~~~      依据网站(http://www.eguidedog.net/doc/doc_programme_with_ekho.php) 的指导一个测试例子try.cpp。
~~~~~      try.cpp文件:

#include "config.h"
#include "ekho.h"using namespace ekho;int main ( int argc , char **argv)
{Ekho wong("Cantonese");wong.blockSpeak("改革春风吹满地 中国人民真争气");return 0;
}

~~~~~      编译的话,因为依赖的库比较多,所以最好在该目录下写个sheel脚本build.sh,如下:

g++ try.cpp libekho.a -pthread \-I. -Iutfcpp/source -Isonic -lsndfile \`pkg-config --libs libpulse-simple` `pkg-config --cflags libpulse-simple`

运行./build.sh后报错了:

从上面的错误提示可知,缺少espeak库和musicxml库,添加-lespeak和./libmusicxml/libmusicxml2.a即可。

g++ try.cpp libekho.a ./libmusicxml/libmusicxml2.a -pthread \-I. -Iutfcpp/source -Isonic -lsndfile -lespeak\`pkg-config --libs libpulse-simple` `pkg-config --cflags libpulse-simple`

运行a.out,播放了测试程序中文本对应的语音。

linux——ekho7.7.1(最新版)语音合成库的安装与编译相关推荐

  1. linux安装了xml怎么编译,linux下libxml库的安装及编译

    linux下libxml库的安装及编译 1. 下载和安装LIBXML2 Libxml2是个C语言的XML程式库,能简单方便的提供对XML文件的各种操作,并且支持XPATH查询,及部分的支持XSLT转换 ...

  2. Linux本地yum源配置以及使用yum源安装gcc编译环境

    本文档是图文安装本地yum源的教程,以安装gcc编译环境为例. 适用范围:所有的cetos,红帽,fedroa版本 适用人群:有一点linux基础的小白 范例系统版本:CentOS Linux rel ...

  3. linux系统中如何安装qwt,linux下Qt开发环境中qwt库的安装与使用

    qwt的安装与使用 安装好qt开发环境后,先去下载qwt库源代码. 以我下载的qwt-6.0.1.zip为例,解压得到qwt-6.0.1. 1.安装qwt-6.0.1 执行下面的命令:1 cd qwt ...

  4. Linux常用工具小结:(2) Mysql的rpm安装和编译安装

    Mysql的rpm安装 1, 下载. 这里下载http://dev.mysql.com/downloads/mirror.php?id=402502. 2, 安装. 下载到本地解压: tar -xvf ...

  5. 在Linux平台上如何使用接静态库和共享库

    1.Linux函数库介绍 函数库可以看做是事先编写的函数集合,它可以与主函数分离,从而增加程序开发的复用性.Linux中函数库可以有3种使用的形式:静态.共享和动态. 1)         静态库的代 ...

  6. linux C++安装并编译boost库

    编译安装 ​​​​ wget https://dl.bintray.com/boostorg/release/1.67.0/source/boost_1_67_0.tar.gz tar -zxvf b ...

  7. 一点通路由器模拟软件最新版_2019年高压电工作业考试最新版题库及答案(全部判断题)...

    微信也可以搜索小程序或者公号"安全生产模拟考试一点通""进行全部题库练习和模拟考试,错题练习,成绩测评 第1题.[判断题] 三相交流对称电路中,如采用三角形接线时,线电流 ...

  8. linux 中如何将文件粘贴到usr下的lib内,学会在Linux下GCC生成和使用静态库和动态库...

    一.基本概念1.1什么是库 在windows平台和linux平台下都大量存在着库. 本质上来说库是一种可执行代码的二进制形式,可以被操作系统载入内存执行. 由于windows和linux的平台不同(主 ...

  9. linux下的动态链接库和静态链接库到底是个什么鬼?(一)静态链接库的编译与使用...

    知识不等于技术,这句话真的是越工作的时间长越深有体会,学习到的知识只有不断的实践,才成真正在自已的心里扎下根,成为自身的一部分,所以无论如何,我希望我的博客可以一直写下去,慢慢的沉淀,终会有回报,无聊 ...

最新文章

  1. Spring Boot 学习系列(02)—使用热部署,提升开发效
  2. Android4.0.3 USB OTG底层插入上报过程分析(1)
  3. ActionT和FuncT委托
  4. bootstrap datetimepicker 复选可删除,可规定指定日期不可选
  5. 线程的发展史,调度策略、适用范围、特点,进程与线程的区别、线程的属性、posix线程库
  6. ue4创建c++类编译失败
  7. 鸿蒙系统sp3什么意思,XP系统的那个SP3是什么意思?
  8. springboot配置logback
  9. SHOPEX快递单号查询插件圆通V8.2专版
  10. UG NX 12 组件装配约束
  11. Spring Cloud Gateway源码系列之路由配置加载过程
  12. Duilib 和 DuiDesigner 简介
  13. linux内核内存管理slub
  14. QuickIndex 通讯录快速检索
  15. CS5266+MA8621做TYPEC转HDMI+PD+U3+2U+SD/TF七合一拓展坞方案设计|CS5266多口拓展坞PCB+原理图参考
  16. 实时操作系统与分时操作系统的区别
  17. 判断二叉树是否为完全二叉树
  18. js实现鼠标移入移出改变图片路径问题
  19. 网易狼人杀维护服务器,《狼人杀-官方正版》06月10日维护公告
  20. 用java写一个金字塔,一个Java写的用以构建影像金字塔的Bitmap类

热门文章

  1. 计算机是如何思考生鲜连锁店选址问题的?
  2. Nextracker冲刺美股:拟募资5亿美元 下周纳斯达克上市
  3. 防弹笔记本电脑 - 如何强大是今天的坚固的笔记本电脑
  4. 【算法】CAS的实现和无锁编程
  5. 三国志战略版:Daniel_也甜也咸-青州兵分析
  6. 如何优雅的抛弃 CentOS 7
  7. 分享一个程序员专属的搜索主页
  8. GLOG从入门到入门
  9. MathJax 基本操作
  10. 软件定义与分类1.1