%last updated on 14.01.2000 by A. Endemann

%\documentclass[runningheads]{llncs}
%In order to omit page numbers and running heads
%please use the following line instead of the first command line:
\documentclass{llncs}
%Furthermore change the line \pagestyle{headings} to
%\pagestyle{empty}.

\input{psfig.sty}

\begin{document}

%\pagestyle{headings}
%In order to omit page numbers and running heads
%please change this line to
\pagestyle{empty}
%and change the first command line too, see above.

\mainmatter

\hyphenation{ARTIC PSOLA}

\title{Building a New Czech Text-to-Speech System Using Triphone-Based Speech Units\thanks{This work was supported by the project No.~VS97159 and No. MSM23520004 of the
Ministry of Education of Czech Republic.}}

\titlerunning{Lecture Notes in Computer Science}

\author{Jind\v{r}ich Matou\v{s}ek}

\institute{University of West Bohemia, Department of Cybernetics,\\
Univerzitn\'{\i} 8, 306 14 Plze\v{n}, Czech Republic\\
tel.: +420 19 7491 150, fax: +420 19 279050\\
\email{jmatouse@kky.zcu.cz}\\}

\maketitle

\begin{abstract}
This paper presents ARTIC, a brand-new Czech text-to-speech (TTS) system. ARTIC
(Artificial Talker in Czech) is a concatena-\\tion-based system that consists
of three main, relatively independent, components: speech segment database
(SSD), text analyzer and speech synthesizer. A statistical approach to speech
segment database construction is used. Text processing module includes the
phonetic transcription of written text and the conversion to synthetic units.
Speech processing is performed using a PSOLA algorithm.
\end{abstract}


\section{Introduction}
In this paper, we describe ARTIC (Artificial Talker in Czech), a brand-new
Czech TTS system. The system is concatenation-based (see Fig. \ref{fig:tts}),
so speech segment database must be constructed before the synthesis itself. In
contrast to many working systems today, we use triphone-based speech units.
Statistical approach is employed to find these units from natural speech
corpus and to select the appropriate representatives to be used during speech
synthesis.

The aim of a TTS system is to generate speech at the output of the system from
the arbitrary input text. The first task is then to process the input text and
to convert it to the sequence of units which are then used in the speech
synthesis stage. This process is called text processing.

The last task of a TTS system is to generate speech. Since concatenation-based
approach to speech synthesis is used in our system, a method how to concatenate
units smoothly is proposed and described.

The paper is organized as follows. Section~\ref{sec:ssd} describes the SSD
construction process from more detailed point of view. In section
\ref{sec:text} text processing is depicted. Section~\ref{sec:speech} then
concerns the speech processing. Finally, section~\ref{sec:conclusion} contains
the conclusion and outlines our future work.

\begin{figure}[!b]
\centerline{\psfig{figure=tts.eps,height=6cm}} \caption{Simplified scheme of
our concatenation-based TTS system} \label{fig:tts}
\end{figure}


\section{Speech Segment Database} \label{sec:ssd}
Hidden Markov Models (HMMs) are used as a statistic tool for an automatic
speech corpus segmentation~\cite{donovan:trainablesynthesis}. The main
advantage of this approach is that labor-intensive and time-consuming manual
work is reduced to minimum. Moreover, comparing to traditionally used
diphones, more precise speech units -- triphones -- can be employed. Triphone
HMMs are then trained on the basis of the speech corpus.

\subsection{Speech Corpus} \label{sec:sc}
In our system we use a large single-speaker continuous-read-speech corpus (SC).
SC comprises about 90 minutes of naturally read speech recorded from four radio
tales. The speech was sampled with 44~kHz and quantized into 16~bits. Then it
was listened to, divided into utterances and annotated. For the purposes of HMM
training (see section~\ref{sec:segmentation}) each utterance was resampled
with 16~KHz, Hamming windowed with 25 ms and pitch-asynchronously parameterized
using 39 mel frequency cepstral coefficients (including energy, delta and
acceleration coefficients). To be able to perform a PSOLA algorithm, each
utterance was also a subject of a pitch-mark detection algorithm, which
computed the positions of pitch-marks (i.e. moments of glottal closures) in
the speech signal. As the last step, each utterance was transcribed
automatically using Czech phonetic transcription rules (see
section~\ref{sec:phntrans}).

