查看: 140|回复: 0

[教程] 【AI2+AI】个人语音分类器:语音验证app

[复制链接]
本帖最后由 szjuliet 于 2020-8-3 15:39 编辑

演示视频:


原文地址:https://appinventor.mit.edu/assets/files/voice-authentication-app-tutorial.pdf
编译:szjuliet

继MIT App Inventor发布个人图像分类器扩展之后,近日又发布了个人语音分类器扩展。有了这个扩展,就可以制作语音验证app了,说声“芝麻开门”,你的app就可以正常使用了,甚好甚好。“再也不用担心妈妈偷看我的日记了”。

记得尽量多训练些样本,否则可能你自己也打不开你的app了哈哈。

个人语音分类器

难度 :初学者

课程类型:教程

学科:计算机科学

年级:        

  • 6-8
  • 9-12

本学生指南/教程展示了如何使用个人语音分类器网站以1-2秒的录音片段来训练音频模型。然后使用模型和App Inventor中的Personal Image Classifier扩展程序来构建可以区分语音的app。

本案例是日记应用。你的声音用来对应用进行身份验证,并且仅允许你自己的声音打开日记。

个人音频分类器在创建模型时使用音频记录的Spectogram,这个模型你可以在app中使用。不同声音的Spectogram会有所不同,分类器将能够区分不同的声音或根据标签对它们进行分类。

资源

语音验证app(学生指南)

注意:并非所有的移动设备/操作系统当前都具有运行本机中使用的PAC扩展所需的硬件/软件。我们强烈建议您事先使用我们的测试应用进行测试,以确保其兼容。附录1中包含测试说明。如果你的设备不兼容,你仍然可以在PAC网站上学习如何训练模型,只是无法在App Inventor中尝试。

  1. 将浏览器导航到 https://c1.appinventor.mit.edu/

我们将从头开始训练音频分类器!首先必须教它要分类的内容。这是“训练”阶段。我们需要训练两种声音,再找一个小伴侣来一起参与训练。

202008036021..png

  1. 点击 + 图标,为你和小伙伴的声音添加标签。

202008032753..png
202008035051..png

本教程的模型有两个分类:Nikhil和Natalie。

你的模型需要学习区分你和小伙伴说“Hello”一词。你们需要录制一些语音片段来供模型训练。

  1. 测试电脑的麦克风,对语音片段的持续时间有大致认识。

练习时按一下record,然后大声清晰地说“Hello”(你可能需要先开启电脑麦克风访问权限)。

确保仅在红色录音条处于活动状态时才开始讲话。

202008035247..png
202008032152..png

在麦克风预热(warms up)时,你可能需要按图片右上角蓝色的“x”,删除一些质量较差的录音。
(译注:特意查了一下,发现某些电容式麦克风确实是需要预热来得到好的录音效果。不过不知道这里warm up是不是预热的意思。总之这个地方让人有点糊涂)

  1. 将所有练习用的录音清除,并录制5-10个你和小伙伴说“Hello”的质量好的样本。

单击“RECORDING FOR”按钮,修改录音的人的名字。

202008036707..png

仔细检查录制的样本,它们看起来与上面显示的样本类似(注:你可以删除任何看起来奇怪的样本,然后重新录音)。

  1. 现在用你录制的样本开始“训练”模型。点击“Train”按钮,然后使用默认参数点击“Train Model”。

202008038068..png

202008032266..png

  1. 现在你的模型已经训练完毕,可以进行测试了!

按”record“录制语音片段,然后查看模型如何对语音片段进行分类!

(不必担心“ RECORDING FOR”按钮设置是哪一个人)。只需看看模型在你和小伙伴的声音测试中表现如何。

202008034451..png

将鼠标悬停在每个标签上查看模型对某个分类的置信度。

您可以点击导航栏中的“Train”按钮,返回训练屏幕并录制更多样本(然后按照步骤4重新训练更新后的模型)。

  1. 对你的模型满意后,点击“Export”按钮导出新模型!

  1. 现在可以使用导出的模型来构建语音身份验证app了!

在附件中下载aia文件:Voice_authentication_diary.aia

浏览器中打开http://ai2.appinventor.mit.edu/,点击“我的项目”,导入下载的aia文件。

