0% found this document useful (0 votes)
68 views

Voice Authentication App Tutorial

This document provides instructions for students to build a voice authentication diary app using the Personal Audio Classifier extension in App Inventor. It involves training an audio classifier model on the PAC website to distinguish between two voices saying "Hello". The trained model is then exported and uploaded to an App Inventor project that uses the classifier to authenticate the user's voice before allowing access to a diary screen. Testing the app involves building it on a device and verifying only the correct voice is granted access to view diary entries.
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
68 views

Voice Authentication App Tutorial

This document provides instructions for students to build a voice authentication diary app using the Personal Audio Classifier extension in App Inventor. It involves training an audio classifier model on the PAC website to distinguish between two voices saying "Hello". The trained model is then exported and uploaded to an App Inventor project that uses the classifier to authenticate the user's voice before allowing access to a diary screen. Testing the app involves building it on a device and verifying only the correct voice is granted access to view diary entries.
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 13

Voice Authentication App ​(Student Guide) 

 
 
NOTE: Not all mobile devices/operating systems currently have the required 
hardware/software to run the PAC extension used in this unit. We highly recommend 
testing beforehand with our test app to make sure it is compatible. Instuctions for 
testing are included in ​Appendix 1​. If your device is not compatible, you can still play 
with the PAC website to learn how to train a model. You will not be able to try it in App 
Inventor. 
 
1. Navigate browser to ​https://c1.appinventor.mit.edu/ 
 
You’re going to train an audio classifier from scratch! First, you have to teach it 
what you want to classify. This is the “training” phase. You want to train two voices, 
so find a friend or family member to be your partner for this activity. 
 

 
 
 
2. Click on the ​+​ icon to add labels for you and your partner’s voice. 
 
 
 
 
 
 
 
 
 
In this example, there are two possible classifications for the model:  
Nikhil and Natalie.  
 
Your model is going to learn to distinguish between you and your partner saying the 
word “Hello.” You will record some voice clips for the model to train on. 
 
 
3. Test your computer’s microphone and get a sense of how long each 
voice clip will be. 
 
Practice by pressing record and saying “Hello” loudly and clearly (you may need to 
grant microphone access).  
 
Make sure you only speak while the red recording bar is active. 
 
 
 

 
 
 
 
As your microphone warms up, you may need to remove some bad recordings by 
pressing the blue “x” in the top right corner of each image. 
 
4. Clear any practice recordings and record 5-10 good examples of you 
and your partner saying “Hello.”  
 
Click the “RECORDING FOR” button to change which person you are recording. 
 
 
 
 
 
Double check that your recorded examples look similar to the ones shown below 
(remember you can remove any odd-looking examples and record them again). 
   
5. Using your examples, you will now “train” the model. Press the 
“train” button, and then press “train model” using the default 
parameters. 
  
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
   
6. Now that your model is trained, it’s time to test it!  
 
Press record to record a voice clip and see how the model classifies the clip!  
 
(Don’t worry about who the “RECORDING FOR” button is set to). Just see how the 
model performs for you and your partner’s voices. 
 
 
 
 
 
 
 
 
 
 
 
 
Hover over each of the labels to see the model’s confidence in its classification. 
 
 
 
 
 
 
 
 
 
 
 
 
 
You can press the “train” button in the navbar to return to the training screen and 
record more examples (then retrain your updated model following step 4). 
7. Once you’re confident in your model, press the “Export” button to 
export your new model! 
 

 
 
8. Now it’s time to build your Voice Authentication App using this 
exported model!  
 
Download the Voice Authentication Diary App Inventor project file (aia) from this 
link: 
 
Voice_authentication_diary.aia 
 
Navigate to ​http://ai2.appinventor.mit.edu/,​ go to My Projects, and import the file 
you just downloaded. 
 
 
 
   
This will be a Diary app authenticated by your voice saying “Hello”. Only 
you will be able to open your diary. Anyone else, in this case, your 
partner, won’t be able to get into your diary.  
 
Note that your Diary app has two screens. You will focus on Screen1, 
where your voice will be authenticated. That will take you to Screen2, 
your diary. 
 
Open up the “voice_authentication_diary” app you just imported. In the Designer, 
drag in the following components and rename them and set their properties as 
follows. 
 
 
Component  Drawer  Name  Properties 

Label  User  DiaryLabel  Text: “My Diary” 


