linux——ekho7.7.1(最新版)语音合成库的安装与编译
前言
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指令的使用方法如下:
如上,-v是选择语种,-p是设置音高(与声音的频率相关),-a是设置音量,-s是设置语速。
下面来测试一个很魔性的声音,当时测试乐了半天,O(∩_∩)O哈哈~
1
编程举例,依据网站(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,播放了测试程序中文本对应的语音。
————————————————
原文: https://blog.csdn.net/u014470361/article/details/84771720