标签 TTS 下的文章

eSpeak 是一个可在 Linux 命令行中使用的开源的 TTS 合成器。

欢迎回到《24 天介绍 Linux 命令行小玩具》。如果这是你首次阅读本系列文章,你可能不知道什么是 Linux 命令行小玩具。无需担心,你只需要边看边体会。通常来说,它有可能是游戏或其它能让你在终端中娱乐的小程序。

或许你已经对一些玩具有了解了,不过我们相信,在本系列文章中总有那么几个你没见过的玩意。

年轻读者可能不知道,在 Alexa、Siri 或 Google Assistant 问世之前,计算机就能说话了。

我们也许永远不会忘记来自 2001 太空漫游) 中与机组人员交流的 HAL 9000。但是在 1960 年代到今天的时间里,是存在着许多能说话的计算机的。它们有些很出色,也有些不那么出色。

其中一个我最爱的是一个叫做 eSpeak 的开源项目。它以多种形式发布,比如可以嵌入你自己项目中的库。与此同时,它也提供了可供你安装的命令行版本。在我所用的发行版中,安装十分简单,只需使用:

$ sudo dnf install espeak

你既可以与 eSpeak 交互,也可以用它来输出其它程序的信息,甚至通过简单的 echo 命令来使用它。这里 有一些可供 eSpeak 使用的声音文件,你可以在无聊时切换他们。甚者你可以制作一个属于你自己的声音。

在 2015 年,一些希望继续 eSpeak 开发的开发者创建了一个名为 eSpeak NG (即 “Next Generation”,“下一代”的意思)的项目。eSpeak 目前在 GPL v3 许可证下开源,你可以在 SourceForge 上详细了解这个项目或下载源代码。

别急,我今天还会介绍一个额外的小程序,它叫 cava。我经常希望用一张独一无二的截图作为我文章的头图,更何况今天的玩具主要是关于声音的,这就图片更少了。因此,我需要一些东西来填补这些空白。Cava 是 基于 ALSA 的命令行音频可视化工具 console-based audio visualizer for ALSA 的简写(尽管它现在支持的比 ALSA 更多),它是一个优秀的命令行音频可视化工具,并且它正以 MIT 许可证开源。下面是一个将 eSpeak 输出可视化的命令:

$ echo "Rudolph, the red-nosed reindeer, had a very shiny nose." | espeak

你想让作者介绍你喜欢的命令行玩具吗?请前往原文下留言,作者可能会考虑介绍的。同时,你也可以去原文下评论你对文章的看法。

欢迎去看看我们昨天介绍的玩具,在 Linux 命令行中使用 nudoku 解决谜题。敬请期待我们明天的文章吧!


via: https://opensource.com/article/18/12/linux-toy-espeak

作者:Jason Baker 选题:lujun9972 译者:zhs852 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

Fedora 工作站默认带有一个小软件,叫做 espeak。它是一个声音合成器 —— 也就是转换文本为声音的软件。

在当今这个世界,发音设备已经非常普遍了。在智能电话、Amazon Alexa,甚至火车站的公告栏中都有声音合成器。而且,现在合成声音已经跟人类的声音很类似了。我们生活在 80bandaid 的科幻电影里!

与前面提到的这些工具相比,espeak 的发音听起来有一点原始。但最终 espeak 可以产生不错的发音效果。而且不管你觉得它有没有用,至少它可以给你带来一些乐趣。

运行 espeak

你可以在命令行为 espeak 设置各种参数。包括:

  • 振幅(-a
  • 音高调整 (-p
  • 读句子的速度 (-s
  • 单词间的停顿时间 (-g

每个选项都能产生不同的效果,你可以通过调整它们来让发音更加清晰。

你也可以通过命令行选项来选择不同的变音。比如,-ven+m3 表示另一种英式男音,而 -ven+f1 表示英式女音。你也可以尝试其他语言的发音。运行下面命令可以查看支持的语言列表:

espeak --voices

要注意,很多非英语的语言发音现在还处于实验阶段。

若要创建相应的 WAV 文件而不是真的讲出来,则可以使用 -w 选项:

espeak -w out.wav "Audio file test"

espeak 还能读出文件的内容。

espeak -f plaintextfile

你也可以通过标准输入传递要发音的文本。举个简单的例子,通过这种方式,你可以创建一个发音盒子,当事件发生时使用声音通知你。你的备份完成了?将下面命令添加到脚本的最后试试效果:

echo "Backup completed" | espeak -s 160 -a 100 -g 4

假如有日志文件中出现错误了:

tail -1F /your/log/file | grep --line-buffered 'ERROR' | espeak

或者你也可以创建一个报时钟表,每分钟报一次时:

while true; do date +%S | grep '00' && date +%H:%M | espeak; sleep 1; done

你会发现,espeak 的使用场景仅仅受你的想象所限制。享受你这会发音的 Fedora 系统吧!


via: https://fedoramagazine.org/add-speech-fedora-system/

作者:Alessio Ciregia 译者:lujun9972 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出