<?xml version="1.0" encoding="utf-8" standalone="no"?>
<!DOCTYPE document PUBLIC "-//CNX//DTD CNXML 0.5 plus MathML//EN" "http://cnx.rice.edu/cnxml/0.5/DTD/cnxml_mathml.dtd">
<document xmlns="http://cnx.rice.edu/cnxml" xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/" id="None">
  <name>Voice Conversion in Praat</name>
  <metadata>
  <md:version>1.3</md:version>
  <md:created>2004/12/12 14:01:38 US/Central</md:created>
  <md:revised>2004/12/17 20:19:43.140 US/Central</md:revised>
  <md:authorlist>
      <md:author id="jyeechen">
      <md:firstname>Justin</md:firstname>
      
      <md:surname>Chen</md:surname>
      <md:email>jyeechen@rice.edu</md:email>
    </md:author>
  </md:authorlist>

  <md:maintainerlist>
    <md:maintainer id="jyeechen">
      <md:firstname>Justin</md:firstname>
      
      <md:surname>Chen</md:surname>
      <md:email>jyeechen@rice.edu</md:email>
    </md:maintainer>
    <md:maintainer id="jago">
      <md:firstname>Adan</md:firstname>
      
      <md:surname>Galvan</md:surname>
      <md:email>jago@rice.edu</md:email>
    </md:maintainer>
    <md:maintainer id="richb">
      <md:firstname>Richard</md:firstname>
      <md:othername>G.</md:othername>
      <md:surname>Baraniuk</md:surname>
      <md:email>richb@rice.edu</md:email>
    </md:maintainer>
  </md:maintainerlist>
  
  <md:keywordlist>
    <md:keyword>Praat</md:keyword>
    <md:keyword>Voice conversion</md:keyword>
  </md:keywordlist>

  <md:abstract>An overview of a Praat algorithm for voice conversion, and the functions it uses.</md:abstract>
</metadata>

  <content>
<para id="one">
The Praat Program, developed by Paul Boersma and David Weenink of the University of Amsterdam, provides several modules. The ones we were interested in were namely the LPC and pitch conversion modules. These modules can be combined to convert from a source speaker to a target.  
</para>


<section id="Intro">
<name>Opening a Sound File in Praat</name>
<para id="Introduction">
Praat is a program that offers several different ways to process and manipulate sound files.  When a 
sound file is opened in Praat, it is automatically converted into an “object,” which is the only type of 
data that the program can work with.  To open a sound file, select “Read from file…” from the “Read” 
menu.
</para>
</section>
<section id="LPC">
<name>LPC Filters</name>
<para id="LPCBurg">
Using Praat, it is possible to calculate the LPC filter coefficients of a sound object.  To do this, select the sound object and use the function "To LPC (burg)" under "Formants and LPC."  This function requires the following arguments:
</para>
<para id="Arguments1">
<term>Prediction order</term> - The number of linear prediction coefficients.
</para>
<para id="Arguments2">
<term>Analysis window duration</term> - The duration of each analysis frame, in seconds.
</para>
<para id="Arguments3">
<term>Time step</term> - The time step between two consecutive analysis frames, in seconds.
</para>
<para id="Arguments4">
<term>Pre-emphasis frequency</term> - A +6dB / octave filtering will be applied above this frequency (Hz).  If you do not want pre-emphasis, choose a frequency greater than the Nyquist frequency.
</para>
<para id="Filtering">
This function will return an LPC object.  To filter or inversely filter a sound object with an LPC object, simply select both of them simultaneously and choose the appropriate option.  Inversely filtering a sound object with its associated LPC object will yield the excitation (or source) part of the sound.  This excitation can be filtered with a different LPC object than the one it was created with to obtain the characteristics of another sound.
</para>
</section>
<section id="pitch">
<name>Changing Pitch</name>
<para id="Pitch1">
Praat can also be used to extract pitch information from a sound.  To do this, a sound object must first be converted to a manipulation object through the “To Manipulation…” function.  When a sound object is converted to a manipulation object, Praat automatically calculates the sound's pitch information using the PSOLA method.  After selecting a manipulation object, the “Extract pitch tier” function can be used to obtain this pitch information.
</para>
<para id="Pitch2">
A manipulation object’s pitch tier can be replaced with a separate pitch tier object.  Selecting both objects and using the “Replace pitch tier” function will accomplish this.  In order to get a sound object from a manipulation object, select “Resynthesize (LPC).”
</para>
</section>
<section id="block">
<name>Voice Conversion Algorithm</name>
<para id="Block1">
The preceding processes can be automated through a Praat script. The following block diagram illustrates one method of performing voice conversion in Praat:
</para>
<figure id="voice">
<name>A Voice Conversion Algorithm</name>
<media type="image/png" src="ursula.png"/>
<caption>The windowing for this process is done in Matlab.  The rest of the system can be coded entirely in Praat.</caption>
</figure>
</section>
<section id="references">
<name>References</name>
<para id="refs1">
<cite>Praat: Doing Phonetics by Computer. Paul Boersma and David Weenink of the
University of Amsterdam. <link src="www.praat.org">www.praat.org</link>.</cite>
</para>
</section>
</content>
</document>
