Design Considerations

Fitting Speech onto the Java ME Platform

  • Speech Recognition
    • Name and number dialing
    • Built-in grammars (device specific)
    • Application defined grammars
  • Speech Synthesis
    • Formant synthesis
    • Concatenative synthesis
  • Does not include
    • Explicit dictation support
    • Speaker Verification
    • Speaker Identification

Basic Building Blocks for Java SE Compatibility

  • Add almost nothing for SE compatibility
  • Language selection is important
    • Locale – 8 methods for language, country, and variant
  • The API is event driven
    • EventListener – a simple tagging interface
    • EventObject – constructor, getSource, toString
  • Speech engines have many knobs
    • PropertyChangeListener – one method interface
    • PropertyChangeEvent – three methods

Adopting Standards From the W3C

Integrating Speech and GUI Events

  • JSAPI1 relied on AWT – no Applets :(
  • SpeechEventExecutor interface for JSAPI2
    • Compatible with JSR-116 (Executor mechanism)
    • Can integrate events with lcdui, Swing, etc.

Defining Audio Input and Output with an AudioManager

  • AudioManager interface supports media locators
  • Can be implemented with JSR-135
  • Can define input and output sources

  • Supports addAudioListener for AUDIO_LEVEL and other AudioEvents.

Security

  • Security mechanisms provided by the underlying profile and configuration (e.g., MIDP2)
  • An implementation must guarantee that
    • SecurityException is thrown when the caller does not have the appropriate security permissions
    • The method can be used when the appropriate permissions are granted
  • System properties determine permission
    • Method: javax.speech.AudioSegment.getInputStream
    • Key: javax.speech.supports.audio.capture

For More Information Check Out: