Festival
Festival 是在 CSTR (Centre for Speech Technology Research) 开发的通用多语言语音合成系统。它为构建语音合成系统提供了一个通用框架,并包含各种模块的示例。作为一个整体,它通过多种 API 提供完整的文本到语音功能:从 shell 级别,通过 Scheme 命令解释器,作为 C++ 库,从 Java 和 Emacs 接口。 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-english。AUR 还有一些其他的,处于不同的维护状态,可能目前正在工作,也可能没有。
要查看当前安装了哪些语音以及默认语音是什么,首先进入 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 阅读器模式中的“收听”功能一起使用)。