亲,“电路城”已合并到全星升级的「与非网」。了解新「与非网」

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

2022/11/08
3023
提供买家交流群支持
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论
放大
方块图(3)
相关方案
  • 方案介绍
  • 相关文件
  • 相关推荐
  • 电子产业图谱
申请入驻 产业图谱

材料清单:

  • 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。音频是我自己录制的一小段钢琴曲,并将其设置为第二个命令的音频源。

本方案更多详细资料可在附件中下载查看

以上内容翻译自网络,原作者:Marcio Tamagushi,如涉及侵权,可联系删除。

 

  • FritzingProtoboard.png
    11下载
    描述:示意图
  • arduino_sketch .ino
    11下载
    描述:代码

相关推荐

电子产业图谱