对于那些不能文字朗读的设备,有个小工具可以实现文字说话的转换器。用各种语言写一些东西,espeak就可以朗读给你。
系统应该默认安装了Espeak,如果你的系统没有安装,你可以使用下列命令来安装:
# apt-get install espeak   (Debian)
# yum install espeak       (CentOS)
# dnf install espeak       (Fedora 22 及其以后)  
你可以让espeak接受标准输入的交互输入并及时转换成语音朗读出来。如下:
$ espeak [按回车键]
       
更详细的输出你可以这样做:
$ espeak --stdout | aplay [按回车键][再次回车]
espeak设置灵活,也可以朗读文本文件。你可以这样设置:
$ espeak --stdout /path/to/text/file/file_name.txt  | aplay [Hit Enter] 
espeak可以设置朗读速度。默认速度是160词每分钟。使用-s参数来设置。设置每分钟30词的语速:
$ espeak -s 30 -f /path/to/text/file/file_name.txt | aplay
设置每分钟200词的语速:
$ espeak -s 200 -f /path/to/text/file/file_name.txt | aplay
你可以使用各种语言,让espeak如上面说的以你选择的语言朗读。使用下列命令来获得语言列表:
$ espeak --voices
下面再来分享一段C语言程序中调用espeak的示例:
C/C++ Code复制内容到剪贴板
    - #include <espeak/speak_lib.h>  // 包括espeak的头文件   
     - #include <string.h>   
     - #include <unistd.h>   
     -   
     - int main(int argc, char **argv)   
     - {   
     -     char word[] = "吃葡萄不吐葡萄皮";   
     -     espeak_Initialize(AUDIO_OUTPUT_PLAYBACK, 0, NULL, 0);      
     -     espeak_SetVoiceByName("zh+f2");      
     -     espeak_Synth(word, strlen(word) + 1, 0, POS_CHARACTER, 0,   
     -                     espeakCHARS_UTF8, NULL, NULL);          
     -     sleep(3);       
     -     espeak_Terminate();    
     - }