关闭

CentOS 5下freeswitch中集成使用ekho实现TTS功能

1180人阅读 评论(0) 收藏 举报
分类:

转载:http://www.csdn123.com/html/topnews201408/43/4843.htm

Linux下安装freeswitch并集成ekho实现TTS

1.freeswitch

linux下安装freeswitch就不多介绍了,具体链接网址:

http://www.8000hz.com/archives/14.html

2.ekho tts

Ekho TTS(http://www.eguidedog.net/ekho_cn.php)是一个免费、开源的中文语音合成软件。它目前支持粤语、普通话(国语)、诏安客语、藏语、雅言(中国古代通用语)和韩语(试验中),英文则通过Festival间接实现。Ekho支持Linux、Windows和Android平台。

英文则通过Festival间接实现。它比eSpeak的设计更简易,但文件较大。由于使用了真人发声,它比eSpeak的发音更自然。

源代码下载页面: Ekho (余音)

Ekho TTS 6.0的下载地址:https://sourceforge.net/projects/e-guidedog/files/Ekho/6.0/

一、Ekho的安装

        # tar xjvf ekho-4.8.tar.bz2

        # cd ekho-4.8

        # ./configure

        # make

        #make install

       安装成功~~~

        测试一下吧:  #ekho  "我爱你余音"

注意:

        如果./configure配置出错,可能是你缺少相关依赖库:libsndfile-devel,pulseaudio-libs-devel,ncurses-devel,libgtk2-devel,libvorbis-devel,liblame-dev,

        mp3支持依赖库: 

        下载:wget http://downloads.sourceforge.net/project/lame/lame/3.99/lame-3.99.5.tar.gz

        安装:./configure --disable-shared --enable-nasm

                     make & make install

yum install  +包名

特别提醒:有些linux上安装了以上包,要将安装目录下面生成的.pc文件拷贝到

/usr/lib/pkgconfig/ 或者

/usr/local/lib/pkgconfig/

这2个目录下

注意:直接配置

./configure

Make

安装ekho提示:

src/libekho.cpp: In member function ‘int ekho::Ekho::init()’:

src/libekho.cpp:79: 错误:expected primary-expression before ‘{’ token

src/libekho.cpp:79: 错误:expected `;' before ‘{’ token

src/libekho.cpp:1971: 错误:expected `}' at end of input

make[1]: *** [src/libekho_a-libekho.o] 错误 1

make[1]: Leaving directory `/home/new_uucc_soft/ekho-6.0'

make: *** [all] 错误 2

解决办法:

更改libekho.cpp中:

1.替换

mPendingFrames = 0;

  mStripSsml = true;

  mSpeakIsolatedPunctuation = true;

  mSpeechQueueMutex = PTHREAD_MUTEX_INITIALIZER;

  mSpeechQueueCond = PTHREAD_COND_INITIALIZER;

  mEnglishVoice = "voice_kal_diphone";

替换为:

  this->mPendingFrames = 0;

  this->mStripSsml = true;

  this->mSpeakIsolatedPunctuation = true;

  pthread_mutex_init(&mSpeechQueueMutex, NULL);

  pthread_cond_init(&mSpeechQueueCond, NULL); 

  this->mEnglishVoice = "voice_kal_diphone";

2.替换

mSonicStream = 0;

  mPcmCache = true;

  替换为:

this->mSonicStream = 0;

  this->mPcmCache = true;

3.替换

mFliteVoice = 0;

为:

this->mFliteVoice = 0;

4.替换

memset(mAlphabetPcmCache, 0, 26);

  memset(mAlphabetPcmSize, 0, 26);

  mPuncMode = EKHO_PUNC_SOME;

为:

memset(this->mAlphabetPcmCache, 0, 26);

  memset(this->mAlphabetPcmSize, 0, 26);

  this->mPuncMode = EKHO_PUNC_SOME;

 

 

安装完成:运行ekho 

测试:

注意:使用ekho将文本转换成为语音,要使用UTF8编码格式:

echo "我是好人" > tmp.txt

iconv -t UTF8 tmp.txt >tmp1.txt   这句在linux系统下一般不用因为linux默认是UTF8格式,如果用户自己改了系统格式,即要安装iconv,将tmp.txt的编码格式转换为UTF8格式

ekho -a 100 -f tmp1.txt -o p1.wav

 

二:安装Festival

如果需要朗读英语,需要打开Festival支持:

(Festival的安装)

Festival提供了一个通用的框架,用于构建语音合成系统,该系统包含了各种模块示例。它提供了完整的文本转语音的API,可以通过shell、C++静态库等多种方式调用,原生支持Mac OS,支持的语言包括英语和西班牙语;而且系统是使用c++编写,底层调用Edinburgh Speech Tools;

Festival下载地址:

http://festvox.org/packed/festival/2.1/

festival-2.1-release.tar.gz Festival语音合成系统源文件

speech_tools-2.1-release.tar.gz Edinburgh语音工库

estlex_CMU.tar.gz  festlex_POSLEX.tar.gz词典

festvox_kallpc16k.tar.gz 语料库

前两个解压后需要配置编译,后三个解压后自动解压在festival文件夹中。首先编译speech_tools,进入该文件夹,输入:

        #./configure    

        #make          

漫长的等待后,编译完成!此时可以 执行 make test 查看编译是否成功Test OK即表示成功。

 

设置变量:

用vi /etc/profile 最后添加一下语句:其中festival和speech_tools是你自己的安装目录

PATH=/home/new_uucc_soft/festival/festival/bin:$PATH:/home/new_uucc_soft/festival/speech_tools/bin


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:23640次
    • 积分:463
    • 等级:
    • 排名:千里之外
    • 原创:19篇
    • 转载:17篇
    • 译文:0篇
    • 评论:2条
    最新评论