Bonjour,
J'ai un script qui fait la phonétisation, et aprés la phonétisation je dois insérer un phonéme, mais avant tout je dois faire des tests par exemple:
je dois insérer le phonéme AE
pour le mot KH UW Y AE: , j'ai le phonéme UW et le phonéme AE: donc je dois pas insérer AE,
mais par exemple pour le mot T F DD DD L, je dois insérer le AE aprés le deuxiéme phonéme, car dans le dialecte tunisian la plupart des mots commence par SUKUN et se termine par SUKUN, donc j'aurais comme résultat :
T F AE DD DD AE L
si le mot se termine par un voyelle longue donc le premier caractère porte un diacritique autre que SUkun par exemple le mot
TH M M AE: SH IY donc je dois insérer le phonéme AE aprés le premier caractére, et si deux phonéme qui se suit et son égaux je dois pas insérer le phonéme AE, comme l'exemple précédent M et M.
L'algorithme d'insertion donc consiste a tester l’existence des voyelles (UW, UH, IH, AE: ) dans le mot avant l'insertion,et d'insérer le phonéme AE
Voici un essai mais ce n'est pas efficace du tout et il m'insére le AE sans prendre compte des tests ainsi, je sais pas comment faire l'insertion et j'ai fait de remplacement !!
j'ai besoin de vos aides :'(
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 my $chaine=$phoneme; my $chaine2=$phoneme; my @words = split(/ /, $chaine); my $size1 = scalar(@words); foreach $k (0..$size1-1) { if ($words[$k] eq "UW") { print {$fh_Aran} "$chaine\n"; } else { $chaine =~ s/(.{3})(.+)/$1 AE $2/; $chaine2 =~ s/(.{5})(.+)/$1 AE $2/; } print {$fh_Aran} "$mot\t\t\t"; print {$fh_Aran} "$chaine\n"; print {$fh_Aran} "$mot\t\t\t"; print {$fh_Aran} "$chaine2\n"; }
Merci
Partager