[Package Index] [Index] [Users' Guide] [SVAPI Home Page]

Class Overview

SVAPI provides a standard interface for applications and engines to talk to each other. Both application and engine are responsible for implementing one or more SVAPI objects. The other party is then able to make calls to those objects.

SVAPI makes use of both Java classes and interfaces. The interfaces define the methods that engines and applications use to talk to each other, and the exceptions that can happen. The classes provide a framework for the interfaces. Neither applications nor engines need to derive from any of the SRAPI classes. In fact, most of the SVAPI classes are immutable and final.



Concrete Classes

ClassificationResults
This class holds results returned by a ClassificationEngine. It holds an Utterance and an integer identifier which identifies the speaker. A ClassificationEngine takes audio and returns an array of ClassificationResults.

CohortScore
A VerificationEngine returns a score that indicates how well the audio matched the voice patterns of the assumed speaker. Some engines report the scores for a speaker's cohorts (someone whose voice patterns are close to the speaker). This class holds a score for a speaker's cohort and, optionally, the name of the cohort.

ConfidenceMapping
This class holds a mapping between a raw score and a confidence level. When many scores are collected for a large number of speakers, a statistical model can be built that yields a mapping between raw scores and confidences. This class holds a point on that mapping.

EngineProperties
This class holds key-value pairs that describe an engine's properties. These properties are used by an application to select an engine and to know what functions are supported and how the engine operates.

EnginePropertiesList
This is a container class which holds EngineProperties objects. This class has functions which can help an application select an appropriate engine.

IdentificationResults
This class holds results returned by an IdentificationEngine. It holds a reference to a model and the associated score.

MemoryDataStore
This class is an implementation of the DataStore interface. It is useful for applications which have simple data store needs (relatively small amounts of data that is not shared).

ModelUtterancePair
This class holds a reference to a Model and an Utterance. This class is used as input for generating statistical data for an engine.

SVAPI
This is an uninstantiable class that has methods for querying available engines, creating engines and generating statistical data for VerificationEngines.

Score
This class holds scores used in verification and identification. A score can hold a boolean accept/reject decision, a floating-point raw score, an array CohortScores and a binary score. An engine can set one or more of the score types.

The class hierarchy for the SVAPI concrete classes is essentially flat. Every class inherits from Object, with the exception of EngineProperties, which inherits from java.util.Properties. Because of the flatness, a hierarchy diagram is not included.



Engine Implemented Interfaces

ClassificationEngine
This interface extends the Engine interface and adds the functionality necessary to do classification. Classification involves segmenting audio by speaker.

Engine
This is the base interface of all the different types of engines. It contains the basic methods that are common to all engines. This includes connecting, disconnecting, querying properties and parameters and managing audio.

IdentificationEngine
This interface extends the ModelBasedEngine interface and adds the functionality necessary to do identification. Identification involves comparing audio data against a group of Models and scoring each one.

Model
This interface defines the methods that operate on a Model, or a voice template. Each speaker has an associated Model that is stored in persistent storage. When an individual is enrolled into a system, a Model is created for that person. The Model contains all the necessary data to identify a person.

ModelBasedEngine
This interface extends the Engine interface and provides a base class for all Engines which require Models to operate.

Parameters
Models and Engines can have an associated Parameters object. A Parameters object allows an application to query and set custom parameters. Each parameter has a name and a single value, both of which are strings.

SVAPIEngine
This interface is implemented by every engine, but it is not necessary for applications to use. SVAPI uses this class to create instances of an Engine and to query all the different modes an engine can operate in.

Utterance
An Utterance encapsulates an audio chunk. Utterances are not persistent by nature, but applications can extract the audio data, save it, and later recreate the Utterance.

VerificationEngine
This interface extends the ModelBasedEngine interface and adds the functionality necessary to do verification. Verification involves comparing audio data against a single Model and returning a Score.



Application Implemented Interfaces

ClassificationNotify
The ClassificationNotify interface is used for performing asynchronous classification. The ClassificationNotify interface defines a callback for the application to receive ClassificationResults objects.

DataStore
The DataStore interface defines a simple database. Engines can get a DataStore object from the application in which they can store their persistent data.

EngineNotify
The EngineNotify interface defines callbacks which are common to all engines. Requests to release resources and asynchronous exceptions are reported to the application through this interface.

IdentificationNotify
The IdentificationNotify interface is used for performing asynchronous identification. The IdentificationNotify interface defines a callback for the application to receive updated IdentificationResults objects.

VerificationNotify
The VerificationNotify interface is used for performing asynchronous verification. The VerificationNotify interface defines a callback for the application to receive updated Scores.

The following diagram shows the interface hierarchy.



SVAPI Exceptions

SVAPI has a rich set of exceptions. The following diagram shows the exception hierarchy.



[Package Index] [Index] [Users' Guide] [SVAPI Home Page]

rwille@novell.com