从命令行合成语音
于 2009 年 9 月 23 日
我很少在我的系统上处理音频/视频内容,但有一天我突然想看看 Linux 上是否有可用的语音合成软件,结果发现我已经安装了一个:它叫做 Festival。 事实证明,有很多语音合成和分析软件包可用。
根据网站上的介绍,Festival 是:
Festival 提供了一个构建语音合成系统的通用框架,并包含各种模块的示例。 作为一个整体,它通过多种 API 提供完整的文本到语音转换:从 shell 级别,通过 Scheme 命令解释器,作为 C++ 库,来自 Java 和 Emacs 接口。 Festival 是多语种的(目前是英语(英国和美国)和西班牙语),尽管英语是最先进的。
就简单的命令而言,Festival 带有两个saytime和text2wave. Saytime会执行您期望的操作,它会说出时间(以及将说出的文本输出到 stdout)。 但请注意,输出的时间往往不太具体
$ saytime
The time is now, just after half past 10, in the morning.
输的波形文件已附上(time.wav)。
Festival 附带的第二个命令是text2wave将从 stdin 读取的文本转换为 .wav 文件输出
$ echo Your job has completed | text2wave >job.wav
$ aplay job.wav
# OR
$ echo Your job has completed | text2wave | aplay
波形文件已附上(job.wav)。
如果您的系统上不存在这些命令,您需要安装 festival 软件包。 对于其他与语音相关的软件包,请搜索网络或查看 此处 linux-sound.org 上的列表