001/*
002 * Portions Copyright 2004 DFKI GmbH.
003 * Portions Copyright 2001 Sun Microsystems, Inc.
004 * Portions Copyright 1999-2001 Language Technologies Institute, 
005 * Carnegie Mellon University.
006 * All Rights Reserved.  Use is subject to license terms.
007 * 
008 * See the file "license.terms" for information on usage and
009 * redistribution of this file, and for a DISCLAIMER OF ALL 
010 * WARRANTIES.
011 */
012package de.dfki.lt.freetts;
013
014import java.io.IOException;
015import java.net.URL;
016
017import com.sun.speech.freetts.UtteranceProcessor;
018
019/**
020 * A generic interface implementing what is common to all
021 * concatentive voices (e.g., diphone, cluster unit and arctic voices). 
022 */
023public interface ConcatenativeVoice 
024{
025    /**
026     * Gets the url to the database that defines the unit data for this
027     * voice.
028     *
029     * @return a url to the database
030     */
031    URL getDatabase();
032    
033    /**
034     * Returns the pitch mark generator to be used by this voice.
035     * 
036     * @return the pitchmark processor
037     * 
038     * @throws IOException if an IO error occurs while getting
039     *     processor
040     */
041    UtteranceProcessor getPitchmarkGenerator() throws IOException;
042
043    /**
044     * Returns the unit concatenator to be used by this voice.
045     * 
046     * @return the unit concatenator processor
047     * 
048     * @throws IOException if an IO error occurs while getting
049     *     processor
050     */
051    UtteranceProcessor getUnitConcatenator() throws IOException;
052
053    /**
054     * Returns the unit selector to be used by this voice.
055     * 
056     * @return the unit selector processor
057     * 
058     * @throws IOException if an IO error occurs while getting
059     *     processor
060     */
061    UtteranceProcessor getUnitSelector() throws IOException;
062}