Interface  FontSize: 50 
FontTypeface: monospace 
Width: Fill Parent 
TextAlignment: Center 

WebViewer  User  WebViewer1   


Interface 

Label  User  StatusLabel  Text: “Awaiting Classification” 


Interface  Width: Fill Parent 
TextAlignment: Center 

PersonalAudio Extensions  PersonalAudioClassifier1  WebViewer: WebViewer1 


Classifier 

TextToSpeech  Media  TextToSpeech1   


 
 
9. Upload your model from the PAC website! 
 
Click on PersonalAudioClassifier1, and in the Properties window, click on Model 
where it says “None” and then upload your model.mdl file. Click OK. 
 
 
 
After uploading your model.mdl file, make sure it shows up in the “Model” box as 
shown below. 
 
 
 
 
 
 
 
 
 
 
 
 
 
10. Now that your model is uploaded, edit the blocks to tell the diary 
who is allowed in! 
 
Click on the Blocks button to navigate to the Blocks Editor. 

 
 
Click on ​PersonalAudioClassifier1 i​ n the B
​ locks​ palette, and drag out a 
PersonalAudioClassifier1.GotClassification​ block.  

 
Set ​StatusLabel.Text​ to the result parameter in the event block. 

 
Add an ​if-then-else b
​ lock from the ​Control​ Drawer, and attach an ​equals (=)​ block 
from the ​Logic​ drawer.  

The result returned is a list with the classifications from the model. The list will 
contain two sub-lists. Each sub-list will contain the label the classifier thinks is a 
match, followed by the confidence level. For example: 
 
[ [Nikhil, 0.88527] , [Natalie, 0.34812] ] 
 
The classifier has 88% confidence that the voice matches Nikhil, and only 34% 
confidence the voice matches Natalie. You want to pull out the first item in the first 
sublist, in this case “Nikhil” and test if that is the person whose diary this is.  
 
To do this, use two s​ elect list item​ blocks from the L
​ ists​ drawer. First, get the first 
item (index) from ​get result​ (your main list). That then becomes your list to extract 
again the first item (index), which in this example is “Nikhil”.  
 
If there is a match, you want to say “Success!” using the T ​ extToSpeech1​ component, 
and then open ​Screen2.​   
 
If there is not a match, you can assume your partner (or someone else) tried to open 
your Diary app, so add a message using ​TextToSpeech​ telling them they are shut 
out. 
 
Your blocks should look something like the ones below. The r​ ed box​ should contain 
your name (using the label you used in c1.appinventor.mit.edu). The b ​ lue box​ should 
contain a phrase that the app will speak out loud if it doesn’t think the voice is you! 

 
 
 
11. And you’re done! Take a quick look at Screen2 provided in the 
template. It simply allows you to type whatever you want in your 
diary. There is a back button to return to Screen1. The task is 
left to you to build out the diary aspect of this app. One 
recommendation is to use TinyDB and store your diary entries on 
your device so you can save and read your previous diary entries. 
 
 
12. The PersonalAudioClassifier extension does not currently work 
with the MIT AI2 Companion, so you must build the application 
using the ​Build​ menu in App Inventor. Choose the ​“provide QR 
code for .apk” o ​ ption, and then use a QR Code Reader app, or 
the MIT AI2 Companion on your device to scan the QR code. 
Follow the instructions to install the app on your phone or tablet.  

 
 
13. Test it out! You should be able to say “Hello” and proceed to 
Screen2. Your partner, however, should be blocked from seeing 
your diary.  
 
 
Tips to Test and Debug 
 
On Screen1, ​StatusLabel​ displays the result returned from the 
Classifier. If your app does not work as expected, check what the 
Classifier is returning. Check that your name appears first in the 
returned result list. If not, you might have to go back and train 
your model again! 
 
Another possibility is that the confidence level is too low. Can 
you figure out how to add code to test that the confidence level 
is greater than 80%? Remember, the second value in your sublist 
is the confidence level.   
 

Appendix 1

Testing Hardware
 
In order to check beforehand if the Diary app will work on your device, we’ve provided a project
to test it out. Start by downloading this Test_PAC.apk (​link​) onto your computer. Install the app
on your device. Run the app. You should see a “Waiting…” label at the top of the screen in the
app. After at most a minute, the label display should change to “Ready and working!”. If the
label does not change, it means your device will not work with the PAC extension.

You might also like