菜单

espeak尝试说中文

2017年4月13日 - 嵌入式, 编程

今天尝试了一下用espeak尝试通过中文发出声音,就是传说中的TTS ( text to speech),操作环境是树莓派3B,安装的软件有:espeak,libespeak-dev, 播放设备是我们公司同事研发的GEEEKPI JOYSTICK(别问我为何JOYSTICK还能播放声音,具体查看近期慕尼黑电子展上的树莓派街机项目就知道了。这个板子功能屌爆了,不说了,不然属于硬植广告。

直接远程login到树莓派,然后vim walle.c 

开始撸代码~

C代码:

#include <espeak/speak_lib.h>
#include <string.h>
#include <unistd.h>


int main(int argc, char **argv)
{
        char word[]="老李推荐,不会坑你";
        char word2[]="我推荐的不会错哈";
        espeak_Initialize(AUDIO_OUTPUT_PLAYBACK,0,NULL,0);

        espeak_SetVoiceByName("zh");
        espeak_Synth(word,strlen(word)+1,0,POS_CHARACTER,0,espeakCHARS_UTF8,NULL,NULL);
        sleep(3);
        espeak_Terminate();


        espeak_Initialize(AUDIO_OUTPUT_PLAYBACK,0,NULL,0);
        espeak_SetVoiceByName("zh");
        espeak_Synth(word2,strlen(word2)+1,0,POS_CHARACTER,0,espeakCHARS_UTF8,NULL,NULL);
        sleep(3);
        espeak_Terminate();

接着编译:

g++   walle.c  -o walle  -lespeak

执行:

./walle

效果很明显,其中可以通过对  espeak_SetVoiceByName("zh"); 中的zh,zh+f2 ,en等参数的切换,更换不同的声音效果,但是比较生涩,比较符合我们制作wall-e的需求。

这里做个总结:

参考:http://blog.csdn.net/tjh666/article/details/3983036

 

发表评论