\subsection{Automatic Segmentation of a Speech Corpus} \label{sec:segmentation}
The automatic segmentation of the speech corpus was performed in a similar way
as in~\cite{matousek:hmmbasedsynthesis}. Three state left-to-right HMMs with no
skips and with 6~ms frame rate were used to model triphones. Starting from 45
Czech phones, 8.540~cross-word triphone models (which were seen in the SC)
were trained using the HTK system~\cite{young:htk}. These models consist of
25.617 generally different states. Ideally, all possible Czech triphones
should occur often enough in SC to be modeled reasonably by HMMs. Taking into
account a great number of triphones (91.125 theoretically possible), it is
practically impossible to create such a SC. Hence, described SC, which is
thought to be sufficiently representative, is used and an efficient algorithm
is employed to cluster acoustically similar sub-phone units (so called
clustered states~\cite{donovan:trainablesynthesis} -- i.e. units that
correspond to states of a triphone HMM) using binary decision
trees~\cite{young:treebasedtying}. Thanks to this technique, triphone HMMs are
more robust and moreover, triphones not present in the SC can be made up of
appropriate clustered states. After clustering, the number of triphones
increased to 16.176. These triphones (so called tied triphones) cover all
possible speech context and shared only 7.742 clustered states (see
Table~\ref{tab:clustering}). The clustered states represent the basic speech
units of our TTS system. Finally, triphone HMMs are used to automatically
segment the SC into these units (see Fig.~\ref{fig:segmentation}). As a result,
time labels of each speech unit are added to the SC.
\begin{table}[t]
\begin{center}
\caption{Number of triphones and states before and after tree-based state
clustering.} \label{tab:clustering}
\begin{tabular}{|l||r @{,} l|r @{,} l|}
\hline
    Units       & \multicolumn{2}{c|}{Before Clustering} & \multicolumn{2}{c|}{After Clustering} \\
\hline \hline
    Triphones   & \hspace{8mm} 8 & 540      & 16 & 176 \\
    States      & 25 & 617                  & \hspace{8mm} 7 & 742 \\
\hline
\end{tabular}
\end{center}
\end{table}
\begin{figure}[t]
\centerline{\psfig{figure=segmentation.eps,width=10cm}} \caption{Example of
automatic speech segmentation into clustered states.} \label{fig:segmentation}
\end{figure}


\subsection{Speech Segment Selection} \label{sec:selection}
After segmenting, there are multiple instances of each speech unit in the SC.
In our system, each speech unit is represented by a single speech segment.
Simple segment selection algorithm (similar
to~\cite{donovan:trainablesynthesis}) is adopted to choose suitable segments.
For the later use both too short and low-energy instances are undesirable.
Hence, statistics about each speech unit duration and energy were computed
over all instances of given speech unit. Then, instances with duration or
energy lesser than corresponding median values (and some threshold) are not
selected. From resulting instances, segment with maximum HMM score imposed by
the Viterbi search is chosen as a representative and is stored to the SSD.
Median values were used rather than mean values, because using mean values in
some cases (when only few instances were present for particular speech unit in
the SC and one of them has duration or energy much more greater than the
others) led to selecting an incorrect segment and to synthesizing the speech
unit with incorrect duration or energy (see section~\ref{sec:speech}).


\section{Text Processing} \label{sec:text}
Text is the only input of the TTS system. Hence, text should be processed
thoroughly to obtain important knowledge about what to synthesize. Text
analyzer is an important part of a TTS system, because it tells the
synthesizer which speech units to use and how to modify them. Firstly, input
text should be pre-processed, i.e. some operations must be performed to
transcribe digits, abbreviations, etc. This is not the case of our system in
the time of writing this paper, as we suppose that only ``clean'' text can
appear at the input of our TTS system. Then, ideally, the ``clean'' text
should be subject of syntactic, semantic, morphological, and contextual
analysis to get important phonetic and prosodic information. Since our system
generates monotonous speech so far, no prosody analysis is required except of
simple pause detection analysis. So the key task of text analyzer consists of
converting input text to the sequence of clustered states -- the basic speech
units needed by the synthesizer. This process requires phonetic transcription
(letter-to-phone conversion) to be done (see section~\ref{sec:phntrans} for
more details). Finally, it is no problem to convert the sequence of phones to a
sequence of triphones and then to a sequence of clustered states using the
decision trees. Example of text processing is shown in Table~\ref{tab:example}.

