# 语音合成工具espeak

> 一个有意思的小程序，可以通过合成声音读取文件。脑洞大开一下：假设有一个非常紧急的故障出现，在运维小组的监控平台上，有一个声音来提醒你注意，也是一个有用的功能。。。

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

espeak 的发音听起来有一点原始（实际上我感觉是不容易听清楚，或许我还要找更好地语音软件）

## 运行 espeak

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

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

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

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

```
espeak --voices
```

> 注意，很多非英语的语言发音现在还处于实验阶段。
>
> `我测试了中文读音，有点诡异的恐怖片味道`，但是还是能够听清，聊胜于无。

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

```
espeak -w out.wav "Audio file test"
```

也可以通过标准输入传递要发音的文本：

```
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
```

## 参考

* [为你的 Fedora 系统增添发音功能](https://linux.cn/article-9204-1.html)
