|
文本转语音(TTS系统)能够将普通文本转换为语音。这种技术使系统能够用人声说出文本。有许多文本转语音转换的例子,例如公共交通公告、客户服务电话、智能手机中的语音助手或一些机器的导航菜单。您甚至可以在Microsoft Word中找到TTS,在其中将其设置为说出文档中所写的文本。
今天在本篇文章中,我们将学习如何使用Arduino制作文本到语音转换器。TTS的第一步是预处理或标准化。此步骤涉及将符号、数字和缩写转换为可由机器读取的单词,如“?”将转换为“问号”。 第二步涉及将规范化文本转换为音素或语音抄本。音素是口语单词的一小部分,即这些是产生句子的声音。这一步非常重要,这样机器可以像人类那样说出这些话。 最后一步是将音素合成为语音。该步骤可以通过不同的方法来实现,例如通过记录不同单词/短语的人声或者通过生成基本声音频率并将它们堆积为音素或通过复制人类说话机制来实现。
必需的组件 ● Arduino开发板 ● 扬声器 ● 放大器电路 ● 稳压电源 ● 连接线
电路原理图 在这个文本到语音转换器中,我们使用放大器电路来降低噪声并获得清晰的声音。放大器电路使用LM386制作。整体电路图如下所示:
使用一个100K的电位器用来调整声音。调整它以获得清晰的声音。如果您对此电路有任何疑问,请查看基于LM386的音频放大器电路。
将扬声器连接到Arduino 制作放大器电路后,连接非常简单。
将电源连接到放大器电路,将Arduino的数字引脚3连接到10K电阻,并将Arduino的地连接到电路的地。现在通过将扬声器的负端接地,并将正极端子连接到220μF电容器,然后连接电源
为TTS编程Arduino 这个基于Arduino的TTS的程序也非常简单,因为有相关的库可以使用。该库称为Talkie,可以由库管理器添加。要添加库,请转到Sketch-> Include Library-> Mange Libraries。
现在,在屏幕上将出现一个库管理器。在搜索栏中键入Talkie,然后单击安装按钮。该库将安装。
这个库非常方便,它有超过1000个单词和命令。它有几个例子,你可以尝试它们,但在这里我们使用一个简单的代码来解释工作。
您还可以尝试库中给出的其他命令。要获取这些命令,请转到Documents \ Arduino \ libraries \ Talkie \ src,然后打开头文件并获取可用于不同警报的多个命令。还有许多其他TTS库,如jscrane TTS库、谷歌TTS库等。您也可以试用它们。
所以让我们开始编写代码。首先包括一些头文件。 Talkie.h用于初始化该库并将Arduino的数字引脚3设置为输出引脚。 Vocab_US_Large.h用于使用我们正在使用的警报,Vocab_Special.h用于使用我们正在使用的暂停。 - #include "Talkie.h"
- #include "Vocab_US_Large.h"
- #include "Vocab_Special.h"
复制代码现在定义一个对象'value'来使用命令: 这里将在扬声器中重复相同的消息,因此请将setup函数保持为空并将命令置于loop函数中。第一个命令voice.say(spPAUSE2)在重复警报消息时暂停一小段时间。接下来的命令只是简单的词语暗示: DANGER DANGER STORM IN THE NORTH。 - void setup() {
- }
- void loop() {
- voice.say(spPAUSE2);
- voice.say(sp2_DANGER);
- voice.say(sp2_DANGER);
- voice.say(sp3_STORM);
- voice.say(sp3_IN);
- voice.say(sp3_THE);
- voice.say(sp3_NORTH);
- }
复制代码
最后将代码上传到Arduino中,然后连接电源。一旦电路供电,您将开始听到警报!如果您没有听到清晰的声音,请尝试调整电位器的旋钮或检查Arduino是否获得正确的电源,并确保Arduino的GND连接到电路的接地。
代码 本文使用的完整代码如下:
main.rar
(232 Bytes, 下载次数: 93)
|