Technical Manual




Code Structure
Client Code Structure
Client.java
Basic Functions Construct GUI
Connect to Server
Logon Process Sends Username to Server
Receives Random Text
Calls Record.java with Text
New User Process Sends Username to Server
Calls NewUser.java with Username
Set Threshold Process Sends Username to Server
If no threshold already exists, Call Threshold.java with Useranme
Record.java
Paint GUI showing random text and Record Button
Record a 10 second WAV (Using SoundBite Class)
Save WAV to disk (Using SoundBite Class)
Send WAV to Server
Receive threshold and sum of likelihoods from server
Compare received vales and grant access/reject
NewUser.java
Paint GUI showing 17 text fields and 17 record buttons + Finish button
Record 17 10 second WAVs (Using SoundBite Class)
Save WAVs to disk (Using SoundBite Class)
Send WAVs to Server
Threshold.java
Paint GUI showing 5 text fields and 5 record buttons + Finish button
Record 5 10 second WAVs (Using SoundBite Class)
Save WAVs to disk (Using SoundBite Class)
Send WAVs to Server
Receive user's security level
Call setSecurity.java with security values
setSecurity.java
Paint GUI a JTextArea and a JList
Send JList value to server, to change security level
AboutBox.java
Shows Project about box (Credits and Version information)

Server Code Structure
Server.java
Basic Functions Construct GUI
Connect to Client
Logon Process Receive Username from Client
Call generateText.java
Send result to Client
Receive WAV from Client
Call verify perl script
Send result to Client
Send user threshold to Client
New User Process Receive Username from Client
Calls a perl script to create a new user directory on Server
Receive 17 WAV files from Client
Call a perl script to move files into user's folder
Call a perl script to build the user model
Set Threshold Process Receive Username from Client
Receive 5 WAV files from Client
Call a perl script to move files into user's folder
Call a perl script to build the user threshold
Call calcThreshold.java with initial value of 1.2817
Send lines 3 and 4 of t.txt to Client
Receive new security level from Client and call calcThreshold again with this value
generateText.java
Using system current time in Milliseconds get a random number
Using this pick out 9 words from the dictionary of digits and Doe, Ray, Me.....
Generate "testref.mlf" from these values
Generate the grammar file "gram" from these values
calcThreshold.java
Receives a username and a z-value for possibility of anti-user getting in.
Calculate mean and standard deviation of user and anti user values.
Calculate Threshold value for a user.
Calculate % chance of anti-user getting accepted and % chance of user getting rejected.
Store threshold value, z-value of anti-user getting in and the two percentage values for the user.


Problems Encountered Future Extensions to the Project

Possible usage Possible Further development