精通
英语
和
开源
,
擅长
开发
与
培训
,
胸怀四海
第一信赖
语音输出经常用的输出方式,在以前Windows平台下做过句子的语音播放,用MCI播放字的Wav形成句子效果,MIC有播放函数也有播放完成消息,通过播放动作和消息结合形成播放句子效果。随着时代发展朗读功能形成了开源项目,也有了读屏这类专业软件。espeak就是朗读句子的专业开源项目软件,espeak处理音频非常专业。
下面内容是官网翻译,注意不要把espeak当做一个工具软件,要把它理解为一个平台,一个能自洽的平台。
eSpeak是适用于Linux和Windows的紧凑型开源软件语音合成器,适用于英语和其他语言。 http://espeak.sourceforge.net eSpeak使用“共振峰合成”方法。这允许以小尺寸提供许多语言。语音清晰,可以高速使用,但不如基于人类语音记录的大型合成器自然或流畅。
eSpeak包含如下形式:
一个命令行程序(Linux和Windows),用于说出文件或stdin中的文本。
供其他程序使用的共享库版本。 (在Windows上,这是一个DLL)
Windows的SAPI5版本,因此可以与屏幕阅读器和其他支持Windows SAPI5界面的程序一起使用
eSpeak已经移植到其他平台,包括Android,Mac OSX和Solaris
特点.
包括不同的音色,其特征可以更改。
可以将语音输出生成为WAV文件。
支持(不完整)SSML(语音综合标记语言)以及HTML。
体积小巧。该程序及其数据(包括多种语言)总计约2 MB。
可以用作MBROLA diphone语音的前端,请参阅mbrola.html。 eSpeak将具有音高和长度信息的文本转换为音素。
可以将文本转换为音素代码,因此可以将其用作另一个语音合成引擎的前端。
其他语言的潜力。在进展的不同阶段中包括了几个。欢迎母语为这些语言或其他语言的人员提供帮助。
开发工具可用于生成和调整音素数据。
用C开发。
我经常使用eSpeak收听博客和新闻站点。我更喜欢通过家用立体声系统而不是小型计算机扬声器来播放声音,后者听起来会很刺耳。
语言: eSpeak语音合成器支持多种语言,但是在许多情况下,这些只是初始草案,需要更多工作来改进它们。欢迎母语使用者提供这些语言或其他新语言的帮助。如果您需要帮助,请与我联系。eSpeak对以下几种语言进行文本到语音的合成,其中一些语言比其他语言更好。
南非语,阿尔巴尼亚语,阿拉贡语,亚美尼亚语,保加利亚语,粤语,加泰罗尼亚语,克罗地亚语,捷克语,丹麦语,荷兰语,英语,世界语,爱沙尼亚语,波斯语,芬兰语,法语,格鲁吉亚语,德语,希腊语,北印度语,匈牙利语,冰岛语,印度尼西亚语,爱尔兰语,意大利语,卡纳达语,库尔德语,拉脱维亚语,立陶宛语,罗伊班语,马其顿语,马来西亚语,马拉雅拉姆语,普通话,尼泊尔语,挪威语,波兰语,葡萄牙语,旁遮普语,罗马尼亚语,俄语,塞尔维亚语,斯洛伐克语,西班牙语,斯瓦希里语,瑞典语,泰米尔语,土耳其语,越南语,威尔士语。
最新的开发版本位于:espeak.sf.net/test/latest.html。
espeakedit是用于准备和编译音素数据的GUI程序。现在可以下载。当前文档很少,但是如果您想使用它来增加或改善语言支持,请告诉我。
历史:最初称为语音,最初于1995年为Acorn / RISC_OS计算机编写。此版本经过增强和重写,包括放宽了对原始内存和处理能力的限制,并支持其他语言。
这里推出锐英源的国外内容翻译文章、espeak使用技巧和espeak代码理解文档,欢迎同行交流。
espeak开发是指用espeak的头文件和库写一些朗读软件,下面是我写个一个处理函数,请大家参考
espeak_Initialize(AUDIO_OUTPUT_SYNCH_PLAYBACK, 0, NULL, 0); // 初始化,同步模式,
espeak_SetParameter(espeakWORDGAP,26,0);
espeak_SetVoiceByName("zh+f2"); // 设置音源为中文女声
int ret = espeak_Synth(word, wstrlen(word) + 1, 0, POS_CHARACTER, 0,
espeakCHARS_WCHAR, NULL, NULL); // 发音
if (ret != EE_OK)
{
swprintf(wclog,ret);
log<<L"espeak_Synth "<<wsget<<L" error:%d"<<wclog;
usleep(20000);
continue;
}
espeak_Synchronize( );
espeak_Terminate(); // 回收资源
进入/espeak-1.48.01-source/dictsource目录,拷贝zh_listx到上面目录里,执行espeak --compile=zh,如果没有zh_listx会出:
Full dictionary is not installed for 'zh' Using phonemetable: 'zh' Compiling: 'zh_list' 3873 entries Compiling: 'zh_rules' 181 rules, 28 groups (0) Full dictionary is not installed for 'zh'
如果报如下错误
/usr/bin/espeak: error while loading shared libraries: libespeak.so.1: cannot open shared object file: No such file or directory ldd libespeak.so.1 libportaudio.so.2 => not found
解决办法
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/:/usr/local/lib
添加中文支持了以后,可以用如下命令来测试
espeak -vzh 你好 -w test.wav
不过是西方人发音,四声不太清楚,需要调整才能用在产品里。