Corpus-based Speech Synthesis for Any Voice: Difference between revisions
From HLT@INESC-ID
mNo edit summary |
No edit summary |
||
Line 5: | Line 5: | ||
* Goto [https://www.l2f.inesc-id.pt/~spaulo/voices/tts_demo demo page] | * Goto [https://www.l2f.inesc-id.pt/~spaulo/voices/tts_demo demo page] | ||
== The Demo == | |||
<php> | |||
$gL2F_voices_location = "/afs/l2f/home/spaulo/web_pages/demos/tts_demo"; | |||
function da_nova_page($oURL, $text, $voices) { | |||
global $gL2F_voices_location; | |||
$fpN = fopen("$gL2F_voices_location/voices/$voices", "r"); | |||
$VoiceNames = array(); | |||
$VoiceNamesIndex = array(); | |||
$dimVoiceIndex = 0; | |||
while (!feof($fpN)) { | |||
$buffer=fgets($fpN, 4096); | |||
list($voiceN,$voiceDesc)=split(" ", $buffer); | |||
$newVoiceDesc=preg_replace(array(0 => '/\n/', 1 => '/_/'), | |||
array(0 => '', 1 => ' '), | |||
$voiceDesc); | |||
if($newVoiceDesc!='') { | |||
$VoiceNamesIndex[$dimVoiceIndex]=$voiceN; | |||
$VoiceNames[$voiceN]=$newVoiceDesc; | |||
$dimVoiceIndex++; | |||
} | |||
} | |||
fclose($fpN); | |||
//---------------------------------------------------- | |||
echo "<H2>DIXI TTS</H2>"; | |||
echo "<form method='post' name='intro' accept-charset='ISO-8859-1'>"; | |||
echo "Seleccione uma voz: <select name='voice'>"; | |||
echo "<option value='$voices'>" . $VoiceNames[$voices]; | |||
for($i=0;$i<$dimVoiceIndex;$i++) { | |||
if ($VoiceNamesIndex[$i]!=$voices) { | |||
echo "<option value='" . $VoiceNamesIndex[$i] . "'>"; | |||
echo $VoiceNames[$VoiceNamesIndex[$i]]; | |||
} | |||
} | |||
echo "</select>"; | |||
echo "<br/><br/>Escreva aqui o texto a sintetizar<br/>"; | |||
echo "<textarea name='parasinteste' rows='10' cols='80'>$text</textarea>"; | |||
echo "<br/>"; | |||
echo "<input type='submit' value='Sintetiza'/>"; | |||
echo "<a href='$oURL'>Ouvir novamente</a>"; | |||
//---------------------------------------------------- | |||
echo "</form>"; | |||
} | |||
</php> | |||
== Contact == | == Contact == |
Revision as of 14:06, 10 July 2007
Have you ever thought of having a famous person talking to you at your PC?
Corpus-based speech synthesis is suitable for this purpose, since it uses large amounts of recorded speech from a single speaker. While highly natural synthetic signals are mostly produced when the user-supplied texts give rise to utterances that are very similar to the recorded ones, appropriate choses of context-defining features can make it possible to render equally natural signals even in completely "out-of-domain" sentences. Besides, the availability of large multi-media repositories (movies, broadcast news, etc...) allows us to get the large single speaker speech databases needed to build such TTS voices.
- Goto demo page
The Demo
<php>
$gL2F_voices_location = "/afs/l2f/home/spaulo/web_pages/demos/tts_demo";
function da_nova_page($oURL, $text, $voices) {
global $gL2F_voices_location; $fpN = fopen("$gL2F_voices_location/voices/$voices", "r"); $VoiceNames = array(); $VoiceNamesIndex = array(); $dimVoiceIndex = 0; while (!feof($fpN)) { $buffer=fgets($fpN, 4096); list($voiceN,$voiceDesc)=split(" ", $buffer);
$newVoiceDesc=preg_replace(array(0 => '/\n/', 1 => '/_/'), array(0 => , 1 => ' '), $voiceDesc); if($newVoiceDesc!=) { $VoiceNamesIndex[$dimVoiceIndex]=$voiceN; $VoiceNames[$voiceN]=$newVoiceDesc; $dimVoiceIndex++; } } fclose($fpN);
//----------------------------------------------------
echo "
DIXI TTS
";
echo "<form method='post' name='intro' accept-charset='ISO-8859-1'>"; echo "Seleccione uma voz: <select name='voice'>"; echo "<option value='$voices'>" . $VoiceNames[$voices]; for($i=0;$i<$dimVoiceIndex;$i++) { if ($VoiceNamesIndex[$i]!=$voices) { echo "<option value='" . $VoiceNamesIndex[$i] . "'>"; echo $VoiceNames[$VoiceNamesIndex[$i]]; } } echo "</select>"; echo "
Escreva aqui o texto a sintetizar
"; echo "<textarea name='parasinteste' rows='10' cols='80'>$text</textarea>"; echo "
"; echo "<input type='submit' value='Sintetiza'/>"; echo "<a href='$oURL'>Ouvir novamente</a>";
//----------------------------------------------------
echo "</form>";
}
</php>