centos ekho php,CentOS 5下freeswitch中集成使用ekho實現TTS功能一

Linux下安裝freeswitch並集成ekho實現TTS

1.

linux下安裝freeswitch就不多介紹了,具體鏈接網址:

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

2.

Ekho TTS(http://www.eguidedog.net/ekho_cn.php)是一個免費、開源的中文語音合成軟件。它目前支持粵語、普通話(國語)、詔安客語、藏語、雅言(中國古代通用語)和韓語(試驗中),英文則通過Festival間接實現。Ekho支持Linux、Windows和Android平台。

英文則通過Festival間接實現。它比eSpeak的設計更簡易,但文件較大。由於使用了真人發聲,它比eSpeak的發音更自然。

源代碼下載頁面: Ekho (余音)

一、Ekho的安裝

# tar xjvf ekho-4.8.tar.bz2

# cd ekho-4.8

# ./configure

# make

#make install

安裝成功~~~

測試一下吧:  #ekho  "我愛你余音"

注意:

如果./configure配置出錯,可能是你缺少相關依賴庫:libsndfile-dev,lib pulseaudio-dev,libncurses5-dev,libgtk2.0-dev,libvorbis-dev,liblame-dev,

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: error while loading shared libraries: libpulse-simple.so.0: cannot open shared object file: No such file or directory

這個時候就要在/etc/ld.so.conf中加入xxx.so所在的目錄。

一般而言,有很多so檔會在/usr/local/lib這個目錄下,所以在/etc/ld.so.conf中加入/usr/local/lib這一行,可以解決此問題。

將/etc/ld.so.conf存檔后,還要執行「/sbin/ldconfig –v」來更新一下才會生效。

測試:

注意:使用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下載地址:

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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值