您当前的位置:首页 > 电子 > 开发板/开源硬件

利用Raspberry Pi 进行语音识别

时间:02-20来源:作者:点击数:

该项目将带大家了解如何使用 Raspberry Pi 上的免费开源 spchcat 工具将音频转换为文本。项目耗时约1小时。

补给品 

  • 树莓派 4 B 型×    1    
  • TKGOU USB 麦克风×    1    

你知道你可以在你的 Pi 上免费运行语音识别吗?如果您想直接进入,只需下载、安装并运行spchcat 命令即可开始。在本文的其余部分,我将告诉您更多关于我是如何构建它的、它可以做什么以及如何帮助改进它的。

项目背景

过去,只有大公司才能负担得起工程师薪水、海量训练数据以及构建可用语音识别系统所需的时间。值得庆幸的是,开源社区,尤其是像Mozilla 的 Common Voice和Coqui 的语音转文本库这样的项目,已经改变了这一切。通过收集多种不同语言的大量语音,并开源训练代码和完整模型,他们使得构建对许多任务有用的语音识别器成为可能。结果可能还不如最好的商业系统,但改进的速度令人印象深刻,它们已经可以启用许多有趣的新应用程序。

自从 Coqui 推出以来,我就知道他们的工作,因为他们使用TensorFlow Lite (我帮助构建的一个库)进行机器学习计算。我知道他们取得了令人印象深刻的成果,我想尝试使用他们的框架在我的 Pi 上构建简单的语音界面,但是我没有一个简单的方法可以开始。在寒假期间,我决定我的有趣项目是编写一个简单的命令行工具来收听我的 Raspberry Pi 的麦克风并将它听到的文本写入终端。结果是 spchcat,这是一个命令行工具,用于从麦克风、系统音频或 wav 文件中读取音频,并输出文本。它所依赖的所有模型和库都是开源的,该工具本身的代码可在这里获得。

实现步骤

要使用它,首先需要从 latest.deb 包中安装它。这是超过 1 GB 的大小,因为它包含 40 多种语言的数据。将来我想找到一种方法使该工具更加模块化,因此您可以选择所需的语言,因为当前的过程使下载和安装速度比需要的慢,但是我还没有弄清楚怎么做呢。

您将需要一个现代的 Raspberry Pi(它已在 Pi 4 上进行了测试),因为它使用优化的 NEON 指令来实时运行,而这些在原始的 Pi Ones 或 Zeros 上并不存在。对于 PulseAudio 库,您还需要最新版本的 Raspberry Pi OS。为了最有趣,我也推荐一个 USB 麦克风。几乎任何一个都应该工作,但我已经链接到我在 Things 中使用的那个。

运行工具

下载并安装软件包后,确保已插入麦克风,打开终端窗口,然后运行不带参数的 spchcat 命令。

spchcat

您应该会看到一些版本信息出现。

现在,它会等你说些什么。尝试正常对着麦克风讲话,输出文本应该开始出现。

这里我说“测试,测试”,然后是“Hello Hackster”。如您所见,它不知道 Hackster 这个词,所以它的最佳猜测是“hats the”!有一些方法可以提供自定义词,但我会在以后的文章中介绍这些。您可以想象,语音识别通常并不完美,但我希望能够自己尝试一下,让您对它在实践中的效果有一个很好的数据接收。

从文件中识别

您可以尝试的下一件事是在文件上运行语音识别。它应该适用于 any.wav,并且您可以将其他格式(如歌曲和视频)转换为使用 ffmpeg 的格式,但您也可以从 Coqui 下载一些示例文件用于测试目的。要在文件上运行它,只需将文件名或充满文件的目录作为命令行参数传递:

spchcat audio/8455-210777-0068.wav

您应该会看到类似这样的输出:

另一个有趣的功能是,您可以要求该工具收听系统当前正在播放的音频,并尝试转录它找到的任何语音。如果您正在参加 Zoom 会议或正在播放视频,并且想要查看自动脚本,这可能会很有用。要使用它,您可以--source=system在命令行上指定标志:

spchcat --source=system

了解不同的语言

我对拥有一个有用的语音识别开源堆栈感到最兴奋的原因之一是它允许有动力的社区成员为他们关心的语言构建模型。商业系统支持拥有大量用户的语言,因为只有在有足够多的人使用它的情况下投入所需的时间和金钱才有意义。Coqui 能够与个人和ITML等团体合作,以支持捷克语、威尔士语等多种语言。可以训练自己的模型,但即使您不是编码员,也可以通过使用您使用Common Voice的语言提供语音来提供帮助,并帮助他人。该工具将尝试使用您的系统配置来猜测默认使用哪种语言,但如果您想明确告诉它,您可以使用该--language标志,如下所示:

spchcat --language=de_DE audio/auf_wiedersehn.wav

在您自己的项目中使用语音识别

如果您是 Hackster 读者,我敢打赌您已经在考虑如何将其与您从事的项目相适应。好消息是Coqui 有适用于 Python、NodeJS 和 Android 的 API,以及 spchcat 使用的普通 C API。我希望拥有一个易于使用的命令行工具可以让您快速进行实验并了解该技术的功能和局限性。我最初构建它是为了帮助我制作一些简单的语音界面原型,我只是有点忘乎所以!能够建立在致力于使语音识别民主化的整个社区的辛勤工作之上,这真是太好了,生态系统似乎是开源工作如何发挥作用的一个很好的例子。我希望它可以帮助您构建一些有趣或有用的东西,或两者兼而有之,我很想听听您创建的任何项目。

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

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门