<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></title> 
<link>http://www.jackxiang.com/index.php</link> 
<description><![CDATA[赢在IT，Playin' with IT,Focus on Killer Application,Marketing Meets Technology.]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></copyright>
<item>
<link>http://www.jackxiang.com/post//</link>
<title><![CDATA[Ubuntu 之玩转语音合成（Festival）]]></title> 
<author>jack &lt;xdy108@126.com&gt;</author>
<category><![CDATA[WEB2.0]]></category>
<pubDate>Wed, 23 Dec 2009 12:20:46 +0000</pubDate> 
<guid>http://www.jackxiang.com/post//</guid> 
<description>
<![CDATA[ 
	也许已经有一部分人早就知道 Festival 这个语音合成软件，也就是所谓的 TTS (text to speech)。不过网上相关的安装资料大同小异，基本上是在 Gentoo 上安装的心得。我发现 Ubuntu 只有 Festival，而没有相关的 speechd 软件。我经过一晚上的探索，终于可以把这个 Festival 玩转起来，而且有了一些比较好的效果，下面共享自己的经验出来。<br/><br/>&nbsp;&nbsp; 1. 安装 基本上 Ubuntu 的库里就有 Festival 软件。 $sudo apt-get install festival<br/>&nbsp;&nbsp; 2. 使用 Festival 的基本用法：<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;* 交互模式： 直接输入 festival 进入它的命令行界面。 $festival festival 〉 (SayText ” hello , festival is coming “) festival 〉 (tts myfile) 第二行是读取 myfile 文件里的内容。<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;* 命令行模式： $festival –tts myfile 直接读取 myfile 里的内容。 $ echo “hello , festival is coming ” &#124; festival –tts 读取字符串。<br/>&nbsp;&nbsp; 3. 配置 Festival 默认用的是 oss，在一些系统会独占音频。这里我们将配置成使用 alsa 发音。 新建文件 ~/.festivalrc ， 输入以下内容: (Parameter.set ‘Audio_Command “aplay -q -c 1 -t raw -f s16 -r $SR $FILE”) (Parameter.set ‘Audio_Method ‘Audio_Command) 如果想提高音量，可添加： (set! default_after_synth_hooks (list (lambda (utt) (utt.wave.rescale utt 1.6 t)))) 至此 festival 应该比较好的工作了。在集成声卡中会出现音速过快的问题。LinuxSir 上有一篇关于 Festival 的帖子，其中 wguzgg 网友曾经把网上的方法贴了出来。 我找到了如何将语速恢复正常的方法，原文在这里。主要是集成在主板上的声卡会出现语速过快的问题，解决方式是： 在 /usr/lib/festival/ 目录下创建一个文件 siteinit.scm，内容如下： (Parameter.set ‘Audio_Method ‘Audio_Command) (Parameter.set ‘Audio_Command “sox -t raw -sw -r $SR $FILE -c2 -t ossdsp /dev/dsp”) 这个参数写在 ~/.festivalrc 上也是有效的。不过就和前面我设置用 alsa 发音的设置冲突了。那个 alsa 的设置好像也能把语速减慢一点吧。我这里提供方法。你自己看着选择了。<br/>&nbsp;&nbsp; 4. 安装新语音这部分才是我写此文章的重要目的。因为在 Gentoo 的帖子，安装一个新的女声，只需要 emerge mbrola。而在 Ubuntu 的库中并没有收录此包。（也许是我不知道，谁知道告诉我）另一个原因是，默认的美国男声似乎有些含糊不清。所以我找了 mbrola 的女声来安装（注意，不得用于商业用途，他说的）。手动安装 festival mbrola 的信息，原网页。<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;* 安装 festival voice wrapper (这个咋翻译偶拿不准） 下载 festvox_us1.tar.gz，把它解压到 festival 的安装目录下，Ubuntu 下为 /usr/share/festival。<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;* 获取 MBROLA 声音文件和它的执行文件 跳到 http://tcts.fpms.ac.be/synthesis/mbrola.html ，点击 download，下载 MBROLA binary 和你需要的声音文件。这里选择美国英语女声（for us1）。 安装 MBROLA binary，这里你应该下载到一个名为 mbr301h.zip 的文件。解压后把其中名为 mbrola-linux-i386 的文件改名为 mbrola，再复制到 /usr/local/bin 目录中。 安装声音文件，这里你下载到的声音文件的文件名应该类似 us1-980512.zip，把它解压到 [festival_install_dir]/festival/lib/voices/english/us1_mbrola [festival_install_dir]为 festival 的安装目录。在 Ubuntu 下应为 /usr/share/festival。<br/>&nbsp;&nbsp; 5. 测试新的声音 在执行完上面步骤后新的美国英语女声应该安装完毕。进入 festival 命令行测试一下： festival) (voice_us1_mbrola) festival) (SayText ” hello , american english female voice is coming”) 在这里你应该听到优美的美国英语女声了吧。<br/>&nbsp;&nbsp; 6. 更换默认声音 如果想把上面的女声变成默认的声音，请在 ~/.festivalrc 文件中添加： (set! voice_default ‘voice_us1_mbrola) 到这里比较完美了吧。<br/>&nbsp;&nbsp; 7. 其它玩法 当然你会因为一时好奇而装它。不过过一会之后就会想它会有什么用呢？我这里提供自己的一些玩法。<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;* 集成词典发音在我之前的 vim 技巧中有提到过 sdcv 这个词典翻译软件。它是星际译王的命令行版本。自从有了它之后我就再也没有打开过星际译王了。因为有需要就直接 sdcv “word” 就行了。当然默认它是没有将单词的读音读出来的。星际译王也有个 100 多 M 的语音库，但那个库是一个单词一个文件。只能读库里有语音文件的单词。所以我们可以写个脚本，让 sdcv 和 festival 绑定，这样学习英语来不是更形象嘛。 $cat dict #!/bin/sh echo “$1 ” &#124;festival –tts >/dev/null 2>&1 & sdcv -n $1 使用 dict 代替 sdcv，查询的单词无论怎样都会有读音。爽吧！<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;* 读中文 你在开玩笑吧。是的，基本上是个玩笑。中文语音合成国内 863 好象有项目。不过似乎没有给公共平台提供什么软件接口。这里你可以让 festival 读中文拼音，有外国人读中文的味道。（linuxsir上的网友发现的） $echo “ni hao, huan yin lai dao linux” &#124;festival –tts<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;* 读文章 用它来读英文文章。但我想，对于我这程度，大概会把我逼疯。<br/>
]]>
</description>
</item><item>
<link>http://www.jackxiang.com/post//#blogcomment</link>
<title><![CDATA[[评论] Ubuntu 之玩转语音合成（Festival）]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>http://www.jackxiang.com/post//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>