[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