freettssynthesizermodedesc.java
来自「FreeTTS is a speech synthesis system wri」· Java 代码 · 共 116 行
JAVA
116 行
/** * Copyright 2003 Sun Microsystems, Inc. * * See the file "license.terms" for information on usage and * redistribution of this file, and for a DISCLAIMER OF ALL * WARRANTIES. */package com.sun.speech.freetts.jsapi;import java.util.LinkedList;import java.util.List;import java.util.Locale;import javax.speech.Engine;import javax.speech.EngineCreate;import javax.speech.EngineException;import javax.speech.synthesis.SynthesizerModeDesc;import com.sun.speech.engine.synthesis.BaseVoice;import com.sun.speech.freetts.ValidationException;/** * Represents a SynthesizerModeDesc for the * FreeTTSSynthesizer. A FreeTTSSynthesizerModeDesc adds * an audio player to the standard mode items. */public class FreeTTSSynthesizerModeDesc extends SynthesizerModeDesc implements EngineCreate { /** * Creates a fully-specified descriptor. * Any of the features may be <code>null</code>. * * @param engineName the name of the engine * @param modeName the name of the mode * @param locale the locale associated with this mode */ public FreeTTSSynthesizerModeDesc( String engineName, String modeName, Locale locale) { super(engineName, modeName, locale, Boolean.FALSE, null); } /** * Returns the valid voices in this synthesizer mode. * * @return an array of valid voices, if no valid voices, it will * return an array of size 0 */ public javax.speech.synthesis.Voice[] getVoices() { List voiceList = new LinkedList(); javax.speech.synthesis.Voice[] voices = super.getVoices(); int count = 0; for (int i = 0; i < voices.length; i++) { FreeTTSVoice freettsVoice = (FreeTTSVoice) voices[i]; try { freettsVoice.validate(); voiceList.add(freettsVoice); count++; } catch (ValidationException ve) { // don't do anything here if a FreeTTSVoice is invalid } } javax.speech.synthesis.Voice[] validVoices = new javax.speech.synthesis.Voice[count]; voiceList.toArray(validVoices); return validVoices; } /** * Returns true if this is a valid FreeTTSSynthesizerModeDesc. * It is valid if it contains at least one valid Voice. * Returns false otherwise. * * @throws ValidationException if this FreeTTSSynthesizerModeDesc * is invalid */ public void validate() throws ValidationException { javax.speech.synthesis.Voice[] voices = super.getVoices(); int invalidCount = 0; String validationMessage = ""; for (int i = 0; i < voices.length; i++) { try { ((FreeTTSVoice) voices[i]).validate(); } catch (ValidationException ve) { invalidCount++; validationMessage += (ve.getMessage() + "\n"); } } if (invalidCount == voices.length) { throw new ValidationException (validationMessage + getModeName() + " has no valid voices."); } } /** * Constructs a FreeTTSSynthesizer with the properties of this mode * descriptor. * * @return a synthesizer that mathes the mode * * @throws IllegalArgumentException if the properties of this * descriptor do not match any known engine or mode * @throws EngineException if the engine could not be created * @throws SecurityException if the caller does not have * permission to use the speech engine */ public Engine createEngine() throws IllegalArgumentException, EngineException, SecurityException { FreeTTSSynthesizer s = new FreeTTSSynthesizer(this); return s; }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?