1. Installation
2. Configuration配置
	2.1 Sound server 声音服务器
	2.2 Voices声音
	2.3 Manually手动
3. Usage用法
	3.1 使用festival
	3.2 Interactive交互的
	3.3 添加帮助信息
4. Troubleshooting故障排除
	4.1 无法打开 /dev/dsp
	4.2 Alsa 以错误的速度播放
	4.3 找不到命令 aplay
	4.4 Say报错
	4.5. Server
5 Speech-synthesizers语音合成器
	5.1 Arch库含有的
	5.2. 包含/usr/bin/命令
注: 上面官方手册是2014年的2.4版本; 当前安装的是2.5版本(2017?)...
Festival是CSTR(语音技术研究中心)开发的通用多语言语音合成系统。它提供了构建语音合成系统的通用框架,并包含各种模块的示例。总的来说,它通过许多 API 提供全文到语音:从 shell 级别,通过 Scheme 命令解释器,作为 C++ 库,从 Java 和 Emacs 接口。Festival是多语言的(目前有英式英语、美式英语、意大利语、捷克语和西班牙语,其他语言在原型中可用。)

1. Installation

$ sudo pacman -Ss festival
extra/festival 2.5.0-4 [installed]
    A general multi-lingual speech synthesis system
community/festival-english 2.5-2
    British and American English Male speaker
community/festival-us 2.5-2
    American Male/Female and Scottish English Male speaker

2. Configuration配置

没有全局/etc/配置文件,但您可以使用您的~/.festivalrc文件配置festival,或直接编辑/usr/share/festival/festival.scm. 这两个都是方案文件,使用方案语法并在每次festival运行时重新运行。

2.1 Sound server 声音服务器