\subsection{Automatic Phonetic Transcription} \label{sec:phntrans}
Since Czech is a ``phonetic language'' both with a high degree of inflection
(there are many forms for a single word, e.g. noun) and with a high degree of
derivation (usage of prefixes and suffixes), it is useful to apply phonetic
transcription rules in the form~(\ref{eq:phnrule}) to generate a sequence of
phones from a sequence of letters~\cite{psutka:communication}. Letter sequence
$A$ with both left context $C$ and right context $D$ is transcribed as phone
sequence $B$.
\begin{equation}
\label{eq:phnrule}
 A \rightarrow B / C \_\ D \; .
\end{equation}
The next rule is an example of a typical Czech phonetic rule, which transcribes
nasal letter \textit{n} to phone [\v n]. Right context is formed by letters
\textit{\v{e}}, \textit i, or \textit{\'{\i}}, left context is ignored.
\begin{equation}
\label{eq:example}
 n \rightarrow \check{n} / \_ \, \left< \check{e}, i, \textit{\'\i} \right> \; .
\end{equation}
In our system we currently use a set of about 50~transcription rules. For less
inflectional languages (e.g. English) different, dictionary-based approach to
phonetic transcription is almost always used. In this conception ``phonetic
dictionary'', which contains phonetic transcription of all words, is employed.
In our system, this approach is also used to transcribe non-Czech words like
foreign names, etc. Our dictionary of exceptions currently consists of about
620~stem-like forms.
\begin{table}[tbp]
\begin{center}
\caption{Example of text-processing.} \label{tab:example}
\begin{tabular}{ll}
\hline \noalign{\smallskip}
    Text:               & Mysl\'{\i}m, tedy jsem. \\
\noalign{\smallskip} \noalign{\smallskip}
    Pauses:             & Mysl\'{\i}m [P] tedy jsem \\
\noalign{\smallskip}  \noalign{\smallskip}
    Phones:             & pau misl\'{\i}m pau tedi sem pau \\
\noalign{\smallskip}  \noalign{\smallskip}
    Triphones:          & pau pau-m+i m-i+s i-s+l s-l+\'{\i} l-\'{\i}+m \'{\i}-m+pau
                        pau pau-t+e t-e+d \\
                        & e-d+i d-i+s i-s+e s-e+m e-m+pau pau \\
\noalign{\smallskip}  \noalign{\smallskip}
    Tied Triphones:     & pau pau-m+i m-i+s i-s+l s-l+\'{\i} l-\'{\i}+m \'{\i}-m+pau
                        pau pau-t+e t-e+d \\
                        & ee-d+ii d-i+s i-s+e s-e+m e-m+pau pau \\
\noalign{\smallskip}  \noalign{\smallskip}
    Clustered states:   & pau\_2\_1 pau\_4\_1 m\_2\_4 m\_3\_3 m\_4\_66 i\_2\_54 i\_3\_168 i\_4\_89 s\_2\_107 \\
                        & s\_3\_112 s\_4\_42 l\_2\_43 l\_3\_104 l\_4\_94 \'{\i}\_2\_35 \'{\i}\_3\_113 \'{\i}\_4\_108 m\_2\_80 \\
                        & m\_3\_113 m\_4\_5 pau\_2\_1 pau\_4\_1 t\_2\_18 t\_3\_10 t\_4\_39 e\_2\_71 e\_3\_122 \\
                        & e\_4\_112 d\_2\_44 d\_3\_34 d\_4\_36 i\_2\_77 i\_3\_107 i\_4\_82 s\_2\_109 s\_3\_89 \\
                        & s\_4\_70 e\_2\_113 e\_3\_35 e\_4\_173 m\_2\_68 m\_3\_1 15 m\_4\_6 pau\_2\_1 pau\_4\_1 \\
\noalign{\smallskip} \hline
\end{tabular}
\end{center}
\end{table}
\setlength{\tabcolsep}{1.4pt}


\section{Speech Processing} \label{sec:speech}
Speech synthesizer takes care of speech processing and forms the core of the
TTS system. Concatenation-based synthesizer prosodically modifies speech
segments stored in the SSD and then concatenates them according to sequence of
speech units delivered by the text analyzer. A PSOLA technique was selected to
perform the concatenation and to change both the fundamental frequency ($F_0$)
and the duration of speech units to desired values. Time-domain version of this
algorithm (i.e. TD-PSOLA) has been incorporated into the system so
far~\cite{moulines:psola}, because it is easy to implement and gives
high-quality speech, so it is very suitable to use in the first version of our
system.

The positions of pitch-marks play the key role in PSOLA algorithm. As mentioned
in section~\ref{sec:sc}, pitch-mark detection algorithm was used to determine
the positions in voiced speech. In unvoiced speech, there is no vocal cords
activity and hence no pitch-mark positions are found. To be able to change the
duration of unvoiced parts of speech, ``pitch-marks'' are uniformly
distributed in unvoiced speech regions. Each pitch-mark defines a short-term
signal, which is centered on the current pitch-mark position and Hanning
windowed. The size of the short-term signal is defined either by the previous
or the next pitch-mark position. Fundamental frequency of speech units to
concatenate is then modified by changing the distance between short-term
signals centered on adjacent pitch-mark positions. Monotonous $F_0$ is used
for the present. Duration of speech units is changed by inserting or deleting
short-term signals, preserving the desired $F_0$. The requested duration of
every speech unit is set to its median value computed over all instances of the
speech unit in SC (see section~\ref{sec:selection}). Moreover, energy of each
speech unit is scaled to have its median value.


\section{Conclusion and Future Work} \label{sec:conclusion}
Described TTS system aims to generate intelligibly and naturally sounding
speech. To achieve this, a very precise, automatically built triphone-based
Czech SSD and a PSOLA technique are used. Although the very first fully
functional version of our system has been implemented so far, the first output
samples are very hopeful and promising.

There is a lot of things to improve in all three major parts of the system, of
course. As for SSD, we will focus to pitch-synchronous HMM training and will
make some experiments with model topology. Text processing should be also
enhanced to pre-process text and to detect prosodic features (i.e. $F_0$
contour and duration distribution). Of course, speech processing needs to be
improved too. Our aim is to implement a PSOLA algorithm in parametric-domain
to enable controlling spectral properties of resulting speech (as proposed
e.g. in~\cite{matousek:statistical approach}).

\begin{thebibliography}{4}
%
\bibitem{donovan:trainablesynthesis}
Donovan R.E., Woodland P.C.: A Hidden Markov-Model-Based Trainable Speech
Synthesizer. Computer Speech and Language, 13. (1999) 223--241.
%
\bibitem{matousek:hmmbasedsynthesis}
Matou\v{s}ek J.: Speech Synthesis Using HMM-Based Acoustic Unit Inventory.
Proceedings of Eurospeech'99. Budapest (1999) 2323--2326.
%
\bibitem{matousek:statistical approach}
Matou\v{s}ek J., Psutka J., and Tychlt Z.: Statistical Approach to the
Automatic Synthesis of Czech Speech. Proceedings of TSD'99. Mari\'ansk\'e
L\'azn\v e (1999) 376--379.
%
\bibitem{young:treebasedtying}
Young S.: Tree-Based State Tying for High Accuracy Acoustic Modelling.
Proceedings of the ARPA Workshop on Human Language Technology. Plainsboro, New
Jersey (1994) 307--312.
%
\bibitem{moulines:psola}
Moulines E., Verhelst W.: Time-Domain and Frequency-Domain Techniques for
Prosodic Modification of Speech; In: Speech Coding and Synthesis, edited by
Kleijn W.B., Paliwal K.K. Elsevier (1995) 519--555.
%
\bibitem{young:htk}
Young S.: et al.: The HTK Book. Entropic Inc. (1999).
%
\bibitem{psutka:communication}
Psutka J.: Communication With Computer by Speech (in Czech). Academia, Prague
(1995).
%
\end{thebibliography}

\end{document}
