锐英源软件
第一信赖

精通

英语

开源

擅长

开发

培训

胸怀四海 

第一信赖

当前位置:锐英源 / 开源技术 / C语言开源技术 / espeak、espeak开源社区、espeak开发和espeak用法
联系方式
固话:0371-63888850
手机:138-0381-0136
Q Q:396806883
微信:ryysoft

espeak

 

背景

语音输出经常用的输出方式,在以前Windows平台下做过句子的语音播放,用MCI播放字的Wav形成句子效果,MIC有播放函数也有播放完成消息,通过播放动作和消息结合形成播放句子效果。随着时代发展朗读功能形成了开源项目,也有了读屏这类专业软件。espeak就是朗读句子的专业开源项目软件,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用法
 

朗读中文

进入/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

不过是西方人发音,四声不太清楚,需要调整才能用在产品里。

友情链接
版权所有 Copyright(c)2004-2021 锐英源软件
公司注册号:410105000449586 豫ICP备08007559号 最佳分辨率 1024*768
地址:郑州大学北校区院(文化路97号院)内劳动服务器公司办公楼一层