如果来自其他来源的音频已经在播放,则以下内容允许 Festival 工作。添加到您的配置:
对于 PulseAudio:
(Parameter.set 'Audio_Required_Format'aiff)
(Parameter.set 'Audio_Method 'Audio_Command)
(Parameter.set 'Audio_Command "paplay $FILE --client-name=Festival --stream-name=Speech")
对于 ALSA:
(Parameter.set 'Audio_Method 'Audio_Command)
(Parameter.set 'Audio_Command "aplay -q -c 1 -t raw -f s16 -r $SR $FILE")

2.2 Voices声音

Arch 将官方语音集分为festival-us (recommended) and festival-english ...
要查看当前安装了哪些声音以及默认设置是什么,请首先进入 Festival 的#Interactive shell(REPL 方案)。要永久更改默认语音,请将其添加到您的配置中,例如:
(set! voice_default voice_cmu_us_rms_cg)
附加到/usr/share/festival/siteinit.scm适用于所有用户。
 
添加到.festivalrc后, 重新进入, 显示默认声音时会提示...没有定义的错误,但可以正常使用:
festival> voice_default
#<CLOSURE n (let-internal (me) (voice_cmu_us_slt_cg) (begin (require "/usr/share/festival/voices/us/cmu_us_slt_cg/festvox/cmu_us_slt_cg") (if (eq me voice_cmu_us_slt_cg) (error (string-append "autoload: \"" "/usr/share/festival/voices/us/cmu_us_slt_cg/festvox/cmu_us_slt_cg" ".scm\" does not define " (quote voice_cmu_us_slt_cg)))) (apply voice_cmu_us_slt_cg n)))>

2.3 Manually手动

您也可以直接从 Festvox 获得声音。您需要解压缩包含语音的文件夹并将其移动到其中,/usr/share/festival/voices/而判断包含语音的文件夹的方法是在其中查找festvox/子文件夹。然后,您可以通过加载festival提示来测试是否找到了您的新声音。

3. Usage用法

3.1 使用festival

测试:
$ echo "This is a test!" |festival --tts
 
读取文本文件:
$ festival --tts /home/tom/sptext.txt
 
要阅读您用光标突出显示的选择:
$ xsel |festival --tts
注: xsel是用于获取和设置 X 选择的内容命令行程序, 安装:$ sudo pacman -S xsel
 
将文本文件转换为 mp3 音频:
$ text2wave /home/tom/LoveOurCountry.txt | lame - text.mp3
Txt文件: lines: 19; Words: 294; char: 1554; Bytes: 1556; 
Mp3文件: size: 291.8Kb; 时长: 01:39
 
用选择的声音录制音频:
$ text2wave -o output.wav -eval '(voice_cmu_us_awb_cg)' /home/tom/LoveOurCountry2.txt
Txt文件: lines: 7; Words: 279; char: 1525; Bytes: 1529; 
Wav文件: size: 3.1Mb; 时长: 01:41
 
语音报时:
$ saytime
The time is now, almost twenty-five past 4, in the afternoon. 
$ saytime
The time is now, exactly twenty-five past 4, in the afternoon. 
$ saytime
The time is now, just after twenty-five past 4, in the afternoon. 

3.2 Interactive交互的

Festival 有一个交互式提示,可用于测试。键入festival以输入它。以下是一些示例:
显示默认声音:
festival> voice_default
voice_kal_diphone
 
列出可用的声音:
festival> (voice.list)
(rab_diphone kal_diphone cmu_us_rms_cg cmu_us_slt_cg cmu_us_awb_cg)
 
要选择另一种声音,请输入。例如: (voice_name)
festival> (voice_cmu_us_rms_cg)
cmu_us_rms_cg
 
听它说话:
festival> (SayText "Arch makes me happy")
 
列出可用命令:
festival> help
 
退出:
festival> (quit)

3.3 添加帮助信息

/usr/share/festival/festdoc.scm
配置文件的(defvar help这部分就是帮助信息了.
在初始默认声音下面,增加新安装的声音名称
  (voice_kal_diphone) Select voice (American Male)
  (voice_cmu_us_rms_cg)  Select voice (US Male s)
  (voice_cmu_us_slt_cg)  Select voice (US Female)
  (voice_cmu_us_awb_cg)  Select voice (Scottish Male)
再次进入festival, 获取帮助就能看到这些选择的提示了
festival> help

4. Troubleshooting故障排除

4.1 无法打开 /dev/dsp

如果节日返回以下错误消息:
Linux: can't open /dev/dsp

4.2 Alsa 以错误的速度播放

如果上述解决方案让您发出吱吱的声音,您可能想尝试更改您的aplay选项:
(Parameter.set 'Audio_Method 'Audio_Command)
(Parameter.set 'Audio_Command "aplay -Dplug:default -f S16_LE -r $SR $FILE")

4.3 找不到命令 aplay

安装alsa-utils包。

4.4 Say报错

festival> (SayText "Arch makes me happy")
-=-=-=-=-=- EST Warning -=-=-=-=-=-
audio_open_alsa: failed to set hw parameters. Invalid argument.
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Segmentation fault (core dumped)
 
以下内容添加到.festivalrc即可
(Parameter.set 'Audio_Method 'Audio_Command)
(Parameter.set 'Audio_Command "aplay -q -c 1 -t raw -f s16 -r $SR $FILE")

4.5 Server

Install festival-freebsoft-utils(aur) to use Festival with speech-dispatcher (i.e. in Firefox's Reader).

5. Speech-synthesizers语音合成器

5.1 Arch库含有的

festival - 构建语音合成系统的通用框架以及各种模块的示例。总的来说,它提供全文到语音。
espeak — 适用于 50 多种语言的紧凑型语音合成器。
espeak-ng - eSpeak 的分支(由于原始维护者不活动)。
orca — 使用 eSpeak(通过 Speech Dispatcher)为盲人或视障人士提供的屏幕阅读器。
flite - 轻量级语音合成引擎。
kmouth — 语音合成器前端,使无法说话的人可以让他们的计算机说话。
speech-dispatcher - 语音合成的通用接口。它有 eSpeak、Festival 和其他一些语音合成器的后端。

5.2 包含/usr/bin/命令

espeak : espeak
espeak-ng : espeak-ng
espeak-ng : speak-ng
orca : orca
flite : flite
flite : flite_cmu_us_kal16
flite : flite_cmu_us_slt
kmouth : kmouth GUI图形界面
speech-dispatcher : spd-conf
speech-dispatcher : spd-say
speech-dispatcher : spdsend
speech-dispatcher : speech-dispatcher
speech-dispatcher usr/lib/systemd/system/speech-dispatcherd.service