202008031281..png 这将是一个日记app,通过你说“Hello”进行身份验证。只有你自己才能打开日记,其他任何人(包括你的小伙伴)都无法进入你的日记。

请注意,你的日记app有两个屏幕。在Screen1使用你的声音进行身份验证。验证成功后进入Screen2,即你的日记。

打开刚刚导入的“voice_authentication_diary”应用程序。在“组件设计”中,拖动以下组件并重命名,并按如下所示设置其属性。

  1. 从PAC网站上传你的模型!

单击PersonalAudioClassifier1,在属性窗口中的“Model”中单击“无”,然后上传你的model.mdl文件。单击确定。

上传model.mdl文件后,确保其显示在“Model”框中,如下所示。

  1. 现在你的模型已上传,开始编写程序来告诉日记谁可以允许进入!

点击“逻辑设计”按钮切换到“代码编辑器”。

在“模块”面板中单击PersonalAudioClassifier1,然后将其拖出PersonalAudioClassifier1.GotClassification代码块。

202008034606..png

将StatusLabel.Text设置为事件代码块的result参数。

202008033967..png

从控制抽屉中添加一个“如果-则-否则”代码块,并从逻辑抽屉中添加一个equals(=)代码块。

202008037344..png

result参数从模型中返回的是一个包含模型分类的列表。该列表将包含两个子列表。每个子列表包含了分类器认为匹配的分类的标签,后跟置信度。例如:

[[Nikhil,0.88527],[Natalie,0.34812]]

分类器对语音匹配Nikhil的置信度为88%,对语音匹配Natalie的置信度仅为34%。你想提取第一个子列表中的第一个元素,本例中为“ Nikhil”,并测试这是否是该日记的主人。

为此,从“列表”抽屉中使用两个选择列表项块。首先从get result(主列表中)中获取第一个元素(索引)。然后,该元素再作为列表,提取它的第一项(索引),在本示例中为“ Nikhil”。

即列表[[Nikhil,0.88527],[Natalie,0.34812]]的第1项为[Nikhil,0.88527],这一项[Nikhil,0.88527]本身也是一个列表,它的第1项为“Nikhil”

如果匹配成功,app使用TextToSpeech1组件说“Success!”,然后打开Screen2。

如果没有匹配成功,假定是你的小伙伴(或其他人)试图打开Diary应用,使用TextToSpeech添加一条消息,告知他们已被拒之门外。

代码块看起来如下图。红色框中是你的名字(你在c1.appinventor.mit.edu中使用的标签)。蓝色框是一句话,如果app认为不是你的声音,它会大声说出来!

  1. 大功告成!快速浏览模板文件中提供的Screen2。它只是简单的能让你在日记中输入内容。还有有一个返回按钮可返回到Screen1。余下的任务留给你来构建这个app的日记功能。一个建议是使用TinyDB并将日记条目存储在设备上,以便你可以保存和读取以前的日记条目。

  1. 目前使用MIT AI伴侣PersonalAudioClassifier扩展是无法正常工作的。因此必须使用App Inventor中的“打包apk”菜单来将应用打包安装到手机上运行。

  1. 测试一下程序!当你说“Hello”时可以进入Screen2。但是app应该能够阻止其他人进入你的日记。

测试和调试技巧

在Screen1上,StatusLabel显示从分类器返回的结果。如果应用无法正常运行,请检查分类器返回的内容。检查你的名字是否首先出现在返回的结果列表中。如果没有,你可能必须再次训练模型!

另一种可能性是置信度太低。你能否添加代码以检测置信度是否大于80%?请记住,子列表中的第二个值是置信度。

附录1

测试硬件

为了事先检查Diary应用程序是否可以在你的设备上运行,我们提供了一个项目进行测试。首先将此Test_PAC.apk 下载到电脑上。在手机上安装该应用。运行应用程序。在app屏幕顶部看到“Waiting…”标签。最多一分钟后,标签显示应更改为“Ready and work!”。如果标签未更改,则表明你的设备无法与PAC扩展一起使用。




test_PAC.zip

5.57 MB, 下载次数: 0

手机测试文件

voice_authentication_diary.zip

2.56 MB, 下载次数: 7

app模板文件.aia

高级模式
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2020 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail