红联Linux门户
Linux帮助

使Linux终端朗读文字的小技巧分享

发布时间:2015-09-11 09:45:44来源:fwqtg作者:linux人

这篇文章主要介绍了使Linux终端朗读文字的小技巧分享,主要依赖espeak这个软件,需要的朋友可以参考下

对于那些不能文字朗读的设备,有个小工具可以实现文字说话的转换器。用各种语言写一些东西,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的示例:

#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();  // 回收资源  
}


Linux终端忽略大小写:http://www.linuxdiyf.com/linux/13809.html

看这些孩子在Ubuntu的Linux终端下玩耍:http://www.linuxdiyf.com/linux/13679.html

11个无用而有趣的Linux终端彩蛋:http://www.linuxdiyf.com/linux/12674.html

11个让你吃惊的Linux终端命令:http://www.linuxdiyf.com/linux/12138.html

在Linux终端下使用中文的软件-zhcon:http://www.linuxdiyf.com/linux/8438.html