×

基于Arduino Due的语音识别合成系统

消耗积分:0 | 格式:rar | 大小:0.59 MB | 2022-12-06

香香技术员

分享资料个

方案介绍

材料清单:

Arduino

Sparkfun

SparkFun 单声道音频放大器

BitVoicer 服务器 1.0

8 欧姆扬声器

面包板

3 个 LED

3 x 330 Ohm 电阻器

跳线

第 1 步:接线
第一步是将Arduino和面包板与组件连接起来。我在扬声器下方放置了一个小橡胶,因为它会不停振动,如果没有橡胶,音频质量会受到很大影响。

第 2 步:将代码上传到 Arduino
将附件的代码上传到您的 Arduino。在上传代码之前,您必须将 BitVoicer 服务器库正确安装到 Arduino IDE(导入 .zip 库)。

第 3 步:导入 BitVoicer 服务器解决方案对象
现在您必须设置 BitVoicer Server 才能与 Arduino 一起使用。BitVoicer Server 有四个主要的解决方案对象:位置、设备、二进制数据和语音模式。

设备是 BitVoicer Server 客户端。我创建了一个混合设备,将其命名为 ArduinoDUE 并输入通信设置。重要提示:即使 Arduino DUE 也有少量内存来存储 BitVoicer Server 将流式传输的所有音频样本。如果不限制带宽,则需要更大的缓冲区来存储音频。由于这个原因,我遇到了一些缓冲区溢出,因此我不得不将通信设置中的数据速率限制为每秒 8000 个样本。

BinaryData 是 BitVoicer Server 可以发送到客户端设备的一种命令。它们实际上是可以链接到命令的字节数组。当 BitVoicer Server 识别出与该命令相关的语音时,它会将字节数组发送到目标设备。我为每个引脚值创建了一个 BinaryData 对象,并将它们命名为 ArduinoDUEGreenLedOn、ArduinoDUEGreenLedOff 等。我的解决方案中最终有 18 个 BinaryData 对象,因此我建议您从下面的VoiceSchema.sof文件下载并导入对象。

语音模式是一切融合在一起的地方。它们定义了应该识别哪些句子以及运行哪些命令。对于每个句子,您可以根据需要定义任意数量的命令以及它们将执行的顺序。您还可以定义命令之间的延迟。这就是我如何设法执行您在视频中看到的一系列动作。

我的语音模式中的一个句子是“播放一首小歌”。这句话包含两个命令。第一个命令发送一个字节,指示以下命令将成为音频流。然后,Arduino 在传输音频时开始“播放”LED。音频是我自己录制的一小段钢琴曲,并将其设置为第二个命令的音频源。

 

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !