operation of the preferred embodiment as performed by computer hardware system 100 beginning with step 210 microphone 130 records a sound and stores it in memory 120 processor 110 preprocesses the sound in step 220 by selecting a time period of interest generally corresponding to one period of a periodic sound such as a single heart beat in step 230 processor 110 constructs a line segment approximation of the single period of the sound as shown in fig4 in step 240 processor 110 defines an audio envelope around the line segment approximation as shown in fig5 in step 250 processor 110 isolates fiducial points from the audio envelope as shown in fig6 in step 260 processor 110 matches the fiducial points from audio envelope of the recorded sound with fiducial points from the database sounds obtained through input output interface 140 a more detailed discussion of the pre processing and modeling the shape variation of heart sounds performed by processor 110 will now be presented while normal heart sounds show good repetition the periodicity is surprisingly difficult to spot for abnormal heart sounds where the repetitions can be nested or irregular arrhythmias simple auto correlation is often insufficient for this purpose a robust periodicity detector treats periodicity detection as the problem of recovering a shift translation that best aligns two self similar curves consider a periodic curve g t with period t then by definition g t g t kt for all multiples k 0 1 2 consider a candidate period u03c4 form a curve f t by shifting g t by u03c4 i e then define a function r u03c4 that records the number of curve features that can be verified to satisfy the periodicity condition based on the current estimate of the period.