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

news/2025/3/17 2:48:12/

前言

~~~~~      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,播放了测试程序中文本对应的语音。


http://www.ppmy.cn/news/836933.html

相关文章

音视频相关基础知识

音视频相关基础知识 本文采用知识共享署名 4.0 国际许可协议进行许可,转载时请注明原文链接,图片在使用时请保留全部内容,可适当缩放并在引用处附上图片所在的文章链接。 视频编码 运动静止图像专家组的 M-JPEG国际标准化组织(ISO)运动图像专…

多媒体信息与通信期末复习

此为张晶老师出版的《多媒体信息与通信》的书所整理出的知识点 第一章 1.媒体是指信息的载体 2.媒体有两种含义: (1)信息的存储实体,如磁盘、光盘、磁带、半导体存储器等 (2)传递信息的基本元素&#xff0c…

软件设计师-多媒体专题

1、多媒体知识: 1.1多媒体知识概述  基本概念 多媒体信息一般指用文本、图形、图像、动画、音频和视频影像等形式表示的信息。多媒体计算机技术是指利用计算机交互地综合处理相互之间有联系的文本、图形、图像、动画、音频、视频等多种信息。多媒体的主要特性表现…

QT-FFMPEG录制屏幕和声音的完整程序(包含音视频同步)

整体框架: 屏幕录制、声音录制、音视频合成分别在不同的子线程中运行,由主程序控制录制的开始和结束。控制流程如下图所示: 主线程:点击开始按钮打开音频设备、视频设备、输出文件、启动子线程发送开始录制信号; 子线…

【软考】信息安全多媒体标准化知识产权复习指南

1、信息安全 根据考试大纲,本章要求考生掌握以下几个方面的知识点。 (1)信息系统安全基础知识 (2)信息系统安全管理 (3)保障完整性与可用性的措施 (4)加密与解密机制基础…

android多屏互动组件,大神教你玩转多屏互动-PC投屏安卓篇

多屏互动是个什么东东呢?平时喜欢折腾的童鞋可能会了解一点,小编用通俗的话给大家解释下,多屏互动就是通过软件、协议,在同系统或者不同系统的智能硬件推送或者镜像播放。 好吧,也不算太通俗。再解释一下,例…

android多屏互动组件,史上最实用的多屏互动教程 PC投屏(镜像)安卓

什么是多屏幕交互?通常喜欢互相捣乱的孩子们可能会明白,编辑可以很容易地向你解释,多屏幕交互就是通过同一系统或不同系统的网络、协议、软件和智能硬件,在同一个系统或不同系统的智能硬件中推送媒体文件或镜像。 不太受欢迎。再解释一遍,比如windows投影(镜像)到android(…

10、多媒体基础知识

目录 第十章 多媒体基础知识多媒体基础概念1.声音频率的概念2.图形和图像的区别3.彩色空间4.图像文件大小计算5.声音文件大小计算6.视频文件大小计算例题 多媒体标准例题 有损压缩和无损压缩 第十章 多媒体…