Festival

来自 ArchWiki

Festival 是在 CSTR (Centre for Speech Technology Research) 开发的通用多语言语音合成系统。它为构建语音合成系统提供了一个通用框架,并包含各种模块的示例。作为一个整体,它通过多种 API 提供完整的文本到语音功能:从 shell 级别,通过 Scheme 命令解释器,作为 C++ 库,从 Java 和 Emacs 接口。 Festival 是多语言的(目前支持英式英语、美式英语、意大利语、捷克语和西班牙语,其他语言也在原型阶段)。

安装

安装 festival 软件包,以及一个或多个扬声器/语音

  • festival-english 提供了英式和美式英语男声扬声器。
  • festival-us 提供了美式男声/女声和苏格兰英语男声扬声器。

更多扬声器可在 AUR 中找到。

配置

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

声音服务器

您必须选择一个声音服务器(PulseAudio 或 Alsa)。 如果其他来源的音频已经在播放,以下设置将允许 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: [1]

(Parameter.set 'Audio_Method 'Audio_Command)
(Parameter.set 'Audio_Command "aplay -q -c 1 -t raw -f s16 -r $SR $FILE")

语音

Arch 将官方语音集拆分为 festival-us (推荐) 和 festival-englishAUR 还有一些其他的,处于不同的维护状态,可能目前正在工作,也可能没有。

要查看当前安装了哪些语音以及默认语音是什么,首先进入 Festival 的#交互式 shell(REPL scheme)。 要永久更改默认语音,请将其添加到您的配置中,例如

(set! voice_default voice_cmu_us_rms_cg)

注意: 如果上述命令不起作用,请尝试在语音名称前加上 ''

(set! voice_default 'voice_cmu_us_rms_cg)

追加到 /usr/share/festival/siteinit.scm 以应用于所有用户。

手动

您还可以直接从 Festvox 获取语音 [2] [3]。 您需要解压缩并将包含语音的文件夹移动到 /usr/share/festival/voices/,判断哪个文件夹包含语音的方法是查找其中的 festvox/ 子文件夹。 然后,您可以加载 festival 提示符来测试是否找到了您的新语音。

使用

使用文件作为输入或输出

读取文本文件

$ festival --tts text_file

读取您用光标突出显示的选择

$ xsel | festival --tts

将文本文件转换为 mp3 音频

$ text2wave text_file | lame - text.mp3

使用选定的语音录制音频

$ text2wave -o output.wav -eval '(voice_german_de2_os)' text_file

交互式

Festival 有一个交互式提示符,您可以用于测试。 键入 festival 进入。 以下是一些示例

显示 festival 使用的语音

voice_default

列出可用的语音

(voice.list)

要选择另一个语音,请输入 (voice_name)。 例如

(voice_cmu_us_rms_cg)

要听到它说话

(SayText "Arch makes me happy")

列出可用的命令

help

退出 shell

(quit)

故障排除

无法打开 /dev/dsp

如果 festival 返回以下错误消息

Linux: can't open /dev/dsp

请参阅上面的 #声音服务器

Alsa 以错误的速度播放

如果上面的解决方案给您带来尖锐的声音,您可能需要尝试更改您的 aplay 选项

(Parameter.set 'Audio_Method 'Audio_Command)
(Parameter.set 'Audio_Command "aplay -Dplug:default -f S16_LE -r $SR $FILE")

命令 aplay 未找到

安装 alsa-utils 软件包。

杀死 festival 进程无法停止音频

杀死后台 festival 进程不会停止音频继续播放。

要停止音频播放,必须杀死子进程 audsp。 这可以通过执行以下命令来完成

$ pkill audsp

服务器

安装 festival-freebsoft-utilsAUR 以将 Festival 与 Speech dispatcher 一起使用(即与 Firefox 阅读器模式中的“收听”功能一起使用)。

参见