这个综合 API 被分成几个规范：
这个 API 没有 Sun 公司的参考实现，但是有许多第三方实现，包括 Speech for Java（可以从 IBM alphaWorks 获得），它使用 ViaVoice 来支持语音命令识别、听写和文本到语音的合成。
Where can I get the Java Speech API (JSAPI)?
The Java Speech API (JSAPI) is not part of the JDK and Sun does not ship an implementation of JSAPI. Instead, we work with third party speech companies to encourage the availability of multiple implementations.
What is the Java Speech API (JSAPI)?
The Java Speech API allows Java applications to incorporate speech technology into their user interfaces. It defines a cross-platform API to support command and control recognizers, dictation systems and speech synthesizers.
When will the JSAPI specification be available?
The Java Speech 1.0 API specification was released on October 26, 1998, and is available at https://java.sun.com/products/java-media/speech/
What does the Java Speech API specification include?
The Java Speech API specification includes the Javadoc-style API documentation for the approximately 70 classes and interfaces in the API. The specification also includes a detailed Programmer‘s Guide which explains both introductory and advanced speech application programming with JSAPI. Two companion specifications are available: JSML and JSGF.
The specification is not yet provided with the .class files needed to compile applications with JSAPI.
What are JSML and JSGF?
The Java Speech API Markup Language (JSML) and the Java Speech API Grammar Format (JSGF) are companion specifications to the Java Speech API. JSML (currently in beta) defines a standard text format for marking up text for input to a speech synthesizer. JSGF version 1.0 defines a standard text format for providing a grammar to a speech recognizer. Both specifications are available at https://java.sun.com/products/java-media/speech/
How was the JSAPI specification developed?
Sun Microsystems, Inc. worked in partnership with leading speech technology companies to define the initial specification of the Java Speech API, JSML and JSGF. Sun is grateful for the contributions of:
How does JSAPI relate to other Java APIs?
The Java Speech API is part of a family of APIs that work together as a suite to provide customers with enhanced graphics and extended communications capabilities. These APIs include the
What JSAPI implementations are now available?
The Java Speech API is a freely available specification and therefore anyone is welcome to develop an implementation. The following implementations are known to exist.
Note: Sun Microsystems, Inc. makes no representations or warranties about the suitability of the software listed here, either express or implied, including but not limited to the implied warranties of mechantability, fitness for a particular purpose, or non-infringement. The implementations listed here have not been tested with regard to compliance to the JSAPI specification, nor does their appearance on this page imply any form of endorsement of compliance on the part of Sun.
Lernout & Hauspie‘s TTS for Java Speech API
Conversa Web 3.0
Elan Speech Cube
How do I use JSAPI in an applet?
It is possible to use JSAPI in an applet. In order to do this, users will need the Java Plug-in (see https://java.sun.com/products/plugin). The reason for this is that JSAPI implementations require access to the AWT EventQueue, and the built-in JDK support in the browsers we‘ve worked with denies any applet access to the AWT EventQueue. The Java Plug-in doesn‘t have this restriction, and users can configure the Java Plug-in to grant or deny applet access to the AWT Queue.
If you are using JRE 1.1:
Have your users follow these steps if your applet is based upon JDK 1.1:
Then perform these steps on your applet:
If you are using JRE 1.2:
The Java 2 platform‘s security model allows signing as done with JDK 1.1, but it also permits finer grained access control. The following are just some examples, and we recommend you read the Java Security Architecture Specification at the following URL before deciding what to do:
For a quick start, have your users do the following if your applet uses the Java 2 (i.e., JDK 1.2) platform:
The information in this FAQ is not meant to be a complete tutorial on the JDK 1.1 and JDK 1.2 architecture. Instead, it is meant to be hopefully enough to get you started with running JSAPI applets in a browser. We suggest you visit the following URLs to obtain more information on the Java Security models:
Java Security Home Page:
Tutorial on JDK 1.1 Security:
Tutorial on JDK 1.2 Security:
Why does Netscape Navigator or Internet Explorer throw a security exception when I use JSAPI in an applet?
JSAPI implementations require access to the AWT EventQueue. The built-in Java platform support in the browsers we‘ve worked with denies an applet access to the AWT EventQueue. As a result, JSAPI implementations will be denied access to the AWT EventQueue. In addition, we are not aware of a way to configure the built-in Java platform support in these environments to allow access to the AWT EventQueue.
The Java Plug-in (see https://java.sun.com/products/plugin), however, can be configured to allow an applet the necessary permissions it needs to use an implementation of JSAPI. As a result, we currently recommend using the Java Plug-in for applets that use JSAPI.
I‘m concerned about JSAPI applets "bugging" my office. What are the plans for JSAPI and security on JDK 1.2?
The JSAPI 1.0 specification includes the SpeechPermission class that currently only supports one SpeechPermission: javax.speech. When that permission is granted, an application or applet has access to all the capabilities provided by installed speech recognizers and synthesizers. Without that permission, an application or applet has no access to speech capabilities.
As speech technology matures it is anticipated that a finer-grained permission model will be introduced to provide access by applications and applets to some, but not all, speech capabilities.
Before granting speech permission, developers and users should consider the potential impact of the grant.
Does JSAPI allow me to control the audio input source of a recognizer or redirect the audio output of a speech synthesizer?
This support is currently not in JSAPI. We plan to use the Java Sound API to help provide this support in the future. We purposely left room for expansion in the javax.speech.AudioManager interface and will further investigate this support after the Java Sound API is finalized.